
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
在添加用户信息那一步有问题
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
int n,k;
class yonghu
{
public:
void input();
void add();
void dele();
void change();
void sorts();
void maxn();
void show();
int time1;
friend bool cmp(yonghu a,yonghu b);
private:
long haoma;
char name[60];
char sex;
int time;
int flag;
}s[1000];
void yonghu::show()
{
cout<<"用户信息"<<endl;
for(int i=1;i<=n;i++)
{
if(s[i].flag)
cout<<s[i].haoma<<" "<<s[i].name<<" "<<s[i].sex<<" "<<s[i].time<<endl;
}
}
void yonghu::input() //查询用户信息
{
cout<<"请输入用户手机号"<<endl;
for(int i=1;i<=n;i++)
{
cin>>s[i].haoma;
s[i].flag=1;
cout<<s[i].haoma<<" "<<s[i].name<<" "<<s[i].sex<<" "<<s[i].time<<endl;
}
}
void yonghu::add() //添加用户信息
{
int a;
cout<<"请输入要添加的用户人数"<<endl;
cin>>a;
n=n+a;
cout<<"请分别输入用户的手机号,姓名,性别,注册时间"<<endl;
for(int i=k+1;i<=n;i++)
{
cin>>s[i].haoma>>s[i].name>>s[i].sex>>s[i].time;
s[i].flag=1;
s[i].time1=s[i].time;
}
cout<<"添加成功"<<endl;
}
void yonghu::dele() //删除用户信息
{
int b;
cout<<"请输入您要删除的用户手机号"<<endl;
cin>>b;
for(int i=1;i<=n;i++)
{
if(s[i].haoma==b)
{
s[i].flag=0;
}
}
cout<<"删除成功"<<endl;
}
void yonghu::change() //改变用户信息
{
int c,k,choice;
int newscore;
char newname[60];
char newsex;
cout<<"请输入您要修改信息的用户手机号"<<endl;
cin>>c;
for(int i=1;i<=n;i++)
{
if(s[i].haoma==c)
{
k=i;
break;
}
}
cout<<"请选择要修改的选项"<<endl;
cout<<"1:姓名修改"<<endl;
cout<<"2 性别修改"<<endl;
cout<<"3 注册时间修改"<<endl;
cin>>choice;
if(choice==1)
{
cout<<"请输入新的姓名"<<endl;
cin>>newname;
strcpy(s[k].name,newname);
}
else if(choice==2)
{
cout<<"请输入新的性别"<<endl;
cin>>newsex;
s[k].sex=newsex;
}
else if(choice==3)
{
cout<<"请输入新的注册时间"<<endl;
cin>>newscore;
s[k].time=newscore;
}
cout<<"修改成功"<<endl;
}
bool cmp(yonghu a,yonghu b)
{
return a.time>b.time;
}
void yonghu::sorts() //排序
{
sort(s+1,s+n+1,cmp);
for(int i=1;i<=n;i++)
{
if(s[i].flag)
cout<<s[i].haoma<<" "<<s[i].name<<" "<<s[i].sex<<" "<<s[i].time<<endl;
}
}
void yonghu::maxn() //注册时间最早
{
cout<<"the best yonghu:"<<endl;
sort(s+1,s+n+1,cmp);
cout<<s[1].name<<endl;
}
int main()
{
int key;
yonghu t1;
cout<<" ---------------用户手机号管理系统-----------"<<endl;
cout<<" | 1:查询用户信息"<<"|"<<" 2:增加用户信息 "<<" |"<<endl;
cout<<" --------------------------------------------"<<endl;
cout<<" | 3:删除用户信息"<<"|"<<" 4:修改用户信息"<<" |"<<endl;
cout<<" --------------------------------------------"<<endl;
cout<<" | 5:注册时间排序"<<"|"<<" 6:近期注册用户"<<" |"<<endl;
cout<<" --------------------------------------------"<<endl;
cout<<" | 7:全部用户信息"<<"|"<<" 8:任意键退出"<<" |"<<endl;
cout<<" --------------------------------------------"<<endl;
while(cin>>key)
{
if(key==1)
{
t1.input();
}
else if(key==2)
{
t1.add();
}
else if(key==3)
{
t1.dele();
}
else if(key==4)
{
t1.change();
}
else if(key==5)
{
t1.sorts();
}
else if(key==6)
{
t1.maxn();
}
else if(key==7)
{
t1.show();
}
else return 0;
}
return 0;
}