版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第C語言實現(xiàn)會員計費系統(tǒng)本文實例為大家分享了C語言實現(xiàn)會員計費系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
一、項目簡介
通過會員卡計費系統(tǒng)C語言課程設(shè)計的實踐,掌握函數(shù)、數(shù)據(jù)的讀取和存儲。
二、任務(wù)概述
(1)新會員登記。
(2)會員信息修改。
(3)會員續(xù)費。
(4)會員消費結(jié)算。
(4)會員退卡。
三、功能展示
四、思維導圖
五、程序源碼
#includestdio.h
#includewindows.h
#includetime.h
#includestring.h
#defineN100
structemployee
intnum;
charname[10];
charsex;
intage;
charxueli[30];
intwage;
intxiao;
intyu;
charaddr[30];
longinttel;
}em[100];/*定義一個結(jié)構(gòu)體*/
voidmenu();
voidinput();
voidsave(int);
voiddisplay();
voiddel();
voidadd();
voidsearch();
voidsearch_num();
voidsearch_xueli();
voidsearch_tel();
voidmodify();/*定義各函數(shù)*/
voidmenu()/*菜單函數(shù)*/
printf("******************菜單管理****************\n");
printf("1.新會員登記");
printf("2統(tǒng)計功能\n");
printf("3.會員消費結(jié)算");
printf("4.會員退卡\n");
printf("5.會員卡續(xù)費");
printf("6會員信息修改\n");
printf("7.會員卡掛失");
printf("8.退出\n");
printf("*************歡迎使用會員卡計費系統(tǒng)************\n");
printf("\n");
printf("\n");
intmain()
{
intn,flag;
chara;
char*s1;
intb,j,flg=0;
menu();/*調(diào)用菜單函數(shù)*///這幾個調(diào)換一下順序就可以了記住聲明變量的代碼要在前面do
printf("請選擇你需要操作的步驟(1--8):\n");
scanf("%d",
if(n=1n=8)
flag=1;
flag=0;
printf("您輸入有誤請重新選擇!");
while(flag==0);
while(flag==1)
switch(n)
case1:printf("◆◆◆新會員登記◆◆◆\n");printf("\n");input();break;
case2:printf("◆◆◆統(tǒng)計功能◆◆◆\n");printf("\n");display();break;
case3:printf("◆◆◆會員消費結(jié)算◆◆◆\n");printf("\n");search();break;
case4:printf("◆◆◆會員退卡◆◆◆\n");printf("\n");del();break;
case5:printf("◆◆◆會員卡續(xù)費◆◆◆\n");printf("\n");add();break;
case6:printf("◆◆◆會員信息修改◆◆◆\n");printf("\n");modify();break;
case7:printf("◆◆◆會員卡掛失◆◆◆\n");printf("\n");modify();break;
case8:exit(0);break;
default:break;
getchar();
printf("\n");
printf("是否繼續(xù)進行(yorn):\n");
scanf("%c",
if(a=='y')
flag=1;
system("cls");/*清屏*/
menu();/*調(diào)用菜單函數(shù)*/
printf("請再次選擇你需要操作的步驟(1--7):\n");
scanf("%d",
printf("\n");
exit(0);
voidinput()/*錄入函數(shù)*/
inti,m;
printf("請輸入需要創(chuàng)建信息的會員人數(shù)(1--100):\n");
scanf("%d",
for(i=0;ii++)
printf("卡號");
srand((int)time(0));
em[i].num=rand()%100+20000000;
if(em[i].num!=em[i-1].num)
printf("%8d",em[i].num);
printf("\n");
printf("請輸入姓名:");
scanf("%s",em[i].name);
getchar();
printf("請輸入性別(f--女m--男):");
scanf("%c",em[i].sex);
getchar();
printf("請輸入年齡:");
scanf("%d",em[i].age);
getchar();
printf("請輸入學歷:");
scanf("%s",em[i].xueli);
getchar();
printf("請輸入繳費金額:");
scanf("%d",em[i].wage);
getchar();
printf("請輸入住址:");
scanf("%s",em[i].addr);
getchar();
printf("請輸入電話:");
scanf("%d",em[i].tel);
printf("\n");
printf("\n創(chuàng)建完畢!\n");
save(m);
voidsave(intm)/*保存文件函數(shù)*/
inti;
FILE*fp;
if((fp=fopen("employee_list","wb"))==NULL)/*創(chuàng)建文件并判斷是否能打開*/{
printf("cannotopenfile\n");
exit(0);
for(i=0;ii++)/*將內(nèi)存中會員的信息輸出到磁盤文件中去*/
if(fwrite(em[i],sizeof(structemployee),1,fp)!=1)
printf("filewriteerror\n");
fclose(fp);
intload()/*導入函數(shù)*/
FILE*fp;
inti=0;
if((fp=fopen("employee_list","rb"))==NULL)
printf("cannotopenfile\n");
exit(0);
fread(em[i],sizeof(structemployee),1,fp);
while(feof(fp)==0);
fclose(fp);
return(i-1);
voiddisplay()/*瀏覽函數(shù)*/
inti;
intm=load();
printf("\n卡號\t姓名\t性別\t年齡\t學歷\t繳費金額\t消費金額\t住址\t電話\n");
for(i=0;ii++)/*m為輸入部分的會員人數(shù)*/
printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].xiao,em[i].addr,em[i].tel);
voiddel()/*刪除函數(shù)*/
intm=load();
inti,j,n,t,flag;
charname[20];
printf("\n原來的會員信息:\n");
display();/*調(diào)用瀏覽函數(shù)*/
printf("\n");
printf("請輸入要刪除的會員的姓名:\n");
scanf("%s",name);
for(flag=1,i=0;flagii++)
if(strcmp(em[i].name,name)==0)
printf("\n已找到此人原始記錄為\n");
printf("\n卡號姓名性別年齡繳費金額余額\n");
printf("\n%d\t%s\t%c\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].wage,em[i].yu);
printf("\n確實要刪除此人信息請按1,不刪除請按0\n");
scanf("%d",
if(n==1)/*如果刪除則其他的信息都往上移一行*/
for(j=i;jj++)
strcpy(em[j].name,em[j+1].name);
em[j].num=em[j+1].num;
em[j].sex=em[j+1].sex;
em[j].age=em[j+1].age;
em[j].wage=em[j+1].wage;
em[j].yu=em[j+1].yu;
flag=0;
if(!flag)
m=m-1;
printf("\n對不起查無此人!\n");
printf("\n瀏覽刪除后的所有會員信息:\n");
save(m);/*調(diào)用保存函數(shù)*/
display();/*調(diào)用瀏覽函數(shù)*/
printf("\n繼續(xù)刪除請按不再刪除請按\n");
scanf("%d",
switch(t)
case1:del();break;
case0:break;
default:break;
voidadd()/*添加函數(shù)*/
FILE*fp;
intnum;
intt;
inti;
intm=load();
printf("\n原來的會員信息:\n");
display();/*調(diào)用瀏覽函數(shù)*/
printf("\n");
fp=fopen("emploee_list","a");
printf("請輸入續(xù)費會員卡號:\n");
scanf("%d",num);
for(i=0;ii++)
if(num==em[i].num)
printf("\n已找到此人其記錄為\n");
printf("\n卡號\t姓名\t繳費金額\t消費金額\n");
printf("\n%d\t%s\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].wage,em[i].xiao);printf("\n輸入續(xù)費金額\n");
scanf("%d",
em[i].wage=em[i].wage+t;
printf("\n續(xù)后金額\t%d\n",em[i].wage);
printf("\n續(xù)費成功!\n");
voidsearch()/*查詢函數(shù)*/
intt,flag;
printf("\n按卡號查詢請按1;按電話號碼查詢請按3,進入主函數(shù)按4\n");
scanf("%d",
if(t=1t=4)
flag=1;
break;
flag=0;
printf("您輸入有誤請重新選擇!");
while(flag==0);
while(flag==1)
switch(t)
case1:printf("按卡號查詢\n");search_num();break;
case3:printf("按電話號碼查詢\n");search_tel();break;
case4:main();break;
default:break;
voidsearch_num()
intnum;
inti,t;
intm=load();
printf("請輸入要查找的會員卡號(20000001---20000100):\n");
scanf("%d",num);
for(i=0;ii++)
if(num==em[i].num)
printf("\n已找到此人其記錄為\n");
printf("\n卡號\t
姓名\t性別\t年齡\t繳費金額\t電話\n");
printf("\n%d\t%s\t%c\t%d\t%d\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].wage,em[i].tel);
printf("\n該次消費為;\n");
scanf("%d",em[i].xiao);
em[i].yu=em[i].wage-em[i].xiao;
printf("\n卡號\t
姓名\t性別\t年齡\t繳費金額\t消費金額\t余額\t電話\n");printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].wage,em[i].xiao,em[i].yu,em[i].tel);
break;
if(i==m)
printf("\n對不起查無此人\n");
printf("\n");
printf("返回查詢函數(shù)請按1,繼續(xù)查詢卡號請按2\n");
scanf("%d",
switch(t)
case1:search();break;
case2:break;
default:break;
voidsearch_tel()
longinttel;
inti,t;
intm=load();
printf("請輸入要查找的電話號碼:\n");
scanf("%ld",tel);
for(i=0;ii++)
if(tel==em[i].tel)
printf("\n已找到此人其記錄為\n");
printf("\n卡號\t
姓名\t性別\t年齡\t繳費金額\t電話\n");
printf("\n%d\t%s\t%c\t%d\t%d\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,
em[i].wage,em[i].tel);
printf("\n該次消費為;\n");
scanf("%d",em[i].xiao);
em[i].yu=em[i].wage-em[i].xiao;
printf("\n卡號\t
姓名\t性別\t年齡\t繳費金額\t消費金額\t余額\t電話\n");
printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%s\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].wage,em[i].xiao,em[i].yu,em[i].tel);
break;
if(i==m)
printf("\n對不起查無此人\n");
printf("\n");
printf("返回查詢函數(shù)請按,繼續(xù)查詢電話號碼請按\n");
scanf("%d",
switch(t)
case1:search();break;
case2:break;
default:break;
voidmodify()/*修改函數(shù)*/
intnum;
charname[10];
charsex;
intage;
charxueli[30];
intwage;
charaddr[30];
longinttel;
intb,c,i,n,t,flag;
intm=load();/*導入文件內(nèi)的信息*/
printf("\n原來的會員信息:\n");
display();/*調(diào)用瀏覽函數(shù)*/
printf("\n");
printf("請輸入要修改的會員的姓名:\n");
scanf("%s",name);
for(flag=1,i=0;flagii++)
if(strcmp(em[i].name,name)==0)
printf("\n已找到此人原始記錄為\n");
printf("\n卡號\t
姓名\t性別\t年齡\t學歷\t繳費金額\t住址\t電話\n");
printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);
printf("\n確實要修改此人信息請按;不修改請按\n");
scanf("%d",
if(n==1)
printf("\n需要進行修改的選項\n1.卡號2.姓名3.性別4.年齡5.學歷6.繳費金額7.住址8.電話\n");printf("請輸入你想修改的那一項序號:\n");
scanf("%d",
if(c8||c1)
printf("\n選擇錯誤請重新選擇!\n");
flag=0;
if(flag==1)
printf("\n對不起查無此人!\n");
switch(c)/*因為當找到第i個會員時,for語句后i自加了,所以下面的應(yīng)該把改后的信息賦值給第i-1個人*/{
case1:printf("卡號改為:");
scanf("%d",num);
em[i-1].num=num;
break;
cas
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025安徽馬鞍山首創(chuàng)水務(wù)有限責任公司招聘勞務(wù)派遣制工作人員5人(十二月)筆試歷年參考題庫附帶答案詳解
- 2025安徽蚌埠競先數(shù)據(jù)服務(wù)有限公司人才招聘6人筆試歷年參考題庫附帶答案詳解
- 2025安徽蕪湖市繁昌區(qū)區(qū)屬國有企業(yè)招聘經(jīng)理層中層管理人員筆試歷年參考題庫附帶答案詳解
- 2025安徽亳州機場管理有限公司勞務(wù)派遣人員招聘8人筆試歷年參考題庫附帶答案詳解
- 2025天津靜海泊泰醫(yī)院有限公司面向社會招聘7人筆試歷年參考題庫附帶答案詳解
- 2025國家核安保技術(shù)中心招聘筆試參考題庫附帶答案詳解
- 2025四川廣安發(fā)展建設(shè)集團有限公司第三批招聘18人筆試歷年參考題庫附帶答案詳解
- 2025四川大道致遠供應(yīng)鏈管理有限責任公司招聘員工測試筆試歷年參考題庫附帶答案詳解
- 2025內(nèi)蒙古交通集團社會化招聘(168人)筆試歷年參考題庫附帶答案詳解
- 2025年城市地下綜合管廊智慧運維中心建設(shè)與智能能源管理系統(tǒng)融合可行性報告
- 2026年山東城市服務(wù)職業(yè)學院單招職業(yè)技能考試題庫附答案詳解
- 研發(fā)部門員工加班管理細則
- 鋼結(jié)構(gòu)橋梁施工監(jiān)測方案
- 2025人教pep版三年級英語上冊字帖
- 《5G移動通信》課件-項目六 5G網(wǎng)絡(luò)中的人工智能技術(shù)
- 2025江蘇蘇州高新區(qū)獅山商務(wù)創(chuàng)新區(qū)下屬國有企業(yè)招聘9人筆試題庫及答案詳解
- 2025-2030中國城市青年租房行為特征與消費偏好調(diào)查報告
- 教培機構(gòu)年終工作總結(jié)
- 2025年秋季青島版三年級數(shù)學上冊求比一個數(shù)的幾倍多(少)幾的數(shù)教學課件
- 2025年法醫(yī)學法醫(yī)鑒定技能測試答案及解析
- 2025泰州中考數(shù)學試卷及答案
評論
0/150
提交評論