C++課程設(shè)計(jì)報(bào)告_第1頁(yè)
C++課程設(shè)計(jì)報(bào)告_第2頁(yè)
C++課程設(shè)計(jì)報(bào)告_第3頁(yè)
C++課程設(shè)計(jì)報(bào)告_第4頁(yè)
C++課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C++課程設(shè)計(jì)報(bào)告課題:水費(fèi)管理系統(tǒng)專業(yè)班級(jí):計(jì)算機(jī)科學(xué)與技術(shù)10101班學(xué)號(hào):201017010143姓名:李瑋指導(dǎo)教師:屠添翼評(píng)閱意見(jiàn):評(píng)閱意見(jiàn):評(píng)定成績(jī):指導(dǎo)老師簽名:年月日目錄1課程設(shè)計(jì)的目的和意義通過(guò)對(duì)計(jì)算機(jī)語(yǔ)言過(guò)一年的學(xué)習(xí),我們已初步掌握C語(yǔ)言和C++的基本內(nèi)容,而這次課程設(shè)計(jì)主要是對(duì)我們?cè)谶@方面的一次考察,讓學(xué)生能夠熟練的運(yùn)用C++進(jìn)行面向?qū)ο蟮木幊?,建立?duì)象模型,分功能模塊,使程序更有層次性,更清晰,讓學(xué)生全面掌握面向?qū)ο缶幊碳夹g(shù),讓我們?cè)谑煜こ绦虻拈_發(fā)環(huán)境和程序設(shè)計(jì)的流程及提高實(shí)際動(dòng)手能力同時(shí),能夠感受到計(jì)算機(jī)獨(dú)特的魅力,并對(duì)今后的學(xué)習(xí)有更深的了解。此次課程設(shè)計(jì)是我們進(jìn)入大學(xué)的第一次比較專業(yè)系統(tǒng)的實(shí)踐學(xué)習(xí),是以小組為單位進(jìn)行的,在老師的指導(dǎo)下,歷時(shí)兩個(gè)星期,我們有充沛的時(shí)間查閱資料和進(jìn)行知識(shí)梳理.當(dāng)然,程序設(shè)計(jì)對(duì)我們來(lái)說(shuō)還是一項(xiàng)艱巨的任務(wù),但由于是組員合作,困難減少里很多.此次課程設(shè)計(jì)讓我們的團(tuán)隊(duì)協(xié)作精神和自我學(xué)習(xí)能力得到了培養(yǎng),組員間的合作、分工、討論使得這次課程設(shè)計(jì)生動(dòng)有趣,我們?cè)谶@次課程設(shè)計(jì)中學(xué)到了不少東西.我們團(tuán)隊(duì)在這次課程設(shè)計(jì)中是負(fù)責(zé)水費(fèi)管理系統(tǒng)的編譯.由于用水戶數(shù)越來(lái)越多,人工收納水費(fèi)將會(huì)變得越來(lái)越困難,而且它的管理和存儲(chǔ)也會(huì)因?yàn)閿?shù)量的增加而出現(xiàn)紕漏.即為了解決此方面的問(wèn)題,也為了跟隨時(shí)代的腳步,我們必須得向新興科技尋求辦法.而計(jì)算機(jī)作為我們工作和生活中的得力助手,它帶給我們的方便是毋庸言說(shuō)的,如果將它運(yùn)用到水費(fèi)管理上,便可方便的管理水資源用戶和水費(fèi)交納情況,并節(jié)約了人力物力,具有手工管理無(wú)法比擬的優(yōu)越性,如:檢索迅速、查找方便、可靠性高,存儲(chǔ)量高、易于管理,并且易于成本低。這些優(yōu)點(diǎn)能夠極大地提高管理水資源用戶和水費(fèi)交納的效率,使得水費(fèi)管理變得科學(xué)化、先進(jìn)化,正規(guī)化。這也是我們當(dāng)今信息社會(huì)普及的趨勢(shì)所在.我們的水費(fèi)管理系統(tǒng)遵循了方便、簡(jiǎn)單易操作的原則,用戶無(wú)論是在登入繳費(fèi)還是查詢歷史記錄,都可以一目了然。當(dāng)然,我們編輯的水費(fèi)管理包含絕對(duì)重要的信息,并且存儲(chǔ)穩(wěn)定可靠,符合一般的水費(fèi)管理需求.2需求分析§2.1系統(tǒng)目標(biāo):隨著城市人口增多,生活水平的提高,各式各樣的家用電器的普及,使得用水量和用水戶數(shù)越來(lái)越多。繁瑣、低效率的人工管理繳給工作人員帶來(lái)了極大地不方便。比如查詢用戶交費(fèi)記錄時(shí)得從大堆資料里找,這樣花費(fèi)時(shí)間就很長(zhǎng)了。為了減輕工作人員的負(fù)擔(dān),同時(shí)也為了方便用戶對(duì)用水量和交費(fèi)情況的查詢,設(shè)計(jì)一個(gè)應(yīng)用型的水費(fèi)管理系統(tǒng)軟件是很有必要的。§2.2功能要求:我們?cè)O(shè)計(jì)的水費(fèi)管理系統(tǒng)包括三個(gè)主模塊:用戶管理、水費(fèi)管理、查詢統(tǒng)計(jì)。用戶管理主要執(zhí)行用戶的增添、刪除、修改、保存、查看這些功能,在對(duì)用戶的增添時(shí)我們采用用戶名和編號(hào)兩者結(jié)合的方式,保證信息的準(zhǔn)確信和方便用戶的查詢。而水費(fèi)管理則是記錄交水費(fèi)的月份以及本月的用水量和用水的單價(jià)、總費(fèi)用。單價(jià)是可以隨時(shí)變動(dòng)的,總費(fèi)用中包括應(yīng)繳費(fèi)用和實(shí)繳費(fèi)用,這樣便可記錄用戶所欠費(fèi)用和多交費(fèi)用。交費(fèi)記錄主要是用于用戶對(duì)以往交費(fèi)的查詢,用戶可根據(jù)時(shí)間查詢到過(guò)去的繳費(fèi)記錄。這主三個(gè)模塊都有各自相應(yīng)的鏈表,鏈表的運(yùn)用使得對(duì)用戶的管理和存儲(chǔ)起了極大地作用.當(dāng)然這三個(gè)模塊不是獨(dú)立的,水費(fèi)管理和交費(fèi)記錄是為用戶服務(wù)的,他們?cè)诔绦蛏系木幾g必然我們這個(gè)水費(fèi)管理系統(tǒng)基本可滿足一般的水費(fèi)交納需求,具有一定的信息存儲(chǔ)量.如上所述,用戶的名字、編號(hào)、交納費(fèi)用及時(shí)間都可存儲(chǔ),即方便用戶交納費(fèi)用也方便查詢。用戶只需按照計(jì)算機(jī)的提示進(jìn)行操作,便可達(dá)到水費(fèi)交納和查詢的目的.3系統(tǒng)(項(xiàng)目)設(shè)計(jì)一、總體設(shè)計(jì)

