《面向对象课程设计物业管理系统.doc》由会员分享,可在线阅读,更多相关《面向对象课程设计物业管理系统.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象程序设计课程设计报告课程设计题目: 物业管理系统 专业班级: 学 号: 姓 名: 成 绩: 2010年 01 月 17 日课程设计文档-简单的物业管理系统1. 需求分析:需要实现的主要功能如下:(1) 添加业主的编号,日期,缴费;(2) 修改业主的编号,日期,缴费;(3) 删除业主的编号,日期,缴费;(4) 查询业主的编号,日期,缴费;(5) 显示业主的编号,日期,缴费;2.类设计与说明glry_+ID:string +name: string +sex :string+age :string+ zhiwu: string+set():void+xg():void+qrid(:stri
2、ng M ):intfly+ID:string+sj:int+sjfy yjfy:float+set():voidYz_+ID:string+name:string+sex:string+age:string+fyxb:int+Set():void+Xg():void+qrID(:string):int3定义的函数主要功能说明:(1)glry类Set-设置管理人员信息Xg-修改管理人员信息qrid-确认ID(2)fyl类Set-设置费用信息(3)yz类Set-设置业主信息Xg-修改业主信息qrid-确认ID4.主要算法说明:(1)Main函数中主要利用循环实现业主姓名的连续录入;5.系统总框图
3、: 主函数用户菜单退出文件各个函数成员链表6.存在的问题:(1)系统的操作界面需进一步优化,如能用菜单形式实现更为方便。7.操作手册:运行程序后,会出现“欢迎进入物业管理系统”,上面有提示语句,分别按照这些提示语句输入信息,就会出现一个菜单。根据菜单的提示即可进行操作。#include #include #include #include #include #define G 10 / 管理人员数#define Y 20 /业主数#define F 10 /个业主费用记录数#define ZF 50 /总费用记录数using namespace std;int mima() int x=1,
4、i=0; string xh=1;/ xh 循环 void tcxt();for(;xh=1;)i+;char psw11,A=2010;char ch;int pos=0;cout $*$endl; cout | |endl;cout | *欢迎进入物业管理系统* |endl;cout | |endl;cout *endlendl;cout-endl;cout请输入密码(2010)endl;while (ch=getch()!=r)if(ch=b) / b是退格pos-;if(pos0)pos=0;continue;coutb b; /退一格,输出空格,再退一格elseif(pos10)ps
5、wpos+=ch;cout*;coutendl;pswpos=0;if(strcmp(A,psw)=0)couttttt密码正确正在进入系统endl;system(cls); /清屏coutttt*endl;coutttt* *endl;coutttt* 欢迎进入物业管理系统 *endl;coutttt* *endl;coutttt*endl;break; else if(i=3) cout连续输入密码错误3次 将被强制退出系统endl; tcxt(); cout密码错误 请选择 1继续 0退出xh;if(xh!=1)&(xh!=0)cout无次操作符 请重新输入操作符 xh;if(xh=0)
6、 x=0;system(cls); /清屏return(x);void bcsj() , dqsj(); class glry /管理人员类public:string ID;string name;string sex;string age;string zhiwu;void set();void xg(); /修改int qrID(string M); /确认IDvoid glry:set()coutID;coutname;coutsex;coutage;coutzhiwu;system(cls);bcsj(); dqsj();void glry:xg()char c,x;for(c=y;c
7、=y|c=Y;)cout请选择修改内容 1 ID 2 姓名 3 性别 4 年龄 5 职务x;switch(x) case 1:coutID;break;case 2:coutname;break;case 3:coutsex;break;case 4:coutage;break;case 5:coutzhiwu;break;default: cout无此操作选项endl;break;cout 还要修改该物业管理人员信息吗?Y是,N否c;int glry:qrID(string M)int x=0;if(M=ID) x=1;return(x);class fyl /费用类public: stri
8、ng id; int sj; float sjfy, yjfy; void set();void fyl:set()coutsj;coutsjfy;coutyjfy;bcsj();class yz /业主类public:string ID;string name;string sex;string age;fyl fyF;int fyxb; /业主总激费次数下标void set();void xg(); /修改int qrID(string); /确认IDvoid yz:set() fyxb=-1;coutID;coutname;coutsex;coutage;system(cls);bcsj
9、(); dqsj();void yz:xg()char c,x; / c 循环 , x 选择操作的符for(c=y;c=y|c=Y;)cout请选择修改内容 1 ID、 2 姓名、 3 性别 、4 年龄 x;switch(x) case 1:coutID;break;case 2:coutname;break;case 3:coutsex;break;case 4:coutage;break;default: cout无此操作选项endl;break;cout 继续修改此业主信息吗?Y是,N否c;int yz:qrID(string M)int x=0;if(M=ID) x=1;return(
10、x);extern fyl zfyZF; /extern glry glry_G; /全局对象extern yz yz_Y; /全局对象extern int h,h1,h2;int i=0,j=0,k=0; string M; /M 输入ID ,j 业主循环,i 管理、总费用循环,char c=y; /是否循环的初始条件void tjfyjl() /添加缴费记录for(c=y;c=y|c=Y;)system(cls); dqsj();coutM;for(j=0;jh;j+)k=yz_j.qrID(M);if(k)yz_j.fy+(yz_j.fyxb).id=yz_j.ID;yz_j.fy(yz
11、_j.fyxb).set();break;if(k=0)cout此业主ID不存在endl;cout还要继续查询吗?Y是 ,N否c;void yzjfcx() /业主缴费查询函数int cx;for(c=y;c=y|c=Y;)system(cls);dqsj();coutM;for(j=0;jh;j+)cx=yz_j.qrID(M);if(cx=1)cout日期 实缴费用 应缴费用=0;k-)coutsetiosflags(ios:left)setw(8)yz_j.fyk.sj;coutsetiosflags(ios:fixed)setprecision(2)setw(12)yz_j.fyk.s
12、jfysetw(8)yz_j.fyk.yjfyendl;break;if(cx=0) cout此业主ID不存在endl;cout还要继续查询吗?Y是 ,N否c;void rqjfcx() /日期缴费查询int rq,cx,cx1=0;for(c=y;c=y|c=Y;)system(cls); dqsj();cout请输入查询的缴费年月(如200808)rq;cout业主ID 实缴费用 应缴费用endl;for(i=0;ih1;i+)cx=(zfyi.sj=rq);if(cx=1)cx1=1;coutsetiosflags(ios:left)setw(10)zfyi.id;coutsetiosf
13、lags(ios:fixed)setprecision(2)setw(12)zfyi.sjfysetw(8)zfyi.yjfyendl;if(cx1=0) cout此日期无人缴费endl;cout还要继续查询吗?Y是 ,N否c;void wykxtj() /物业公司开销统计函数int sjd1,sjd2;for(c=y;c=y|c=Y;)system(cls); dqsj();cout请输入要统计的时间段 (如200801 200806)sjd1sjd2;float z1=0,z2=0;for(i=0;i=sjd1&zfyi.sj=sjd2)z1+=zfyi.sjfy;z2+=zfyi.yjf
14、y;cout该时间段内物业公司开销情况如下: endl;cout 收入 z1元endl;cout 支出 z2元endl;cout还要继续统计吗?Y是 ,N否c;void xgyzxx() /修改业主信息函数int u=0;for(c=y;c=y|c=Y;)coutM;for(j=0;jh;j+)u=yz_j.qrID(M);if(u) yz_j.xg();system(cls);bcsj(); dqsj();break; if(u=0)cout此业主ID不存在endl;cout还要修改其他业主信息吗?Y是 ,N否c;void tjyz() /添加业主函数for(c=y;c=y|c=Y;)cou
15、t请输入要添加的业主信息endl;yz_h+.set();system(cls);bcsj(); dqsj();cout还要添加其他业主吗?Y是 ,N否c;void scyz() /删除业主函数int u=0;for(c=y;c=y|c=Y;)coutM;for(j=0;jh;j+)u=yz_j.qrID(M);if(u=1)yz_j=yz_-h;system(cls);bcsj(); dqsj();break;if(u=0) cout此业主ID不存在endl; cout还要删除其他业主吗?Y是 ,N否c;void xgglryxx() /修改管理人员信息函数int u=0;for(c=y;c
16、=y|c=Y;)coutM;for(i=0;ih2;i+)u=glry_i.qrID(M);if(u) glry_i.xg();system(cls);bcsj(); dqsj();break; if(u=0) cout此管理人员ID不存在endl; cout还要修改其他管理人员信息吗?Y是 ,N否c;void tjglry() /添加管理人员函数for(c=y;c=y|c=Y;)cout请输入要添加的管理人员信息endl;glry_h2+.set();system(cls);bcsj(); dqsj();cout还要添加其他管理人员吗?Y是 ,N否c;void scglry() /删除管理人
17、员函数int u=0;for(c=y;c=y|c=Y;)coutM;for(i=0;ih2;i+)u=glry_i.qrID(M);if(u=1) glry_i=glry_-h2;system(cls);bcsj(); dqsj(); break; if(u=0) cout此管理人员ID不存在endl; cout还要删除其他管理人员吗?Y是 ,N否c;void tcxt() /退出系统coutttt*endl;coutttt* *endl;coutttt* 正在退出物业管理系统 *endl;coutttt* *endl;coutttt*endl;couttttttttt版权所有 张万endl;
18、exit(1);void xzcz() /选择操作函数char xz; / xz 选择符system(cls); dqsj();coutn 0添加缴费记录 endl;cout 1业主缴费查询 2日期缴费查询 3物业公司开销统计 endl;cout请选择操作:4修改业主信息 5添加业主 6删除业主 endl;cout 7修改管理人员信息 8添加管理人员 9删除管理人员 .退出 n xz;switch(xz)default: cout无此操作选项endl;break;case 0:tjfyjl();break; /添加缴费记录case 1:yzjfcx(); break; /业主缴费查询函数cas
19、e 2:rqjfcx();break; /日期缴费查询case 3:wykxtj();break; /物业公司开销统计函数case 4:xgyzxx();break; /修改业主信息函数case 5:tjyz();break; /添加业主函数case 6:scyz();break; /删除业主函数case 7:xgglryxx();break; /修改管理人员信息函数case 8:tjglry();break; /添加管理人员函数case 9:scglry();break; /删除管理人员函数case .:tcxt(); / 退出int h,h2,h1; / h 表示文件行数 void dqs
20、j() / 读取文件函数h=0; h1=0; h2=0;char ch50; ifstream fin(f.txt,ios:in); / 读文件fwhile(fin.getline(ch,sizeof(ch) h+;coutn业主总数为:hendl; /显示业主总数fin.clear();fin.seekg(0,ios:beg);cout业主ID 姓名 性别 年龄endl;for(j=0;jyz_j.IDyz_j.nameyz_j.sexyz_j.age;coutsetiosflags(ios:left)setw(10)yz_j.IDsetw(11)yz_j.namesetw(7)yz_j.s
21、exsetw(5)yz_j.ageendl; / 显示ffin.close();ifstream fin1(f1.txt,ios:in); /读文件f1while(fin1.getline(ch,sizeof(ch) h1+; fin1.clear();fin1.seekg(0,ios:beg); /指针返回文件头for(i=0;izfyi.idzfyi.sjzfyi.sjfyzfyi.yjfy; fin1.close();/ /把费用记录赋给个业主 for(j=0;jh;j+) k=0;for(i=0;ih1;i+)if(yz_j.qrID(zfyi.id)yz_j.fyk+=zfyi;yz
22、_j.fyxb=k-1;ifstream fin2(f2.txt,ios:in); /读文件f2while(fin2.getline(ch,sizeof(ch) h2+; coutn管理人员总人数为:h2endl; /显示管理人员总人数fin2.clear();fin2.seekg(0,ios:beg); /指针返回文件头cout管理员ID 姓名 性别 年龄 职务endl;for(i=0;iglry_i.IDglry_i.nameglry_i.sexglry_i.ageglry_i.zhiwu;coutsetiosflags(ios:left)setw(10)glry_i.IDsetw(11)
23、glry_i.namesetw(7)glry_i.sex; /显示f2coutsetw(7)glry_i.agesetw(20)glry_i.zhiwuendl; fin2.close();void bcsj() /保存数据ofstream fout(f.txt,ios:out); /fif(! fout)cerr文件打开失败或文件不存在endl;exit(1); for(j=0;jh;j+) foutsetiosflags(ios:left)setw(8)yz_j.IDsetw(11)yz_j.namesetw(3)yz_j.sexsetw(5)yz_j.ageendl; fout.clos
24、e();ofstream fout1(f1.txt,ios:out); /f1if(! fout1)cerr文件打开失败或文件不存在endl;exit(1);for(j=0;j=0;k-)fout1setiosflags(ios:left)setw(8)yz_j.fyk.idsetw(8)yz_j.fyk.sj;fout1setiosflags(ios:fixed)setprecision(2)setw(8)yz_j.fyk.sjfysetw(8)yz_j.fyk.yjfyendl;fout.close();ofstream fout2(f2.txt,ios:out); /f2if(! fou
25、t2)cerr文件打开失败或文件不存在endl;exit(1);for(i=0;ih2;i+)fout2setiosflags(ios:left)setw(8)glry_i.IDsetw(11)glry_i.namesetw(3)glry_i.sex;fout2setw(5)glry_i.agesetw(20)glry_i.zhiwuendl;fout2.close();/ 主函数yz yz_Y; fyl zfyZF; glry glry_G; /全局对象void main()int c; c=mima(); /密码函数if(c=0) tcxt();if(c=1)dqsj(); /读取数据for(;)xzcz(); /选择操作