程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
题 目: 房屋租售管理系统
评 分 细 则
评分项
优秀
良好
中等
差
遵守机房规章制度
上机时的
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
现
学习态度
程序准备情况
程序设计能力
团队合作精神
课题功能实现情况
算法设计合理性
用户界面设计
报告书写认真程度
内容详实程度
文字表达熟练程度
回答问题准确度
简 短 评 语
教师签名:
年 月 日
评分等级
备注
评分等级有五种:优秀、良好、中等、及格、不及格
房屋租售管理系统
1、 课题内容和要求
该系统要求建立某房屋租售中介管理系统,并实现输入口令进入系统、基础信息建立、客户统计、房源排序、销售业绩及佣金收入统计、相关文件存盘功能。
通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些算法思想的应用。
二、需求
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
模块一:基础信息管理,该模块实现员工、楼盘及门店信息的查看与建立;
模块二:客户管理,该模块实现客户信息的建立、查看与各类客户数量统计;
模块三:房源查看,该模块实现房源信息按租金升序、售金升序、租金降序、售金降序显示;
模块四:统计分析,该模块实现某一指定时间段内销售情况及佣金收入统计;
模块五:保存文件,该模块实现各类相关文件的保存;
模块六:退出系统,该模块实现本系统的退出;
三、概要设计
N
Y
1
2
3
4
5
0
1.基础信息管理:包括楼盘信息查询、员工信息查询、门店信息查询、楼盘信息建立、员工信息建立、门店信息建立、返回上级菜单几项功能;
2.客户管理:包括客户信息查询、客户信息建立、客户数量统计及返回上级菜单几项功能;
3.房源查看:包括按租金升序显示房源信息、按租金降序显示房源信息、按售金升序显示房源信息、按售金降序显示房源信息及返回上级菜单几项功能;
4.统计分析:包括销售情况及佣金收入统计及返回上级菜单几项功能;
5.保存文件:保存所有相关文件;
6.退出系统:退出房屋租售管理系统。
四、源程序代码
#include
#include
#include
#include
#include
#include
using namespace std;
class Date //定义日期类
{
protected:
int year; //年
int month; //月
int day; //日
public:
void Set(int,int,int); //设置日期
void Input(); //输入日期
bool operator<(Date ob)const; //重载<运算,实现日期比较
int GetYear(); //返回年
int GetMonth(); //返回月
int GetDay(); //返回日
};
//Date类函数的实现
void Date::Set(int y,int m,int d)
{
year=y;
month=m;
day=d;
}
void Date::Input()
{
cout<<"年: ";
cin>>year;
cout<<"月: ";
cin>>month;
cout<<"日: ";
cin>>day;
}
bool Date::operator<(Date ob)const
{
if(year>Num;
cout<>Size;
cout<>Hire;
cout<>Buy;
cout<>State;
cout<>Name;
cout<<"员工编号: ";
cin>>Number;
cout<<"员工性别(\"f\"或\"m\"): ";
cin>>Sex;
cout<<"员工电话: ";
cin>>Tel;
cout<<"员工工资: ";
cin>>Commission;
}
bool Staff::operator<(Staff ob)const
{
if(Number>StoNum;
cout<>StaffNum;
cout<>FloorNum;
cout<>name;
cout<<"客户编号: ";
cin>>number;
cout<<"客户性别(\"f\"或\"m\"): ";
cin>>sex;
cout<<"客户电话: ";
cin>>tel;
cout<<"客户类型(1-求租客户;2-求售客户;3-出租客户;4-出售客户): ";
cin>>type;
}
bool Client::operator<(Client ob)const
{
if(number fl; //Floor类数据集
set sta; //Staff类数据集
set sto; //Store类数据集
set cl; //Client类数据集
public:
Admin(); //构造函数
void ReadFloor(); //读取楼盘文件
void ReadStaff(); //读取员工文件
void ReadStore(); //读取门店文件
void ReadClient(); //读取客户文件
void ShowFloorInfo(); //显示所有楼盘信息
void ShowStaffInfo(); //显示所有员工信息
void AddFloor(); //添加楼盘信息
void AddStaff(); //添加员工信息
void ShowStoreInfo(); //显示所有门店信息
void AddStore(); //添加门店信息
void ShowClientInfo(); //显示所有客户信息
void AddClient(); //添加客户信息
void HireRise(); //按租金升序显示所有楼盘信息
void HireFall(); //按租金降序显示所有楼盘信息
void BuyRise(); //按售金升序显示所有楼盘信息
void BuyFall(); //按售金降序显示所有楼盘信息
void SellSta(); //某段时间内销售及佣金收入统计
void ClientSta(); //客户信息统计
void SaveFloor(); //楼盘信息存档
void SaveStaff(); //员工信息存档
void SaveStore(); //门店信息存档
void SaveClient(); //客户信息存档
};
Admin::Admin() //定义对象的同时读取文件
{
ReadFloor();
ReadStaff();
ReadStore();
ReadClient();
}
void Admin::ReadFloor()
{
ifstream in("C:\\FloorInfo.txt");
if(!in)
{
cout<<"Cannot open the file:\"FloorInfo.txt\"\n";
return ;
}
string Num;
double Size;
double Hire;
double Buy;
bool State;
int y;
int m;
int d;
set::iterator p=fl.begin();
in>>Num>>Size>>Hire>>Buy>>State>>y>>m>>d;
while(!in.eof())
{
Floor ob(Num,Size,Hire,Buy,State,y,m,d);
fl.insert(ob);
in>>Num>>Size>>Hire>>Buy>>State>>y>>m>>d;
}
in.close();
return;
}
void Admin::ReadStaff()
{
ifstream in("C:\\StaffInfo.txt");
if(!in)
{
cout<<"Cannot open the file:\"StaffInfo.txt\"\n";
return ;
}
string Number;
string Name;
char Sex;
string Tel;
double Commission;
set::iterator p=sta.begin();
in>>Number>>Name>>Sex>>Tel>>Commission;
while(!in.eof())
{
Staff ob(Number,Name,Sex,Tel,Commission);
sta.insert(ob);
in>>Number>>Name>>Sex>>Tel>>Commission;
}
in.close();
return;
}
void Admin::ReadStore()
{
ifstream in("C:\\StoreInfo.txt");
if(!in)
{
cout<<"Cannot open the file:\"StoreInfo.txt\"\n";
return ;
}
string StoNum;
int StaffNum;
int FloorNum;
set::iterator p=sto.begin();
in>>StoNum>>StaffNum>>FloorNum;
while(!in.eof())
{
Store ob(StoNum,StaffNum,FloorNum);
sto.insert(ob);
in>>StoNum>>StaffNum>>FloorNum;
}
in.close();
return;
}
void Admin::ReadClient()
{
ifstream in("C:\\ClientInfo.txt");
if(!in)
{
cout<<"Cannot open the file:\"ClientInfo.txt\"\n";
return ;
}
string name;
string number;
char sex;
string tel;
int type;
set::iterator p=cl.begin();
in>>number>>name>>sex>>tel>>type;
while(!in.eof())
{
Client ob(name,number,sex,tel,type);
cl.insert(ob);
in>>number>>name>>sex>>tel>>type;
}
in.close();
return;
}
void Admin::ShowFloorInfo()
{
system("cls");
cout<<"楼盘编号 楼盘面积 楼盘租金 楼盘售金 楼盘状态 租出/售出日期\n";
set::iterator p=fl.begin();
while(p!=fl.end())
{
cout<<" "<GetNum()<<"\t "<GetSize()<<"\t "<GetHire()<<"\t "<GetBuy()<<"\t ";
if(p->GetState())
cout<<"售\t ";
else
cout<<"租\t ";
Date bi=p->GetDa();
cout<::iterator p=sta.begin();
while(p!=sta.end())
{
cout<<" "<GetNumber()<<"\t\t"<GetName()<<"\t\t ";
if(p->GetSex()=='f')
cout<<"男\t\t";
else
cout<<"女\t\t";
cout<GetTel()<<"\t "<GetCommission()<<"\n";
p++;
}
}
void Admin::ShowStoreInfo()
{
system("cls");
cout<<"门店编号 员工数量 负责楼盘数量\n";
set::iterator p=sto.begin();
while(p!=sto.end())
{
cout<<" "<GetStoNum()<<"\t "<GetStaffNum()<<"\t "<GetFloorNum()<::iterator p=cl.begin();
while(p!=cl.end())
{
cout<<" "<GetNumber()<<"\t "<GetName()<<"\t";
if(p->GetSex()=='f')
cout<<"男 ";
else
cout<<"女 ";
cout<GetTel()<<"\t";
if(p->GetType()==1)
cout<<"求租客户\n";
else if(p->GetType()==2)
cout<<"求售客户\n";
else if(p->GetType()==3)
cout<<"出租客户\n";
else
cout<<"出售客户\n";
p++;
}
}
void Admin::AddFloor()
{
char ch='n';
do
{
Floor ob("1",1,1,1,1,1,1,1);
ob.Input();
fl.insert(ob);
cout<<"继续输入?(y/n)"<>ch;
}while(ch=='y');
}
void Admin::AddStaff()
{
char ch='n';
do
{
Staff ob("1","1",'1',"1",1);
ob.Input();
sta.insert(ob);
cout<<"继续输入?(y/n)"<>ch;
}while(ch=='y');
}
void Admin::AddStore()
{
char ch='n';
do
{
Store ob("1",1,1);
ob.Input();
sto.insert(ob);
cout<<"继续输入?(y/n)"<>ch;
}while(ch=='y');
}
void Admin::AddClient()
{
char ch='n';
do
{
Client ob("1","1",'1',"1",1);
ob.Input();
cl.insert(ob);
cout<<"继续输入?(y/n)"<>ch;
}while(ch == 'y');
}
void Admin::HireRise()
{
int count=0;
int i;
double r=0;
system("cls");
cout<<"楼盘编号 楼盘面积 楼盘租金 楼盘售金 楼盘状态 租出/售出日期\n";
set::iterator p=fl.begin();
while(p!=fl.end()) //count用于楼盘计数
{
count=count+1;
p++;
}
for(i=0;iGetHire()GetHire()) //提取大于上一轮min值的最小租金
min=p->GetHire();
p++;
}
r=min; //r用于记录min值
p=fl.begin();
while(p!=fl.end())
{
if(min==p->GetHire()) //输出本轮最小租金的楼盘信息
{
cout<<" "<GetNum()<<"\t "<GetSize()<<"\t "<GetHire()<<"\t "<GetBuy()<<"\t ";
if(p->GetState())
cout<<"售\t ";
else
cout<<"租\t ";
Date bi=p->GetDa();
cout<::iterator p=fl.begin();
while(p!=fl.end())
{
count=count+1;
p++;
}
double r=100000000;
for(i=0;iGetHire()&&r>p->GetHire())
max=p->GetHire();
p++;
}
r=max;
p=fl.begin();
while(p!=fl.end())
{
if(max==p->GetHire())
{
cout<<" "<GetNum()<<"\t "<GetSize()<<"\t "<GetHire()<<"\t "<GetBuy()<<"\t ";
if(p->GetState())
cout<<"售\t ";
else
cout<<"租\t ";
Date bi=p->GetDa();
cout<::iterator p=fl.begin();
while(p!=fl.end())
{
count=count+1;
p++;
}
double r=0;
for(i=0;ip->GetBuy()&&rGetBuy())
min=p->GetBuy();
p++;
}
r=min;
p=fl.begin();
while(p!=fl.end())
{
if(min==p->GetBuy())
{
cout<<" "<GetNum()<<"\t "<GetSize()<<"\t "<GetHire()<<"\t "<GetBuy()<<"\t ";
if(p->GetState())
cout<<"售\t ";
else
cout<<"租\t ";
Date bi=p->GetDa();
cout<::iterator p=fl.begin();
while(p!=fl.end())
{
count=count+1;
p++;
}
double r=100000000;
for(i=0;iGetBuy()&&r>p->GetBuy())
max=p->GetBuy();
p++;
}
r=max;
p=fl.begin();
while(p!=fl.end())
{
if(max==p->GetBuy())
{
cout<<" "<GetNum()<<"\t "<GetSize()<<"\t "<GetHire()<<"\t "<GetBuy()<<"\t ";
if(p->GetState())
cout<<"售\t ";
else
cout<<"租\t ";
Date bi=p->GetDa();
cout<::iterator p=fl.begin();
while(p!=fl.end())
{
if(FirstDayGetDa()&&p->GetDa()GetState())
{
money=money+p->GetBuy();
sc=sc+1;
}
else
{
money=money+p->GetHire();
hc=hc+1;
}
p++;
}
cout<<"查询时间段内共\n";
cout<<"售出: "<::iterator p=cl.begin();
while(p!=cl.end())
{
switch(p->GetType())
{
case 1:qz=qz+1;all=all+1;break;
case 2:qs=qs+1;all=all+1;break;
case 3:cz=cz+1;all=all+1;break;
case 4:cs=cs+1;all=all+1;break;
}
p++;
}
cout<<"求租客户数量: "<::iterator p=fl.begin();
while(p!=fl.end())
{
out<GetNum()<<" "<GetSize()<<" "<GetHire()<<" "<GetBuy()<<" "<GetState()<<" ";
Date bi=p->GetDa();
out<::iterator p=sta.begin();
while(p !=sta.end())
{
out<GetNumber()<<" "<GetName()<<" "<GetSex()<<" "<GetTel()<<" "<GetCommission()<::iterator p=sto.begin();
while(p!=sto.end())
{
out<GetStoNum()<<" "<GetStaffNum()<<" "<GetFloorNum()<::iterator p=cl.begin();
while(p!=cl.end())
{
out<GetNumber()<<" "<GetName()<<" "<GetSex()<GetTel()<<" "<GetType()<>key;
if(key=="1234")
{
system("cls");
cout<<"***********************欢迎进入房屋租售管理系统***********************";
}
else
{
cout<<"密码错误,请重新输入!"<>no;
switch(no)
{
case 1:goto REPEAT1;
case 2:goto REPEAT2;
case 3:goto REPEAT3;
case 4:goto REPEAT4;
case 5:inter.SaveFloor();inter.SaveStaff();inter.SaveStore();inter.SaveClient();
cout<<"----------------------------文件保存成功!----------------------------";
goto REPEAT00;
case 0:exit(0);
default:cout<<"无对应操作!";goto REPEAT00;
}
REPEAT1:
system("cls");
cout<<"=============基础信息管理============="<>bno;
switch(bno)
{
case 1:inter.ShowFloorInfo();break;
case 2:inter.ShowStaffInfo();break;
case 3:inter.ShowStoreInfo();break;
case 4:inter.AddFloor();break;
case 5:inter.AddStaff();break;
case 6:inter.AddStore();break;
case 0:goto REPEAT00;
default:cout<<"无对应操作!";goto REPEAT1;
}
cout<<"按enter键返回主菜单";
getchar();getchar();
goto REPEAT1;
REPEAT2:
system("cls");
cout<<"=============客户信息管理============="<>cno;
switch(cno)
{
case 1:inter.ShowClientInfo();break;
case 2:inter.AddClient();break;
case 3:inter.ClientSta();break;
case 0:goto REPEAT00;
default:cout<<"无对应操作!";goto REPEAT2;
}
cout<<"按enter键返回主菜单";
getchar();getchar();
goto REPEAT2;
REPEAT3:
system("cls");
cout<<"=============房源信息管理============="<>hno;
switch(hno)
{
case 1:inter.HireRise();break;
case 2:inter.HireFall();break;
case 3:inter.BuyRise();break;
case 4:inter.BuyFall();break;
case 0:goto REPEAT00;
default:cout<<"无对应操作!";goto REPEAT3;
}
cout<<"按enter键返回主菜单";
getchar();getchar();
goto REPEAT3;
REPEAT4:
system("cls");
cout<<"=============统计分析============="<>hno;
switch(hno)
{
case 1:inter.SellSta();break;
case 0:goto REPEAT00;
default:cout<<"无对应操作!";goto REPEAT4;
}
cout<<"按enter键返回主菜单";
getchar();getchar();
goto REPEAT4;
return 0;
}
5、 测试数据及其结果分析
测试数据应保存在c盘目录下,否则在添加数据时系统会自行创建新文件。
输入正确后进入系统,否则继续输入:
输入1,回车后进入基础信息管理界面:
而后可进行一系列操作,界面如下:
楼盘信息建立
楼盘信息查看
客户信息建立
客户信息查看
门店信息建立
门店信息查看
在主界面按2,回车后可进入客户信息管理界面:
客户信息管理界面
一系列操作界面如下:
客户信息建立
客户信息查看
各类客户数量统计
主界面按3,回车后进入房源管理界面:
一系列操作结果如下:
租金升序显示房源信息
租金降序显示房源信息
售金升序显示房源信息
售金降序显示房源信息
主界面按4,回车后可进入统计分析界面:
按1回车后可对某事件段内销售状况与佣金收入作出统计:
主界面按5回车后可对本次系统所有相关文件进行保存;
按0回车后退出系统。
六、调试过程中的问题
问题:
(1)本程序涉及到的类比较多,数据存储与读取比较繁琐,容易出错;
(2)数据查询时的
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
控制问题,需一点一点修改;
(3)编写房源排序函数时由于没有考虑周全,调试时出现问题;
(4)实现“按enter返回主界面”这一操作时出现问题;
(5)楼盘信息涉及日期,在两类组合时出现不少问题;
(6)日期比较函数用重载“<”实现,中途出现小错误;
(7)用set容器实现数据集,出现错误;
(8)其他细节错误。
程序改进设想:
运用类的组合与继承等手段加强各类数据之间的联系,优化后续函数编写,并且实现更多更能。
七、程序设计总结
课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C++语言又是最常见,功能最强大的一种高级语言,因此做好C++语言课程设计是十分必要的。
通过几天的课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次真真的做程序设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说类,链表,指针……通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。
开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多功能上的欠缺和漏洞,可我还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C++语言的一次实践作业,自己进步的证明。
在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前!
开始
输入密码
密码正确
确
进入系统
统计分析
保存文件
退出系统
房源查看
客户管理
基础信息管理
结束
-