C++課程設計小區物業管理系統_第1頁
C++課程設計小區物業管理系統_第2頁
C++課程設計小區物業管理系統_第3頁
C++課程設計小區物業管理系統_第4頁
C++課程設計小區物業管理系統_第5頁
已閱讀5頁,還剩18頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 小區物小區物業業管理系管理系統統 程序程序設計設計基基礎課礎課程程設計報設計報告告 專專 業業: : 電電子信息工程子信息工程 班班 級級: : 2007 級級 1 班班 學學 號:號: 2007082020 姓姓 名:名: 張張超超 指指導導教教師師: : 常常 耀耀 輝輝 目目 錄錄 一編程目的:一編程目的:.2 2 二設計要求:二設計要求:.2 2 三各函數功能說明:三各函數功能說明:.2 2 四流程圖:四流程圖:.1313 五總結:五總結:.1414 參考書目:參考書目:.1515 1 1程序題目要求:程序題目要求: .課程設計目的課程設計目的: : 用 c+語言對小區

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

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

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

5、數據庫的數據的輸入與 保存。 2.2:2.2:源程序:源程序: #include #include #include #include using namespace std; class zhuhu public: void input_message(); /輸入信息函數聲明 void show_message(); /展示函數聲明聲明 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;/編號 char name20;/戶主 double water; double elec; double wuye; int year;/年 int mon;/月 int day;/日 ; void zhuhu:input_message() /輸入信息函數(采用先判斷后定值的方法) coutnum; coutname; cout請輸入用水量:water; cout請輸入用電量:elec; cout請輸入物業費:wuye; int e,g,f,h=0;/找到

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

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

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

10、買電量:b; elec=elec+b; cout您現在的電量是:elecendl; if(k=3) cout請輸入繳納的物業費金額:c; wuye=wuye-c; if(wuye0) cout您現在的物業費是:wuyeendl; if(wuye0) cout您現在的物業費預存了:-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()/主函數 zhuhu *head=null; zhuhu *p1,*p2; p1=new zhuhu; p2=p1; int i; ifstream open_count_file(count.txt,ios:binary);/把數據庫里的 count 找出來 /此時的 count 是上次操作后留下的 if(!open_count_file)/測試是否成功打開文件 cerropen error!count;/取出值,并賦值給全局變量 c

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

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

15、單 cout1-建立數據庫endl; cout2-輸出所有信息endl; cout3-添加住戶endl; cout4-刪除住戶endl; cout5-收費功能endl; cout6-查詢功能endl; cout7-統計空房endl; cout8-排序功能endl; cout0-退出系統,保存數據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提示*操作完畢請選擇退出程序(選擇命令0),否則您的數據將 不能保存!*endl;/必須退出 /務必退出程序,否則處理結果無法保存 ; p1=head; ofstream countfile(count.txt,ios:binary); if(!countfile) cerropen error!endl; abort(); countfilecount;/存儲人數到文件中 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)/此時不允許錄入數據,只能使用添加功能錄入 cout警告!您的數據庫已經存在,若要重新建立,請清除 zhuhu 文件內容并使 count 文件歸 0endl; cout_ _endl; if(count=0) p1=p2=new zhuhu; h

18、ead=p1; int n; cout請輸入需要建立的住戶數: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請輸入要添加住戶的詳細信息:input_message(); while(p3-next!=null) if(p3-get_num()=p0-get_num() cout您輸入輸入輸入的房號有誤或非空房,請重新輸入!input_message(); p3=p3-next; p1=head; /使 p1 指向第一個結點 if(head=null) /原來的鏈表是空表 head=p0;p0-next=null; /使 p0 指向的結點作為頭結點 if(p0-get_num()get_num() head=p0; p0-next=p1; else while(p0-get_n

20、um()p1-get_num() /使 p2 指向剛才 p1 指向的結點 p1=p1-next; /p1 后移一個結點 if(p0-get_num()get_num() if(head=p1) head=p0; /插到原來第一個結點之前 else p2-next=p0; /插到 p2 指向的結點之后 p0-next=p1; else p1-next=p0; p0-next=null; /插到最后的結點之后 count+; cout添加成功,查看請選擇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 后移一個結點 if(num=p1-get_num() /找到了 cout您要刪除住戶的詳細信息是:show_message(); if(p1=head) head=p1-next; /若 p1 指向的是首結點,把第二個結點地址賦予 head else p2-next=p1-next; /否則將下一結點地址賦給前一結點地址 cout成功刪除:numendl; count-; else cout您要刪除的住戶不存在,請核對后

22、重新刪除endl; /找不到該 結點 return (head); void zhixing(zhuhu *head) int num; zhuhu *p1,*p2; cout請輸入要執行的住戶編號num; p1=head; while(num!=p1-get_num() p1=p1-next; /p1 后移一個結點 if(num=p1-get_num() /找到了 p1-gongneng(); else cout您要執行的住戶不存在,請核對后重新執行endl; /找不到該結點 void chaxun(zhuhu *head)/查詢功能函數 string n; int num; char na

23、me20; cout水量和電量查詢-1物業費繳納情況查詢-2n; while(n!=1 if(n=1) cout按房號查詢-1按戶主查詢-2s; while(s!=1 if(s=1) cout請輸入您要查詢的房號:num; zhuhu *p1,*p2; p1=head; while(num!=p1-get_num() p1=p1-next; /p1 后移一個結點 if(num=p1-get_num() /找到了 cout您的水量是:get_water()endl; cout您的電量是:get_elec()endl; else cout您要執行的住戶不存在,請核對后重新執行endl; / 找不到

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

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

溫馨提示

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

評論

0/150

提交評論