會員卡計費(fèi)系統(tǒng)源代碼_第1頁
會員卡計費(fèi)系統(tǒng)源代碼_第2頁
會員卡計費(fèi)系統(tǒng)源代碼_第3頁
會員卡計費(fèi)系統(tǒng)源代碼_第4頁
會員卡計費(fèi)系統(tǒng)源代碼_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、#include <stdio.h>/#include <windows.h>#include <time.h>#include <string.h>#define N 100struct employeeint num;char name10;char sex; int age;char xueli30;int wage;int xiao;int yu;char addr30;long int tel;em100; /*定義一個結(jié)構(gòu)體*/void menu();void input();void save(int);void display()

2、;void del();void add();void search();void search_num();void search_xueli();void search_tel();void modify(); /*定義各函數(shù)*/void menu() /*菜單函數(shù)*/printf(" 測繪工程專業(yè)n");printf("n");printf(" 方1016-1 莘凱明、胡宇飛n");printf("n");printf(" *菜單管理*n");printf(" 1.新會員登記&q

3、uot;);printf(" 2統(tǒng)計功能n");printf(" 3.會員消費(fèi)結(jié)算");printf(" 4.會員退卡n");printf(" 5.會員卡續(xù)費(fèi)");printf(" 6會員信息修改n");printf(" 7.會員卡掛失");printf(" 8.退出n");printf(" *歡迎使用會員卡計費(fèi)系統(tǒng)*n");printf("n");printf("n");void main()

4、int n,flag; char a;char *s1;int b,j,flg=0;printf("You have three chances to input password!"); /*密碼重復(fù)輸入三次*/ for(b=0;b<3;b+) /*定義密碼輸入次數(shù)*/ printf("nNo%d input password:",b+1); s1=(char *)malloc(40); gets(s1); /*接收密碼*/ j=strcmp(s1,"123"); /*與原有密碼進(jìn)行比較*/ if(j=0) flg=1;bre

