物业管理系统课设.docx
《物业管理系统课设.docx》由会员分享,可在线阅读,更多相关《物业管理系统课设.docx(27页珍藏版)》请在冰豆网上搜索。
物业管理系统课设
面向对象程序设计
课程设计报告
课程设计题目:
物业管理系统
专业班级:
网络081
学号:
41
姓名:
王荣祥
成绩:
2010年1月17日
课程设计文档 ----小区物业管理系统
1.需求分析:
需要实现的主要功能如下:
(1)添加缴费记录,年份,费用。
(2)业主缴费查询函数,业主ID,应缴费用,实缴费用。
(3)日期缴费查询,时间,缴费。
(4)物业公司开销统计函数,时间段,收入,支出。
(5)修改业主信息函数,业主ID,需要修改的属性。
(6)添加业主函数,ID,姓名,性别,年龄。
(7)删除业主函数,要删除的ID。
(8)修改管理人员信息函数,管理员ID,需要修改的属性。
(9)添加管理人员函数:
ID,姓名,性别,年龄。
2.
glry
____________________________________
+ID:
string
+name:
string
+sex:
string
+age:
string
+zhiwu:
string
____________________________________
+set():
void
+xg():
void
+qrID(M:
sting):
int
Yz
______________________________________
+ID:
string
+name:
string
+sex:
string
+age:
string
______________________________________
+set():
void
+xg():
void
+qrID(M:
sting):
int
+fyxb:
int
全局
tjfyjl():
void
yzjfcx():
void
rqjfcx():
void
wykxtj():
void
xgyzxx():
void
tjyz():
void
scyz():
void
xgglryxx():
void
tjglry():
void
scglry():
void
tcxt():
void
xzvz():
void
dqsj():
void
bcsj():
void
3.定义函数的主要功能:
(1)classglry类(管理人员)
set():
设置ID,姓名,性别,年龄,职务。
xg():
修改ID,姓名,性别,年龄,职务。
qrID():
确认ID。
(2)classfyl类(费用)
set():
输入缴费年月,输入实缴费用,输入应缴费用。
(3)classyz类(业主)
set():
设置业主ID,姓名,性别,年龄。
xg():
修改业主ID,姓名,性别,年龄。
qrID():
确认ID。
(4)fylzfy[ZF],glryglry_[G],yzyz_[Y]全局对象
tjfyjl():
添加缴费记录。
yzjfcx():
业主缴费查询。
rqjfcx():
日期缴费查询。
wykxtj():
物业公司开销统计。
xgyzzxx():
修改业主信息。
tjyez():
添加业主。
scyz():
删除业主。
xgglryxx():
修改管理人员信息。
tjglry():
添加管理人员。
scglry():
删除管理人员。
tcxt():
退出系统界面。
xzcz():
选择操作界面。
dqsj():
读取文件操作。
bcsj():
保存数据。
4.主要算法说明:
(1):
Main函数中循环调用了读取数据函数,和选择操作函数。
(2):
通过读取数据函数,把客户和管理人员的信息,以及缴费,和公司的统计都输入到f,f1,f2文件中。
(3):
通过选择操作函数,调用了全局各个操作。
5.系统总框图:
成员链表
各个函数
退出
文件
用户菜单
主函数
6.存在的问题:
(1):
公司的收支只是做了个简单的统计,如果要做的更详细的话会更好。
(2):
关于密码的输入还是存在缺陷,在输入密码错误后会出现:
密码错误请选择操作字样,但是在这一操作中乱打的话还是可以进入系统的。
7.操作手册:
运行程序后会出现:
“请输入密码”,输入:
123456后进入程序,然后会有很多菜单操作:
0.添加缴费记录1.业主缴费查询2.日期缴费查询3.物业公司开销统计4.修改业主信息5.添加业主6.删除业主7.修改管理人员信息8.添加管理人员9.删除管理人员。
.退出。
选择相应的选项进入下部操作。
输入“.”退出系统。
8.源程序代码及说明:
#include
#include
#include
#include
#include
#defineG10//管理人员数
#defineY20//业主数
#defineF10//个业主费用记录数
#defineZF50//总费用记录数
usingnamespacestd;
intmima()
{
intx=1,i=0;
stringxh="1";//xh循环
voidtcxt();
for(;xh=="1";)
{
i++;
charpsw[11],A[]="123456";
charch;
intpos=0;
cout<<"请输入密码"<while((ch=getch())!
='\r')
{
if(ch=='\b')//'\b'是退格
{
pos--;
if(pos<0)
{
pos=0;
continue;
}
cout<<"\b\b";//退一格,输出空格,再退一格
}
else
{
if(pos<10)
{
psw[pos++]=ch;
cout<<'*';
}
}
}
cout<psw[pos]='\0';
if(strcmp(A,psw)==0)
{
cout<<"\t\t\t\t密码正确正在进入系统"<system("cls");//清屏
cout<<"\t\t\t********************************"<cout<<"\t\t\t**"<cout<<"\t\t\t*欢迎进入物业管理系统*"<cout<<"\t\t\t**"<cout<<"\t\t\t********************************"<break;
}
else
{
if(i==3){cout<<"连续输入密码错误3次将被强制退出系统"<cout<<"密码错误请选择1继续0退出"<cin>>xh;
if((xh!
="1")&&(xh!
="0"))
{
cout<<"无次操作符请重新输入操作符"<cin>>xh;
}
if(xh=="0")x=0;
system("cls");//清屏
}
}
return(x);
}
voidbcsj(),dqsj();
classglry//////////////////////管理人员类
{
public:
stringID;
stringname;
stringsex;
stringage;
stringzhiwu;
voidset();
voidxg();//修改
intqrID(stringM);//确认ID
};
voidglry:
:
set()
{
cout<<"输入ID";
cin>>ID;
cout<<"输入姓名";
cin>>name;
cout<<"输入性别";
cin>>sex;
cout<<"输入年龄";
cin>>age;
cout<<"输入职务";
cin>>zhiwu;
system("cls");bcsj();dqsj();
}
voidglry:
:
xg()
{
charc,x;
for(c='y';c=='y'||c=='Y';)
{
cout<<"请选择修改内容1ID2姓名3性别4年龄5职务"<cin>>x;
switch(x)
{
case'1':
cout<<"请输入ID";cin>>ID;break;
case'2':
cout<<"请输入姓名";cin>>name;break;
case'3':
cout<<"请输入性别";cin>>sex;break;
case'4':
cout<<"请输入年龄";cin>>age;break;
case'5':
cout<<"请输入职务";cin>>zhiwu;break;
default:
cout<<"无此操作选项"<}
cout<<"还要修改该物业管理人员信息吗?
Y是,N否"<cin>>c;
}
}
intglry:
:
qrID(stringM)
{
intx=0;
if(M==ID)x=1;
return(x);
}
classfyl//////////////////////费用类
{
public:
stringid;
intsj;
floatsjfy,yjfy;
voidset();
};
voidfyl:
:
set()
{
cout<<"输入缴费年月(如200808)";
cin>>sj;
cout<<"输入实缴费用";
cin>>sjfy;
cout<<"输入应缴费用";
cin>>yjfy;
bcsj();
}
classyz///////////////////业主类
{
public:
stringID;
stringname;
stringsex;
stringage;
fylfy[F];
intfyxb;//业主总激费次数下标
voidset();
voidxg();//修改
intqrID(string);//确认ID
};
voidyz:
:
set()
{
fyxb=-1;
cout<<"输入ID";
cin>>ID;
cout<<"输入姓名";
cin>>name;
cout<<"输入性别";
cin>>sex;
cout<<"输入年龄";
cin>>age;
system("cls");bcsj();dqsj();
}
voidyz:
:
xg()
{
charc,x;//c循环,x选择操作的符
for(c='y';c=='y'||c=='Y';)
{
cout<<"请选择修改内容1ID、2姓名、3性别、4年龄"<cin>>x;
switch(x)
{
case'1':
cout<<"请输入ID";cin>>ID;break;
case'2':
cout<<"请输入姓名";cin>>name;break;
case'3':
cout<<"请输入性别";cin>>sex;break;
case'4':
cout<<"请输入年龄";cin>>age;break;
default:
cout<<"无此操作选项"<}
cout<<"继续修改此业主信息吗?
Y是,N否"<cin>>c;
}
}
intyz:
:
qrID(stringM)
{
intx=0;
if(M==ID)x=1;
return(x);
}
//////////////////////////////////////////////////////////
externfylzfy[ZF];//
externglryglry_[G];//全局对象
externyzyz_[Y];//全局对象
externinth,h1,h2;
inti=0,j=0,k=0;stringM;//M输入ID,j业主循环,i管理、总费用循环,
charc='y';//是否循环的初始条件
voidtjfyjl()//添加缴费记录
{
for(c='y';c=='y'||c=='Y';)
{
system("cls");dqsj();
cout<<"请输入缴费业主ID";
cin>>M;
for(j=0;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();break;
}
}
if(k==0)
cout<<"此业主ID不存在"<cout<<"还要继续查询吗?
Y是,N否"<cin>>c;
}
}
voidyzjfcx()//业主缴费查询函数
{
intcx;
for(c='y';c=='y'||c=='Y';)
{
system("cls");dqsj();
cout<<"请输入查询缴费业主ID";
cin>>M;
for(j=0;j{
cx=yz_[j].qrID(M);
if(cx==1)
{
cout<<"日期实缴费用应缴费用"<k=yz_[j].fyxb;
for(;k>=0;k--)
{
cout<:
left)<cout<:
fixed)<(2)<}
break;
}
}
if(cx==0)cout<<"此业主ID不存在"<cout<<"还要继续查询吗?
Y是,N否"<cin>>c;
}
}
voidrqjfcx()//日期缴费查询
{
intrq,cx,cx1=0;
for(c='y';c=='y'||c=='Y';)
{
system("cls");dqsj();
cout<<"请输入查询的缴费年月(如200808)"<cin>>rq;
cout<<"业主ID实缴费用应缴费用"<for(i=0;i
{
cx=(zfy[i].sj==rq);
if(cx==1)
{
cx1=1;
cout<:
left)<cout<:
fixed)<(2)<}
}
if(cx1==0)cout<<"此日期无人缴费"<cout<<"还要继续查询吗?
Y是,N否"<cin>>c;
}
}
voidwykxtj()//物业公司开销统计函数
{
intsjd1,sjd2;
for(c='y';c=='y'||c=='Y';)
{
system("cls");dqsj();
cout<<"请输入要统计的时间段(如200801200806)"<cin>>sjd1>>sjd2;
floatz1=0,z2=0;
for(i=0;i
{
if(zfy[i].sj>=sjd1&&zfy[i].sj<=sjd2)
{
z1+=zfy[i].sjfy;
z2+=zfy[i].yjfy;
}
}
cout<<"该时间段内物业公司开销情况如下:
"<cout<<"收入"<cout<<"支出"<cout<<"还要继续统计吗?
Y是,N否"<cin>>c;
}
}
voidxgyzxx()//修改业主信息函数
{
intu=0;
for(c='y';c=='y'||c=='Y';)
{
cout<<"请输入要修改的业主ID";
cin>>M;
for(j=0;j{
u=yz_[j].qrID(M);
if(u){yz_[j].xg();system("cls");bcsj();dqsj();break;}
}
if(u==0)
{cout<<"此业主ID不存在"<cout<<"还要修改其他业主信息吗?
Y是,N否"<cin>>c;
}
}
voidtjyz()//添加业主函数
{
for(c='y';c=='y'||c=='Y';)
{
cout<<"请输入要添加的业主信息"<yz_[h++].set();
system("cls");bcsj();dqsj();
cout<<"还要添加其他业主吗?
Y是,N否"<cin>>c;
}
}
voidscyz()//删除业主函数
{
intu=0;
for(c='y';c=='y'||c=='Y';)
{
cout<<"请输要删除的业主ID";
cin>>M;
for(j=0;j{
u=yz_[j].qrID(M);
if(u==1)
{
yz_[j]=yz_[--h];
system("cls");bcsj();dqsj();
break;
}
}
if(u==0)
{cout<<"此业主ID不存在"<cout<<"还要删除其他业主吗?
Y是,N否"<cin>>c;
}
}
voidxgglryxx()//修改管理人员信息函数
{
intu=0;
for(c='y';c=='y'||c=='Y';)
{
cout<<"请输入要修改的管理人员ID";
cin>>M;
for(i=0;i
{
u=glry_[i].qrID(M);
if(u){glry_[i].xg();system("cls");bcsj();dqsj();break;}
}
if(u==0)
{cout<<"此管理人员ID不存在"<cout<<"还要修改其他管理人员信息吗?
Y是,N否"<cin>>c;
}
}
voidtjglry()//添加管理人员函数
{
for(c='y';c=='y'||c=='Y';)
{
cout<<"请输入要添加的管理人员信息"<glry_[h2++].set();
system("cls");bcsj();dqsj();
cout<<"还要添加其他管理人员吗?
Y是,N否"<cin>>c;
}
}
voidscglry()//删除管理人员函数
{
intu=0;
for(c='y';c=='y'||c=='Y';)
{
cout<<"请输要删除的管理人员ID";
cin>>M;
for(i=0;i
{
u=glry_[i].qrID(M);
if(u==1)
{glry_[i]=glry_[--h2];system("cls");bcsj();dqsj();break;}
}
if(u==0)
{cout<<"此管理人员ID不存在"<cout<<"还要删除其他管理人员吗?
Y是,N否"<cin>>c;
}
}
voidtcxt()//退出系统
{
cout<<"\t\t\t********************************"<cout<<"\t\t\t**"<cout<<"\t\t\t*正在退出物业管理系统*"<cout<<"\t\t\t**"<cout<<"\t\t\t********************************"<cout<<"\t\t\t\t\t\t\t\t版权所有"<exit
(1);
}
voidxzcz()//选择操作函数
{
charxz;//xz选择符
system("cls");dqsj();
cout<<"\n0添加缴费记录"<cout<<"1业主缴费查询2日期缴费查询3物业公司开销统计"<cout<<"请选择操作:
4修改业主信息5添加业主6删除业主"<cout<<"7修改管理人员信息8添加管理人员9删除管理人员.退出\n"<cin>>xz;
switch(xz)
{
default:
cout<<"无此操作选项"<case'0':
tjfyjl();break;//添加缴费记录
ca