房屋租售管理系统c程序设计_第1页
房屋租售管理系统c程序设计_第2页
房屋租售管理系统c程序设计_第3页
房屋租售管理系统c程序设计_第4页
房屋租售管理系统c程序设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计报告题 目: 房屋租售管理系统 评 分 细 则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简 短 评 语教师签名: 年 月 日评分等级备注评分等级有五种:优秀、良好、中等、及格、不及格房屋租售管理系统一、 课题内容和要求 该系统要求建立某房屋租售中介管理系统,并实现输入口令进入系统、基础信息建立、客户统计、房源排序、销售业绩及佣金收入统计、相关文件存盘功能。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些算法思想的应用。二、需求分析

2、模块一:基础信息管理,该模块实现员工、楼盘及门店信息的查看与建立;模块二:客户管理,该模块实现客户信息的建立、查看与各类客户数量统计;模块三:房源查看,该模块实现房源信息按租金升序、售金升序、租金降序、售金降序显示;模块四:统计分析,该模块实现某一指定时间段内销售情况及佣金收入统计;模块五:保存文件,该模块实现各类相关文件的保存;模块六:退出系统,该模块实现本系统的退出;三、概要设计 开始输入密码密码正确确ny进入系统统计分析保存文件退出系统房源查看客户管理基础信息管理123450结束1.基础信息管理:包括楼盘信息查询、员工信息查询、门店信息查询、楼盘信息建立、员工信息建立、门店信息建立、返回

3、上级菜单几项功能;2.客户管理:包括客户信息查询、客户信息建立、客户数量统计及返回上级菜单几项功能;3.房源查看:包括按租金升序显示房源信息、按租金降序显示房源信息、按售金升序显示房源信息、按售金降序显示房源信息及返回上级菜单几项功能;4.统计分析:包括销售情况及佣金收入统计及返回上级菜单几项功能;5.保存文件:保存所有相关文件;6退出系统:退出房屋租售管理系统。四、源程序代码 #include<iostream>#include<iomanip>#include<fstream>#include<string>#include<stdli

4、b.h>#include<set>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

5、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)constif(year<ob.year)return true;else if(year=ob.year)if(month<ob.month)return tru

6、e;else if(month=ob.month)if(day<ob.day)return true;elsereturn false;else return false;elsereturn false;int date:getyear()return year;int date:getmonth()return month;int date:getday()return day;class floor /定义楼盘类protected:string num; /楼盘编号 double size; /楼盘面积 double hire; /楼盘租金 double buy; /楼盘售金 bo

7、ol state; /楼盘状态(1-售,0-租)date da; /租出/售出日期public:floor(string nu,double si,double hi,double bu,bool st,int y,int m,int d); /构造函数void input(); /输入单个楼盘信息 bool operator<(floor ob)const; /重载<运算,set容器要求元素之间满足该关系string getnum(); /返回楼盘编号double getsize(); /返回楼盘面积 double gethire(); /返回楼盘租金double getbuy(

8、); /返回楼盘售金bool getstate(); /返回楼盘状态date getda(); /返回楼盘租出/售出日期;/floor类函数的实现floor:floor(string nu,double si,double hi,double bu,bool st,int y,int m,int d)num=nu;size=si;hire=hi;buy=bu;state=st;da.set(y,m,d);void floor:input()cout<<"楼盘编号: "cin>>num;cout<<endl;cout<<&quo

9、t;楼盘面积: "cin>>size;cout<<endl;cout<<"楼盘租金: "cin>>hire;cout<<endl;cout<<"楼盘售金: "cin>>buy;cout<<endl;cout<<"楼盘状态(0-租;1-售): "cin>>state;cout<<endl;cout<<"租出/售出日期: n"da.input();bool floor

10、:operator<(floor ob)constif(num<ob.num)return true;elsereturn false;string floor:getnum()return num;double floor:getsize()return size;double floor:gethire()return hire;double floor:getbuy()return buy;bool floor:getstate()return state;date floor:getda()return da;class staff /定义员工类protected:stri

11、ng number;/员工编号 string name; /员工姓名char sex; /员工性别string tel; /员工电话 double commission; /员工工资public:staff(string num,string na,char se,string te,double co); /构造函数 void input(); /输入员工信息bool operator<(staff ob)const; /重载<运算,set容器要求元素之间满足该关系string getnumber(); /返回员工编号string getname(); /返回员工姓名char g

