C++課程設(shè)計(jì)小區(qū)物業(yè)管理系統(tǒng)_第1頁
C++課程設(shè)計(jì)小區(qū)物業(yè)管理系統(tǒng)_第2頁
C++課程設(shè)計(jì)小區(qū)物業(yè)管理系統(tǒng)_第3頁
C++課程設(shè)計(jì)小區(qū)物業(yè)管理系統(tǒng)_第4頁
C++課程設(shè)計(jì)小區(qū)物業(yè)管理系統(tǒng)_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 小區(qū)物小區(qū)物業(yè)業(yè)管理系管理系統(tǒng)統(tǒng) 程序程序設(shè)計(jì)設(shè)計(jì)基基礎(chǔ)課礎(chǔ)課程程設(shè)計(jì)報(bào)設(shè)計(jì)報(bào)告告 專專 業(yè)業(yè): : 電電子信息工程子信息工程 班班 級(jí)級(jí): : 2007 級(jí)級(jí) 1 班班 學(xué)學(xué) 號(hào):號(hào): 2007082020 姓姓 名:名: 張張超超 指指導(dǎo)導(dǎo)教教師師: : 常常 耀耀 輝輝 目目 錄錄 一編程目的:一編程目的:.2 2 二設(shè)計(jì)要求:二設(shè)計(jì)要求:.2 2 三各函數(shù)功能說明:三各函數(shù)功能說明:.2 2 四流程圖:四流程圖:.1313 五總結(jié):五總結(jié):.1414 參考書目:參考書目:.1515 1 1程序題目要求:程序題目要求: .課程設(shè)計(jì)目的課程設(shè)計(jì)目的: : 用 c+語言對(duì)小區(qū)

2、物業(yè)管理系統(tǒng)進(jìn)行程序編程,并且通過以前的學(xué)習(xí)及查 看相關(guān)資料,按著題目要求編寫程序,進(jìn)一步加強(qiáng)對(duì)編程的訓(xùn)練,使得自己掌 握知識(shí)要點(diǎn),將其書本知識(shí)轉(zhuǎn)化為實(shí)際應(yīng)用當(dāng)中。 1.21.2課程設(shè)計(jì)題目:課程設(shè)計(jì)題目:小區(qū)物業(yè)管理系統(tǒng) 1.31.3課程設(shè)計(jì)題目描述和要求:課程設(shè)計(jì)題目描述和要求: 1) 、有工作界面(菜單或按鈕方式) 2) 、以住戶為主,錄入房號(hào),戶主名,用水量(單位方),用電量(單位度),物業(yè)費(fèi) (交否),入主日期等字段;所錄入的數(shù)據(jù)(至少包括 6 條)存入一個(gè)文本文件中;能 根據(jù)情況調(diào)出數(shù)據(jù). 3) 、具有按房號(hào)排序功能. 4) 、能有插入功能,并按房號(hào)排序. 5) 、具有刪除記錄功能

3、. 6) 、當(dāng)某一住戶買水或買電后,其相應(yīng)用水量,用電量字段應(yīng)增加;交物野費(fèi)后應(yīng) 改變其相應(yīng)字段的值. 7) 、具有查詢功能 (1)按房號(hào), 戶主名進(jìn)行用水量和用電量的查詢. (2)按物業(yè)費(fèi)交否查詢住戶情況,當(dāng)未交的,可報(bào)警提示. 8) 、統(tǒng)計(jì)出每棟樓房的入主情況(即空房多少). 9) 、能在屏幕上輸出所有客戶的信息. 2 2課程設(shè)計(jì)報(bào)告內(nèi)容:課程設(shè)計(jì)報(bào)告內(nèi)容: 2.1:2.1:程序的簡(jiǎn)單介紹程序的簡(jiǎn)單介紹 整個(gè)程序采用類與鏈表相結(jié)合的編程方法一共完成了 8 個(gè)功能,全體用了 一個(gè)類,一個(gè)友元成員函數(shù)和一個(gè)主函數(shù)。在每次運(yùn)行完成時(shí),要退出黑屏才 能保存所輸入的數(shù)據(jù)。再根據(jù)輸入的數(shù)據(jù),來確定功能

