會員卡計費系統(tǒng)c 課程設計報告_第1頁
會員卡計費系統(tǒng)c 課程設計報告_第2頁
會員卡計費系統(tǒng)c 課程設計報告_第3頁
會員卡計費系統(tǒng)c 課程設計報告_第4頁
會員卡計費系統(tǒng)c 課程設計報告_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、附件1:學號:課程設計題目會員卡計費系統(tǒng)學院計算機科學與信息工程學院專業(yè)計算機科學與技術(shù)班級計算機學生姓名指導教師2015年12月29日重慶工商大學課程設計成績評定表學院:計信學院班級:計算機3班學生姓名學號項目分值優(yōu)秀(100 x90)良好(90 x80)中等(80 x270)及格(70 x260)不及格(xname1cardID1ID1balance1;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(cardID1,p-cardID)cout添加失敗,卡號重復endl;x+;if(!strcmp(ID1,p-ID)cout添加失敗,身份證號重

2、復endl;x+;if(x=0)card*q1;q1=newcard;q1-nextp=nextp;nextp=q1;strcpy(q1-name,name1);strcpy(q1-cardID,cardID1);strcpy(q1-ID,ID1);q1-balance=balance1;SYSTEMTIMEm_time;GetLocalTime(&m_time);q1-t.year=m_time.wYear;q1-t.mouth=m_time.wMonth;q1-t.day=m_time.wDay;s3:cout是否繼續(xù)添加:1.繼續(xù),2.返回endl;cinn;if(n=2)break;e

3、lseif(n!=1)cout選擇錯誤,請重新選擇endl;gotos3;二會員顯示函數(shù)voidcard:change()/修改函數(shù)chara9;charb19;intm;cout請輸入卡號endl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(p=NULL)cout沒有查找到endl;return;showone(p);s5:cout需要改哪一項?m;switch(m)case1:cout請輸入修改的卡號endl;cinb;strcpy(p-cardID,b);break;case2:cout

4、請輸入修改的姓名endl;cinb;strcpy(p-name,b);break;case3:cout請輸入修改的身份證號endl;cinb;strcpy(p-ID,b);break;default:cout請輸入l-3endl;gotos5;voidcard:seekCardID()/查詢卡號函數(shù)chara9;cout請輸入卡號endl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(p=NULL)cout沒有查找到endl;return;showone(p);三退卡函數(shù)voidcard:ret

5、urnCard()/退卡函數(shù)chara9;intm;s6:cout請輸入卡號endl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(p=NULL)cout沒有查找到,請重新輸入endl;gotos6;showone(p);s7:cout確認刪除?1.確認,2取消。endl;cinm;if(m=1)cardDelete(a);elseif(m=2)cout已成功取消endl;return;elsecout確認錯誤,請重新輸入endl;gotos7;四查詢函數(shù)voidcard:seekCardID(

6、)/查詢卡號函數(shù)chara9;cout請輸入卡號endl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(p=NULL)cout沒有查找到endl;return;showone(p);voidcard:seekName()/精確姓名查詢chara17;cout請輸入姓名endl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-name)break;if(p=NULL)cout沒有查找到endl;return;showone(p);v

7、oidcard:seekName2()/模糊姓名查詢chara17;cout請輸入模糊姓名endl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(strstr(p-name,a)break;if(p=NULL)cout沒有查找到endl;return;showone(p);voidcard:seekID()/身份證查詢chara19;cout請輸入身份證號endl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-ID)break;if(p=NULL)cout沒有查找到endl;retu

8、rn;showone(p);五排序函數(shù)voidcard:insertSort()/插入排序card*p1;card*p2;card*p3;card*p4;if(this-nextp!=NULL&this-nextp-nextp!=NULL)p1=this;p2=this-nextp;p3=p2-nextp;p2-nextp=NULL;while(p3!=NULL)p4=p3-nextp;while(p2!=NULL&strcmp(p3-cardID,p2-cardID)0)p1=p2;p2=p2-nextp;p1-nextp=p3;p3-nextp=p2;p1=this;p2=this-nex

9、tp;p3=p4;elsereturn;voidcard:insertSortTotal()/插入排序消費總額card*p1;card*p2;card*p3;card*p4;if(this-nextp!=NULL&this-nextp-nextp!=NULL)p1=this;p2=this-nextp;p3=p2-nextp;p2-nextp=NULL;coutcout充值成功endl;while(p3!=NULL)p4=p3-nextp;while(p2!=NULL&p3-totaltotal)p1=p2;p2=p2-nextp;p1-nextp=p3;p3-nextp=p2;p1=this

10、;p2=this-nextp;p3=p4;elsereturn;六顯示會員卡voidcard:show()/會員卡全部顯示函數(shù)coutnextp)coutp-cardIDsetw(6)p-namep-IDp-t.year年p-t.mouth月p-t.day日setw(3)p-balancesetw(6)p-totalp-gendl;七續(xù)費函數(shù)voidcard:cardRecharge()/續(xù)費函數(shù)chara9;/輸入卡號intm;/判斷數(shù)intmoney;/續(xù)費金額s6:cout請輸入卡號endl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!st