12、etsex(); /返回员工性别string gettel(); /返回员工电话double getcommission(); /返回员工工资;/staff类函数的实现staff:staff(string num,string na,char se,string te,double co)number=num;name=na;sex=se;tel=te;commission=co;void staff:input()cout<<"员工姓名: "cin>>name;cout<<"员工编号: "cin>>num

13、ber;cout<<"员工性别("f"或"m"): "cin>>sex;cout<<"员工电话: "cin>>tel;cout<<"员工工资: "cin>>commission;bool staff:operator<(staff ob)constif(number<ob.number)return true;elsereturn false;string staff:getnumber()return numb

14、er;string staff:getname()return name;char staff:getsex()return sex;string staff:gettel()return tel;double staff:getcommission()return commission;class store /定义门店类protected:string stonum; /门店编号int staffnum; /员工数量int floornum; /负责楼盘数量public:store(string sn,int st,int fl); /构造函数void input(); /输入门店信息bo

15、ol store:operator<(store ob)const; /重载<运算,set容器要求元素之间满足该关系string getstonum(); /返回门店编号int getstaffnum(); /返回员工数量int getfloornum(); /返回负责楼盘数量;/store类函数的实现store:store(string sn,int st,int fl)stonum=sn;staffnum=st;floornum=fl;void store:input()cout<<"门店编号: "cin>>stonum;cout&l

16、t;<endl;cout<<"员工数量: "cin>>staffnum;cout<<endl;cout<<"负责楼盘数量: "cin>>floornum;cout<<endl;bool store:operator<(store ob)constif(stonum<ob.stonum)return true;elsereturn false;string store:getstonum()return stonum;int store:getstaffnum()re

17、turn staffnum;int store:getfloornum()return floornum;class client /定义客户类protected:string name; /客户姓名string number; /客户编号char sex; /客户性别string tel; /客户电话int type; /客户类别public:client(string na,string nu,char se,string te,int ty); /构造函数void input(); /输入客户信息bool client:operator<(client ob)const; /重载&

18、lt;运算,set容器要求元素之间满足该关系string getname(); /返回客户姓名string getnumber(); /返回客户编号char getsex(); /返回客户性别string gettel(); /返回客户电话int gettype(); /返回客户类型;/client类函数实现client:client(string na,string nu,char se,string te,int ty)name=na;number=nu;sex=se;tel=te;type=ty;void client:input()cout<<"客户姓名: &qu

19、ot;cin>>name;cout<<"客户编号: "cin>>number;cout<<"客户性别("f"或"m"): "cin>>sex;cout<<"客户电话: "cin>>tel;cout<<"客户类型(1-求租客户;2-求售客户;3-出租客户;4-出售客户): "cin>>type;bool client:operator<(client ob)cons

20、tif(number<ob.number)return true;elsereturn false;string client:getname()return name;string client:getnumber()return number;char client:getsex()return sex;string client:gettel()return tel;int client:gettype()return type;class adminprotected:set<floor> fl; /floor类数据集set<staff> sta; /st

21、aff类数据集set<store> sto; /store类数据集set<client> cl; /client类数据集 public:admin(); /构造函数void readfloor(); /读取楼盘文件void readstaff(); /读取员工文件void readstore(); /读取门店文件void readclient(); /读取客户文件void showfloorinfo(); /显示所有楼盘信息void showstaffinfo(); /显示所有员工信息void addfloor(); /添加楼盘信息void addstaff(); /添

22、加员工信息void showstoreinfo(); /显示所有门店信息void addstore(); /添加门店信息void showclientinfo(); /显示所有客户信息void addclient(); /添加客户信息void hirerise(); /按租金升序显示所有楼盘信息void hirefall(); /按租金降序显示所有楼盘信息void buyrise(); /按售金升序显示所有楼盘信息void buyfall(); /按售金降序显示所有楼盘信息void sellsta(); /某段时间内销售及佣金收入统计void clientsta(); /客户信息统计void

23、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

24、"n"return ;string num;double size;double hire;double buy;bool state;int y;int m;int d;set<floor>: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>&

25、gt;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;doubl

26、e commission;set<staff>: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

