面向对象课程设计物业管理系统方案Word格式.docx
《面向对象课程设计物业管理系统方案Word格式.docx》由会员分享,可在线阅读,更多相关《面向对象课程设计物业管理系统方案Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
+sjfyyjfy:
float
Yz
_______________________________________________________
+sex:
+age:
+fyxb:
+Set():
+Xg():
+qrID(:
string):
3.定义的函数主要功能说明:
(1)glry类
Set----------------------设置管理人员信息
Xg----------------------修改管理人员信息
qrid---------------------确认ID
(2)fyl类
Set-----------------------设置费用信息
(3)yz类
Set----------------------设置业主信息
Xg----------------------修改业主信息
4.主要算法说明:
(1)
Main函数中主要利用循环实现业主的连续录入;
5.系统总框图:
6.存在的问题:
(1)系统的操作界面需进一步优化,如能用菜单形式实现更为方便。
7.操作手册:
运行程序后,会出现“欢迎进入物业管理系统”,上面有提示语句,分别按照这些提示语句输入信息,就会出现一个菜单。
根据菜单的提示即可进行操作。
#include<
fstream>
iostream>
string>
conio.h>
iomanip>
#defineG10//管理人员数
#defineY20//业主数
#defineF10//个业主费用记录数
#defineZF50//总费用记录数
usingnamespacestd;
intmima()
{
intx=1,i=0;
stringxh="
1"
;
//xh循环
voidtcxt();
for(;
xh=="
)
{
i++;
charpsw[11],A[]="
2010"
charch;
intpos=0;
cout<
<
"
$*********************************$"
endl;
cout<
||"
|**欢迎进入物业管理系统**|"
*********************************"
endl<
-------------------------------------------------------------------"
请输入密码(2010)"
while((ch=getch())!
='
\r'
{
if(ch=='
\b'
)//'
是退格
{
pos--;
if(pos<
0)
{
pos=0;
continue;
}
cout<
\b\b"
//退一格,输出空格,再退一格
}
else
10)
psw[pos++]=ch;
cout<
'
*'
}
psw[pos]='
\0'
if(strcmp(A,psw)==0)
{
cout<
\t\t\t\t密码正确正在进入系统"
system("
cls"
);
//清屏
\t\t\t********************************"
\t\t\t**"
\t\t\t*欢迎进入物业管理系统*"
break;
else
if(i==3){cout<
连续输入密码错误3次将被强制退出系统"
tcxt();
}
密码错误请选择1继续0退出"
cin>
>
xh;
if((xh!
="
)&
&
(xh!
0"
))
无次操作符请重新输入操作符"
cin>
if(xh=="
)x=0;
return(x);
}
voidbcsj(),dqsj();
classglry//////////////////////管理人员类
{
public:
stringID;
stringname;
stringsex;
stringage;
stringzhiwu;
voidset();
voidxg();
//修改
intqrID(stringM);
//确认ID
};
voidglry:
:
set()
输入ID"
cin>
ID;
输入"
name;
输入性别"
sex;
输入年龄"
age;
输入职务"
zhiwu;
system("
bcsj();
dqsj();
xg()
charc,x;
for(c='
y'
c=='
||c=='
Y'
请选择修改容1ID23性别4年龄5职务"
x;
switch(x)
case'
1'
cout<
请输入ID"
cin>
break;
2'
请输入"
3'
请输入性别"
4'
请输入年龄"
5'
请输入职务"
default:
无此操作选项"
还要修改该物业管理人员信息吗?
Y是,N否"
c;
intglry:
qrID(stringM)
intx=0;
if(M==ID)x=1;
classfyl//////////////////////费用类
stringid;
intsj;
floatsjfy,yjfy;
voidfyl:
输入缴费年月(如200808)"
sj;
输入实缴费用"
sjfy;
输入应缴费用"
yjfy;
bcsj();
classyz///////////////////业主类
fylfy[F];
intfyxb;
//业主总激费次数下标
intqrID(string);
voidyz:
set()
fyxb=-1;
//c循环,x选择操作的符
for(c='
请选择修改容1ID、2、3性别、4年龄"
cin>
switch(x)
case'
default:
继续修改此业主信息吗?
intyz:
//////////////////////////////////////////////////////////
externfylzfy[ZF];
//
externglryglry_[G];
//全局对象
externyzyz_[Y];
externinth,h1,h2;
inti=0,j=0,k=0;
stringM;
//M输入ID,j业主循环,i管理、总费用循环,
charc='
//是否循环的初始条件
voidtjfyjl()//添加缴费记录
system("
请输入缴费业主ID"
M;
for(j=0;
j<
h;
j++)
k=yz_[j].qrID(M);
if(k)
yz_[j].fy[++(yz_[j].fyxb)].id=yz_[j].ID;
yz_[j].fy[(yz_[j].fyxb)].set();
if(k==0)
此业主ID不存在"
还要继续查询吗?
Y是,N否"
voidyzjfcx()//业主缴费查询函数
intcx;
dqsj();
请输入查询缴费业主ID"
cx=yz_[j].qrID(M);
if(cx==1)
日期实缴费用应缴费用"
k=yz_[j].fyxb;
for(;
k>
=0;
k--)
setiosflags(ios:
left)<
setw(8)<
yz_[j].fy[k].sj;
fixed)<
setprecision
(2)<
setw(12)<
yz_[j].fy[k].sjfy<
yz_[j].fy[k].yjfy<
break;
if(cx==0)cout<
voidrqjfcx()//日期缴费查询
intrq,cx,cx1=0;
请输入查询的缴费年月(如200808)"
rq;
业主ID实缴费用应缴费用"
for(i=0;
i<
h1;
i++)
cx=(zfy[i].sj==rq);
cx1=1;
setw(10)<
zfy[i].id;
zfy[i].sjfy<
zfy[i].yjfy<
if(cx1==0)cout<
此日期无人缴费"
voidwykxtj()//物业公司开销统计函数
intsjd1,sjd2;
请输入要统计的时间段(如200801200806)"
sjd1>
sjd2;
floatz1=0,z2=0;
if(zfy[i].sj>
=sjd1&
zfy[i].sj<
=sjd2)
z1+=zfy[i].sjfy;
z2+=zfy[i].yjfy;
该时间段物业公司开销情况如下:
"
收入"
z1<
元"
支出"
z2<
还要继续统计吗?
voidxgyzxx()//修改业主信息函数
intu=0;
请输入要修改的业主ID"
u=yz_[j].qrID(M);
if(u){yz_[j].xg();
system("
if(u==0)
{cout<
还要修改其他业主信息吗?
voidtjyz()//添加业主函数
请输入要添加的业主信息"
yz_[h++].set();
还要添加其他业主吗?
voidscyz()//删除业主函数
请输要删除的业主ID"
if(u==1)
yz_[j]=yz_[--h];
system("
{cout<
还要删除其他业主吗?
voidxgglryxx()//修改管理人员信息函数
请输入要修改的管理人员ID"
h2;
u=glry_[i].qrID(M);
if(u){glry_[i].xg();
if(u==0)
此管理人员ID不存在"
还要修改其他管理人员信息吗?
voidtjglry()//添加管理人员函数
请输入要添加的管理人员信息"
glry_[h2++].set();
还要添加其他管理人员吗?
voidscglry()//删除管理人员函数
请输要删除的管理人员ID"
{glry_[i]=glry_[--h2];
break;
还要删除其他管理人员吗?
voidtcxt()//退出系统
\t\t\t*正在退出物业管理系统*"
\t\t\t\t\t\t\t\t所有万"
exit
(1);
voidxzcz()//选择操作函数
charxz;
//xz选择符
\n0添加缴费记录"
1业主缴费查询2日期缴费查询3物业公司开销统计"
请选择操作:
4修改业主信息5添加业主6删除业主"
7修改管理人员信息8添加管理人员9删除管理人员.退出\n"
xz;
switch(xz)
default:
case'
0'
tjfyjl();
//添加缴费记录
yzjfcx();
//业主缴费查询函数
rqjfcx();
//日期缴费查询
wykxtj();
//物业公司开销统计函数
xgyzxx();
//修改业主信息函数
tjyz();
//添加业主函数
6'
scyz();
//删除业主函数
7'
xgglryxx();
//修改管理人员信息函数
8'
tjglry();
//添加管理人员函数
9'
scglry();
//删除管理人员函数
.'
tcxt();
//退出
//////////////////////////////////////////////////////////////////////
inth,h2,h1;
//h表示文件行数
voiddqsj()/////////读取文件函数
h=0;
h1=0;
h2=0;
charch[50];
ifstreamfin("