目录表
- 房屋中介公司需要对日常工作中涉及到的房屋、房主和租房顾客等各类数据进行有效地管理,以实现业务的自动化,提高运行效率的同时也能够降低人力成本。本设计主要针对房屋中介公司建立一个简单应用系统。
1 需求分析
房屋中间管理系统主要的是:
(1)房主能够发布房屋信息,并能够对房屋信息进行修改和删除;
(2)租房顾客能够查询房屋信息,请求看房,并确定租房完成租房交易。
话不多说直接上代码:
主函数:调用创建的各种类和方法
#include"deal.h"#include"house.h"#include"house_owner.h"#include"look_house.h"#include"staff.h"#include"tenant.h"#include<iostream>#include<string>#include<cstring>#include<cstdio>#include<algorithm>#include<fstream>#include<iomanip>staticint kk =100;usingnamespace std;classcustomer_information:public house_owner,public tenant {//派生租房者类及房主类的子类public:voiddisplay(){//输出客户信息dis_information();
cout << endl << endl;dis_tenant();}boolfind(string a,char*b);//判断登录密码是否正确voidamend();//修改密码};bool customer_information::find(string a,char*b){//判断用户登录密码是否正确if(findt(a, b,0)||findh(a, b,0)){returntrue;}elsereturnfalse;}void customer_information::amend(){//修改用户密码system("cls");
string a;char b[20];;
cout <<"请输入你的用户名:"; cin >> a;
cout <<"请输入你的原密码:"; cin >> b;
customer_information s;while(!s.find(a, b)){
cout <<"用户名或密码错误!"<< endl;
cout <<"请重新输入用户名:"; cin >> a;
cout <<"请重新输入密码:"; cin >> b;}
cout <<"请输入你要修改的密码:"; cin >> b;if(s.findh(a, b,1)|| s.findt(a, b,1)){
cout <<"修改成功!"<< endl;}system("pause");}voidcode_file_Read(){//设置系统使用者密码,第一次使用系统时设置,录入第一位管理者char code[20];char temp[20];
ifstream fin("code.dat");system("cls");int k =0;while(fin >> code){
k++;}if(k ==0){
cout <<"检测到第一次使用系统,请先设置系统密码:";
ofstream fout("code.dat");if(!fout){
cout <<"打开code.dat文件失败!"<< endl;abort();}
cin >> code;
fout << code <<"\n";//写入密码文件
cout <<"密码设置成功!"<< endl;system("pause");
fin.close();
fout.close();return;}
fin.close();}voidcode_file_delete(){//修改系统管理者密码char code[20];char temp[20];
ifstream fin("code.dat");if(!fin){
cout <<"打开文件code.dat失败!"<< endl;abort();}
fin >> code;
cout <<"请输入原密码:";do{
cin >> temp;if(strcmp(temp, code)==0){
ofstream fout("code.dat");if(!fout){
cout <<"打开code.dat文件失败!"<< endl;abort();}
cout <<"请输入新密码:";
cin >> code;
fout << code <<"\n";
cout <<"设置成功!";
fin.close();
fout.close();system("pause");return;}else{
cout <<"密码错误,请重新输入原密码:";
cin >> temp;}}while(1);}intmain_menu(){//管理员登录之后界面int chioce;system("cls");
cout <<"1:客户管理\n";
cout <<"2:房源管理\n";
cout <<"3:员工管理\n";
cout <<"4:查看交易信息\n";
cout <<"5:修改密码\n";
cout <<"6.查看佣金\n";
cout <<"7.看房信息管理\n";
cout <<"0:退出\n";
cout <<"请输入选择:";
cin >> chioce;while(chioce <0|| chioce>7){
cout <<"请重新选择:";
cin >> chioce;}return chioce;}voidadd_customer(){//添加客户信息int chioce;
house_owner s1;
tenant s;do{system("cls");
cout <<"1.添加租房者客户信息"<< endl;
cout <<"2.添加房主客户信息"<< endl;
cout <<"0.返回"<< endl;
cout <<"请输入你的选择:";
cin >> chioce;while(chioce >2|| chioce <0){
cout <<"请重新输入你的选择:"<< endl;
cin >> chioce;}switch(chioce){case1:
s.get_tenant();break;case2:
s1.get_information();break;case0:break;}}while(chioce !=0);system("pause");}voiddelete_customer(){//删除客户信息int chioce;
tenant s;
house_owner s1;do{system("cls");
cout <<"1.删除租房者客户信息"<< endl;
cout <<"2.删除房主客户信息"<< endl;
cout <<"0.返回"<< endl;
cout <<"请输入你的选择:";
cin >> chioce;while(chioce >2|| chioce <0){
cout <<"请重新输入你的选择:"<< endl;
cin >> chioce;}switch(chioce){case1:
s.delete_tenant();break;case2:
s1.delete_information();break;case0:break;}system("pause");}while(chioce !=0);}voidmodify_customer(){//修改客户信息int chioce;
tenant s;
house_owner s1;do{system("cls");
cout <<"1.修改租房者客户信息"<< endl;
cout <<"2.修改房主客户信息"<< endl;
cout <<"0.返回"<< endl;
cout <<"请输入你的选择:";
cin >> chioce;while(chioce >2|| chioce <0){
cout <<"请重新输入你的选择:"<< endl;
cin >> chioce;}switch(chioce){case1:
s.amend_tenant();break;case2:
s1.amend_information();break;}system("pause");}while(chioce !=0);}voidquery_customer(){//查询客户信息int chioce;
tenant s;
house_owner s1;do{system("cls");
cout <<"1.查询租房者客户信息"<< endl;
cout <<"2.查询房主客户信息"<< endl;
cout <<"0.返回"<< endl;
cout <<"请输入你的选择:";
cin >> chioce;while(chioce >2|| chioce <0){
cout <<"请重新输入你的选择:"<< endl;
cin >> chioce;}switch(chioce){case1:
s.find_tenant();break;case2:
s1.find_information();break;case0:break;}}while(chioce !=0);}intCustomer_management(){//管理客户的功能函数int chioce;
customer_information s;do{system("cls");
cout <<"1.显示客户信息"<< endl;
cout <<"2.添加客户"<< endl;
cout <<"3.删除客户"<< endl;
cout <<"4.修改客户信息"<< endl;
cout <<"5.查询客户信息"<< endl;
cout <<"0.返回"<< endl;
cout <<"请输入你的选择:";
cin >> chioce;while(chioce <0|| chioce>5){
cout <<"请重新选择:";
cin >> chioce;}switch(chioce){case1:
s.display();break;case2:add_customer();break;case3:delete_customer();break;case4:modify_customer();break;case5:query_customer();break;case0:break;}}while(chioce !=0);return chioce;}voidhousing_management(){//房源管理信息int chioce;
house s;do{system("cls");
cout <<"1.显示房屋信息"<< endl;
cout <<"2.添加房屋信息"<< endl;
cout <<"3.删除房屋信息"<< endl;
cout <<"4.修改房屋信息"<< endl;
cout <<"5.查询房屋信息"<< endl;
cout <<"0.返回"<< endl;
cout <<"请输入你的选择:";
cin >> chioce;while(chioce <0|| chioce>5){
cout <<"请重新输入你的选择:";
cin >> chioce;}switch(chioce){case1:
s.dis_house();break;case2:
s.get_house();break;case3:
s.delete_house();break;case4:
s.amend_house();break;case5:
s.find_house();break;case0:break;}}while(chioce !=0);}voidstaff_management(){//员工信息管理界面int chioce;
staff s;do{system("cls");
cout <<"1.显示员工信息"<< endl;
cout <<"2.添加员工信息"<< endl;
cout <<"3.删除员工信息"<< endl;
cout <<"4.修改员工信息"<< endl;
cout <<"5.查询员工信息"<< endl;
cout <<"0.返回"<< endl;
cout <<"请输入你的选择:";
cin >> chioce;while(chioce <0|| chioce>5){
cout <<"请重新输入你的选择:";
cin >> chioce;}switch(chioce){case1:
s.dis_staff();break;case2:
s.get_staff();break;case3:
s.delete_staff();break;case4:
s.amend_staff();break;case5:
s.find_staff();break;case0:break;}}while(chioce !=0);system("pause");}voidtrader(){//交易信息管理界面int chioce;
deal s;system("cls");do{system("cls");
cout <<"1.显示交易信息"<< endl;
cout <<"2.添加交易信息"<< endl;
cout <<"3.删除交易信息"<< endl;
cout <<"4.查询交易信息"<< endl;
cout <<"0.返回"<< endl;
cout <<"请输入你的选择:";
cin >> chioce;while(chioce <0|| chioce>5){
cout <<"请重新输入你的选择:";
cin >> chioce;}switch(chioce){case1:
s.dis_deal();break;case2:
s.get_deal();break;case3:
s.delete_deal();break;case4:
s.find_deal();break;}}while(chioce !=0);system("pause");}voidrental(){//用户租赁房屋
cout <<"请选择你要租赁得房屋编号:";char a[20];
cin >> a;
house s;
deal s1;float b=s.amend_status(a);
s1.auto_deal(b);
cout <<"租赁成功!"<< endl;system("pause");}voidUI(){system("cls");int chioce;int n =1;do{
cout <<"请输入用户名:";char a[20]; cin >> a;
cout <<"请输入密码:";char b[20]; cin >> b;
customer_information s;while(!s.find(a, b)){
cout <<"请重新输入用户名:"; cin >> a;
cout <<"请重新输入密码:"; cin >> b;}if(s.find(a, b)){
n =0;
cout <<"登录成功!"<< endl;system("pause");}}while(n);system("cls");
house s;
look_house sss;
customer_information ss;do{system("cls");
cout <<"1.显示房屋信息"<< endl;
cout <<"2.租赁房屋"<< endl;
cout <<"3.实地看房"<< endl;
cout <<"4.修改密码"<< endl;
cout <<"0.返回"<< endl;
cout <<"请输入你的选择:";
cin >> chioce;switch(chioce){case1:
s.dis_house();break;case2:
s.dis_house();rental();break;case3:
s.dis_house();
sss.get_look();break;case4:
ss.amend();break;}}while(chioce);}boollogin_management(){bool m =false;system("cls");char code[20];char temp[20];
ifstream fin("code.dat");if(!fin){
cout <<"打开文件code.dat失败!"<< endl;abort();}int chioce =1;
fin >> code;
fin.close();
cout <<"请输入密码:";
cin >> temp;do{if(strcmp(code, temp)==0){ m =true; chioce =0;}else{ cout <<"密码错误!请重新输入:"; cin >> temp;}}while(chioce);return m;}voidlook_look(){
look_house s;int chioce =1;do{system("cls");
cout <<"1.显示看房信息\n";
cout <<"2.修改看房信息\n";
cout <<"3.删除看房信息\n";
cout <<"4.查询看房信息\n";
cout <<"0.返回\n";
cout <<"请输入你的选择:";
cin >> chioce;while(chioce >4|| chioce <0){
cout <<"请重新输入你的选择:";
cin >> chioce;}switch(chioce){case1:
s.dis_look();break;case2:
s.amend_look();break;case3:
s.delete_look();break;case4:
s.find_look();break;}}while(chioce);}voidchioces(int chioce){system("cls");
deal s;switch(chioce){case1:Customer_management();break;case2:housing_management();break;case3:staff_management();break;case4:trader();break;case5:code_file_delete();break;case6:
cout <<"总佣金收入:"<< s.brokerage()<< endl;system("pause");break;case7:look_look();break;case0:break;}}voidsign_in(){//注册函数system("cls");
string name;//租房者姓名 char password[20];//租房者密码
string sex;//租房者性别 char phone[20];//租房者电话号码
string profession;//租房者职业
cout <<"请输入你的用户名:"; cin >> name;
cout <<"请设置你的密码:"; cin >> password;
cout <<"请输入你的性别:"; cin >> sex;
cout <<"请输入你的电话号码:"; cin >> phone;
cout <<"请输入你的职业:"; cin >> profession;
ofstream fout("tenant.txt", ios::app);if(!fout){
cout <<"打开文件tenant.txt失败!"<< endl;abort();}
kk = kk +1;
fout << kk <<" "<< name <<" "<< password <<" "<< sex <<" "<< phone <<" "<< profession <<"\n";
fout.close();
cout <<"注册成功!"<< endl;system("pause");}intmain(){int flag =true;int chioce;code_file_Read();while(flag){system("cls");
cout << endl;
cout << endl;
cout << endl;
cout <<setw(60)<<" 欢迎进入房屋租赁系统 "<< endl;
cout << endl;
cout << endl;
cout << endl;
cout <<setw(60)<<" ══════════════════"<< endl;
cout <<setw(60)<<"║ ║"<< endl;
cout <<setw(60)<<"║ ║"<< endl;
cout <<setw(60)<<"║ 管理员登录(1): ║"<< endl;
cout <<setw(60)<<"║ ║"<< endl;
cout <<setw(60)<<"║ ║"<< endl;
cout <<setw(60)<<"║ 用户登录(2): ║"<< endl;
cout <<setw(60)<<"║ ║"<< endl;
cout <<setw(60)<<"║ ║"<< endl;
cout <<setw(60)<<"║ 注册(3) ║"<< endl;
cout <<setw(60)<<"║ ║"<< endl;
cout <<setw(60)<<"║ ║"<< endl;
cout <<setw(60)<<"║ 退出系统(4): ║"<< endl;
cout <<setw(60)<<"║ ║"<< endl;
cout <<setw(60)<<"║ ║"<< endl;
cout <<setw(60)<<" ══════════════════"<< endl;
cout << endl;
cout << endl;
cout << endl;
cout <<setw(54)<<"请输入您接下来的操作(1-4):";int t;
cin >> t;while(t <1|| t>4){
cout <<setw(54)<<"请重新输入您的操作(1-4):";
cin >> t;}switch(t){case1:if(login_management()){do{
chioce =main_menu();chioces(chioce);}while(chioce);}break;case2:UI();break;case3:sign_in();break;case4: flag =false;break;}}return0;}
交易类:
#pragma once#include<iostream>#include<string>usingnamespace std;classdeal{//交易信息类public:deal();voidget_deal();//交易信息的录入voiddis_deal();//交易信息的输出voiddelete_deal();//交易信息的删除voidfind_deal();//信息查询voidauto_deal(float a);//自动生成交易信息doublebrokerage();//记录佣金,返回佣金friend ofstream&operator<<(ofstream& out, deal stu);private:char deal_number[20];//交易信息编号float deal_money;//交易金额
time_t deal_creation_time;//记录交易的时间 staticint bianhao;//交易编号 };
交易的实现
#include"deal.h"#include<iostream>#include<fstream>#include<Windows.h>#include<iomanip>#include<time.h>#include<string>#include<cstring>usingnamespace std;int deal::bianhao =50;
deal::deal(){strcpy_s(deal_number,"0");
deal_money =0;
deal_creation_time ='0';}
ofstream&operator<<(ofstream& out, deal stu){//重载流插入运算符
out << stu.deal_number <<" ";
out << stu.deal_money <<" ";
out << stu.deal_creation_time <<"\n";return out;}void deal::get_deal(){system("cls");
ofstream fout("deal.txt", ios::app);if(!fout){
cout <<"打开文件deal.txt失败!"<< endl;abort();}
cout <<"请输入交易编号:"; cin >> deal_number; fout << deal_number <<" ";
cout <<"请输入交易金额:"; cin >> deal_money; fout << deal_money <<" ";
deal_creation_time=time(NULL); fout << deal_creation_time <<"\n";
cout <<"录入成功!"<< endl;system("pause");
fout.close();}void deal::dis_deal(){//编号排序输出-冒泡排序system("cls");
ifstream fin("deal.txt");if(!fin){
cout <<"打开文件deal.txt失败!"<< endl;abort();}
cout <<setw(10)<<"交易编号"<<setw(10)<<"交易金额"<<setw(15)<<"收取的中介费"<<setw(20)<<"交易时间"<< endl;
deal stu[205];int n =0;while(fin >> stu[n].deal_number >> stu[n].deal_money >> stu[n].deal_creation_time){
n++;}
fin.close();for(int j =0; j < n; j++){for(int k =0; k < n - j -1; k++){if(strcmp(stu[k].deal_number,stu[k +1].deal_number)>0){
deal temp1 = stu[k];
stu[k]= stu[k +1];
stu[k +1]= temp1;}}}for(int i =0; i < n; i++){
cout <<setw(10)<< stu[i].deal_number <<setw(10)<< stu[i].deal_money <<setw(15)<< stu[i].deal_money *0.05<<setw(20)<< stu[i].deal_creation_time << endl;}system("pause");}void deal::delete_deal(){//删除交易信息system("cls");
cout <<"请输入你要删除的交易编号:";char temp[20];
cin >> temp;
deal str[205];
ifstream fin("deal.txt");if(!fin){
cout <<"打开文件deal.txt失败!"<< endl;abort();}int n =0;while(!fin.eof()){
fin >> str[n].deal_number >> str[n].deal_money >> str[n].deal_creation_time;
n++;}
n = n -1;//eof()到文件末尾会多循环一次来判断文件末尾,所以n多加了一次,这里减去
fin.close();
ofstream fout("deal.txt");if(!fout){
cout <<"打开文件deal.txt失败!"<< endl;abort();}int k =0;bool l =true;for(int i =0; i < n; i++){if(strcmp(str[i].deal_number, temp)==0){
k = i;
l =false;break;}}if(l){for(int i =0; i < n ; i++){
fout << str[i]<<"\n";}
cout <<"此编号的交易信息不存在!删除失败!"<< endl;}else{for(int i = k; i < n -1; i++){
str[i]= str[i +1];}for(int i =0; i < n -1; i++){
fout << str[i]<<"\n";}
cout <<"删除成功!"<< endl;}system("pause");
fout.close();}void deal::find_deal(){//查找交易信息system("cls");
cout <<"请输入你想查找的交易信息编号"<< endl;char temp[20];
cin >> temp;bool k =true;
ifstream fin("deal.txt");if(!fin){
cout <<"打开文件deal.txt失败!"<< endl;abort();}
deal stu[205];int n =0;while(fin >> stu[n].deal_number >> stu[n].deal_money >> stu[n].deal_creation_time){
n++;}
fin.close();do{for(int i =0; i < n; i++){if(strcmp(stu[i].deal_number, temp)==0){
cout <<setw(10)<<"交易编号"<<setw(10)<<"交易金额"<<setw(15)<<"收取的中介费"<<setw(20)<<"交易时间"<< endl;
cout <<setw(10)<< stu[i].deal_number <<setw(10)<< stu[i].deal_money <<setw(15)<< stu[i].deal_money *0.05<<setw(20)<< stu[i].deal_creation_time << endl;
k =false;break;}}if(k){
cout <<"该编号交易信息不存在!请重新输入交易信息编号:";
cin >> temp;}}while(k);system("pause");}void deal::auto_deal(float a){//增加交易信息
ofstream fout("deal.txt", ios::app);if(!fout){
cout <<"打开deal.txt失败!"<< endl;abort();}
bianhao +=1;
SYSTEMTIME s;GetLocalTime(&s);
fout << bianhao <<" "<< a <<" "<< s.wYear << s.wMonth << s.wDay <<"\n";
cout <<setw(10)<<"交易编号"<<setw(10)<<"交易金额"<<setw(15)<<"交易时间"<< endl;
cout <<setw(10)<< bianhao <<setw(10)<< a <<setw(15)<< s.wYear <<"-"<< s.wMonth <<"-"<< s.wDay << endl;
fout.close();}double deal::brokerage(){//返回佣金值
ifstream fin("deal.txt");if(!fin){
cout <<"打开文件deal.txt失败!"<< endl;abort();}
deal stu[105];int n =0;double sum =0;while(fin >> stu[n].deal_number >> stu[n].deal_money >> stu[n].deal_creation_time){
n++;}
fin.close();for(int i =0; i < n; i++){
sum += stu[i].deal_money *0.05;}
cout <<"共租赁出"<< n <<"套房屋."<< endl;return sum;}
房屋类:主要管理房屋信息
#pragma once#include<iostream>#include<string>usingnamespace std;classhouse{//房屋类public:house();friend ofstream&operator<<(ofstream& out,house stu);//重载插入运算符voidget_house();//用于房屋信息录入采集voiddis_house();//用于房屋信息输出voiddelete_house();//房屋信息删除voidfind_house();//信息查询voidamend_house();//修改信息floatamend_status(char* a);//修改房屋状态private:char house_number[20];//房屋编号
string building_site;//房屋地点 float house_area;//房屋面积
string house_type;//房屋户型 float house_price;//房屋价格
string house_status;//房屋出租状态 };
房屋类的实现:
#include"house.h"#include<iostream>#include<fstream>#include<string>#include<cstring>#include<iomanip>usingnamespace std;
house::house(){strcpy_s(house_number,"0");
house_area =0;
house_type ='0';
house_price =0;
house_status ='0';
building_site ='0';}
ofstream&operator<<(ofstream& out,house stu){
out << stu.house_number <<" ";
out << stu.building_site <<" ";
out << stu.house_area <<" ";
out << stu.house_type <<" ";
out << stu.house_price <<" ";
out << stu.house_status <<"\n";return out;}void house::get_house(){//录入房屋信息system("cls");
ofstream fout("house.txt", ios::app);if(!fout){
cout <<"打开文件house.txt失败!"<< endl;abort();}
cout <<"请输入房屋编号:"; cin >> house_number; fout << house_number <<" ";//输入房屋编号,并将数据录入文件
cout <<"请输入房屋地址:"; cin >> building_site; fout << building_site <<" ";//输入房屋地址
cout <<"请输入房屋面积(m^2):"; cin >> house_area; fout << house_area <<" ";//输入房屋面积
cout <<"请输入房屋户型:"; cin >> house_type; fout << house_type <<" ";//输入房屋户型
cout <<"请输入房屋价格(元):"; cin >> house_price; fout << house_price <<" ";//输入房屋价格
cout <<"请输入房屋的出租状态(Y/N):"; cin >> house_status; fout << house_status <<"\n";//输入房屋出租状态
fout.close();
cout <<"添加成功!"<< endl;system("pause");}void house::dis_house(){//以编号排序输出-冒泡排序system("cls");
ifstream fin("house.txt");if(!fin){
cout <<"打开文件house.txt失败!"<< endl;abort();}
cout <<setw(10)<<"房屋编号"<<setw(25)<<"房屋地址"<<setw(10)<<"房屋面积(m^2)"<<setw(10)<<"房屋户型"<<setw(10)<<"房屋价格(元)"<<setw(15)<<"状态(Y为未出售,N为出售)"<< endl;
house stu[105];int n =0;while(fin >> stu[n].house_number >> stu[n].building_site >> stu[n].house_area >> stu[n].house_type >> stu[n].house_price >> stu[n].house_status){
n++;}
house temp1;
fin.close();for(int j =0; j < n-1; j++){for(int k =0; k < n - j -1; k++){if(strcmp(stu[k].house_number,stu[k +1].house_number)>0){
temp1 = stu[k];
stu[k]= stu[k +1];
stu[k +1]= temp1;}}}for(int i =0; i < n; i++){
cout <<setw(10)<< stu[i].house_number <<setw(25)<< stu[i].building_site <<setw(10)<< stu[i].house_area <<setw(10)<< stu[i].house_type <<setw(10)<< stu[i].house_price <<setw(15)<< stu[i].house_status << endl;}system("pause");}void house::delete_house(){//删除房屋信息system("cls");
cout <<"请输入你要删除的房屋编号:";char temp[20];
cin >> temp;
house str[105];
ifstream fin("house.txt");if(!fin){
cout <<"打开文件house.txt失败!"<< endl;abort();}int n =0;while(!fin.eof()){
fin >> str[n].house_number >> str[n].building_site >> str[n].house_area >> str[n].house_type >> str[n].house_price >> str[n].house_status;
n++;}
n = n -1;//eof()到文件末尾会多循环一次来判断文件末尾,所以n多加了一次,这里减去
fin.close();int k =0;bool l =true;for(int i =0; i < n; i++){if(strcmp(str[i].house_number, temp)==0){
k = i;
l =false;break;}}if(l) cout <<"此编号的房屋不存在!删除失败!"<< endl;else{
ofstream fout("house.txt");if(!fout){
cout <<"打开文件house.txt失败!"<< endl;abort();}for(int i = k; i < n -1; i++){
str[i]= str[i +1];}for(int i =0; i < n -1; i++){
fout << str[i]<<"\n";}
cout <<"删除成功!"<< endl;
fout.close();}system("pause");}void house::find_house(){//查找房屋信息system("cls");
cout <<"请输入你想查找房屋的编号"<< endl;char temp[20];
cin >> temp;bool k =true;
ifstream fin("house.txt");if(!fin){
cout <<"打开文件house.txt失败!"<< endl;abort();}
house stu[105];int n =0;while(fin >> stu[n].house_number >> stu[n].building_site >> stu[n].house_area >> stu[n].house_type >> stu[n].house_price >> stu[n].house_status){//从文件提取信息
n++;}
fin.close();do{for(int i =0; i < n; i++){if(strcmp(stu[i].house_number, temp)==0){//判断信息是否存在,存在则输出该信息
cout <<setw(10)<<"房屋编号"<<setw(25)<<"房屋地址"<<setw(10)<<"房屋面积(m^2)"<<setw(10)<<"房屋户型"<<setw(10)<<"房屋价格(元)"<<setw(15)<<"状态(Y为未出售,N为出售)"<< endl;
cout <<setw(10)<< stu[i].house_number <<setw(25)<< stu[i].building_site <<setw(10)<< stu[i].house_area <<setw(10)<< stu[i].house_type <<setw(10)<< stu[i].house_price <<setw(15)<< stu[i].house_status << endl;
k =false;break;}}if(k){
cout <<"该编号房屋不存在!请重新输入房屋编号:";
cin >> temp;}}while(k);system("pause");}void house::amend_house(){//修改房屋信息system("cls");
cout <<"请选择你要修改的房屋信息编号:";char temp[20];
cin >> temp;
ifstream fin("house.txt");if(!fin){
cout <<"打开文件house.txt失败!"<< endl;abort();}
house stu[105];int n =0;while(fin >> stu[n].house_number >> stu[n].building_site >> stu[n].house_area >> stu[n].house_type >> stu[n].house_price >> stu[n].house_status){
n++;}
fin.close();int k =0;for(int i =0; i < n; i++){if(strcmp(stu[i].house_number, temp)==0){
k = i;break;}}
cout <<"你要修改的房屋信息为:"<< endl;
cout <<setw(10)<<"房屋编号"<<setw(25)<<"房屋地址"<<setw(10)<<"房屋面积(m^2)"<<setw(10)<<"房屋户型"<<setw(10)<<"房屋价格(元)"<<setw(15)<<"状态(Y为未出售,N为出售)"<< endl;
cout <<setw(10)<< stu[k].house_number <<setw(25)<< stu[k].building_site <<setw(10)<< stu[k].house_area <<setw(10)<< stu[k].house_type <<setw(10)<< stu[k].house_price <<setw(15)<< stu[k].house_status << endl;int ch;do{system("cls");
cout <<"1.房屋地点"<< endl;
cout <<"2.房屋面积"<< endl;
cout <<"3.房屋户型"<< endl;
cout <<"4.房屋价格"<< endl;
cout <<"5.房屋出租状态"<< endl;
cout <<"0:返回"<< endl;
cin >> ch;
string s;float a;switch(ch){case1:
cout <<"请输入你要修改的内容:";
cin >> s;
stu[k].building_site = s;break;case2:
cout <<"请输入你要修改的内容:";
cin >> a;
stu[k].house_area = a;break;case3:
cout <<"请输入你要修改的内容:";
cin >> s;
stu[k].house_type = s;break;case4:
cout <<"请输入你要修改的内容:";
cin >> a;
stu[k].house_price = a;break;case5:
cout <<"请输入你要修改的内容:";
cin >> s;
stu[k].house_status = s;break;case0:break;}
cout <<"修改成功!"<< endl;system("pause");}while(ch);
ofstream fout("house.txt");for(int i =0; i < n -1; i++){
fout << stu[i]<<"\n";}
fout.close();system("pause");}float house::amend_status(char*a){//修改房屋状态
ifstream fin("house.txt");if(!fin){
cout <<"打开文件house.txt失败!"<< endl;abort();}
house stu[105];int n =0;while(fin >> stu[n].house_number >> stu[n].building_site >> stu[n].house_area >> stu[n].house_type >> stu[n].house_price >> stu[n].house_status){
n++;}
fin.close();int k =0;for(int i =0; i < n; i++){if(strcmp(stu[i].house_number, a)==0){
k = i;break;}}
stu[k].house_status ='N';
ofstream fout("house.txt");for(int i =0; i < n; i++){
fout << stu[i]<<"\n";}
fout.close();return stu[k].house_price;}
房主信息:管理房屋主人的信息
#pragma once#include<iostream>#include<string>usingnamespace std;classhouse_owner{//房主信息类 public:house_owner();house_owner(const house_owner& s);//拷贝构造函数voidget_information();//录入房主信息voiddis_information();//输出房主信息voiddelete_information();//删除房主信息voidfind_information();//信息查询voidamend_information();//修改信息boolfindh(string a,char* b,int c);//用户登录查找friend ofstream&operator<<(ofstream& out, house_owner stu);private:char house_owner_number[20];//编号
string name;//房主名 char password[20];//密码
string sex;//性别char phone[20];//电话
string address;//家庭住址};
房主的实现:
#include"house_owner.h"#include<iostream>#include<fstream>#include<iomanip>#include<string>#include<cstring>#include<algorithm>usingnamespace std;
house_owner::house_owner(){strcpy_s(house_owner_number,"0");
name ='0';strcpy_s(password,"0");
sex ='0';strcpy_s(phone,"0");
address ='0';}
house_owner::house_owner(const house_owner& s){//拷贝构造函数strcpy_s(house_owner_number,s.house_owner_number);
name=s.name;strcpy_s(password, s.password);
sex=s.sex;strcpy_s(phone, s.phone);
address=s.address;}
ofstream&operator<<(ofstream& out, house_owner stu){
out << stu.house_owner_number <<" ";
out << stu.name <<" ";
out << stu.password <<" ";
out << stu.sex <<" ";
out << stu.phone <<" ";
out << stu.address <<"\n";return out;}void house_owner::get_information(){//输入房主信息类容,存储进文件system("cls");
ofstream fout("house_owner.dat",ios::app);if(!fout){
cout <<"打开文件house_owner.dat失败!"<< endl;abort();}
cout <<"请输入房主信息:"<< endl;
cout <<"请输入房主编号:"; cin >> house_owner_number; fout << house_owner_number <<" ";
cout <<"请输入房主名:"; cin >> name; fout << name <<" ";
cout <<"请输入用户密码:"; cin >> password; fout << password <<" ";
cout <<"请输入用户性别:"; cin >> sex; fout << sex <<" ";
cout <<"请输入用户电话号码:"; cin >> phone; fout << phone <<" ";
cout <<"请输入家庭住址:"; cin >> address; fout << address <<"\n";
fout.close();}void house_owner::dis_information(){//以编号从小到大进行输出房主信息-冒泡排序system("cls");
cout <<setw(10)<<"房主编号"<<setw(10)<<"房主姓名"<<setw(10)<<"性别"<<setw(15)<<"电话号码"<<setw(15)<<"家庭住址"<< endl;
ifstream fin("house_owner.dat");if(!fin){
cout <<"打开文件house_owner.dat失败!"<< endl;abort();}
house_owner stu[105];int n =0;while(fin >> stu[n].house_owner_number >> stu[n].name >> stu[n].password >> stu[n].sex >> stu[n].phone >> stu[n].address){//eof()会多读一行导致数据出错
n++;}
fin.close();
house_owner temp1;for(int j =0; j < n-1; j++){for(int k =0; k < n - j -1; k++){if(strcmp(stu[k].house_owner_number,stu[k +1].house_owner_number)>0){
temp1 = stu[k];
stu[k]= stu[k +1];
stu[k +1]= temp1;}}}for(int i=0;i<n;i++)
cout <<setw(10)<< stu[i].house_owner_number <<setw(10)<< stu[i].name <<setw(10)<< stu[i].sex <<setw(15)<< stu[i].phone <<setw(15)<< stu[i].address << endl;}void house_owner::delete_information(){//删除房主信息system("cls");
house_owner stu[105];
ifstream fin("house_owner.dat");if(!fin){
cout <<"打开house_owner.dat失败!"<< endl;abort();}int n =0;
cout <<"请输入你要删除的房主编号:";char temp[20];
cin >> temp;while(!fin.eof()){
fin >> stu[n].house_owner_number >> stu[n].name >> stu[n].password >> stu[n].sex >> stu[n].phone >> stu[n].address;
n++;}
n = n -1;//eof()到文件末尾会多循环一次来判断文件末尾,所以n多加了一次,这里减去
fin.close();bool l =true;int k =0;for(int i =0; i < n; i++){if(strcmp(stu[i].house_owner_number, temp)==0){
k = i;
l =false;break;}}if(l) cout <<"此编号的房主不存在!删除失败!"<< endl;else{for(int i = k; i < n -1; i++){
stu[i]= stu[i +1];}
ofstream fout("house_owner.dat");if(!fout){
cout <<"打开文件house_owner.dat失败!"<< endl;abort();}for(int i =0; i < n -1; i++){
fout << stu[i]<<"\n";}
cout <<"删除成功!"<< endl;
fout.close();}system("pause");}void house_owner::find_information(){//查找房主信息system("cls");
cout <<"请输入你想查找房主的编号"<< endl;char temp[20];
cin >> temp;bool k =true;
ifstream fin("house_owner.dat");if(!fin){
cout <<"打开文件house_owner.dat失败!"<< endl;abort();}
house_owner stu[105];int n =0;while(fin >> stu[n].house_owner_number >> stu[n].name >> stu[n].password >> stu[n].sex >> stu[n].phone >> stu[n].address){
n++;}
fin.close();do{for(int i =0; i < n; i++){if(strcmp(stu[i].house_owner_number, temp)==0){
cout <<setw(10)<<"房主编号"<<setw(10)<<"房主姓名"<<setw(10)<<"性别"<<setw(15)<<"电话号码"<<setw(15)<<"家庭住址"<< endl;
cout <<setw(10)<< stu[i].house_owner_number <<setw(10)<< stu[i].name <<setw(10)<< stu[i].sex <<setw(15)<< stu[i].phone <<setw(15)<< stu[i].address << endl;
k =false;break;}}if(k){
cout <<"该编号房主不存在!请重新输入房主编号:";
cin >> temp;}}while(k);system("pause");}void house_owner::amend_information(){//修改房主信息system("cls");
cout <<"请选择你要修改的房主信息编号:";char temp[20];
cin >> temp;
ifstream fin("house_owner.dat");if(!fin){
cout <<"打开文件house_owner.dat失败!"<< endl;abort();}
house_owner stu[105];int n =0;while(fin >> stu[n].house_owner_number >> stu[n].name >> stu[n].password >> stu[n].sex >> stu[n].phone >> stu[n].address){
n++;}
fin.close();bool k =true;for(int i =0; i < n; i++){if(strcmp(stu[i].house_owner_number, temp)==0){
k =false;break;}}if(k){ cout <<"编号错误!"<< endl;return;}
cout <<"你要修改的房主信息为:"<< endl;
cout <<setw(10)<<"房主编号"<<setw(10)<<"房主姓名"<<setw(10)<<"性别"<<setw(15)<<"电话号码"<<setw(15)<<"家庭住址"<< endl;
cout <<setw(10)<< stu[k].house_owner_number <<setw(10)<< stu[k].name <<setw(10)<< stu[k].sex <<setw(15)<< stu[k].phone <<setw(15)<< stu[k].address << endl;int ch;do{
cout <<"1.电话"<< endl;
cout <<"2.家庭住址"<< endl;
cout <<"0:返回"<< endl;
cout <<"请输入你的选择:";
cin >> ch;char s[20];
string a;while(ch >2|| ch <0){
cout <<"请重新输入你的选择:";
cin >> ch;}switch(ch){case1:
cout <<"请输入你要修改的内容:";
cin >> s;strcpy_s(stu[k].phone, s);break;case2:
cout <<"请输入你要修改的内容:";
cin >> a;
stu[k].address = a;break;}
cout <<"修改成功!"<< endl;system("pause");}while(ch);
ofstream fout("house_owner.dat");if(!fout){
cout <<"打开文件house_owner.dat失败!"<< endl;abort();}for(int i =0; i < n -1; i++){
fout << stu[i]<<"\n";}
fout.close();}bool house_owner::findh(string a,char* b,int c){//判断密码正误以及修改密码
ifstream fin("house_owner.dat");if(!fin){
cout <<"打开文件house_owner.dat失败!"<< endl;abort();}
house_owner stu[105];int n =0;while(fin >> stu[n].house_owner_number >> stu[n].name >> stu[n].password >> stu[n].sex >> stu[n].phone >> stu[n].address){
n++;}
fin.close();if(c){//修改密码for(int i =0; i < n; i++){if(stu[i].name==a){strcpy_s(stu[i].password, b);
ofstream fout("house_owner.dat");if(!fout){
cout <<"打开文件house_owner.dat失败!"<< endl;abort();}for(int j =0; j < n; j++){
fout << stu[j]<<"\n";}
fout.close();returntrue;}}}else{//判断密码正误for(int i =0; i < n; i++){if(stu[i].name==a &&strcmp(stu[i].password, b)==0){returntrue;}}}returnfalse;}
看房信息:存储有人想去实地看房的信息,预约等
#pragma once#include<iostream>#include<string>usingnamespace std;classlook_house{//看房信息类public:look_house();//构造函数voidget_look();//看房信息录入voiddis_look();//看房信息输出voiddelete_look();//看房信息删除voidfind_look();//信息查询voidamend_look();//修改信息friend ofstream&operator<<(ofstream& out, look_house stu);private:int Look_house_number;//看房信息编号
string Look_house_time;//看房日期
string Look_house_site;//看房地点
string look_name;//看房人姓名
string look_phone;//电话};
看房信息的实现:
#include"look_house.h"#include<iostream>#include<algorithm>#include<fstream>#include<iomanip>#include<string>#include<cstring>usingnamespace std;
look_house::look_house(){
Look_house_number =0;
Look_house_site ='0';
Look_house_time ='0';}
ofstream&operator<<(ofstream& out, look_house stu){
out << stu.Look_house_number <<" ";
out << stu.Look_house_time <<" ";
out << stu.Look_house_site <<"\n";return out;}void look_house::get_look(){//看房信息的录入
ofstream fout("look_house.txt", ios::app);if(!fout){
cout <<"打开文件look_house.txt失败!"<< endl;abort();}
ifstream fin("look_house.txt");if(!fin){
cout <<"打开文件look_house.txt失败!"<< endl;abort();}int n =0;int sum =0;
look_house stu[105];while(fin >> stu[n].Look_house_number >> stu[n].Look_house_time >> stu[n].Look_house_site>>stu[n].look_name>>stu[n].look_phone){
sum =max(sum, stu[n].Look_house_number);
n++;}
Look_house_number = sum+1;
fout << Look_house_number <<" ";
cout <<"请输入看房的时间:"; cin >> Look_house_time; fout << Look_house_time <<" ";
cout <<"请输入看房的地点:"; cin >> Look_house_site; fout << Look_house_site <<" ";
cout <<"请输入你的姓名:"; cin >> look_name; fout << look_name <<" ";
cout <<"请输入你的电话号码:"; cin >> look_phone; fout << look_phone <<"\n";
fout.close();
cout <<"录入成功!"<< endl;system("pause");}void look_house::dis_look(){system("cls");
ifstream fin("look_house.txt");if(!fin){
cout <<"打开文件look_house.txt失败!"<< endl;abort();}
cout <<setw(10)<<"看房的编号"<<setw(15)<<"看房时间"<<setw(15)<<"看房地点"<<setw(15)<<"看房者的姓名"<<setw(15)<<"电话号码"<< endl;
look_house stu[105];int n =0;while(fin >> stu[n].Look_house_number >> stu[n].Look_house_time >> stu[n].Look_house_site>>stu[n].look_name>>stu[n].look_phone){
n++;}
fin.close();for(int j =0; j < n-1; j++){for(int k =0; k < n - j-1; k++){if(stu[k].Look_house_number>stu[k +1].Look_house_number){
look_house temp1 = stu[k];
stu[k]= stu[k +1];
stu[k +1]= temp1;}}}for(int i =0; i < n; i++){
cout <<setw(10)<< stu[i].Look_house_number <<setw(15)<< stu[i].Look_house_time <<setw(15)<< stu[i].Look_house_site <<setw(15)<< stu[i].look_name <<setw(15)<< stu[i].look_phone << endl;}system("pause");}void look_house::delete_look(){system("cls");
cout <<"请输入你要删除看房信息编号:";int temp;
cin >> temp;
look_house stu[105];
ifstream fin("look_house.txt");if(!fin){
cout <<"打开文件look_house.txt失败!"<< endl;abort();}int n =0;while(!fin.eof()){
fin >> stu[n].Look_house_number >> stu[n].Look_house_time >> stu[n].Look_house_site >> stu[n].look_name >> stu[n].look_phone;
n++;}
n = n -1;//eof()到文件末尾会多循环一次来判断文件末尾,所以n多加了一次,这里减去
fin.close();bool l =true;int k =0;for(int i =0; i < n; i++){if(stu[i].Look_house_number==temp){
k = i;
l =false;break;}}if(l) cout <<"此编号的看房信息不存在!删除失败!"<< endl;else{
ofstream fout("look_house.txt");if(!fout){
cout <<"打开文件look_house.txt失败!"<< endl;abort();}for(int i = k; i < n -1; i++){
stu[i]= stu[i +1];}for(int i =0; i < n -1; i++){
fout << stu[i]<<"\n";}
cout <<"删除成功!"<< endl;
fout.close();}system("pause");}void look_house::find_look(){system("cls");
cout <<"请输入你想查找看房的编号"<< endl;int temp;
cin >> temp;bool k =true;
ifstream fin("look_house.txt");if(!fin){
cout <<"打开文件look_house.txt失败!"<< endl;abort();}
look_house stu[105];int n =0;while(fin >> stu[n].Look_house_number >> stu[n].Look_house_time >> stu[n].Look_house_site >> stu[n].look_name >> stu[n].look_phone){
n++;}
fin.close();do{for(int i =0; i < n; i++){if(stu[i].Look_house_number==temp){
cout <<setw(10)<<"看房的编号"<<setw(15)<<"看房时间"<<setw(15)<<"看房地点"<<setw(15)<<"看房者的姓名"<<setw(15)<<"电话号码"<< endl;
cout <<setw(10)<< stu[i].Look_house_number <<setw(15)<< stu[i].Look_house_time <<setw(15)<< stu[i].Look_house_site <<setw(15)<< stu[i].look_name <<setw(15)<< stu[i].look_phone << endl;
k =false;break;}}if(k){
cout <<"该编号看房信息不存在!请重新输入看房信息编号:";
cin >> temp;}}while(k);system("pause");}void look_house::amend_look(){system("cls");
cout <<"请输入你想修改的看房信息编号"<< endl;int temp;
cin >> temp;
ifstream fin("look_house.txt");if(!fin){
cout <<"打开文件look_house.txt失败!"<< endl;abort();}
look_house stu[105];int n =0;while(fin >> stu[n].Look_house_number >> stu[n].Look_house_time >> stu[n].Look_house_site){
n++;}
fin.close();int k =0;for(int i =0; i < n; i++){if(stu[i].Look_house_number==temp){
k = i;break;}}
cout <<"你要修改的看房信息为:"<< endl;
cout <<setw(10)<<"看房的编号"<<setw(15)<<"看房时间"<<setw(15)<<"看房地点"<<setw(15)<<"看房者的姓名"<<setw(15)<<"电话号码"<< endl;
cout <<setw(10)<< stu[k].Look_house_number <<setw(15)<< stu[k].Look_house_time <<setw(15)<< stu[k].Look_house_site <<setw(15)<< stu[k].look_name <<setw(15)<< stu[k].look_phone << endl;int ch;do{system("cls");
cout <<"1.看房时间"<< endl;
cout <<"2.看房地点"<< endl;
cout <<"4.电话号码"<< endl;
cout <<"4.电话号码"<< endl;
cout <<"0:返回"<< endl;
cin >> ch;
string s;switch(ch){case1:
cout <<"请输入你要修改的内容:";
cin >> s;
stu[k].Look_house_time = s;break;case2:
cout <<"请输入你要修改的内容:";
cin >> s;
stu[k].Look_house_site = s;break;case3:
cout <<"请输入你要修改的内容:";
cin >> s;
stu[k].look_name = s;break;case4:
cout <<"请输入你要修改的内容:";
cin >> s;
stu[k].look_phone = s;break;case0:break;}
cout <<"修改成功!"<< endl;system("pause");}while(ch);
ofstream fout("look_house.txt");if(!fout){
cout <<"打开文件look_house.txt失败!"<< endl;abort();}for(int i =0; i < n -1; i++){
fout << stu[i]<<"\n";}
fout.close();system("pause");}
员工信息:存储中介公司的员工信息
#pragma once#include<iostream>#include<string>usingnamespace std;classstaff{public:friend ofstream&operator<<(ofstream& out, staff stu);//重载插入运算符voidget_staff();//用于员工信息录入采集voiddis_staff();//用于员工信息输出voiddelete_staff();//员工信息删除voidfind_staff();//员工信息查询voidamend_staff();//修改信息private:char staff_number[20];//编号
string staff_name;//姓名
string staff_sex;//性别
string staff_phone;//电话
string staff_address;//家庭住址};
员工信息类的实现:
#include"staff.h"#include<iostream>#include<fstream>#include<iomanip>#include<string>#include<cstring>#include<algorithm>usingnamespace std;
ofstream&operator<<(ofstream& out, staff stu){
out << stu.staff_number <<" ";
out << stu.staff_name <<" ";
out << stu.staff_sex <<" ";
out << stu.staff_phone <<" ";
out << stu.staff_address <<"\n";return out;}void staff::get_staff(){//输入房主信息类容,存储进文件system("cls");
ofstream fout("staff.txt", ios::app);if(!fout){
cout <<"打开文件staff.txt失败!"<< endl;abort();}
cout <<"请输入员工信息:"<< endl;
cout <<"请输入员工编号:"; cin >> staff_number; fout << staff_number <<" ";
cout <<"请输入员工姓名:"; cin >> staff_name; fout << staff_name <<" ";
cout <<"请输入员工性别:"; cin >> staff_sex; fout << staff_sex <<" ";
cout <<"请输入员工电话号码:"; cin >> staff_phone; fout << staff_phone <<" ";
cout <<"请输入员工家庭住址:"; cin >> staff_address; fout << staff_address <<"\n";
cout <<"录入成功!"<< endl;
fout.close();system("pause");}void staff::dis_staff(){//输出员工信息system("cls");
ifstream fin("staff.txt");if(!fin){
cout <<"打开文件staff.txt失败!"<< endl;abort();}
cout <<setw(10)<<"员工编号"<<setw(10)<<"员工姓名"<<setw(10)<<"员工性别"<<setw(15)<<"员工电话"<<setw(15)<<"家庭地址"<< endl;
staff stu[105];int n =0;while(fin >> stu[n].staff_number>>stu[n].staff_name>>stu[n].staff_sex>>stu[n].staff_phone>>stu[n].staff_address){
n++;}
fin.close();
staff temp1;for(int j =0; j < n; j++){for(int k =0; k < n - j -1; k++){if(strcmp(stu[k].staff_number,stu[k +1].staff_number)>0){
temp1 = stu[k];
stu[k]= stu[k +1];
stu[k +1]= temp1;}}}for(int i =0; i < n; i++){
cout <<setw(10)<< stu[i].staff_number <<setw(10)<< stu[i].staff_name <<setw(10)<< stu[i].staff_sex <<setw(15)<< stu[i].staff_phone <<setw(15)<< stu[i].staff_address << endl;}system("pause");}void staff::amend_staff(){//修改信息system("cls");
cout <<"请选择你要修改的员工信息编号:";char temp[20];
cin >> temp;
ifstream fin("staff.txt");if(!fin){
cout <<"打开文件staff.txt失败!"<< endl;abort();}
staff stu[105];int n =0;while(fin >> stu[n].staff_number >> stu[n].staff_name >> stu[n].staff_sex >> stu[n].staff_phone >> stu[n].staff_address){
n++;}
fin.close();int k =0;for(int i =0; i < n; i++){if(strcmp(stu[i].staff_number, temp)==0){
k = i;break;}}
cout <<"你要修改的员工信息为:"<< endl;
cout <<setw(10)<<"员工编号"<<setw(10)<<"员工姓名"<<setw(10)<<"员工性别"<<setw(15)<<"员工电话"<<setw(15)<<"家庭地址"<< endl;
cout <<setw(10)<< stu[k].staff_number <<setw(10)<< stu[k].staff_name <<setw(10)<< stu[k].staff_sex <<setw(15)<< stu[k].staff_phone <<setw(15)<< stu[k].staff_address << endl;int ch;do{system("cls");
cout <<setw(10)<<"1.电话"<< endl;
cout <<setw(10)<<"2.家庭住址"<< endl;
cout <<setw(10)<<"0:返回"<< endl;
cout <<setw(10)<<"请输入你的选择:";
cin >> ch;
string a;switch(ch){case1:
cout <<"请输入你要修改的内容:";
cin >> a;
stu[k].staff_phone = a;break;case2:
cout <<"请输入你要修改的内容:";
cin >> a;
stu[k].staff_address = a;break;case0:break;}
cout <<"修改成功!"<< endl;system("pause");}while(ch);
ofstream fout("staff.txt");if(!fout){
cout <<"打开文件staff.txt失败!"<< endl;abort();}for(int i =0; i < n -1; i++){
fout << stu[i]<<"\n";}
fout.close();system("pause");}void staff::delete_staff(){//删除员工信息system("cls");
staff stu[105];
ifstream fin("staff.txt");if(!fin){
cout <<"打开staff.txt失败!"<< endl;abort();}int n =0;
cout <<"请输入你要删除的员工编号:";char temp[20];
cin >> temp;while(!fin.eof()){
fin >> stu[n].staff_number >> stu[n].staff_name >> stu[n].staff_sex >> stu[n].staff_phone >> stu[n].staff_address;
n++;}
n = n -1;//eof()到文件末尾会多循环一次来判断文件末尾,所以n多加了一次,这里减去
fin.close();bool l =true;int k =0;for(int i =0; i < n; i++){if(strcmp(stu[i].staff_number, temp)==0){
k = i;
l =false;break;}}if(l) cout <<"此编号的员工不存在!删除失败!"<< endl;else{for(int i = k; i < n -1; i++){
stu[i]= stu[i +1];}
ofstream fout("staff.txt");if(!fout){
cout <<"打开文件staff.txt失败!"<< endl;abort();}for(int i =0; i < n -1; i++){
fout << stu[i]<<"\n";}
cout <<"删除成功!"<< endl;
fout.close();}system("pause");}void staff::find_staff(){//查找员工信息system("cls");
cout <<"请输入你想查找员工的编号"<< endl;char temp[20];
cin >> temp;bool k =true;
ifstream fin("staff.txt");if(!fin){
cout <<"打开文件staff.txt失败!"<< endl;abort();}
staff stu[105];int n =0;while(fin >> stu[n].staff_number >> stu[n].staff_name>> stu[n].staff_sex >> stu[n].staff_phone >> stu[n].staff_address){
n++;}
fin.close();do{for(int i =0; i < n; i++){if(strcmp(stu[i].staff_number, temp)==0){
cout <<setw(10)<<"员工编号"<<setw(10)<<"员工姓名"<<setw(10)<<"员工性别"<<setw(15)<<"员工电话"<<setw(15)<<"家庭地址"<< endl;
cout <<setw(10)<< stu[i].staff_number <<setw(10)<< stu[i].staff_name <<setw(10)<< stu[i].staff_sex <<setw(15)<< stu[i].staff_phone <<setw(15)<< stu[i].staff_address << endl;
k =false;break;}}if(k){
cout <<"该编号员工不存在!请重新输入房主编号:";
cin >> temp;}}while(k);system("pause");}
租房者的信息类:租房者想要租房等功能的实现
#pragma once#include<iostream>#include<string>usingnamespace std;//租房者类classtenant{public:tenant();voidget_tenant();//租房者的信息录入voiddis_tenant();//租房者的信息输出voiddelete_tenant();//租房者的信息删除voidfind_tenant();//信息查询voidamend_tenant();//修改信息friend ofstream&operator<<(ofstream& out, tenant stu);boolfindt(string a,char* b,int c);//用户登录查找private:char tenant_number[20];//租房者编号
string tenant_name;//租房者姓名 char tenant_password[20];//租房者密码
string tenant_sex;//租房者性别 char tenant_phone[20];//租房者电话号码
string profession;//租房者职业 };
租房者的实现
#include"tenant.h"#include<iostream>#include<fstream>#include<iomanip>#include<string>#include<cstring>usingnamespace std;
tenant::tenant(){strcpy_s(tenant_number,"0");
tenant_name ='0';strcpy_s(tenant_password,"0");
tenant_sex ='0';strcpy_s(tenant_phone,"0");
profession ='0';}
ofstream&operator<<(ofstream& out, tenant stu){
out << stu.tenant_number <<" ";
out << stu.tenant_name <<" ";
out << stu.tenant_password <<" ";
out << stu.tenant_sex <<" ";
out << stu.tenant_phone <<" ";
out << stu.profession <<"\n";return out;}void tenant::get_tenant(){//录入信息
ofstream fout("tenant.txt", ios::app);if(!fout){
cout <<"打开文件tenant.txt失败!"<< endl;abort();}
cout <<"请输入租房者编号:"; cin >> tenant_number; fout << tenant_number <<" ";
cout <<"请输入租房者姓名:"; cin >> tenant_name; fout << tenant_name <<" ";
cout <<"请输入密码:"; cin >> tenant_password; fout << tenant_password <<" ";
cout <<"请输入性别:"; cin >> tenant_sex; fout << tenant_sex <<" ";
cout <<"请输入电话:"; cin >> tenant_phone; fout << tenant_phone <<" ";
cout <<"请输入工作职业:"; cin >> profession; fout << profession <<"\n";
fout.close();
cout <<"录入成功!"<< endl;system("pause");}void tenant::dis_tenant(){//输出信息
ifstream fin("tenant.txt");if(!fin){
cout <<"打开文件tenant.txt失败!"<< endl;abort();}
cout <<setw(10)<<"租房者编号"<<setw(10)<<"姓名"<<setw(10)<<"性别"<<setw(15)<<"电话号码"<<setw(10)<<"工作职业"<< endl;
tenant stu[205];int n =0;while(fin >> stu[n].tenant_number >> stu[n].tenant_name >> stu[n].tenant_password >> stu[n].tenant_sex >> stu[n].tenant_phone >> stu[n].profession){
n++;}
fin.close();for(int j =0; j < n; j++){for(int k =0; k < n - j -1; k++){if(strcmp(stu[k].tenant_number,stu[k +1].tenant_number)>0){
tenant temp1 = stu[k];
stu[k]= stu[k +1];
stu[k +1]= temp1;}}}for(int i =0; i < n; i++){
cout <<setw(10)<< stu[i].tenant_number <<setw(10)<< stu[i].tenant_name <<setw(10)<< stu[i].tenant_sex <<setw(15)<< stu[i].tenant_phone <<setw(10)<< stu[i].profession << endl;}system("pause");}void tenant::delete_tenant(){//删除信息
cout <<"请输入你要删除的租房者编号:";char temp[20];
cin >> temp;
tenant str[205];
ifstream fin("tenant.txt");if(!fin){
cout <<"打开文件tenant.txt失败!"<< endl;abort();}int n =0;while(!fin.eof()){
fin >> str[n].tenant_number >> str[n].tenant_name >> str[n].tenant_password >> str[n].tenant_sex >> str[n].tenant_phone >> str[n].profession;
n++;}
n = n -1;//eof()到文件末尾会多循环一次来判断文件末尾,所以n多加了一次,这里减去
fin.close();bool l =true;int k =0;for(int i =0; i < n; i++){if(strcmp(str[i].tenant_number, temp)==0){
k = i;
l =false;break;}}if(l) cout <<"此编号的租房者不存在!删除失败!"<< endl;else{
ofstream fout("tenant.txt");if(!fout){
cout <<"打开文件tenant.txt失败!"<< endl;abort();}for(int i = k; i < n -1; i++){
str[i]= str[i +1];}for(int i =0; i < n -1; i++){
fout << str[i]<<"\n";}
cout <<"删除成功!"<< endl;
fout.close();}system("pause");}void tenant::find_tenant(){//查找信息system("cls");
cout <<"请输入你想查找租房者的编号"<< endl;char temp[20];
cin >> temp;bool k =true;
ifstream fin("tenant.txt");if(!fin){
cout <<"打开文件tenant.txt失败!"<< endl;abort();}
tenant stu[205];int n =0;while(fin >> stu[n].tenant_number >> stu[n].tenant_name >> stu[n].tenant_password >> stu[n].tenant_sex >> stu[n].tenant_phone >> stu[n].profession){
n++;}
fin.close();do{for(int i =0; i < n; i++){if(strcmp(stu[i].tenant_number, temp)==0){
cout <<setw(10)<<"租房者编号"<<setw(10)<<"姓名"<<setw(10)<<"性别"<<setw(15)<<"电话号码"<<setw(10)<<"工作职业"<< endl;
cout <<setw(10)<< stu[i].tenant_number <<setw(10)<< stu[i].tenant_name <<setw(10)<< stu[i].tenant_sex <<setw(15)<< stu[i].tenant_phone <<setw(10)<< stu[i].profession << endl;
k =false;break;}}if(k){
cout <<"该编号租房者不存在!请重新输入租房者编号:";
cin >> temp;}}while(k);system("pause");}void tenant::amend_tenant(){//修改信息
cout <<"请输入你想修改的租房者编号"<< endl;char temp[20];
cin >> temp;
ifstream fin("tenant.txt");if(!fin){
cout <<"打开文件tenant.txt失败!"<< endl;abort();}
tenant stu[205];int n =0;while(fin >> stu[n].tenant_number >> stu[n].tenant_name >> stu[n].tenant_password >> stu[n].tenant_sex >> stu[n].tenant_phone >> stu[n].profession){
n++;}
fin.close();bool k =true;for(int i =0; i < n; i++){if(strcmp(stu[i].tenant_number, temp)==0){
k =false;break;}}if(k){ cout <<"编号错误!"<< endl;return;}
cout <<"你要修改的租房者信息为:"<< endl;
cout <<setw(10)<<"租房者编号"<<setw(10)<<"姓名"<<setw(10)<<"性别"<<setw(15)<<"电话号码"<<setw(10)<<"工作职业"<< endl;
cout <<setw(10)<< stu[k].tenant_number <<setw(10)<< stu[k].tenant_name <<setw(10)<< stu[k].tenant_sex <<setw(15)<< stu[k].tenant_phone <<setw(10)<< stu[k].profession << endl;int ch;do{
cout <<"1.电话号码"<< endl;
cout <<"2.工作职业"<< endl;
cout <<"0:返回"<< endl;
cout <<"请输入你的选择:";
cin >> ch;
string s;while(ch >2|| ch <0){
cout <<"请重新输入您的选择:";
cin >> ch;}char a[20];switch(ch){case1:
cout <<"请输入你要修改的内容:";
cin >> a;strcpy_s(stu[k].tenant_phone,a);break;case2:
cout <<"请输入你要修改的内容:";
cin >> s;
stu[k].profession = s;break;}
cout <<"修改成功!"<< endl;}while(ch);
ofstream fout("tenant.txt");if(!fout){
cout <<"文件tenant.txt打开失败!"<< endl;abort();}for(int i =0; i < n -1; i++){
fout << stu[i]<<"\n";}
fout.close();}bool tenant::findt(string a,char* b,int c){//判读学号,密码正误以及修改密码
ifstream fin("tenant.txt");if(!fin){
cout <<"打开文件tenant.txt失败!"<< endl;abort();}
tenant stu[105];int n =0;while(fin >> stu[n].tenant_number >> stu[n].tenant_name >> stu[n].tenant_password >> stu[n].tenant_sex >> stu[n].tenant_phone >> stu[n].profession){
n++;}
fin.close();int k =0;if(c){//修改密码for(int i =0; i < n; i++){if(stu[i].tenant_name == a ){strcpy_s(stu[i].tenant_password, b);
ofstream fout("tenant.txt");if(!fout){
cout <<"打开文件tenant.txt失败!"<< endl;abort();}for(int j =0; j < n; j++){
fout << stu[j]<<"\n";}
fout.close();returntrue;}}}else{//判读密码正误for(int i =0; i < n; i++){if(stu[i].tenant_name==a &&strcmp(stu[i].tenant_password, b)==0){returntrue;}}}returnfalse;}
至此全部功能完成
总结
因为完成了就放在一旁了,结果后面想起了想改的时候,忘了咋写的了,那个信息序号的排序可能有点问题,各位哥哥们可以自己写一下
版权归原作者 Think_kill 所有, 如有侵权,请联系我们删除。