#include
#include
#include
#include
#include
using namespace std;
class livers//livers类
{ private:
char name[20]; //姓名
char sex;
char room_num[10];
char parking[10];
char ID_num[20];
char phone_num[20];
public:
livers(){}
livers(char n[20],char s,char room[10],char park[10],char phone[20],char ID[20])
{strcpy(name,n);
sex=s;
strcpy(room_num,room);
strcpy(parking,park);
strcpy(phone_num,phone);
strcpy(ID_num,ID);}
friend void menu();//友元函数
};
void key()
{char mima[20],key[20];char yu_mima[20]="12345";
int flag;int p;char w;
ifstream in;
ofstream out;
fstream f; //输入输出对象
cout<<" ******************************************"<
cout<<" 欢迎登录小区物业管理系统 "<
cout<<" ******************************************"<
do{flag=0;
cout<<" 请输入管理员密钥:"<
in.clear();
in.open("E:\\c.dat",ios::in);
if(in.fail()) //首次登录
{cout<
cout<<" 请输入:";
cin>>mima;
cout<
if(strcmp(yu_mima,mima)==0)
{flag=1;
cout<<" 密码正确!请输入下一步指令:"<
if(!in.fail()) //非首次登陆
{in>>key;
cin>>mima;
if(strcmp(key,mima)==0)
{flag=1;
cout<<" 密码正确!请输入下一步指令:"<
}
in.close();
if(flag==0)
cout<<" 密码有误,请重新输入"<
}while(flag==0);
cout<<" *************************"<
cout<<" * 0、修改密码 *"<
cout<<" * 1、进入系统 *"<
cout<<" * 2、退出系统 *"<
cout<<" *************************"<
do{
do
{cout<<" 请输入您的指令(0~2):"<
cin>>p;
switch(p)
{
case 0: //修改密码
{cout<<" 请输入新密码:"<
cin>>key;
out.open("E:\\c.dat",ios::out);
out.clear();
out<
out.close();}break;
case 1: menu();break;//进入系统
case 2: //退出系统
{cout<<" 谢谢使用,小区物业管理系统! "<
exit(0);}break;
default : cout<<" 输入指令有误,请重新输入:"<
}
}while(p<0||p>2);
cout<<" 您想继续进行其他操作吗? y / n :"<
do{cin>>w;
cout<
if(w=='n')exit(0);
if(w!='y'&&w!='n')
cout<<" 指令错误!请重新输入!"<
}while(flag==0);
if(w=='y')
{cout<<" 请输入操作代码: 0 修改密码"<
cout<<" 1 进入系统"<
cout<<" 2 退出系统"<
}while(w=='y');
} //密钥函数
void menu()
{cout<<" ******************************************"<
cout<<" 小区物业管理系统 "<
cout<<" ******************************************"<
cout<<" **************************"<
cout<<" * 主菜单命令如下所示: *"<
cout<<" * 1、输入数据 *"<
cout<<" * 2、增加数据 *"<
cout<<" * 3、修改数据 *"<
cout<<" * 4、信息查询 *"<
cout<<" * 5、信息浏览 *"<
cout<<" * 6、信息删除 *"<
cout<<" * 7、退出系统 *"<
cout<<" **************************"<
cout<<" 请输入您的指令数字(1~7)"<
char p;char w;
livers liv[50];
livers *s[50];
ifstream in;
ofstream out;
fstream f; //输入输出对象
int i=0;
int j=0;
int flag=0;
do //flag判断输入是否有效
{
cin>>p;
if(p>='1'&&p<='7')
flag=1;
else
cout<<" 指令错误!请重新输入:"<
}while(flag==0);
do{//最外层循环
switch(p) //接收功能选项
{
case '1': //信息输入
{char name[20],sex,room_num[10],parking[10],phone_num[20],ID_num[20],c;
out.open("E:\\a.dat",ios::out);
do{
cout<<" 请输入住户姓名:";
cin>>name;
cout<
cin>>sex;
cout<
cin>>room_num;
cout<
cin>>parking;
cout<
cin>>phone_num;
cout<
cin>>ID_num;
cout<
out<
cout<<" 数据输入成功,想继续输入吗? y / n : "<
cin>>c;
cout<
do
{
if(c!='y'&&c!='n')
{cout<<" 指令错误!请重新输入!"<
char c;
cin>>c;}
else flag=1;
}while(flag==0);
}while(c=='y');
out.close();
break;
}
case '2': //增加数据
{char name[20],sex,room_num[10],parking[10],phone_num[20],ID_num[20],c;
out.open("E:\\a.dat",ios::app);
do
{
cout<<"请输入您要增加的住户的姓名:"<
cin>>name;
cout<
cin>>sex;
cout<
cin>>room_num;
cout<
cin>>parking;
cout<
cin>>phone_num;
cout<
cin>>ID_num;
cout<
out<
cout<<" 数据添加成功,想继续添加吗? y / n :"<
cin>>c;
cout<
if(c=='n')break;
if(c!='y'&&c!='n')
{cout<<" 指令错误!请重新输入!"<
cin>>c;}
}while(c=='y');
out.close();
break;
}
case '3': //修改数据
{char name[20],sex,room_num[10],parking[10],phone_num[20],ID_num[20],c;
char na[20],s,room[10],park[10],phone[20],ID[20];
do
{int flag=0;
cout<<" 请输入您要修改的住户的姓名:"<
cin>>na;
cout<
f.open("E:\\a.dat",ios::in|ios::out);
f.seekg(0,ios::beg);
f.clear();
while(!f.eof())
{f>>name;
if(strcmp(name,na)==0)
{flag=1;
cout<<"请输入您要修改的住户的姓名:"<
cin>>na;
cout<<" 请输入新房间号:";
cin>>room;
cout<
cin>>s;
cout<
cin>>room;
cout<
cin>>park;
cout<
cin>>phone;
cout<
cin>>ID;
cout<
sex=s;
strcpy(room_num,room);
strcpy(parking,park);
strcpy(ID_num,ID);
strcpy(phone_num,phone);
f.seekp(-20l,ios::cur);
f<
cout<<" 修改成功! "<
}
f.close();
if(flag==0)
cout<<" 您要修改的学生不存在!"<
cout<<" 您想继续修改吗? y / n :"<
cin>>c;
cout<
if(c=='n')break;
if(c!='y'&&c!='n')
{cout<<" 指令错误!请重新输入!"<
cin>>c;}
}while(c=='y');
break;
}
case '4': //信息查询
{char name[20],sex,room_num[10],room[10],parking[10],phone_num[20],ID_num[20];
cout<<" 请选择您要进行查询的方式:"<
int k;
cin>>k;
switch(k)
case 1: //按住户名查询
{char na[20];char c;
do{
in.open("E:\\a.dat",ios::in);
in.seekg(0,ios::beg);
in.clear();
int flag=0;
cout<<" 请输入你要查询的住户姓名:"<
cin>>na;
cout<
while(!in.eof())
{in>>name>>sex>>room_num>>parking>>phone_num>>ID_num;
if(strcmp(name,na)==0)
{flag=1;
cout<<" 您要查询的住户:"<
cout<<"姓名 性别 房间号 车库号 电话号码 身份证号 "<
cout<
}
in.close();
if(flag==0)
cout<<" 对不起!您要查询的住户不存在!"<
cout<<" 您想继续查询吗? y / n :";
cin>>c;
cout<
if(c=='n')break;
if(c!='y'&&c!='n')
{cout<<" 指令错误!请重新输入!"<
cin>>c;}
}while(c=='y');
break;
case 2 : //按房间号查询
{
do{
int flag=0;
cout<<" 请输入你要查询的房间号:"<
cin>>room;
cout<
in.open("E:\\a.dat",ios::in);
in.seekg(0,ios::beg);
in.clear();
while(!in.eof())
{in>>name>>sex>>room_num>>parking>>phone_num>>ID_num;
if(strcmp(room_num,room)==0)
{flag=1;
cout<<"您要查询的住户:"<
cout<<"姓名 性别 房间号 车库号 电话号码 身份证号 "<
cout<
}
in.close();
if(flag==0)
cout<<" 对不起!您要查询的住户不存在!"<
cout<<" 您想继续查询吗? y / n :";
char c;
cin>>c;
cout<
if(c=='n')break;
if(c!='y'&&c!='n')
{cout<<" 指令错误!请重新输入!"<
cin>>c;}
}while(c=='y');
break;
default:cout<<"对不起,您输入的指令有误:";}break;
}break;
case '5': //信息浏览
{char name[20],sex,room_num[10],parking[10],phone_num[20],ID_num[20];
in.open("E:\\a.dat",ios::in);
in.seekg(0,ios::beg);
in.clear();
if(in.get()==EOF){cout<<" 文件中已无数据"<
cout<<" 本系统所有学生数据如下:"<
cout<<"姓名 性别 房间号 车库号 电话号码 身份证号 "<
while(!in.eof())
{in>>name>>sex>>room_num>>parking>>phone_num>>ID_num;
cout<
}
in.close();
break;
}
case'6': //信息删除
{char name[20],na[20],sex,room_num[10],parking[10],phone_num[20],ID_num[20],c;
int k;
do
{int n=0;int flag=0;
cout<<" 请输入您要删除的学生的姓名:"<
cin>>na;
cout<
in.clear();
in.open("E:\\a.dat",ios::in);
in.seekg(0,ios::beg);
while(!in.eof())
{in>>name>>sex>>room_num>>parking>>phone_num>>ID_num;
s[n]=new livers(name,sex,room_num,parking,phone_num,ID_num);
liv[n]=*s[n];
delete s[n];
n++;}
in.close();
for(i=0;i
{if(strcmp(liv[i].name,na)==0)
{flag=1;k=i;}
}
if(flag==1)
{out.open("E:\\a.dat",ios::out);
out.seekp(0,ios::beg);
if(n>1)
{
for(i=0;i
out<
for(i=k+1;i
out<
cout<<" 信息删除成功"<
}
if(n=1){}
out.close();
}
else
cout<<" 您要删除的住户不存在!"<
cout<<" 您想继续删除吗? y / n :"<
cin>>c;
cout<
if(c=='n')break;
if(c!='y'&&c!='n')
{cout<<" 指令错误!请重新输入!"<
cin>>c;}
}while(c=='y');
break;
}
case'7': //退出
{cout<<"Bye bye! See you next time."<
cout<<" 王建制作"<
}//以上为menu菜单中switch控制语句
cout<<" 您想继续进行其他操作吗? y / n :"<
int flag=0;
do{cin>>w;
cout<
if(w=='n')exit(0);
if(w!='y'&&w!='n')
cout<<" 指令错误!请重新输入!"<
else
flag=1;
}while(flag==0);
if(w=='y')
{cout<<" 请输入操作代码: 1 输入数据"<
cout<<" 2 增加数据"<
cout<<" 3 修改数据"<
cout<<" 4 信息查询"<
cout<<" 5 信息浏览"<
cout<<" 6 信息删除"<
cout<<" 7 退出系统"<
cin>>p;
}while(w=='y');//最外层的do-while循环
}//menu函数结束
int main()
{key();
return 0;
}
¥29.8
¥9.9
¥59.8