5、ak; /*正確則標(biāo)志變量置1,否則繼續(xù)循環(huán)*/ if(flg=0) /*根據(jù)標(biāo)志變量的值決定是否繼續(xù)執(zhí)行*/printf("Password is error!");exit(0);menu(); /*調(diào)用菜單函數(shù)*/ 這幾個調(diào)換一下順序就可以了,記住聲明變量的代碼要在前面doprintf("請選擇你需要操作的步驟(1-8):n");scanf("%d",&n);if(n>=1&&n<=8)flag=1;break;elseflag=0;printf("您輸入有誤,請重新選擇!"

6、;);while(flag=0);while(flag=1)switch(n)case 1:printf(" 新會員登記n");printf("n");input();break;case 2:printf(" 統(tǒng)計功能n");printf("n");display();break;case 3:printf(" 會員消費(fèi)結(jié)算n");printf("n");search();break; case 4:printf(" 會員退卡n");printf(&qu

7、ot;n");del();break;case 5:printf(" 會員卡續(xù)費(fèi)n");printf("n");add();break;case 6:printf(" 會員信息修改n");printf("n");modify();break;case 7:printf(" 會員卡掛失n");printf("n");modify();break;case 8:exit(0);break;default :break;getchar();printf("n&q

8、uot;);printf("是否繼續(xù)進(jìn)行(y or n):n");scanf("%c",&a);if(a='y')flag=1;system("cls"); /*清屏*/menu(); /*調(diào)用菜單函數(shù)*/printf("請再次選擇你需要操作的步驟(1-7):n");scanf("%d",&n);printf("n");else exit(0);void input() /*錄入函數(shù)*/int i,m;printf("請輸入需要創(chuàng)建信

9、息的會員人數(shù)(1-100):n");scanf("%d",&m);for (i=0;i<m;i+)printf("卡號:");srand(int)time(0);emi.num=rand()%100+20000000;if(emi.num!=emi-1.num)printf("%8d ",emi.num);printf("n");printf("請輸入姓名: ");scanf("%s",);getchar();printf("

10、請輸入性別(f-女m-男): ");scanf("%c",&emi.sex);getchar();printf("請輸入年齡: ");scanf("%d",&emi.age);getchar();printf("請輸入學(xué)歷: ");scanf("%s",emi.xueli);getchar();printf("請輸入繳費(fèi)金額: ");scanf("%d",&emi.wage);getchar();printf("

11、請輸入住址: ");scanf("%s",emi.addr);getchar();printf("請輸入電話: ");scanf("%d",&emi.tel);printf("n");printf("n創(chuàng)建完畢!n");save(m);void save(int m) /*保存文件函數(shù)*/int i;FILE*fp;if (fp=fopen("employee_list","wb")=NULL) /*創(chuàng)建文件并判斷是否能打開*/print

12、f ("cannot open filen");exit(0);for (i=0;i<m;i+) /*將內(nèi)存中會員的信息輸出到磁盤文件中去*/if (fwrite(&emi,sizeof(struct employee),1,fp)!=1)printf("file write errorn");fclose(fp);int load() /*導(dǎo)入函數(shù)*/FILE*fp;int i=0;if(fp=fopen("employee_list","rb")=NULL)printf ("cannot

13、 open filen");exit(0);else do fread(&emi,sizeof(struct employee),1,fp);i+;while(feof(fp)=0);fclose(fp);return(i-1);void display() /*瀏覽函數(shù)*/int i;int m=load();printf("n卡號t姓名t性別t年齡t學(xué)歷t繳費(fèi)金額t消費(fèi)金額t住址t電話n");for(i=0;i<m;i+) /*m為輸入部分的會員人數(shù)*/printf("n %dt%st%ct%dt%st%dt%st%ldn",

14、emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.xiao ,emi.addr,emi.tel); void del() /*刪除函數(shù)*/int m=load();int i,j,n,t,flag;char name20;printf("n 原來的會員信息:n");display(); /* 調(diào)用瀏覽函數(shù)*/printf("n");printf("請輸入要刪除的會員的姓名:n");scanf("%s",name);for(flag=1,i=0;flag&

15、amp;&i<m;i+)if(strcmp(,name)=0)printf("n已找到此人,原始記錄為:n");printf("n卡號t姓名t性別t年齡t繳費(fèi)金額t余額n");printf("n%dt%st%ct%dt%dt%dn",emi.num,,emi.sex,emi.age,emi.wage,emi.yu); printf("n確實要刪除此人信息請按1,不刪除請按0n");scanf("%d",&n);if(n=1) /*如果刪除,則

16、其他的信息都往上移一行*/for(j=i;j<m-1;j+)strcpy(,emj+1.name);emj.num=emj+1.num;emj.sex=emj+1.sex;emj.age=emj+1.age;emj.wage=emj+1.wage; emj.yu=emj+1.yu;flag=0;if(!flag)m=m-1;elseprintf("n對不起,查無此人!n");printf("n 瀏覽刪除后的所有會員信息:n");save(m); /*調(diào)用保存函數(shù)*/display(); /*調(diào)用瀏覽函數(shù)*/printf("

17、n繼續(xù)刪除請按,不再刪除請按n");scanf("%d",&t);switch(t)case 1:del();break;case 0:break;default :break;void add()/*添加函數(shù)*/FILE*fp;int num;int t;int i;int m=load();printf("n 原來的會員信息:n");display(); /* 調(diào)用瀏覽函數(shù)*/printf("n");fp=fopen("emploee_list","a");printf(&

18、quot;請輸入續(xù)費(fèi)會員卡號:n");scanf("%d",&num);for(i=0;i<m;i+)if(num=emi.num)printf("n已找到此人,其記錄為:n");printf("n卡號t姓名t繳費(fèi)金額t消費(fèi)金額n");printf("n%dt%st%dt%dt%dn",emi.num,, emi.wage,emi.xiao); printf("n輸入續(xù)費(fèi)金額:n");scanf("%d",&t);emi.wag

19、e= emi.wage+t;printf("n續(xù)后金額:t%dn",emi.wage);printf("n續(xù)費(fèi)成功!n"); void search()/*查詢函數(shù)*/int t,flag;doprintf("n按卡號查詢請按1; 按電話號碼查詢請按3,進(jìn)入主函數(shù)按4n");scanf("%d",&t);if(t>=1&&t<=4)flag=1;break;elseflag=0;printf("您輸入有誤,請重新選擇!");while(flag=0);whil

20、e(flag=1)switch(t) case 1:printf("按卡號查詢n");search_num();break;case 3:printf("按電話號碼查詢n");search_tel();break;case 4:main();break;default:break;void search_num()int num;int i,t;int m=load();printf("請輸入要查找的會員卡號(20000001-20000100):n");scanf("%d",&num);for(i=0;i

21、<m;i+)if(num=emi.num) printf("n已找到此人,其記錄為:n");printf("n卡號t 姓名t性別t年齡t繳費(fèi)金額t電話n");printf("n%dt%st%ct%dt%dt%ldn",emi.num,,emi.sex,emi.age, emi.wage,emi.tel);printf("n該次消費(fèi)為;n");scanf("%d",&emi.xiao);emi.yu=emi.wage-emi.xiao;printf("n卡號

22、t 姓名t性別t年齡t繳費(fèi)金額t消費(fèi)金額t余額t電話n");printf("n%dt%st%ct%dt%dt%dt%dt%ldn",emi.num,,emi.sex,emi.age, emi.wage, emi.xiao,emi.yu,emi.tel);break; if(i=m) printf("n對不起,查無此人n");printf("n");printf("返回查詢函數(shù)請按1,繼續(xù)查詢卡號請按2n");scanf("%d",&t);switch(t) ca

23、se 1:search();break;case 2: break;default:break;void search_tel()long int tel;int i, t;int m=load();printf("請輸入要查找的電話號碼:n");scanf("%ld",&tel);for(i=0;i<m;i+)if(tel=emi.tel) printf("n已找到此人,其記錄為:n");printf("n卡號t 姓名t性別t年齡t繳費(fèi)金額t電話n");printf("n%dt%st%ct

24、%dt%dt%ldn",emi.num,,emi.sex,emi.age, emi.wage,emi.tel);printf("n該次消費(fèi)為;n");scanf("%d",&emi.xiao);emi.yu=emi.wage-emi.xiao;printf("n卡號t 姓名t性別t年齡t繳費(fèi)金額t消費(fèi)金額t余額t電話n");printf("n%dt%st%ct%dt%dt%dt%dt%st%ldn",emi.num,,emi.sex,emi.age, emi.wag

25、e, emi.xiao,emi.yu,emi.tel);break;if(i=m) printf("n對不起,查無此人n");printf("n");printf("返回查詢函數(shù)請按,繼續(xù)查詢電話號碼請按n");scanf("%d",&t);switch(t) case 1:search();break;case 2:break;default :break;void modify() /*修改函數(shù)*/int num;char name10;char sex; int age;char xueli30;in

26、t wage;char addr30;long int tel;int b,c,i,n,t,flag; int m=load(); /*導(dǎo)入文件內(nèi)的信息*/printf("n 原來的會員信息:n");display(); /* 調(diào)用瀏覽函數(shù)*/printf("n");printf("請輸入要修改的會員的姓名:n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i+)if(strcmp(,name)=0)printf("n已找到此

27、人,原始記錄為:n");printf("n卡號t 姓名t性別t年齡t學(xué)歷t繳費(fèi)金額t住址t電話n");printf("n%dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); printf("n確實要修改此人信息請按; 不修改請按n");scanf("%d",&n);if(n=1)printf("n需要進(jìn)行修改的選項n 1.卡號2.姓名3.性別4.年

28、齡5.學(xué)歷6.繳費(fèi)金額7.住址8.電話n"); printf("請輸入你想修改的那一項序號:n"); scanf("%d",&c); if(c>8|c<1) printf("n選擇錯誤,請重新選擇!n"); flag=0;if(flag=1)printf("n對不起,查無此人!n"); do switch(c) /*因為當(dāng)找到第i個會員時,for語句后i自加了,所以下面的應(yīng)該把改后的信息賦值給第i-1個人*/ case 1:printf("卡號改為: ");scanf("%d",&num);emi-1.num=num;break; case 2:printf("姓名改為:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論