11、rcmp(a,p-cardID)break;if(p=NULL)cout沒有查找到,請重新輸入endl;gotos6;showone(p);cout請輸入充值金額endl;cinmoney;s7:cout確認充值?1.確認,2取消endl;cinm;if(m=1)p-balance+=money;coutcout沒有查找到,請重新輸入endl;elseif(m=2)cout已取消endl;return;elsecout確認錯誤,請重新輸入a;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(p=NULL)go

12、tos6;showone(p);cout商品名價格數(shù)量endl;cinthingsmoneynum;if(p-balance+p-total)1000)money=money*0.9;if(p-g=1)cout該卡已被掛失,無法消費endl;return;if(p-balance-num*money0)cout該卡余額不足,消費失敗endl;return;buy*q2;q2=newbuy;q2-next=p-q-next;p-q-next=q2;strcpy(q2-things,things);q2-num=num;q2-money=money;p-balance=p-balance-num*

13、money;p-n+;p-total=p-total+num*money;SYSTEMTIMEm_time;GetLocalTime(&m_time);q2-t1.year=m_time.wYear;coutcout掛失成功endl;q2-t1.mouth=m_time.wMonth;q2-t1.day=m_time.wDay;cout購買成功endl;九掛失,解掛失,補辦會員卡函數(shù)。voidcard:cardLost()/掛失函數(shù)chara9;/輸入卡號intm;/判斷數(shù)s6:cout請輸入卡號endl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if