27、()ifstream in("c:storeinfo.txt");if(!in)cout<<"cannot open the file:"storeinfo.txt"n"return ;string stonum; int staffnum; int floornum;set<store>:iterator p=sto.begin();in>>stonum>>staffnum>>floornum;while(!in.eof()store ob(stonum,staffnum,

28、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 ty

29、pe;set<client>: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"

30、);cout<<"楼盘编号 楼盘面积 楼盘租金 楼盘售金 楼盘状态 租出/售出日期n"set<floor>:iterator p=fl.begin();while(p!=fl.end()cout<<" "<<p->getnum()<<"t "<<p->getsize()<<"t "<<p->gethire()<<"t "<<p->getbuy()<

31、<"t "if(p->getstate()cout<<"售t "elsecout<<"租t "date bi=p->getda();cout<<bi.getyear()<<"-"<<bi.getmonth()<<"-"<<bi.getday()<<endl;p+;void admin:showstaffinfo()system("cls");cout<<

32、;"员工编号t员工姓名t员工性别t员工电话t员工工资n"set<staff>:iterator p=sta.begin();while(p!=sta.end()cout<<" "<<p->getnumber()<<"tt"<<p->getname()<<"tt "if(p->getsex()='f')cout<<"男tt"elsecout<<"女tt&quo

33、t;cout<<p->gettel()<<"t "<<p->getcommission()<<"n"p+;void admin:showstoreinfo()system("cls");cout<<"门店编号 员工数量 负责楼盘数量n"set<store>:iterator p=sto.begin();while(p!=sto.end()cout<<" "<<p->getstonum

34、()<<"t "<<p->getstaffnum()<<"t "<<p->getfloornum()<<endl;p+;void admin:showclientinfo()system("cls");cout<<"客户编号 客户姓名 客户性别 客户电话 客户类别n"set<client>:iterator p=cl.begin();while(p!=cl.end()cout<<" "&l

35、t;<p->getnumber()<<"t "<<p->getname()<<"t"if(p->getsex()='f')cout<<"男 "elsecout<<"女 "cout<<p->gettel()<<"t"if(p->gettype()=1)cout<<"求租客户n"else if(p->gettype()=2)co

36、ut<<"求售客户n"else if(p->gettype()=3)cout<<"出租客户n"elsecout<<"出售客户n"p+;void admin:addfloor()char ch='n'dofloor ob("1",1,1,1,1,1,1,1);ob.input();fl.insert(ob);cout<<"继续输入?(y/n)"<<endl;cin>>ch;while(ch='y&

37、#39;);void admin:addstaff()char ch='n'dostaff ob("1","1",'1',"1",1);ob.input();sta.insert(ob);cout<<"继续输入?(y/n)"<<endl;cin>>ch;while(ch='y');void admin:addstore()char ch='n'dostore ob("1",1,1);ob.inpu

38、t();sto.insert(ob);cout<<"继续输入?(y/n)"<<endl;cin>>ch;while(ch='y');void admin:addclient()char ch='n'doclient ob("1","1",'1',"1",1);ob.input();cl.insert(ob);cout<<"继续输入?(y/n)"<<endl;cin>>ch;wh

39、ile(ch = 'y');void admin:hirerise()int count=0;int i;double r=0;system("cls");cout<<"楼盘编号 楼盘面积 楼盘租金 楼盘售金 楼盘状态 租出/售出日期n"set<floor>:iterator p=fl.begin();while(p!=fl.end() /count用于楼盘计数count=count+1;p+;for(i=0;i<count;i+)double min=100000000;p=fl.begin();while

40、(p!=fl.end()if(p->gethire()<min&&r<p->gethire() /提取大于上一轮min值的最小租金min=p->gethire();p+;r=min; /r用于记录min值p=fl.begin();while(p!=fl.end()if(min=p->gethire() /输出本轮最小租金的楼盘信息cout<<" "<<p->getnum()<<"t "<<p->getsize()<<"t

41、"<<p->gethire()<<"t "<<p->getbuy()<<"t "if(p->getstate()cout<<"售t "elsecout<<"租t "date bi=p->getda();cout<<bi.getyear()<<"-"<<bi.getmonth()<<"-"<<bi.getday()

42、<<endl;p+;void admin:hirefall()int count=0;int i;system("cls");cout<<"楼盘编号 楼盘面积 楼盘租金 楼盘售金 楼盘状态 租出/售出日期n"set<floor>:iterator p=fl.begin();while(p!=fl.end()count=count+1;p+;double r=100000000;for(i=0;i<count;i+)double max=0;p=fl.begin();while(p!=fl.end()if(max&

43、lt;p->gethire()&&r>p->gethire()max=p->gethire();p+;r=max;p=fl.begin();while(p!=fl.end()if(max=p->gethire()cout<<" "<<p->getnum()<<"t "<<p->getsize()<<"t "<<p->gethire()<<"t "<<p-&g

44、t;getbuy()<<"t "if(p->getstate()cout<<"售t "elsecout<<"租t "date bi=p->getda();cout<<bi.getyear()<<"-"<<bi.getmonth()<<"-"<<bi.getday()<<endl;p+;void admin:buyrise()int count=0;int i;system(&q

45、uot;cls");cout<<"楼盘编号 楼盘面积 楼盘租金 楼盘售金 楼盘状态 租出/售出日期n"set<floor>:iterator p=fl.begin();while(p!=fl.end()count=count+1;p+;double r=0;for(i=0;i<count;i+)double min=100000000;p=fl.begin();while(p!=fl.end()if(min>p->getbuy()&&r<p->getbuy()min=p->getbuy()

46、;p+;r=min;p=fl.begin();while(p!=fl.end()if(min=p->getbuy()cout<<" "<<p->getnum()<<"t "<<p->getsize()<<"t "<<p->gethire()<<"t "<<p->getbuy()<<"t "if(p->getstate()cout<<"

47、;售t "elsecout<<"租t "date bi=p->getda();cout<<bi.getyear()<<"-"<<bi.getmonth()<<"-"<<bi.getday()<<endl;p+;void admin:buyfall()int count=0;int i;system("cls");cout<<"楼盘编号 楼盘面积 楼盘租金 楼盘售金 楼盘状态 租出/售出日期n&q

48、uot;set<floor>:iterator p=fl.begin();while(p!=fl.end()count=count+1;p+;double r=100000000;for(i=0;i<count;i+)double max=0;p=fl.begin();while(p!=fl.end()if(max<p->getbuy()&&r>p->getbuy()max=p->getbuy();p+;r=max;p=fl.begin();while(p!=fl.end()if(max=p->getbuy()cout<

49、;<" "<<p->getnum()<<"t "<<p->getsize()<<"t "<<p->gethire()<<"t "<<p->getbuy()<<"t "if(p->getstate()cout<<"售t "elsecout<<"租t "date bi=p->getda();cout&

50、lt;<bi.getyear()<<"-"<<bi.getmonth()<<"-"<<bi.getday()<<endl;p+;void admin:sellsta()date firstday;firstday.set(1900,1,1); /起始日期默认1900年1月1日date finalday;finalday.set(1900,1,1); /截至日期默认1900年1月1日double money=0; /佣金计数int sc=0; /售楼计数int hc=0; /租楼计数syst

51、em("cls");cout<<"查询起始日期: n"firstday.input();cout<<"查询截至日期: n"finalday.input();set<floor>:iterator p=fl.begin();while(p!=fl.end()if(firstday<p->getda()&&p->getda()<finalday) /筛选起始日期与截至日期之间销售的楼盘if(p->getstate()money=money+p->get

52、buy();sc=sc+1;elsemoney=money+p->gethire();hc=hc+1;p+;cout<<"查询时间段内共n"cout<<"售出: "<<sc<<endl;cout<<"租出: "<<hc<<endl;cout<<"总金额: "<<money<<endl;cout<<"佣金收入(中介费3%): "<<money*0.0

53、3<<endl;void admin:clientsta()int qz=0;int qs=0;int cz=0;int cs=0;int all=0;system("cls");set<client>: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

54、+1;break;p+;cout<<"求租客户数量: "<<qz<<endl;cout<<"求售客户数量: "<<qs<<endl;cout<<"出租客户数量: "<<cz<<endl;cout<<"出售客户数量: "<<cs<<endl;cout<<"客户总数量: "<<all<<endl;void admin:sa

55、vefloor()ofstream out("c:floorinfo.txt");if(!out)cout<<"无法打开文件c:floorinfo.txtn"return ;set<floor>:iterator p=fl.begin();while(p!=fl.end()out<<p->getnum()<<" "<<p->getsize()<<" "<<p->gethire()<<" &qu

56、ot;<<p->getbuy()<<" "<<p->getstate()<<" "date bi=p->getda();out<<bi.getyear()<<" "<<bi.getmonth()<<" "<<bi.getday()<<endl;p+;out.close();return;void admin:savestaff()ofstream out("c:staf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论