4、的執(zhí)行。 在類 class zhuhu 中設(shè)有 11 個(gè)成員函數(shù)(例如:void input_message(), void gongneng()等等,這幾個(gè)函數(shù)主要是輸入輸出和執(zhí)行功能的用途)和一個(gè) 友元函數(shù)(fringd void duidiao_base(zhuhu 對(duì)各函數(shù)施行執(zhí)行功能) ,還建立了文件 (ifstream open_count_file(“count.txt”,ios:binary) 把數(shù)據(jù)庫里的 count 找出來 , ifstream infile(zhuhu.txt,ios:binary) 建立與數(shù)據(jù)庫的聯(lián)系 流,使用二進(jìn)制打開文件.) ,它們的打開和退出關(guān)系著

5、數(shù)據(jù)庫的數(shù)據(jù)的輸入與 保存。 2.2:2.2:源程序:源程序: #include #include #include #include using namespace std; class zhuhu public: void input_message(); /輸入信息函數(shù)聲明 void show_message(); /展示函數(shù)聲明聲明 void write_num(); void gongneng(); int get_num(); double get_water(); double get_elec(); string get_name(); /獲取姓名聲明 double get_w

6、uye(); zhuhu *next; friend void duidiao_base(zhuhu private: int num;/編號(hào) char name20;/戶主 double water; double elec; double wuye; int year;/年 int mon;/月 int day;/日 ; void zhuhu:input_message() /輸入信息函數(shù)(采用先判斷后定值的方法) coutnum; coutname; cout請(qǐng)輸入用水量:water; cout請(qǐng)輸入用電量:elec; cout請(qǐng)輸入物業(yè)費(fèi):wuye; int e,g,f,h=0;/找到

7、年,月,日三個(gè)替身 cout入住時(shí)間endl; coute;/輸入正確后,在再賦值 while(e2056) cout年份錯(cuò)誤,請(qǐng)重新輸入(2006-2056)endle; year=e;/輸入正確后,在再賦值 if(year%4=0 coutg; while(g12) cout月份錯(cuò)誤,請(qǐng)重新輸入(1-12)endlg; mon=g;/輸入正確后,在再賦值 coutf; while(f31) cout日子錯(cuò)誤,請(qǐng)重新輸入(1-31)endlf; day=f;/輸入正確后,在再賦值 if(mon=4|mon=6|mon=9|mon=11) cinf; while(f30) cout日子錯(cuò)誤,請(qǐng)

8、重新輸入(1-30)endlf; day=f;/輸入正確后,在再賦值 if(h=0 while(f28) cout日子錯(cuò)誤,請(qǐng)重新輸入(1-28)endlf; day=f;/輸入正確后,在再賦值 if(h=1 while(f29) cout閏年,請(qǐng)重新輸入(1-29)endlf; day=f;/輸入正確后,在再賦值 ; void zhuhu:show_message()/展示會(huì)員基本信息 cout房號(hào):num ; cout戶主:nameendl; cout用水量:water ; cout用電量:elec=0) cout物業(yè)費(fèi)wuyeendl; if(wuye0) cout您的物業(yè)費(fèi)預(yù)存了-wu

9、yermbendl; cout入住時(shí)間:year年mon月day日endl; cout-endl;/美化頁面的需要 int zhuhu:get_num() return num; void zhuhu:write_num() cout請(qǐng)輸入房號(hào):num; void zhuhu:gongneng() string k; double a,b,c; cout1-買水endl; cout2-買電endl; cout3-交物業(yè)費(fèi)k; while(k!=1 if(k=1) cout請(qǐng)輸入買水量a; water=water+a; cout您現(xiàn)在的水量是:waterendl; if(k=2) cout請(qǐng)輸入

10、買電量:b; elec=elec+b; cout您現(xiàn)在的電量是:elecendl; if(k=3) cout請(qǐng)輸入繳納的物業(yè)費(fèi)金額:c; wuye=wuye-c; if(wuye0) cout您現(xiàn)在的物業(yè)費(fèi)是:wuyeendl; if(wuye0) cout您現(xiàn)在的物業(yè)費(fèi)預(yù)存了:-wuyeendl; ; double zhuhu:get_water() return water; double zhuhu:get_elec() return elec; string zhuhu:get_name() return name; double zhuhu:get_wuye() return wuy

11、e; void duidiao_base(zhuhu double s; char a20; t=p1.num;p1.num=p2.num;p2.num=t; t=p1.year;p1.year=p2.year;p2.year=t; t=p1.mon;p1.mon=p2.mon;p2.mon=t; t=p1.day;p1.day=p2.day;p2.day=t; s=p1.water;p1.water=p2.water;p2.water=s; s=p1.elec;p1.elec=p2.elec;p2.elec=s; s=p1.wuye;p1.wuye=p2.wuye;p2.wuye=s; st

12、rcpy(a,);strcpy(,);strcpy(,a); int count; int main()/主函數(shù) zhuhu *head=null; zhuhu *p1,*p2; p1=new zhuhu; p2=p1; int i; ifstream open_count_file(count.txt,ios:binary);/把數(shù)據(jù)庫里的 count 找出來 /此時(shí)的 count 是上次操作后留下的 if(!open_count_file)/測(cè)試是否成功打開文件 cerropen error!count;/取出值,并賦值給全局變量 c

13、ount open_count_file.close();/取出后關(guān)閉文件 ifstream infile(zhuhu.txt,ios:binary);/建立與數(shù)據(jù)庫的聯(lián)系流,使用二進(jìn)制 打開文件 /zhuhu.txt 保存了所有客戶的信息 if(!infile) cerropen error!endl; abort(); for(i=0;inext=null; else p1-next=p2; p1=p2; ; infile.close();/關(guān)閉文件,防止誤操作 zhuhu *jianli(zhuhu *head);/建立數(shù)據(jù)庫函數(shù)聲明 void shuchu(zhuhu *head);

14、zhuhu *charu(zhuhu *head); zhuhu *shanchu(zhuhu *head); void zhixing(zhuhu *head); void chaxun(zhuhu *head);/查詢功能函數(shù) void tongji(zhuhu *head); void paixu(zhuhu *head); string con=1; cout歡迎進(jìn)入小區(qū)物業(yè)管理系統(tǒng)endl; if(count=0) cout_ _endl; cout警告您的數(shù)據(jù)庫是空的,請(qǐng)首先建立數(shù)據(jù)庫!endl; cout_ _endl; while(con!=0)/循環(huán)命令機(jī)制,這種比較方便,簡(jiǎn)

15、單 cout1-建立數(shù)據(jù)庫endl; cout2-輸出所有信息endl; cout3-添加住戶endl; cout4-刪除住戶endl; cout5-收費(fèi)功能endl; cout6-查詢功能endl; cout7-統(tǒng)計(jì)空房endl; cout8-排序功能endl; cout0-退出系統(tǒng),保存數(shù)據(jù)endl; cout; cincon; while(con!=1 if(con=1) head=jianli(head); if(con=2) shuchu(head); if(con=3) head=charu(head); if(con=4) head=shanchu(head); if(con=5

16、) zhixing(head); if(con=6) chaxun(head); if(con=7) tongji(head); if(con=8) paixu(head); cout提示*操作完畢請(qǐng)選擇退出程序(選擇命令0),否則您的數(shù)據(jù)將 不能保存!*endl;/必須退出 /務(wù)必退出程序,否則處理結(jié)果無法保存 ; p1=head; ofstream countfile(count.txt,ios:binary); if(!countfile) cerropen error!endl; abort(); countfilecount;/存儲(chǔ)人數(shù)到文件中 countfile.close();

17、ofstream outfile(zhuhu.txt,ios:binary); if(!outfile) cerropen error!endl; abort(); for(i=0;inext; outfile.close(); return 0; zhuhu *jianli(zhuhu *head) zhuhu *p1,*p2; if(count0)/此時(shí)不允許錄入數(shù)據(jù),只能使用添加功能錄入 cout警告!您的數(shù)據(jù)庫已經(jīng)存在,若要重新建立,請(qǐng)清除 zhuhu 文件內(nèi)容并使 count 文件歸 0endl; cout_ _endl; if(count=0) p1=p2=new zhuhu; h

18、ead=p1; int n; cout請(qǐng)輸入需要建立的住戶數(shù):n; for(int i=0;in;i+) cout第i+1位住戶信息input_message(); p1=new zhuhu; if(i=n-1) p2-next=null; elsep2-next=p1; p2=p1; if(i=n) p2-next=null; count=n; return head; void shuchu(zhuhu *head) zhuhu *p1; p1=head; while(p1!=null) p1-show_message(); p1=p1-next; ; zhuhu *charu(zhuhu

19、 *head) cout請(qǐng)輸入要添加住戶的詳細(xì)信息:input_message(); while(p3-next!=null) if(p3-get_num()=p0-get_num() cout您輸入輸入輸入的房號(hào)有誤或非空房,請(qǐng)重新輸入!input_message(); p3=p3-next; p1=head; /使 p1 指向第一個(gè)結(jié)點(diǎn) if(head=null) /原來的鏈表是空表 head=p0;p0-next=null; /使 p0 指向的結(jié)點(diǎn)作為頭結(jié)點(diǎn) if(p0-get_num()get_num() head=p0; p0-next=p1; else while(p0-get_n

20、um()p1-get_num() /使 p2 指向剛才 p1 指向的結(jié)點(diǎn) p1=p1-next; /p1 后移一個(gè)結(jié)點(diǎn) if(p0-get_num()get_num() if(head=p1) head=p0; /插到原來第一個(gè)結(jié)點(diǎn)之前 else p2-next=p0; /插到 p2 指向的結(jié)點(diǎn)之后 p0-next=p1; else p1-next=p0; p0-next=null; /插到最后的結(jié)點(diǎn)之后 count+; cout添加成功,查看請(qǐng)選擇2endl; cout-endl; return head; zhuhu *shanchu(zhuhu *head) zhuhu *p1,*p2;

21、 int num; coutnum; p1=head; if (head=null) /是空表 coutlist null!get_num() p1=p1-next; /p1 后移一個(gè)結(jié)點(diǎn) if(num=p1-get_num() /找到了 cout您要?jiǎng)h除住戶的詳細(xì)信息是:show_message(); if(p1=head) head=p1-next; /若 p1 指向的是首結(jié)點(diǎn),把第二個(gè)結(jié)點(diǎn)地址賦予 head else p2-next=p1-next; /否則將下一結(jié)點(diǎn)地址賦給前一結(jié)點(diǎn)地址 cout成功刪除:numendl; count-; else cout您要?jiǎng)h除的住戶不存在,請(qǐng)核對(duì)后

22、重新刪除endl; /找不到該 結(jié)點(diǎn) return (head); void zhixing(zhuhu *head) int num; zhuhu *p1,*p2; cout請(qǐng)輸入要執(zhí)行的住戶編號(hào)num; p1=head; while(num!=p1-get_num() p1=p1-next; /p1 后移一個(gè)結(jié)點(diǎn) if(num=p1-get_num() /找到了 p1-gongneng(); else cout您要執(zhí)行的住戶不存在,請(qǐng)核對(duì)后重新執(zhí)行endl; /找不到該結(jié)點(diǎn) void chaxun(zhuhu *head)/查詢功能函數(shù) string n; int num; char na

23、me20; cout水量和電量查詢-1物業(yè)費(fèi)繳納情況查詢-2n; while(n!=1 if(n=1) cout按房號(hào)查詢-1按戶主查詢-2s; while(s!=1 if(s=1) cout請(qǐng)輸入您要查詢的房號(hào):num; zhuhu *p1,*p2; p1=head; while(num!=p1-get_num() p1=p1-next; /p1 后移一個(gè)結(jié)點(diǎn) if(num=p1-get_num() /找到了 cout您的水量是:get_water()endl; cout您的電量是:get_elec()endl; else cout您要執(zhí)行的住戶不存在,請(qǐng)核對(duì)后重新執(zhí)行endl; / 找不到

24、該結(jié)點(diǎn) if(s=2) cout請(qǐng)輸入您要查詢的戶主姓名:name; zhuhu *p1,*p2; p1=head; while(name!=p1-get_name() p1=p1-next; /p1 后移一個(gè)結(jié)點(diǎn) if(name=p1-get_name() /找到了 cout您的水量是:get_water()endl; cout您的電量是:get_elec()endl; else cout您要執(zhí)行的住戶不存在,請(qǐng)核對(duì)后重新執(zhí)行endl; / 找不到該結(jié)點(diǎn) ; if(n=2) zhuhu *p1; string k; cout查詢已交納住戶-1查詢未交納住戶2k; while(k!=1 p1=

25、head; if(k=2) while( p1!=null) /p1 指向的不是所要找的結(jié)點(diǎn)且后面還有結(jié) if(p1-get_wuye()0 ) cout警告!房號(hào):get_num()-戶主:get_name()-未交納:get_wuye()rmbnext; /p1 后移一個(gè)結(jié)點(diǎn) p1=head; int g=0; if(k=1) while( p1!=null) /p1 指向的不是所要找的結(jié)點(diǎn)且后面還有結(jié)點(diǎn) if(p1-get_wuye()=0) cout房號(hào):get_num()戶主:get_name() 已交納next; /p1 后移一個(gè)結(jié)點(diǎn) if(g=0) cout暫時(shí)全部未繳納endl; ; void tongji(zhuhu *head) zhuhu *p1=head; int i; int a,b,c; a=b=c=0; while( p1!=null) /p1 指向的不是所要找的結(jié)點(diǎn)且后面還有結(jié)點(diǎn) for(i=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論