14、(!strcmp(a,p-cardID)break;if(p=NULL)cout沒有查找到,請重新輸入endl;gotos6;showone(p);s7:cout確認掛失?1.確認,2取消endl;cinm;if(m=1)p-g=1;elseif(m=2)cout已取消endl;return;elsecout確認錯誤,請重新輸入a;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(p=NULL)cout沒有查找到,請重新輸入endl;gotos6;showone(p);s7:cout確認解掛失?1.確認,2取

15、消endl;cinm;if(m=1)p-g=0;cout解掛失成功endl;elseif(m=2)cout已取消endl;return;elsecout確認錯誤,請重新輸入endl;gotos7;voidcard:cardchange()/補卜辦會員卡chara9;card*q1;intx=0;s6:cout請輸入卡號endl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(p=NULL)cout沒有查找到,請重新輸入endl;gotos6;showone(p);sl3:cout請輸入新的卡號en

16、dl;cina;for(q1=nextp;q1!=NULL;q1=p-nextp)if(!strcmp(a,q1-cardID)cout添加失敗,卡號重復endl;x+;if(x!=0)gotos13;strcpy(p-cardID,a);十消費查詢函數(shù)voidcard:showBuy()/顯示購買函數(shù)chara9;buy*q1;s6:cout請輸入卡號endl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(p=NULL)cout沒有查找到,請重新輸入endl;gotos6;q1=p-q;cou

17、t商品名價格數(shù)量購買時間endl;for(q1=q1-next;q1!=NULL;q1=q1-next)coutsetw(8)q1-thingssetw(4)q1-moneysetw(2)ql-nump-t.year年p-t.mouth月p-t.day日endl;十一.文件讀取函數(shù)voidcard:fileRead()/讀取文件函數(shù)FILE*fp;if(fp=fopen(data.txt,r)puts(打開文件成功);elseputs(打開文件成敗);card*p;dop=newcard;p-nextp=nextp;nextp=p;fscanf(fp,%s,&p-name);fscanf(fp

18、,%s,&p-cardID);fscanf(fp,%d,&p-t.year);fscanf(fp,%d,&p-t.mouth);fscanf(fp,%d,&p-t.day);fscanf(fp,%s,&p-ID);fscanf(fp,%d,&p-balance);fscanf(fp,%d,&p-g);fscanf(fp,%d,&p-total);fgetc(fp);fscanf(fp,%d,&p-n);p-q=newbuy;p-q-next=NULL;for(inti=0;p-ni;i+)buy*p2;p2=newbuy;p2-next=p-q-next;p-q-next=p2;fscanf(

19、fp,%d,&p2-t1.year);fscanf(fp,%d,&p2-t1.mouth);fscanf(fp,%d,&p2-t1.day);fscanf(fp,%s,&p2-things);fscanf(fp,%d,&p2-money);fscanf(fp,%d,&p2-num);while(fgetc(fp)!=EOF);fclose(fp);cout讀取文件成功endl;十二.文件保存函數(shù)voidcard:fileWrite()/文件保存函數(shù)FILE*fp;if(fp=fopen(data.txt,w)puts(打開文件成功);elseputs(打開文件成敗);card*p;for(p=

20、nextp;p!=NULL;p=p-nextp)if(p-nextp=NULL)fprintf(fp,%s,p-name);fprintf(fp,%s,p-cardID);fprintf(fp,%d,p-t.year);fprintf(fp,%d,p-t.mouth);fprintf(fp,%d,p-t.day);fprintf(fp,%s,p-ID);fprintf(fp,%d,p-balance);fprintf(fp,%d,p-g);fprintf(fp,%dn,p-total);if(p-n0)fprintf(fp,%dn,p-n);elsefprintf(fp,%d,p-n);if(

21、p-n0)buy*q1;for(q1=p-q-next;q1!=NULL;q1=q1-next)fprintf(fp,%d,q1-t1.year);fprintf(fp,%d,q1-t1.mouth);fprintf(fp,%d,q1-t1.day);fprintf(fp,%s,q1-things);fprintf(fp,%d,q1-money);if(q1-next=NULL)fprintf(fp,%d,q1-num);elsefprintf(fp,%dn,q1-num);elsefprintf(fp,%s,p-name);fprintf(fp,%s,p-cardID);fprintf(fp

22、,%d,p-t.year);fprintf(fp,%d,p-t.mouth);fprintf(fp,%d,p-t.day);fprintf(fp,%s,p-ID);fprintf(fp,%d,p-balance);fprintf(fp,%d,p-g);fprintf(fp,%dn,p-total);fprintf(fp,%dn,p-n);if(p-n0)buy*q1;for(q1=p-q-next;q1!=NULL;q1=q1-next)fprintf(fp,%d,q1-t1.year);fprintf(fp,%d,q1-t1.mouth);fprintf(fp,%d,q1-t1.day);f

23、printf(fp,%s,q1-things);fprintf(fp,%d,q1-money);fprintf(fp,%dn,q1-num);fclose(fp);cout文件儲存成功endl;十三.管理員文件讀取,保存voidmanagerRead(managerList&L)/管理者文件讀取FILE*fp;L.length=0;inti=0;if(fp=fopen(password.in,r)puts(打開文件成功);elseputs(打開文件成敗);dofscanf(fp,%s,&L.ai.usename);fscanf(fp,%s,&L.ai.password);L.length+;L

24、.ai.id=L.length;i+;while(fgetc(fp)!=EOF);fclose(fp);voidmanagerWrite(managerList&L)/管理員文件保存FILE*fp;inti;if(fp=fopen(password.in,w)puts(打開文件成功);elseputs(打開文件成敗);for(i=0;iusename1;s2:cout請輸入密碼endl;cinpassword1;for(i=0;iL.length;i+)if(strcmp(L.ai.usename,usename1)=0)break;if(i=L.length)cout無該用戶名,請重新輸入e

25、ndl;gotos1;if(strcmp(L.ai.password,password1)!=0)cout密碼錯誤,請重新輸入密碼endl;gotos2;cout密碼正確,歡迎使用本系統(tǒng)endl;returni;四測試結(jié)果1.初始界面LJg慄桎詩計疋畑2輸入最高權(quán)限管理員進行測試WVJpOTiSwA譽理員名cliclievin請輸人密袒1234E6密碼正確燙迎使用本糸疣下冇1006000110000003100600041006000510060006100000021S000S00WJCKKWJCKKWJCJCKKJCJCKKJCJCKKJCKKXJCKIK請選擇U-4J3.測試會員卡添加6

26、7013S丁可1823212124181750002323434343434350993419983473284730034588894593935837487545484545454550023611955548053&500232323232323232555555555555555555-2015122015年比月2015年12月2015年比月2015年12月2015年比月2015年12月余額230230130502302500歷史消費6掛失6565656該操作會自動調(diào)用把辦卡時間取系統(tǒng)當前時間。4.測試會員卡修改。5.測試退卡。-召乍.4-宀I退卡九去詢合員卡顯.J、全口墜員F返回上一

27、塚慎選擇操作(1-?)籍輸入卡號10001000710000007皆冃旃認刪涂?1.確認.縣佇證=汪卅時間5093430S020293939320161月3H金敎才史獵發(fā)掛矢100096.測試查詢會員卡。7測試排序。33韓作T-C卡號lUMUMkJIdM1009096210090361100909631胴靦胴4100胴胴耳10030366魏舉囂員忘操柞身份證W辭殆蟄曲障昭翻昭酸50023232323232323250002323434343434350993419J834732B47n4RSSRS4F9191FR374H44H44牙4R4B506236119555480536I:-吊fr-采辛

28、充:l汪冊師2015年201弓年12201弓年12201弓年12.2015年1221201石年12月刃201.舟12月24空月燈1818230_u2fl12007008.測試會員卡顯示。A.n|藝E卞卡W1S0S0O0O160S0O021S0SOO011S0S0O031S0SOO04160600051600OO0G(1一7)魏浩軍9.測試續(xù)費操作。先哇0000130身悅證號222222222222222222500232322232323232500023234343434343509934199834328473003458889459393E8374B7545484545454550023

29、S11955548053G-“m*(會員卡系統(tǒng)遼冊時間20151217201512182015121820151223201512212015122120151224余額02502602Q&160502Q0歷史消費1007000000:扶0000000;譚程設計Wbug調(diào)程設計心u*旦上清輸人卡號R1艸師死青輸人并值金埶身偽證耳注刖吋可5Utl23bll?5bb48Ub3bUKHS年12月24寸殺額場史哨費掛失2HH)UU雯取消*10.測試消費操作。F叭諜荀爲一2吐ugl卑惶設計ae寸土itii5_1瓦,1JS-詢一作査上操費費失費囚擇卡號lmuuub商昂啟二飯2BW汪冊時間踰飾年:1乙目叢日

30、糸額歷史涓費掛失lMkHduu11.測試掛失。14用理1毎E稚nn理1.1揮互祭區(qū)選-m-用便宙S匸卞裁回擇5-1及IJM-T-詢一作杳上換卞號,n亠.rI,-7III身份證號F使用)k扌4作I:KKNKHKNWHWNWHFNJCKJOtKKXKKSKXjCKjCX、吐冊時間并額萬史湄費扌三失環(huán)返選13.乩詩12.測試消費查詢。4冃鼠B-#+夫匸霉費查詢乩遺可二一議贋隹擇操作(1-5)幘輸入六號10B0O06?F壬使用菜卑你恪數(shù)量購買E寸間1SQ22015-ff120240|JOHCXXXXXXHXXXXXXKJXJOJXKJOCX(員_t漿三衣XXXXXXXXXXXXXXKKXXKXXXKX

31、XXXXXH13.測試非最高管理員進入管理員權(quán)限。14最高管理員進入管理系統(tǒng)。五、對所設計的軟件進行自我評價這個軟件所運用了這學期所學的面向?qū)ο缶帉懢?,基本把我會的都運用上去了,剛開始學的時候,覺得1200行代碼好難寫,怎么才能寫這么多哦,但是靜下心來,慢慢的,按照一個菜單一個菜單寫,寫完就有1200行了。我覺得自己的編程能力得到了很大的提高。特別是文件操作這方面,一開始有很多的錯誤,慢慢一點一點調(diào)試,終于要文件操作完成了。六總結(jié)(1)調(diào)試過程中遇到的主要問題編譯語法錯誤及修改1在文件操作的時候,準備用freopen,但是發(fā)現(xiàn)是數(shù)據(jù)流控制,無法再次用窗口輸入,后面用fread模塊化讀取,然而我

32、類里面有2個鏈表指針,無法全部儲存。后面又用fopen+fprintf來做才成功。在文件存儲的時候又因為多儲存一個回車符,導致讀取的時候后面會多一項全控的2對設計實現(xiàn)的回顧討論和分析(1)經(jīng)驗和體會通過該設計,我熟練掌握了如何定義一個類,如何給它賦值,并且在賦值后如何修改。熟練掌握了函數(shù)之間的相互調(diào)用以及文件操作等。還有鏈表類的一些操作。更重要的是熟悉了如何去設計一個簡單的系統(tǒng)。作為一個系統(tǒng),不但要有算法,而且要有人機交互的界面,增強友好性。七附錄:帶注釋的源程序class.htypedefstruct/時間結(jié)構(gòu)體intyear;intmouth;intday;timer;typedefstr

33、uctLNode/消費記錄單鏈表timertl;時間charthings40;商品名intmoney;/價格intnum;/數(shù)量structLNode*next;下個節(jié)點buy;classcard/會員卡類private:charname17;名字charcardID9;卡號timert;/注冊時間charID19;身份證號intbalance;/余額inttotal;/歷史消費總額buy*q;/消費記錄intn;/消費記錄條數(shù)intg;是否掛失card*nextp;public:card();card(char*p1,char*p2,inty,intm,intd,char*p3,intf,i

34、ntx);card(card&p);voidcardLink(char*p1,char*p2,inty,intm,intd,char*p3,intf,intx);/頭插法voidcardDelete(char*p);刪除法voidfileRead();文件讀取voidfileWrite();/文件保存voidshow();顯示voidshowone(card*p);顯示一項voidshowLost();顯示掛失voidadd();添加voidchange。;/修改voidseekName();姓名查找voidseekCardID();卡號查找voidseekID();/身份證查找voidsee

35、kName2();姓名模糊查找voidreturnCard();退卡函數(shù)voidinsertSort();/插入排序voidchoseSort();選擇排序voidexchangeSort();/交換排序voidinsertSortTotal();/插入排序消費總額voidchoseSortTotal();/選擇排序消費總額voidexchangeSortTotal();交換排序消費總額voidcardLost();掛失voidcardFind();解掛失voidcardNew();補卜辦voidcardRecharge();續(xù)費voidpurchase。;/消費函數(shù)voidshowBuy()

36、;顯示消費voidcardchange();補卜辦會員卡card();typedefstructintid;/管理員編號charusename10;管理員名charpassword16;管理員密碼manager;typedefstructmanagera10;intlength;managerList;管理員鏈表voidmanagerRead(managerList&L);/管理員文件讀取voidmanagerWrite(managerList&L);/管理員文件保存intmanagerIn(managerList&L);/管理員登陸voidmanagerAdd(managerList&L);

37、/管理員添力口voidmanagerShow(managerList&L);/管理員顯示voidmanagerDelete(managerList&L);/管理員刪除voidmanagerHalfSeek(managerList&L);/管理員二分查找class.cpp#include#include#include#includeclass.h#includewindows.husingnamespacestd;card:card()無參數(shù)構(gòu)造函數(shù)strcpy(name,null);strcpy(cardID,null);t.year=t.mouth=t.day=0;strcpy(ID,nu

38、ll);balance=0;total=0;q=NULL;nextp=NULL;n=0;g=0;card:card(char*pl,char*p2,inty,intm,intd,char*p3,intf,intx)/有參數(shù)構(gòu)造函數(shù)strcpy(name,pl);strcpy(cardID,p2);t.year=y;t.mouth=m;t.day=d;strcpy(ID,p3);balance=f;total=0;q=NULL;nextp=NULL;n=x;g=0;card:card(card&p)復制構(gòu)造函數(shù)strcpy(name,);strcpy(cardID,p.cardID)

39、;t.day=p.t.day;t.mouth=p.t.mouth;t.year=p.t.year;strcpy(ID,p.ID);balance=p.balance;total=p.total;q=p.q;nextp=p.nextp;n=p.n;g=p.g;voidcard:cardLink(char*pl,char*p2,inty,intm,intd,char*p3,intf,intx)/尾插法添加函數(shù)card*cl=newcard(pl,p2,y,m,d,p3,f,n);card*ql;ql=this;while(ql-nextp!=NULL)ql=ql-nextp;ql-nextp=cl

40、;voidcard:cardDelete(char*p)刪除函數(shù)card*a,*b;a=b=nextp;if(!strcmp(p,b-cardID)nextp=b-nextp;elsefor(;)a=b;b=b-nextp;if(!strcmp(p,b-cardID)a-nextp=b-nextp;break;voidcard:fileRead()讀取文件函數(shù)FILE*fp;if(fp=fopen(data.txt,r)puts(打開文件成功”);elseputs(打開文件成敗”);card*p;dop=newcard;p-nextp=nextp;nextp=p;fscanf(fp,%s,&p

41、-name);fscanf(fp,%s,&p-cardID);fscanf(fp,%d,&p-t.year);fscanf(fp,%d,&p-t.mouth);fscanf(fp,%d,&p-t.day);fscanf(fp,%s,&p-ID);fscanf(fp,%d,&p-balance);fscanf(fp,%d,&p-g);fscanf(fp,%d,&p-total);fgetc(fp);fscanf(fp,%d,&p-n);p-q=newbuy;p-q-next=NULL;for(inti=0;p-ni;i+)buy*p2;p2=newbuy;p2-next=p-q-next;p-q

42、-next=p2;fscanf(fp,%d,&p2-t1.year);fscanf(fp,%d,&p2-t1.mouth);fscanf(fp,%d,&p2-t1.day);fscanf(fp,%s,&p2-things);fscanf(fp,%d,&p2-money);fscanf(fp,%d,&p2-num);while(fgetc(fp)!=EOF);fclose(fp);coutvv讀取文件成功vvendl;voidcard:fileWrite()/文件保存函數(shù)FILE*fp;if(fp=fopen(data.txt,w)puts(打開文件成功”);elseputs(”打開文件成敗”)

43、;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(p-nextp=NULL)fprintf(fp,%s,p-name);fprintf(fp,%s,p-cardID);fprintf(fp,%d,p-t.year);fprintf(fp,%d,p-t.mouth);fprintf(fp,%d,p-t.day);fprintf(fp,%s,p-ID);fprintf(fp,%d,p-balance);fprintf(fp,%d,p-g);fprintf(fp,%dn,p-total);if(p-n0)fprintf(fp,%dn,p-n);elsefprintf(

44、fp,%d,p-n);if(p-n0)buy*q1;for(q1=p-q-next;q1!=NULL;q1=q1-next)fprintf(fp,%d,q1-t1.year);fprintf(fp,%d,q1-t1.mouth);fprintf(fp,%d,q1-t1.day);fprintf(fp,%s,q1-things);fprintf(fp,%d,q1-money);if(q1-next=NULL)fprintf(fp,%d,q1-num);elsefprintf(fp,%dn,q1-num);elsefprintf(fp,%s,p-name);fprintf(fp,%s,p-card

45、ID);fprintf(fp,%d,p-t.year);fprintf(fp,%d,p-t.mouth);fprintf(fp,%d,p-t.day);fprintf(fp,%s,p-ID);fprintf(fp,%d,p-balance);fprintf(fp,%d,p-g);fprintf(fp,%dn,p-total);fprintf(fp,%dn,p-n);if(p-n0)buy*q1;for(q1=p-q-next;q1!=NULL;q1=q1-next)fprintf(fp,%d,q1-t1.year);fprintf(fp,%d,q1-t1.mouth);fprintf(fp,%

46、d,q1-t1.day);fprintf(fp,%s,q1-things);fprintf(fp,%d,q1-money);fprintf(fp,%dn,q1-num);fclose(fp);coutvv文件儲存成功vvendl;voidcard:show()會員卡全部顯示函數(shù)coutvv卡號姓名身份證號注冊時間余額歷史消費掛失vvendl;card*p;for(p=nextp;p!=NULL;p=p-nextp)coutvvvvp-cardIDvvvvsetw(6)vvp-namevvvvp-IDvvvvp-t.yearvv年vvp-t.mouthvv月vvp-t.dayvv日vvsetw(

47、3)vvp-balancevvvvsetw(6)vvp-totalvvvvp-gvvendl;voidcard:showone(card*p)會員卡單條顯示函數(shù)coutvv卡號姓名身份證號注冊時間余額歷史消費掛失vvendl;coutvvvvp-cardIDvvvvsetw(6)vvp-namevvvvp-IDvvvvp-t.yearvv年vvp-t.mouthvv月vvp-t.dayvv日vvsetw(3)vvp-balancevvvvsetw(6)vvp-totalvvvvp-gvvendl;voidcard:showLost()coutnextp)if(p-g=1)coutvvvvp-c

48、ardIDvvvvsetw(6)vvp-namevvvvp-IDvvvvp-t.yearvv年vvp-t.mouthvv月vvp-t.dayvv日vvsetw(3)vvp-balancevvvvsetw(6)vvp-totalvvvvp-gvvendl;voidcard:add()添加函數(shù)charnamel17;名字charcardID19;卡號charID119;身份證號intbalance】;/余額intn;/判斷數(shù)for(;)intx=0;coutvv請輸入vvendl;coutvv姓名卡號身份證號首充金額vvendl;cinname1cardID1ID1balance1;card*p;

49、for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(cardID1,p-cardID)coutvv添加失敗,卡號重復vvendl;x+;if(!strcmp(ID1,p-ID)coutvv添加失敗,身份證號重復vvendl;x+;if(x=0)card*q1;q1=newcard;q1-nextp=nextp;nextp=q1;strcpy(q1-name,name1);strcpy(q1-cardID,cardID1);strcpy(q1-ID,ID1);q1-balance=balance1;SYSTEMTIMEm_time;GetLocalTime(&m_t

50、ime);q1-t.year=m_time.wYear;q1-t.mouth=m_time.wMonth;q1-t.day=m_time.wDay;s3:coutvv是否繼續(xù)添加:1.繼續(xù),2.返回。”vvendl;cinn;if(n=2)break;elseif(n!=1)coutvv選擇錯誤,請重新選擇vvendl;gotos3;voidcard:change()修改函數(shù)chara9;charb19;intm;coutvv請輸入卡號vvendl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(

51、p=NULL)coutvv沒有查找到vvendl;return;showone(p);s5:coutvv需要改哪一項?vvendl;coutvv1.卡號2.姓名3.身份證號vvendl;cinm;switch(m)case1:coutvv請輸入修改的卡號vvendl;cinb;strcpy(p-cardID,b);break;case2:coutvv請輸入修改的姓名vvendl;cinb;strcpy(p-name,b);break;case3:coutvv請輸入修改的身份證號vvendl;cinb;strcpy(p-ID,b);break;default:coutvv請輸入1-3vvendl

52、;gotos5;voidcard:seekCardID()查詢卡號函數(shù)chara9;coutvv請輸入卡號vvendl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(p=NULL)coutvv沒有查找到vvendl;return;showone(p);voidcard:seekName()/精確姓名查詢chara17;coutvv請輸入姓名vvendl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-name)break;if(p

53、=NULL)coutvv沒有查找到vvendl;return;showone(p);voidcard:seekName2()/模糊姓名查詢chara17;coutvv請輸入模糊姓名vvendl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(strstr(p-name,a)break;if(p=NULL)coutvv沒有查找到vvendl;return;showone(p);voidcard:seekID()身份證查詢chara19;coutvv請輸入身份證號vvendl;cina;card*p;for(p=nextp;p!=NULL;p=p-next

54、p)if(!strcmp(a,p-ID)break;if(p=NULL)coutvv沒有查找到vvendl;return;showone(p);voidcard:returnCard()退卡函數(shù)chara9;intm;s6:coutvv請輸入卡號vvendl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(p=NULL)coutvv沒有查找到,請重新輸入vvendl;gotos6;showone(p);s7:coutvv確認刪除?1.確認,2取消。vvendl;cinm;if(m=1)cardDe

55、lete(a);elseif(m=2)coutvv已成功取消vvendl;return;elsecoutvv確認錯誤,請重新輸入vvendl;gotos7;voidcard:insertSort()/插入排序card*p1;card*p2;card*p3;card*p4;if(this-nextp!=NULL&this-nextp-nextp!=NULL)p1=this;p2=this-nextp;p3=p2-nextp;p2-nextp=NULL;while(p3!=NULL)p4=p3-nextp;while(p2!=NULL&strcmp(p3-cardID,p2-cardID)0)p1

56、=p2;p2=p2-nextp;p1-nextp=p3;p3-nextp=p2;p1=this;p2=this-nextp;p3=p4;elsereturn;voidcard:insertSortTotal()/插入排序消費總額card*p1;card*p2;card*p3;card*p4;if(this-nextp!=NULL&this-nextp-nextp!=NULL)p1=this;p2=this-nextp;p3=p2-nextp;p2-nextp=NULL;while(p3!=NULL)p4=p3-nextp;while(p2!=NULL&p3-totaltotal)p1=p2;p

57、2=p2-nextp;p1-nextp=p3;p3-nextp=p2;p1=this;p2=this-nextp;p3=p4;elsereturn;voidcard:cardLost()掛失函數(shù)chara9;輸入卡號intm;判斷數(shù)s6:coutvv請輸入卡號vvendl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(p=NULL)coutvv沒有查找到,請重新輸入vvendl;gotos6;showone(p);s7:coutvv確認掛失?1.確認,2取消。vvendl;cinm;if(m=1

58、)p-g=1;coutvv掛失成功vvendl;elseif(m=2)coutvv已取消vvendl;return;elsecoutvv確認錯誤,請重新輸入vvendl;gotos7;voidcard:cardFind()解掛失函數(shù)chara9;輸入卡號intm;判讀數(shù)s6:coutvv請輸入卡號vvendl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(p=NULL)coutvv沒有查找到,請重新輸入vvendl;gotos6;showone(p);s7:coutvv確認解掛失?1.確認,2取

59、消。vvendl;cinm;if(m=1)p-g=0;coutvv解掛失成功vvendl;elseif(m=2)coutvv已取消vvendl;return;elsecoutvv確認錯誤,請重新輸入vvendl;gotos7;voidcard:cardRecharge()續(xù)費函數(shù)chara9;輸入卡號intm;判斷數(shù)intmoney;/續(xù)費金額s6:coutvv請輸入卡號vvendl;cina;card*p;for(p=nextp;p!=NULL;p=p-nextp)if(!strcmp(a,p-cardID)break;if(p=NULL)coutvv沒有查找到,請重新輸入vvendl;go

60、tos6;showone(p);coutvv請輸入充值金額vvendl;cinmoney;s7:coutvv確認充值?1.確認,2取消。vvendl;cinm;if(m=1)p-balance+=money;coutvv充值成功vvendl;elseif(m=2)coutvv已取消vvendl;return;elsecoutvv確認錯誤,請重新輸入vvendl;gotos7;voidcard:purchase()購買函數(shù)chara9;charthings40;商品名intmoney;/價格intnum;/數(shù)量s6:coutvv請輸入卡號vvendl;cina;card*p;for(p=next

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論