房屋租售管理系统c程序设计.docx
《房屋租售管理系统c程序设计.docx》由会员分享,可在线阅读,更多相关《房屋租售管理系统c程序设计.docx(53页珍藏版)》请在冰豆网上搜索。
房屋租售管理系统c程序设计
程序设计报告
(2012/2013学年第一学期)
题目:
房屋租售管理系统
专业
学生姓名
班级学号
指导教师
指导单位
日期2012.11.02
评分细则
评分项
优秀
良好
中等
差
遵守机房规章制度
上机时地表现
学习态度
程序准备情况
程序设计能力
团队合作精神
课题功能实现情况
算法设计合理性
用户界面设计
报告书写认真程度
内容详实程度
文字表达熟练程度
回答问题准确度
简短评语
教师签名:
年月日
评分等级
备注
评分等级有五种:
优秀、良好、中等、及格、不及格
房屋租售管理系统
一、课题内容和要求
该系统要求建立某房屋租售中介管理系统,并实现输入口令进入系统、基础信息建立、客户统计、房源排序、销售业绩及佣金收入统计、相关文件存盘功能.
通过此课题,熟练掌握文件、数组、指针地各种操作,以及一些算法思想地应用.
二、需求分析
模块一:
基础信息管理,该模块实现员工、楼盘及门店信息地查看与建立;
模块二:
客户管理,该模块实现客户信息地建立、查看与各类客户数量统计;
模块三:
房源查看,该模块实现房源信息按租金升序、售金升序、租金降序、售金降序显示;
模块四:
统计分析,该模块实现某一指定时间段内销售情况及佣金收入统计;
模块五:
保存文件,该模块实现各类相关文件地保存;
模块六:
退出系统,该模块实现本系统地退出;
三、概要设计
N
Y
123450
1.基础信息管理:
包括楼盘信息查询、员工信息查询、门店信息查询、楼盘信息建立、员工信息建立、门店信息建立、返回上级菜单几项功能;
2.客户管理:
包括客户信息查询、客户信息建立、客户数量统计及返回上级菜单几项功能;
3.房源查看:
包括按租金升序显示房源信息、按租金降序显示房源信息、按售金升序显示房源信息、按售金降序显示房源信息及返回上级菜单几项功能;
4.统计分析:
包括销售情况及佣金收入统计及返回上级菜单几项功能;
5.保存文件:
保存所有相关文件;
6.退出系统:
退出房屋租售管理系统.
四、源程序代码
#include
#include
#include
#include
#include
#include
usingnamespacestd。
classDate//定义日期类
{
protected:
intyear。
//年
intmonth。
//月
intday。
//日
public:
voidSet(int,int,int)。
//设置日期
voidInput()。
//输入日期
booloperator<(Dateob)const。
//重载<运算,实现日期比较
intGetYear()。
//返回年
intGetMonth()。
//返回月
intGetDay()。
//返回日
}。
//Date类函数地实现
voidDate:
:
Set(inty,intm,intd)
{
year=y。
month=m。
day=d。
}
voidDate:
:
Input()
{
cout<<"年:
"。
cin>>year。
cout<<"月:
"。
cin>>month。
cout<<"日:
"。
cin>>day。
}
boolDate:
:
operator<(Dateob)const
{
if(yearreturntrue。
else
if(year==ob.year)
if(monthreturntrue。
else
if(month==ob.month)
if(dayreturntrue。
else
returnfalse。
else
returnfalse。
else
returnfalse。
}
intDate:
:
GetYear()
{
returnyear。
}
intDate:
:
GetMonth()
{
returnmonth。
}
intDate:
:
GetDay()
{
returnday。
}
classFloor//定义楼盘类
{
protected:
stringNum。
//楼盘编号
doubleSize。
//楼盘面积
doubleHire。
//楼盘租金
doubleBuy。
//楼盘售金
boolState。
//楼盘状态(1-售,0-租)
DateDa。
//租出/售出日期
public:
Floor(stringnu,doublesi,doublehi,doublebu,boolst,inty,intm,intd)。
//构造函数
voidInput()。
//输入单个楼盘信息
booloperator<(Floorob)const。
//重载<运算,set容器要求元素之间满足该关系
stringGetNum()。
//返回楼盘编号
doubleGetSize()。
//返回楼盘面积
doubleGetHire()。
//返回楼盘租金
doubleGetBuy()。
//返回楼盘售金
boolGetState()。
//返回楼盘状态
DateGetDa()。
//返回楼盘租出/售出日期
}。
//Floor类函数地实现
Floor:
:
Floor(stringnu,doublesi,doublehi,doublebu,boolst,inty,intm,intd)
{
Num=nu。
Size=si。
Hire=hi。
Buy=bu。
State=st。
Da.Set(y,m,d)。
}
voidFloor:
:
Input()
{
cout<<"楼盘编号:
"。
cin>>Num。
cout<cout<<"楼盘面积:
"。
cin>>Size。
cout<cout<<"楼盘租金:
"。
cin>>Hire。
cout<cout<<"楼盘售金:
"。
cin>>Buy。
cout<cout<<"楼盘状态(0-租;1-售):
"。
cin>>State。
cout<cout<<"租出/售出日期:
\n"。
Da.Input()。
}
boolFloor:
:
operator<(Floorob)const
{
if(Numreturntrue。
else
returnfalse。
}
stringFloor:
:
GetNum()
{
returnNum。
}
doubleFloor:
:
GetSize()
{
returnSize。
}
doubleFloor:
:
GetHire()
{
returnHire。
}
doubleFloor:
:
GetBuy()
{
returnBuy。
}
boolFloor:
:
GetState()
{
returnState。
}
DateFloor:
:
GetDa()
{
returnDa。
}
classStaff//定义员工类
{
protected:
stringNumber。
//员工编号
stringName。
//员工姓名
charSex。
//员工性别
stringTel。
//员工电话
doubleCommission。
//员工工资
public:
Staff(stringnum,stringna,charse,stringte,doubleco)。
//构造函数
voidInput()。
//输入员工信息
booloperator<(Staffob)const。
//重载<运算,set容器要求元素之间满足该关系
stringGetNumber()。
//返回员工编号
stringGetName()。
//返回员工姓名
charGetSex()。
//返回员工性别
stringGetTel()。
//返回员工电话
doubleGetCommission()。
//返回员工工资
}。
//Staff类函数地实现
Staff:
:
Staff(stringnum,stringna,charse,stringte,doubleco)
{
Number=num。
Name=na。
Sex=se。
Tel=te。
Commission=co。
}
voidStaff:
:
Input()
{
cout<<"员工姓名:
"。
cin>>Name。
cout<<"员工编号:
"。
cin>>Number。
cout<<"员工性别(\"f\"或\"m\"):
"。
cin>>Sex。
cout<<"员工电话:
"。
cin>>Tel。
cout<<"员工工资:
"。
cin>>Commission。
}
boolStaff:
:
operator<(Staffob)const
{
if(Numberreturntrue。
else
returnfalse。
}
stringStaff:
:
GetNumber()
{
returnNumber。
}
stringStaff:
:
GetName()
{
returnName。
}
charStaff:
:
GetSex()
{
returnSex。
}
stringStaff:
:
GetTel()
{
returnTel。
}
doubleStaff:
:
GetCommission()
{
returnCommission。
}
classStore//定义门店类
{
protected:
stringStoNum。
//门店编号
intStaffNum。
//员工数量
intFloorNum。
//负责楼盘数量
public:
Store(stringsn,intst,intfl)。
//构造函数
voidInput()。
//输入门店信息
boolStore:
:
operator<(Storeob)const。
//重载<运算,set容器要求元素之间满足该关系
stringGetStoNum()。
//返回门店编号
intGetStaffNum()。
//返回员工数量
intGetFloorNum()。
//返回负责楼盘数量
}。
//Store类函数地实现
Store:
:
Store(stringsn,intst,intfl)
{
StoNum=sn。
StaffNum=st。
FloorNum=fl。
}
voidStore:
:
Input()
{
cout<<"门店编号:
"。
cin>>StoNum。
cout<cout<<"员工数量:
"。
cin>>StaffNum。
cout<cout<<"负责楼盘数量:
"。
cin>>FloorNum。
cout<}
boolStore:
:
operator<(Storeob)const
{
if(StoNumreturntrue。
else
returnfalse。
}
stringStore:
:
GetStoNum()
{
returnStoNum。
}
intStore:
:
GetStaffNum()
{
returnStaffNum。
}
intStore:
:
GetFloorNum()
{
returnFloorNum。
}
classClient//定义客户类
{
protected:
stringname。
//客户姓名
stringnumber。
//客户编号
charsex。
//客户性别
stringtel。
//客户电话
inttype。
//客户类别
public:
Client(stringna,stringnu,charse,stringte,intty)。
//构造函数
voidInput()。
//输入客户信息
boolClient:
:
operator<(Clientob)const。
//重载<运算,set容器要求元素之间满足该关系
stringGetName()。
//返回客户姓名
stringGetNumber()。
//返回客户编号
charGetSex()。
//返回客户性别
stringGetTel()。
//返回客户电话
intGetType()。
//返回客户类型
}。
//Client类函数实现
Client:
:
Client(stringna,stringnu,charse,stringte,intty)
{
name=na。
number=nu。
sex=se。
tel=te。
type=ty。
}
voidClient:
:
Input()
{
cout<<"客户姓名:
"。
cin>>name。
cout<<"客户编号:
"。
cin>>number。
cout<<"客户性别(\"f\"或\"m\"):
"。
cin>>sex。
cout<<"客户电话:
"。
cin>>tel。
cout<<"客户类型(1-求租客户。
2-求售客户。
3-出租客户。
4-出售客户):
"。
cin>>type。
}
boolClient:
:
operator<(Clientob)const
{
if(numberreturntrue。
else
returnfalse。
}
stringClient:
:
GetName()
{
returnname。
}
stringClient:
:
GetNumber()
{
returnnumber。
}
charClient:
:
GetSex()
{
returnsex。
}
stringClient:
:
GetTel()
{
returntel。
}
intClient:
:
GetType()
{
returntype。
}
classAdmin
{
protected:
setfl。
//Floor类数据集
setsta。
//Staff类数据集
setsto。
//Store类数据集
setcl。
//Client类数据集
public:
Admin()。
//构造函数
voidReadFloor()。
//读取楼盘文件
voidReadStaff()。
//读取员工文件
voidReadStore()。
//读取门店文件
voidReadClient()。
//读取客户文件
voidShowFloorInfo()。
//显示所有楼盘信息
voidShowStaffInfo()。
//显示所有员工信息
voidAddFloor()。
//添加楼盘信息
voidAddStaff()。
//添加员工信息
voidShowStoreInfo()。
//显示所有门店信息
voidAddStore()。
//添加门店信息
voidShowClientInfo()。
//显示所有客户信息
voidAddClient()。
//添加客户信息
voidHireRise()。
//按租金升序显示所有楼盘信息
voidHireFall()。
//按租金降序显示所有楼盘信息
voidBuyRise()。
//按售金升序显示所有楼盘信息
voidBuyFall()。
//按售金降序显示所有楼盘信息
voidSellSta()。
//某段时间内销售及佣金收入统计
voidClientSta()。
//客户信息统计
voidSaveFloor()。
//楼盘信息存档
voidSaveStaff()。
//员工信息存档
voidSaveStore()。
//门店信息存档
voidSaveClient()。
//客户信息存档
}。
Admin:
:
Admin()//定义对象地同时读取文件
{
ReadFloor()。
ReadStaff()。
ReadStore()。
ReadClient()。
}
voidAdmin:
:
ReadFloor()
{
ifstreamin("C:
\\FloorInfo.txt")。
if(!
in)
{
cout<<"Cannotopenthefile:
\"FloorInfo.txt\"\n"。
return。
}
stringNum。
doubleSize。
doubleHire。
doubleBuy。
boolState。
inty。
intm。
intd。
set:
:
iteratorp=fl.begin()。
in>>Num>>Size>>Hire>>Buy>>State>>y>>m>>d。
while(!
in.eof())
{
Floorob(Num,Size,Hire,Buy,State,y,m,d)。
fl.insert(ob)。
in>>Num>>Size>>Hire>>Buy>>State>>y>>m>>d。
}
in.close()。
return。
}
voidAdmin:
:
ReadStaff()
{
ifstreamin("C:
\\StaffInfo.txt")。
if(!
in)
{
cout<<"Cannotopenthefile:
\"StaffInfo.txt\"\n"。
return。
}
stringNumber。
stringName。
charSex。
stringTel。
doubleCommission。
set:
:
iteratorp=sta.begin()。
in>>Number>>Name>>Sex>>Tel>>Commission。
while(!
in.eof())
{
Staffob(Number,Name,Sex,Tel,Commission)。
sta.insert(ob)。
in>>Number>>Name>>Sex>>Tel>>Commission。
}
in.close()。
return。
}
voidAdmin:
:
ReadStore()
{
ifstreamin("C:
\\StoreInfo.txt")。
if(!
in)
{
cout<<"Cannotopenthefile:
\"StoreInfo.txt\"\n"。
return。
}
stringStoNum。
intStaffNum。
intFloorNum。
set:
:
iteratorp=sto.begin()。
in>>StoNum>>StaffNum>>FloorNum。
while(!
in.eof())
{
Storeob(StoNum,StaffNum,FloorNum)。
sto.insert(ob)。
in>>StoNum>>StaffNum>>FloorNum。
}
in.close()。
return。
}
voidAdmin:
:
ReadClient()
{
ifstreamin("C:
\\ClientInfo.txt")。
if(!
in)
{
cout<<"Cannotopenthefile:
\"ClientInfo.txt\"\n"。
return。
}
stringname。
stringnumber。
charsex。
stringtel。
inttype。
set:
:
iteratorp=cl.begin()。
in>>number>>name>>sex>>tel>>type。
while(!
in.eof())
{
Clientob(name,number,sex,tel,type)。
cl.insert(ob)。
in>>number>>name>>sex>>tel>>type。
}
in.close()。
return。
}
voidAdmin:
:
ShowFloorInfo()
{
system("cls")。
cout<<"楼盘编号楼盘面积楼盘租金楼盘售金楼盘状态租出/售出日期\n"。
set:
:
iteratorp=fl.begin()。
while(p!
=fl.end())
{
cout<<""<GetNum()<<"\t"<GetSize()<<"\t"<GetHire()<<"\t"<GetBuy()<<"\t"。
if(p->GetState())
cout<<"售\t"。
else
cout<<"租\t"。
Datebi=p->GetDa()。
cout<p++。
}
}
voidAdmin:
:
ShowStaffInfo