




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度物业管理公司员工劳动合同(含职业健康)
- 2025年汽修店转让协议范本:含维修技术保密与知识产权
- 2025年度股权抵押消费信贷合同
- 二零二五年度柴油运输市场调研与分析合同
- 2025年度高校与教育机构人才输送与教学资源共享协议
- 2025年度酒店住宿期间消防安全责任书
- 二零二五年度劳动合同解除协议范本及员工离职手续流程
- 二零二五年度写字楼租赁合同复本及共享办公空间合作
- 二零二五年度个人抵押担保贷款合同范本
- 二零二五年度人工智能公司股份转让合同
- 7号楼-招标控制价
- 《预制高强混凝土风电塔筒生产技术规程》文本附编制说明
- 2024年中国住院患者血糖管理专家共识
- 【MOOC】设计思维与创新设计-浙江大学 中国大学慕课MOOC答案
- 《如何说孩子才会听怎么听孩子才肯说》读书分享
- 旅客列车安全平稳操纵办法
- 《混凝土结构设计原理》全套教学课件
- 医疗安全(不良)事件报告制度培训课件
- 《用单摆测量重力加速度》说课稿
- 人教版九年级上册音乐 1.5中国人民解放军军歌 教案
- 2024报关员劳动合同范本(标准版)
评论
0/150
提交评论