您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“C語言如何實現會員管理系統”,內容詳細,步驟清晰,細節處理妥當,希望這篇“C語言如何實現會員管理系統”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
會員信息包括:會員號(6位數,唯一),姓名,身份證號,聯系電話,狀態(1表示正常,0表示掛失)。
會員管理包括:會員的添加、刪除、修改(會員號不能修改)、掛失、查詢、接觸掛失。
先給大家看看效果:
上代碼:
#include <stdio.h> #include <stdlib.h> #include <string.h> struct VIP //定義結構體,存儲會員賬號、姓名、身份證號、聯系方式、狀態、余額 { long no; char name[20]; //姓名、身份證號含有字符,使用char定義 char IDcard[19]; char phone[12]; //聯系電話有11位,超出了int的范圍,使用字符串定義 int zhuangtai; //如果狀態為1,則正常,若為0,則狀態為掛失 int yue; }; struct VIP s[50]; //定義結構體數組 int n=0; //n表示存入的會員數量 void init(); //含義見main主函數 void print(); struct VIP gete(); void add1(); void findbyno(); void findbyname(); void findbyIDcard(); void findbyphone(); void mod(); void del(); void sort(); void transaction(); void init() //初始化(唯一的6位會員賬號) { int f=1; //1唯一 0不唯一 printf("請輸入會員的賬號,姓名,身份證號碼,聯系電話,余額,狀態\n"); printf("當輸入會員號為0時停止輸入\n"); while(n<=50) { printf("請輸入會員的賬號:\n"); scanf("%ld",&s[n].no); while(s[n].no!=0) { if(s[n].no/1000000==0 && s[n].no/100000!=0) { int i; for(i=0;i<n&&f==1;i++) { if(s[n].no==s[i].no) { f=0; printf("請輸入唯一的6位會員賬號\n"); } } if(f==1) break; } else { printf("請輸入6位會員賬號\n"); printf("請重新輸入會員的賬號:\n"); scanf("%d",&s[n].no); } } if(s[n].no==0) break; //如果輸入的賬號為0,結束輸入 printf("請輸入會員的姓名:\n"); scanf("%s",s[n].name); printf("請輸入會員的身份證號,聯系電話,余額,狀態:\n"); scanf("%s%s%d%d",s[n].IDcard,s[n].phone,&s[n].yue,&s[n].zhuangtai); n++; } } void print() //輸出 { //|和=組合起來,使輸出結果時有表格樣式 //%t、空格使輸出時數據對其 int j; printf("會員信息記錄如下:\n"); printf(" |===================================================================================|\n"); printf(" |賬號\t姓名\t 身份證號 \t 聯系電話 \t余額\t 狀態 |\n"); printf(" |-----------------------------------------------------------------------------------|\n"); for(j=0;j<n;j++) { printf(" |%ld\t%s\t %s\t%s\t%d\t",s[j].no,s[j].name,s[j].IDcard,s[j].phone,s[j].yue); if(s[j].zhuangtai==1) printf(" 正常 |\n"); else printf(" 掛失 |\n"); if(j<(n-1)) printf(" |-----------------------------------------------------------------------------------|\n"); } printf(" |===================================================================================|\n"); } struct VIP gete() //輸入 { struct VIP e; printf("請輸入賬號:\n"); scanf("%d",&e.no); int f=1; while(e.no) { if(e.no/1000000==0 && e.no/100000!=0) { int i; for(i=0;i<n&&f==1;i++) { if(e.no==s[i].no) { f=0; printf("請輸入唯一的6位會員賬號\n"); scanf("%d",&e.no); } } if(f==1) break; } else { printf("請輸入6位會員賬號\n"); printf("請重新輸入會員的賬號:\n"); scanf("%d",&e.no); } } printf("請輸入姓名:\n"); scanf("%s",&e.name); printf("請輸入會員的身份證號,聯系電話,余額,狀態:\n"); scanf("%s%s%d%d",&e.IDcard,&e.phone,&e.yue,&e.zhuangtai); return e; } void add1() //添加新的會員信息 { struct VIP e = gete(); int i; printf("請輸入要插入的位置(1-%d):\n",n); scanf("%d",&i); while(i<1||i>n+1) { printf("您輸入的位置有誤!\n"); printf("請重新輸入要插入的位置(1-%d):\n",n); scanf("%d",&i); } for(int j=n-1;j>=i-1;j--) { s[j+1]=s[j]; } s[i-1]=e; n++; } void findbyno() //根據會員賬號查找會員信息 { int num,i; int found=1; char choice; while(1) { printf("請輸入要查找的會員的賬號:\n"); scanf("%d",&num); getchar(); for(i=0;i<n&&found==1;i++) { if(s[i].no==num) { found=0; printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1) printf("正常\n"); else printf("掛失!\n"); } } if(found==1) { printf("未找到!\n"); } found=1; printf("是否繼續查詢(Y/N)\n"); choice=getchar(); if(choice=='N'|| choice=='n') break; } } void findbyname() //根據會員姓名查找會員信息 { char name[20]; char choice; int found=1; int i; while(1) { printf("輸入要查詢會員的姓名:\n"); scanf("%s",name); getchar(); for(i=0;i<n&&found==1;i++) { if(strcmp(s[i].name,name)==0) { found=0; printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1) printf("正常\n"); else printf("掛失!\n"); } } if(found==1) { printf("未找到!\n"); } found=1; printf("是否繼續查詢(Y/N)\n"); choice=getchar(); if(choice=='N'|| choice=='n') break; } } void findbyIDcard() //根據身份證號查找會員信息 { char num[19]; int i; int found=1; char choice; while(1) { printf("請輸入要查找的會員的身份證號:\n"); scanf("%s",num); getchar(); for(i=0;i<n&&found==1;i++) { if(strcmp(s[i].IDcard,num)==0) { found=0; printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1) printf("正常\n"); else printf("掛失!\n"); } } if(found==1) { printf("未找到!\n"); } found=1; printf("是否繼續查詢(Y/N)\n"); choice=getchar(); if(choice=='N'|| choice=='n') break; } } void findbyphone() //根據聯系電話查找會員信息 { char num[12]; int i; int found=1; char choice; while(1) { printf("請輸入要查找的會員的聯系電話:\n"); scanf("%s",num); getchar(); for(i=0;i<n&&found==1;i++) { if(strcmp(s[i].phone,num)==0) { found=0; printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1) printf("正常\n"); else printf("掛失!\n"); } } if(found==1) { printf("未找到!\n"); } found=1; printf("是否繼續查詢(Y/N)\n"); choice=getchar(); if(choice=='N'|| choice=='n') break; } } void mod() //修改已有的會員信息 { int num,i; int found=1; char choice; int opt; while(1) { printf("請輸入要修改的會員的賬號(會員號無法修改):\n"); scanf("%d",&num); getchar(); for (i=0;i<n&&found==1;i++) { if(s[i].no==num) { found=0; printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1) printf("正常\n"); else printf("掛失\n"); printf("--請選擇--1.修改身份證號 2.修改聯系電話 3.修改狀態\n"); scanf("%d",&opt); getchar(); switch(opt) { case 1: printf("請輸入身份證號新值:\n"); scanf("%s",s[i].IDcard); getchar(); break; case 2: printf("請輸入聯系電話新值:\n"); scanf("%s",s[i].phone); getchar(); break; case 3: printf("請輸入狀態新值:\n"); scanf("%d",&s[i].zhuangtai); getchar(); break; } } } if(found==1) { printf("未找到!\n"); } found=1; printf("是否繼續修改(Y or N)\n"); choice=getchar(); getchar(); if(choice=='N'|| choice=='n') break; } } void del() //刪除已有會員信息 { int num,i,j; int found=1; char choice; while(1) { printf("請輸入要刪除的會員的賬號:\n"); scanf("%d",&num); getchar(); for(i=0;i<n&&found==1;i++) //5 1-5 { if(s[i].no==num) { found=0; printf("你要刪除的會員信息為:\n"); printf("會員賬號 姓名 身份證號 聯系電話 余額 狀態\n"); printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1) printf("正常\n"); else printf("掛失!\n"); for(j=i;j<n-1;j++) { s[j]=s[j+1]; } n--; } } if(found==1) { printf("未找到!\n"); } found=1; printf("是否繼續(Y/N)\n"); choice=getchar(); getchar(); if(choice=='N'|| choice=='n') break; } } void transaction() //消費或充值 { int num,i,a,b; int found=1; char choice; while(1) { printf("請輸入會員的賬號:\n"); scanf("%d",&num); getchar(); for(i=0;i<n&&found==1;i++) if(s[i].no==num) { found=0; printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1) printf("正常\n"); else printf("掛失!\n"); printf("請選擇類型:1.消費 2.充值\n"); scanf("%d",&a); getchar(); printf("請輸入金額:\n"); scanf("%d",&b); getchar(); if(a==1) { s[i].yue=s[i].yue-b; printf("%ld\t%s\t%s\t%s\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1) printf("正常\n"); else printf("掛失!\n"); } else { s[i].yue=s[i].yue+b; printf("%ld\t%s\t%s\t%s\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1) printf("正常\n"); else printf("掛失!\n"); } } if(found==1) { printf("未找到!\n"); } found=1; printf("是否繼續(Y/N)\n"); choice=getchar(); getchar(); if(choice=='N'|| choice=='n') break; } } void sort() //根據會員賬號從小到大排序 { int i,j; struct VIP temp; for(i=0;i<n;i++) { for (j=i+1;j<n;j++) { if (s[i].no>s[j].no) { temp=s[i]; s[i]=s[j]; s[j]=temp; } } } printf("\n排序后的會員信息:\n"); } int main() { int opt; printf(" |*============================================*|\n"); printf(" |* 歡迎使用會員管理系統 *|\n"); printf(" |*============================================*|\n"); printf(" |* 1.初始化 *|\n"); printf(" |* 2.添加新的會員記錄 *|\n"); printf(" |* 3.修改已有會員記錄/掛失 *|\n"); printf(" |* 4.根據賬號查詢已有會員記錄 *|\n"); printf(" |* 5.根據姓名查詢已有會員記錄 *|\n"); printf(" |* 6.根據身份證號查詢已有會員記錄 *|\n"); printf(" |* 7.根據聯系電話查詢已有會員記錄 *|\n"); printf(" |* 8.刪除已有會員記錄 *|\n"); printf(" |* 9.根據會員賬號排序并顯示 *|\n"); printf(" |* 10.會員消費或充值 *|\n"); printf(" |* 0.退出會員信息管理系統 *|\n"); printf(" |*============================================*|\n"); while(1) { printf("請輸入要完成的功能:0-10:"); scanf("%d",&opt); getchar(); //吸收回車 switch(opt) { case 1:init();print();break; //初始化 case 2:add1();print();break; //添加 case 3:mod();print();break; //修改 case 4:findbyno();print();break; //根據賬號查詢 case 5:findbyname();print();break; //根據姓名查詢 case 6:findbyIDcard();print();break; //根據身份證號查詢 case 7:findbyphone();print();break; //根據聯系電話查詢 case 8:del();print();break; //刪除 case 9:sort();print();break; //排序 case 10:transaction();print();break; //消費/充值 case 0:system("cls");exit(0);break; //退出 default:printf("請輸入0-10中的數!\n");break; } } }
讀到這里,這篇“C語言如何實現會員管理系統”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。