(一)分析研究本系統(tǒng)的程序總體設(shè)計(jì)分為用戶管理、水費(fèi)管理、繳費(fèi)記錄這主要三個(gè)功能模塊,用以實(shí)現(xiàn)對(duì)用戶水費(fèi)管理系統(tǒng)的一整套服務(wù)。下面介紹各模塊功能。

3-1它是由用戶管理\水費(fèi)管理\交費(fèi)記錄\系統(tǒng)退出組成。進(jìn)入主菜單后,用戶可以自己根據(jù)需要進(jìn)行操作選擇。

3-1-2.用戶管理用戶管理模塊主要是對(duì)用戶進(jìn)行增添、刪除、修改、保存、查看這些操作,增添是添加用戶的姓名和編號(hào)。

3-1-3.水費(fèi)管理水費(fèi)管理理模塊主要是用于用戶交費(fèi),用戶需輸入自己的編號(hào)、交費(fèi)時(shí)間、用水量、實(shí)際交費(fèi),系統(tǒng)可自動(dòng)算出你實(shí)際交費(fèi),通過(guò)你的實(shí)際交費(fèi)和實(shí)際交費(fèi)系統(tǒng)可算出的你的余額實(shí)際交費(fèi)。3-1-4.查詢統(tǒng)計(jì)交費(fèi)記錄模塊是用方便戶可以查詢以往所交水費(fèi)的歷史,用戶可以根據(jù)時(shí)間或編號(hào)查詢到當(dāng)月的用水量和所交費(fèi)用,甚至可以查詢到總用水量和所有所交的水費(fèi)。(二)程序的框架圖,如圖1所示:水費(fèi)管理系統(tǒng)水費(fèi)管理系統(tǒng) 查詢統(tǒng)計(jì)水費(fèi)管理功能用戶管理功能查詢統(tǒng)計(jì)水費(fèi)管理功能用戶管理功能 按時(shí)間查用戶交費(fèi)全部統(tǒng)計(jì)刪除編號(hào)按編號(hào)查申請(qǐng)編號(hào)個(gè)人察看用戶刪除察看用戶保存用戶修改用戶刪除用戶添按時(shí)間查用戶交費(fèi)全部統(tǒng)計(jì)刪除編號(hào)按編號(hào)查申請(qǐng)編號(hào)個(gè)人察看用戶刪除察看用戶保存用戶修改用戶刪除用戶添加用戶 圖1 (三)、程序主流程圖,如圖2所示:00321開始輸入0-3用戶管理水費(fèi)管理查詢統(tǒng)計(jì)退出圖2 4系統(tǒng)實(shí)現(xiàn)登入用戶管理模塊界面如圖1所示。圖3進(jìn)入界面后有提示1-5鍵分別對(duì)用戶的增加,刪除,修改,保存以及察看;0鍵返回主菜單,以下為用戶管理模塊中各個(gè)子模塊的關(guān)鍵代碼和解釋。1添加用戶模板塊關(guān)鍵部分代碼:if(NULL==p)//添加一個(gè)用戶的情況else {p=s; pHead=p; p->input(); p->next=NULL;cout<<"*恭喜您!用戶添加成功.*"<<endl;cout<<"-----------------------"<<endl; } { while(p->next!=NULL)//當(dāng)指針指向下一個(gè)結(jié)點(diǎn)非空時(shí) { p=p->next; } k=p; p->next=s; p=p->next; p->input(); p->next=NULL; m=pHead; while((m->next)!=NULL)//打算用來(lái)實(shí)現(xiàn)不能重復(fù)添加用戶的 { if(!strcmp((s->number),(m->number))&&(m!=s)) { cout<<"!對(duì)不起,此用戶已經(jīng)存在不能再添加!"<<endl; cout<<"pleasepressEnter---返回主菜單"<<endl; deletes; k->next=NULL; return; } m=m->next; //m指針指向下一個(gè)結(jié)點(diǎn) } cout<<"*恭喜您!用戶添加成功.*"<<endl; cout<<"-----------------------"<<endl; }此模塊是調(diào)用添加用戶函數(shù),開辟了存儲(chǔ)信息的鏈表2刪除用戶模塊的部分代碼(此處選擇編號(hào)刪除用戶):voiduserslist::an_bh()//刪除用戶函數(shù)-------------2{user*p,*s;//定義用戶指針p,sintji_shu=1;//計(jì)數(shù)為1時(shí)charch[4];charnumber1[22];do{ p=pHead; ji_shu=1; cout<<'\n'<<endl; cout<<"請(qǐng)您輸入要?jiǎng)h除的用戶的編號(hào):"; cin.getline(number1,22,'\n'); cout<<'\n'<<endl; if(NULL==p) { cout<<"***對(duì)不起!用戶已經(jīng)全部刪除了!不能進(jìn)行刪除工作!***"<<endl; cout<<"pleasepressEnter---返回主菜單"; return; } while(strcmp(number1,p->number)) { s=p; ji_shu++;//計(jì)數(shù)自動(dòng)加1 p=p->next; if(p==NULL) { charc; ji_shu=0; cout<<"***對(duì)不起!該用戶不存在!不能進(jìn)行刪除工作!***"<<endl; cout<<"_______________________________________________"<<endl; cout<<"Y:繼續(xù)按編號(hào)名刪除用戶."<<"N:返回主菜單."<<endl; cout<<"你輸入的是:>"; c=getchar(); getchar(); cout<<endl; if('N'==c) { cout<<"pleasepressEnter---返回主菜單"<<endl; return; } if('Y'==c) { break; } } }if(1==ji_shu){ if(pHead->next!=NULL) { pHead=p->next; free(p); cout<<"該用戶被您成功刪除!"; } else { free(p); pHead=NULL; cout<<"該用戶被您成功刪除!"; } }elseif(user::count==ji_shu){ free(p); //釋放用戶所占的空間 s->next=NULL; cout<<"該用戶被您成功刪除!"; }if(ji_shu>=2&&ji_shu<=(user::count-1)){ s->next=p->next; free(p); cout<<"該用戶被您成功刪除!";} cout<<'\n'<<endl; cout<<"*****************************************"<<endl; cout<<"-Yes:繼續(xù)按編號(hào)刪除用戶-No:返回主菜單"<<endl; cout<<"--您輸入的是:)"; cin.getline(ch,'\n');}while(!strcmp("Yes",ch));return;}刪除用戶模塊中運(yùn)行時(shí)會(huì)獲得鏈表的頭指針,之后輸入要?jiǎng)h除的用戶的編號(hào)或名稱,然后在鏈表中查找到相匹配的用戶,然后如果用戶在表頭則頭指針后移,否則前一個(gè)鏈表的next指針指向該與用戶的下一個(gè)鏈表。如果沒(méi)有找到則輸出提示沒(méi)有此人。最后調(diào)用Feer函數(shù)釋放此空間。3修改用戶模塊的關(guān)鍵代碼:if(c=='1') { cout<<"開始的姓名為:"<<"---"<<name1<<"---"<<"改為:"; cin.getline(p->name,21,'\n'); cout<<endl; p->putout(); cout<<"--恭喜!修改成功!--"<<endl; } if(c=='2') { cout<<"開始的編號(hào)為:"<<"---"<<p->number<<"---"<<"改為:"; cin.getline(p->number,21,'\n'); cout<<endl; p->putout(); cout<<"--恭喜!修改成功!--"<<endl; } if(c=='3') { cout<<"開始的姓名為:"<<"---"<<name1<<"---"<<"改為:"; cin.getline(p->name,21,'\n'); cout<<endl; cout<<"開始的編號(hào)為:"<<"---"<<p->number<<"---"<<"改為:"; cin.getline(p->number,21,'\n'); cout<<endl; p->putout(); cout<<"--恭喜!修改成功!--"<<endl; } cout<<endl; cout<<"----------------------------------------"<<endl; cout<<"Y:繼續(xù)修改用戶\t\tN:返回主菜單"<<endl; cout<<"您輸入的是:)"; c=getchar(); getchar();}while(c=='Y');cout<<"pleasepressEnter---返回主菜單"<<endl;return;}4保存用戶模塊的關(guān)鍵代碼:voiduserslist::saveusers(charfileName[]){ ofstreamoFile(fileName,ios::out|ios::binary);if(!oFile){ cout<<endl;cout<<"對(duì)不起,文件打開失敗!"<<endl;return;}user*p; p=pHead;if(NULL==p) { /pHead=NULL; cout<<endl; cout<<"對(duì)不起!不存在用戶,不能保存!"<<endl; cout<<"pleasepressEnter---返回主菜單"<<endl; return; } while(p!=NULL) { oFile.write((char*)p,sizeof(user)); p=p->next; } cout<<"============================="<<endl; cout<<"恭喜你!用戶資料保存成功!"<<endl;cout<<"pleasepressEnter---返回主菜單"<<endl; oFile.close();return;}5查看用戶模塊的部分代碼:voiduserslist::findname(charnum[]){ user*p=pHead;if(p==NULL) { cout<<"*無(wú)*"; return; }else{while(strcmp(num,p->number)) { p=p->next; if(p==NLUL) { cout<<"*無(wú)*"; return; } }p->rename();}return;}當(dāng)?shù)谝粋€(gè)結(jié)點(diǎn)為NLUL,系統(tǒng)會(huì)顯示‘無(wú)’此用戶,當(dāng)?shù)谝粋€(gè)結(jié)點(diǎn)不為NLUL時(shí),指針會(huì)指向下一個(gè)結(jié)點(diǎn),輸出相應(yīng)的用戶信息,直到最后一個(gè)結(jié)點(diǎn)為空時(shí)。5系統(tǒng)調(diào)試5-1.進(jìn)入信息管理窗口,如圖4圖45-2添加用戶窗口,結(jié)果如圖5所示:圖55-3刪除用戶窗口,此圖是按用戶姓名刪除(還可按用戶編號(hào)刪除),如圖6所示:圖65-4修改用戶窗口,結(jié)果如圖7所示:圖75-4保存用戶窗口,結(jié)果如8所示:圖85-5察看用戶窗口,結(jié)果如圖9所示圖95-6從子菜單返回到主菜單窗口,結(jié)果如圖10所示圖10小結(jié)通過(guò)這兩周的學(xué)習(xí),讓我對(duì)計(jì)算機(jī)編程整體又有了一步的了解。想到剛接觸這門課程時(shí)的茫然,我想我現(xiàn)在已向它跨近了一大步。但我仍然覺(jué)得自己在這方面的水平程度不高,這次課程設(shè)計(jì)便讓我認(rèn)識(shí)到自己在這方面還存在這許多不足,比如一些計(jì)算機(jī)語(yǔ)言知識(shí)掌握的不牢固,以致在編程速度慢、功能重復(fù),而且錯(cuò)誤也很多。這些遇到的的問(wèn)題雖然使我們很頭痛,但我和我的組員都以一顆積極的心態(tài)去面對(duì),通過(guò)查看書籍、詢問(wèn)老師,上網(wǎng)查詢,使問(wèn)題最后都得到了解決。這使得我們對(duì)編程的興趣又增加了一點(diǎn)。同時(shí)在這次課程設(shè)計(jì)中,我意識(shí)到團(tuán)隊(duì)的合作對(duì)完成一個(gè)系統(tǒng)的編程是多么的重要,分工合作不僅提高了工作的效率,而且成員間的彼此交流讓我們無(wú)意中學(xué)到很多,擴(kuò)散了我們的思維,課程設(shè)計(jì)樂(lè)趣性也得到了提高。但要想做好一個(gè)系統(tǒng)編程,對(duì)我來(lái)說(shuō)確實(shí)一件艱難的事。畢竟我的經(jīng)驗(yàn)還很少,而且專業(yè)方面的知識(shí)沒(méi)學(xué)到精深,在很多方面存在疑問(wèn),這無(wú)論如何都會(huì)打擊到我的信心,還好組員合作沒(méi)有讓一個(gè)問(wèn)題呆在死角,雖然要一些時(shí)間才能解決,但問(wèn)題解決后的奇愉快心情讓我們很享受這個(gè)問(wèn)題。在今后的學(xué)習(xí)中,不僅要做到經(jīng)常鞏固復(fù)習(xí)以前學(xué)過(guò)的專業(yè)知識(shí),更要做到積極拓寬自己的知識(shí)面,這樣才能更有效地加強(qiáng)自己的編程運(yùn)用能力,學(xué)好計(jì)算機(jī)科學(xué)與技術(shù)這門課程。以后我們還有很多機(jī)會(huì)去做系統(tǒng)管理的設(shè)計(jì),我認(rèn)為我們的經(jīng)驗(yàn)會(huì)越來(lái)越豐富,課程設(shè)計(jì)也會(huì)越做越完美。參考文獻(xiàn)[1]譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)(第2版).北京:清華大學(xué)出版社2008.11[2]陳維興,林小茶.C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程(第3版).北京:清華大學(xué)出版社.2009.6附錄源程序Water.cpp#include"iostream"#include"userslist.h"#include"water_paylist.h"#include"Find_list.h"usingnamespacestd;userslistusers;water_paylistpayers;Find_listfinders;voidMainmenu(){cout<<"**********主菜單*********"<<endl;cout<<"****1.用戶管理****"<<endl;cout<<"****2.水費(fèi)管理****"<<endl; cout<<"****3.查詢統(tǒng)計(jì)****"<<endl;cout<<"****0.安全退出****"<<endl;cout<<"*************************"<<endl; cout<<"\002(請(qǐng)您輸入0-3之間的數(shù)字進(jìn)行操作)"<<endl;cout<<"\002您的選擇是:->";for(;;){charstr[2];gets(str);intcn;cn=atoi(str);if(cn<=3&&cn>=0){ switch(cn){case1:users.usersmenu();break;case2:payers.paymenu();break;case3:finders.findmenu();break;case0:users.saveusers1("user.dat"); payers.savepayers("water_pay.dat"); finders.savenumber("find.dat"); exit(0);}}else{ cout<<'\n'; cout<<"@@@對(duì)不起,輸入錯(cuò)誤!請(qǐng)重新輸入!@@@"<<endl;cout<<"\002您選擇的是:)";}}return;}intmain(){users.loadusers("user.dat");payers.loadpayers("water_pay.dat");finders.loadnumber("find.dat");cout<<"========================================================="<<endl;cout<<"歡迎來(lái)到水費(fèi)管理系統(tǒng)!"<<endl;cout<<"========================================================="<<endl;Mainmenu();return0;}user.cpp#include"user.h"#include"iostream"usingnamespacestd;intuser::count=0;user::user(){count++;}user::~user(){count--;}voiduser::input()//單個(gè)用戶信息輸入函數(shù){cout<<"\002請(qǐng)輸入用戶姓名:";cin.getline(name,22,'\n');cout<<'\n';cout<<"\002請(qǐng)輸入用戶編號(hào):";cin.getline(number,22,'\n');cout<<endl;pay=payers.findpaybynumber(number);return;}voiduser::putout(){cout<<name<<"\t\t\t"<<number<<endl;cout<<"-----------------------------------"<<endl;return;}voiduser::rename(){cout<<name;return;}userslist.cpp#include"iostream"#include"userslist.h"#include"fstream"usingnamespacestd;////////////////////////////////////////////////////////////////////////Construction/Destruction//////////////////////////////////////////////////////////////////////userslist::userslist(){pHead=NULL;}userslist::~userslist(){}voiduserslist::usersmenu(){cout<<"\n"<<endl;cout<<"@@@@@用戶管理@@@@@"<<endl;cout<<"1.添加用戶"<<endl;cout<<"2.刪除用戶"<<endl;cout<<"3.修改用戶"<<endl;cout<<"4.保存用戶"<<endl;cout<<"5.察看用戶"<<endl;cout<<"0.回主菜單"<<endl;cout<<"\002請(qǐng)您輸入0-5之間的數(shù)字進(jìn)行操作"<<endl;cout<<"\002您的選擇是:->";for(;;){ charstr[2];gets(str);intcn;cn=atoi(str);if(cn<=5&&cn>=0){ switch(cn){case1:cout<<'\n'; cout<<"_____________________"<<endl; cout<<"****添加用戶****"<<endl;addusers();break;//這里的每一個(gè)都跳到主菜單case2:cout<<'\n'; cout<<"_____________________"<<endl; cout<<"****刪除用戶****"<<endl;killusers();break;case3:cout<<'\n'; cout<<"_____________________"<<endl; cout<<"****修改用戶****"<<endl;changeusers();break;case4:cout<<'\n'; cout<<"_____________________"<<endl; cout<<"****保存用戶****"<<endl;saveusers("user.dat");break; case5:cout<<'\n'; cout<<"_____________________"<<endl; cout<<"***察看用戶***"<<endl;displayusers();break; case0:{cout<<"**********主菜單*********"<<endl;cout<<"****1.用戶管理****"<<endl;cout<<"****2.水費(fèi)管理****"<<endl; cout<<"****3.查詢統(tǒng)計(jì)****"<<endl;cout<<"****0.安全退出****"<<endl;cout<<"*************************"<<endl; cout<<"\002(請(qǐng)您輸入0-3之間的數(shù)字進(jìn)行操作)"<<endl; cout<<"\002您的選擇是:->"; return; }}}else{cout<<"輸入錯(cuò)誤!請(qǐng)重新輸入!"<<endl;}}}//////////////////////////////////////////////////////////////////////////////////////////////voiduserslist::addusers()//添加用戶函數(shù)。{//Q:為什么添加用戶的時(shí)候名字和編號(hào)不能超過(guò)9個(gè)字符長(zhǎng)度?//charch[4];intbij=1;do{user*p,*s,*k,*m;s=newuser();if(!s) {cout<<"對(duì)不起,空間分配失敗!自動(dòng)返回主菜單!"<<endl;return; }p=pHead;if(NULL==p) {p=s; pHead=p; p->input(); p->next=NULL;cout<<"*恭喜您!用戶添加成功.*"<<endl;cout<<"-----------------------"<<endl; }else { while(p->next!=NULL) { p=p->next; } k=p; p->next=s; p=p->next; p->input(); p->next=NULL; m=pHead; while((m->next)!=NULL)//打算用來(lái)實(shí)現(xiàn)不能重復(fù)添加用戶的// { if(!strcmp((s->number),(m->number))&&(m!=s)) { cout<<"!對(duì)不起,此用戶已經(jīng)存在不能再添加!"<<endl; cout<<"pleasepressEnter---返回主菜單"<<endl; deletes; k->next=NULL; return; } m=m->next; } cout<<"*恭喜您!用戶添加成功.*"<<endl; cout<<"-----------------------"<<endl; }//while(bij) //{cout<<"*Yes:繼續(xù)添加用戶\t"<<"*No:返回主菜單"<<endl;cout<<"--------------------------------------------";cin.getline(ch,'\n');bij=strcmp("Yes",ch); //}}while(0==bij);cout<<"pleasepressEnter---返回主菜單"<<endl;return;}///////////////////////////////////////////////////////////////////////////////////////////////voiduserslist::killusers()//刪除用戶函數(shù){ user*p;p=pHead;if(NULL==p){cout<<endl;cout<<"對(duì)不起!不存在用戶不能進(jìn)行刪除工作!"<<endl;cout<<"pleasepressEnter---返回主菜單"<<endl;}else{ cout<<'\n'<<"______________________________________"<<endl;cout<<"請(qǐng)輸您入用戶的姓名或編號(hào)來(lái)進(jìn)行刪除工作."<<endl;cout<<'\n'; cout<<"1.按用戶姓名刪除:\t"<<"2.按用戶編號(hào)刪除:"<<endl; cout<<"--選擇的是:)"; charcn; charch[2]; gets(ch);cn=atoi(ch);if(2==cn||cn==1) switch(cn)//如果這里輸入有錯(cuò)誤會(huì)自動(dòng)返回用戶管理菜單。 { case1:an_xm();break; case2:an_bh();break; }else{ cout<<endl;cout<<"對(duì)不起,您的輸入有誤!請(qǐng)重新操作!"<<endl;cout<<"--------------------"<<endl; cout<<"@@@@@用戶管理@@@@@"<<endl;cout<<"1.添加用戶"<<endl;cout<<"2.刪除用戶"<<endl; cout<<"3.修改用戶"<<endl;cout<<"4.保存用戶"<<endl;cout<<"5.察看用戶"<<endl; cout<<"0.回主菜單"<<endl;cout<<"\002請(qǐng)您輸入0-5之間的數(shù)字進(jìn)行操作"<<endl;cout<<"\002您的選擇是:->";}}return;}////////////////////////////////////////////////////////////////////////////////////////////////voiduserslist::an_xm()//刪除用戶函數(shù)------------1{user*p,*s;//為什么不加1,2會(huì)出錯(cuò)? intji_shu=1;charch[4]; charname1[22]; do{ p=pHead; ji_shu=1; cout<<'\n'<<endl; cout<<"請(qǐng)您輸入要?jiǎng)h除的用戶的姓名:"; cin.getline(name1,22,'\n'); cout<<'\n'<<endl; if(NULL==p) { cout<<"***對(duì)不起!用戶已經(jīng)全部刪除了!不能進(jìn)行刪除工作!***"<<endl; cout<<"pleasepressEnter---返回主菜單"; return; } while(strcmp(name1,p->name)) {s=p; ji_shu++; p=p->next; if(p==NULL) { charc;ji_shu=0; cout<<"***對(duì)不起!該用戶不存在!不能進(jìn)行刪除工作!***"<<endl; cout<<"_______________________________________________"<<endl; cout<<"Y:繼續(xù)按照姓名刪除用戶."<<"N:返回主菜單."<<endl; cout<<"你輸入的是:>"; c=getchar(); getchar(); cout<<endl; if('N'==c) { cout<<"pleasepressEnter---返回主菜單"<<endl; return; } if('Y'==c) { break;//這個(gè)地方要注意 } } }if(1==ji_shu){if(pHead->next!=NULL){ pHead=p->next;free(p);cout<<"該用戶被您成功刪除!";}else{free(p);pHead=NULL;cout<<"該用戶被您成功刪除!";}}elseif(user::count==ji_shu){free(p);s->next=NULL;cout<<"該用戶被您成功刪除!";}if(ji_shu>=2&&ji_shu<=(user::count-1)){s->next=p->next;free(p);cout<<"該用戶被您成功刪除!";}cout<<'\n'<<endl;cout<<"*****************************************"<<endl;cout<<"-Yes:繼續(xù)按姓名刪除用戶-No:返回主菜單"<<endl;cout<<"--您輸入的是:)";cin.getline(ch,'\n');}while(!strcmp("Yes",ch));return;}/////////////////////////////////////////////////////////////////////////////////////////////////voiduserslist::an_bh()//刪除用戶函數(shù)-------------2{//此函數(shù)在釋放P的時(shí)候遇到問(wèn)題,不知怎么搞?user*p,*s;intji_shu=1;charch[4];charnumber1[22];do{ p=pHead; ji_shu=1; cout<<'\n'<<endl; cout<<"請(qǐng)您輸入要?jiǎng)h除的用戶的編號(hào):"; cin.getline(number1,22,'\n'); cout<<'\n'<<endl; if(NULL==p) { cout<<"***對(duì)不起!用戶已經(jīng)全部刪除了!不能進(jìn)行刪除工作!***"<<endl; cout<<"pleasepressEnter---返回主菜單"; return; } while(strcmp(number1,p->number)) { s=p; ji_shu++;//計(jì)數(shù) p=p->next; if(p==NULL) { charc; ji_shu=0; cout<<"***對(duì)不起!該用戶不存在!不能進(jìn)行刪除工作!***"<<endl; cout<<"_______________________________________________"<<endl; cout<<"Y:繼續(xù)按編號(hào)名刪除用戶."<<"N:返回主菜單."<<endl; cout<<"你輸入的是:>"; c=getchar(); getchar(); cout<<endl; if('N'==c) { cout<<"pleasepressEnter---返回主菜單"<<endl; return; } if('Y'==c) { break; } } }if(1==ji_shu){ if(pHead->next!=NULL) { pHead=p->next; free(p); cout<<"該用戶被您成功刪除!"; } else { free(p); pHead=NULL; cout<<"該用戶被您成功刪除!"; } }elseif(user::count==ji_shu){ free(p); s->next=NULL; cout<<"該用戶被您成功刪除!"; }if(ji_shu>=2&&ji_shu<=(user::count-1)){ s->next=p->next; free(p); cout<<"該用戶被您成功刪除!";} cout<<'\n'<<endl; cout<<"*****************************************"<<endl; cout<<"-Yes:繼續(xù)按編號(hào)刪除用戶-No:返回主菜單"<<endl; cout<<"--您輸入的是:)"; cin.getline(ch,'\n'); }while(!strcmp("Yes",ch));return;}/////////////////////////////////////////////////////////////////////////////////////////////////voiduserslist::addusers(user*s)//從文件中添加用戶信息{ intbij=1; user*p; if(!s) { cout<<"對(duì)不起,空間分配失敗!自動(dòng)返回主菜單!"<<endl; return; } p=pHead; if(NULL==p) { p=s; pHead=p; p->next=NULL; } else { while(p->next!=NULL) { p=p->next; } p->next=s; p=p->next; p->next=NULL; } return;}/////////////////////////////////////////////////////////////////////////////////////////////voiduserslist::saveusers(charfileName[]){ ofstreamoFile(fileName,ios::out|ios::binary);if(!oFile){cout<<endl;cout<<"對(duì)不起,文件打開失敗!"<<endl;return;} user*p; p=pHead; if(NULL==p) { //pHead=NULL; cout<<endl; cout<<"對(duì)不起!不存在用戶,不能保存!"<<endl; cout<<"pleasepressEnter---返回主菜單"<<endl; return; } while(p!=NULL) { oFile.write((char*)p,sizeof(user)); p=p->next; } cout<<"============================="<<endl; cout<<"恭喜你!用戶資料保存成功!"<<endl;cout<<"pleasepressEnter---返回主菜單"<<endl; oFile.close();return;}//////////////////////////////////////////////////////////////////////////////////////////////voiduserslist::saveusers1(charfileName[]){ ofstreamoFile(fileName,ios::out|ios::binary);if(!oFile){cout<<endl;cout<<"對(duì)不起,文件打開失敗!"<<endl;return;} user*p; p=pHead; while(p!=NULL) { oFile.write((char*)p,sizeof(user)); p=p->next; }cout<<"\n\n\n\n"<<endl; cout<<"==============================="<<endl; cout<<"恭喜你!成功退出系統(tǒng)!謝謝使用!"<<endl;cout<<"==============================="<<endl;oFile.close();return;}///////////////////////////////////////////////////////////////////////////////////////////////voiduserslist::loadusers(charfileName[]){ ifstreamiFile(fileName,ios::in|ios::binary);user*p; if(!iFile) { cout<<endl; cout<<"對(duì)不起,文件打開失敗!"<<endl;cout<<"--------------------"<<endl; exit(0); }if(iFile.peek()==EOF){pHead=NULL;return;} while(iFile.peek()!=EOF) { p=newuser(); iFile.read((char*)p,sizeof(user)); addusers(p); } //cout<<"恭喜您!用戶信息讀取成功!"<<endl; iFile.close();return;}voiduserslist::displayusers(){ user*p; p=pHead;if(NULL==p) {cout<<"對(duì)不起,不存在用戶!不能察看!"<<endl;cout<<"pleasepressEnter---返回主菜單"<<endl; return; }else{cout<<"用戶姓名用戶編號(hào)"<<endl;cout<<"==================================="<<endl;while(p!=NULL) { p->putout(); p=p->next; }cout<<"pleasepressEnter---返回主菜單"<<endl;}return;}///////////////////////////////////////////////////////////////////////////////////////////voiduserslist::changeusers(){charc;user*p;do{ p=pHead; charname1[22]; cout<<"請(qǐng)你輸入要修改用戶的姓名:"; cin.getline(name1,21,'\n'); cout<<endl; while(strcmp(name1,p->name)) { p=p->next; if(NULL==p) { cout<<"對(duì)不起!你要修改的用戶不存在!"<<endl; cout<<"PleasepressEnter---返回主菜單"<<endl; return; } } p->putout(); cout<<"請(qǐng)您選擇下列選項(xiàng):\t1:修改姓名\t2:修改編號(hào)\t3:修改姓名和編號(hào)"<<'\n'<<endl; cout<<"您的選擇是:)"; c=getchar(); getchar(); if(c=='1') { cout<<"開始的姓名為:"<<"---"<<name1<<"---"<<"改為:"; cin.getline(p->name,21,'\n'); cout<<endl; p->putout(); cout<<"--恭喜!修改成功!--"<<endl; } if(c=='2') { cout<<"開始的編號(hào)為:"<<"---"<<p->number<<"---"<<"改為:"; cin.getline(p->number,21,'\n'); cout<<endl; p->putou

溫馨提示

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

評(píng)論

0/150

提交評(píng)論