楼上的代码无法没有修改学生信息
#include
#include
#include
class studentinformation
{
char tag;
char name[10];
int age, num;
char sex[3];
char speciatly[7];
char boddy[7];
double consumetotal,score;
public:
char gettag()
{
return tag;
}
char *getname()
{
return name;
}
int getage()
{
return age;
}
int getnum()
{
return num;
}
char *getsex()
{
return sex;
}
char *getspeciatly()
{
return speciatly;
}
char *getboddy()
{
return boddy;
}
double getconsumetotal()
{
return consumetotal;
}
double getscore()
{
return score;
}
void SetInformation(int m)
{
switch(m)
{
case 1:
cout<<"请输入要修改的学生姓名:";
cin>>name;
case 2:
cout<<"请输入要修改的学生年龄:";
cin>>age;
break;
case 3:
cout<<"请输入要修改的学生学号:";
cin>>num;
break;
case 4:
cout<<"请输入要修改的学生性别:";
cin>>sex;
break;
case 5:
cout<<"请输入要修改的学生专业:";
cin>>speciatly;
break;
case 6:
cout<<"请输入要修改的学生爱好:";
cin>>boddy;
break;
case 7:
cout<<"请输入要修改的消费总额:";
cin>>consumetotal;
break;
case 8:
cout<<"请输入要修改的学生成绩:";
cin>>score;
break;
}
}
void getinformation()
{
tag='#';
cout<<"姓名 年龄 学号 性别 专业 爱好 消费总额 学生成绩 "<
}
void disp()
{
if(tag=='#')
cout<
};
int comp(char s1[],char s2[])
{
int i=0,flag=0;
while(s1[i]!='\0' || s2[i]!='\0' )
{
if(s1[i]==s2[i])
flag=1;
else
flag=0;
i++;
}
return flag;
}
void addstudentinformation()
{
fstream putinto("studentinformation.txt",ios::app);
studentinformation a;
cout<<"请输入你要添加的信息:"<
putinto.write((char*)&a,sizeof(a));
putinto.close();
}
void findstudentinformation()
{
char name[10];
int flag=0;
ifstream file("studentinformation.txt");
studentinformation f;
file.seekg(0);
cout<<"输入要查询的姓名:";
cin>>name;
file.read((char *)&f,sizeof(f));
while(file)
{
if(comp(f.getname(),name)==1)
{
cout<<"输出查询结果:"<
flag=1;
}
file.read((char*)&f,sizeof(f));
};
if(flag==0)
cout<<"没有找到该学生,请核对后再查"<
}
void delstudentinformation()
{
char sname[12];
int i=0;
fstream outdel("studentinformation.txt",ios::in|ios::out);
studentinformation one;
outdel.seekg(0);
cout<<"输入要删除的姓名:";
cin>>sname;
while(!outdel.eof())
{
outdel.seekp(sizeof(studentinformation)*i);
outdel.read((char *)&one,sizeof(one));
if(comp(one.getname(),sname)==1 && one.gettag()=='#')
{
outdel.seekp(sizeof(studentinformation)*i);
outdel.put('*');
}
i++;
}
outdel.close();
}
void showstudentinformation()
{
ifstream input("studentinformation.txt");
studentinformation s;
cout<<"输出全部学生信息:"<
while(input)
{
s.disp();
input.read((char*)&s,sizeof(s));
};
input.close();
}
void alterstudentinformation()
{
int flag=0,n=0,i=0;
char name[10];
fstream file("studentinformation.txt",ios::in|ios::out);
studentinformation stu;
cout<<"请输入要修改的学生名字:";
cin>>name;
while(file.eof()==0)
{
file.seekp(sizeof(studentinformation)*i);
file.read((char *)&stu,sizeof(stu));
if(comp(stu.getname(),name)==1)
{
flag=1;
cout<<"该学生的具体信息:"<
cout<<"请入要修改的信息类别:"<
cin>>n;
if(n<1||n>9)
{
cout<<"输入错误,请重新输入"<
}
else if(n==9)
cout<<"退出";
else
{
file.seekp(sizeof(studentinformation)*i);
stu.SetInformation(n);
file.write((char*)&stu,sizeof(stu));
}
break;
}
i++;
};
if(flag==0)
{
cout<<"没有找到该学生,请核对后再查"<
file.close();
}
void main()
{
int s;
do
{
cout<<"请选择你要处理的问题(退出请按其它键):"<
cin>>s;
switch(s)
{
case 1:
addstudentinformation();
break;
case 2:
findstudentinformation();
break;
case 3:
delstudentinformation();
break;
case 4:
showstudentinformation();
break;
case 5:
alterstudentinformation();
break;
}
}while(s<=4&&s>=1);
}
你也算个牛人了 代码整成这样 你叫我怎么看啊
总算改好了 你自己看吧
三楼的大哥说得对,小弟一时粗心没看清题目,现在重新改了下,经测试无误
大家看下 提点意见
代码如下:
#include
#include
#include
class studentinformation
{
char tag;
char name[10];
int age, num;
char sex[3];
char speciatly[7];
char boddy[7];
double consumetotal,score;
public:
char gettag()
{
return tag;
}
char *getname()
{
return name;
}
int getage()
{
return age;
}
int getnum()
{
return num;
}
char *getsex()
{
return sex;
}
char *getspeciatly()
{
return speciatly;
}
char *getboddy()
{
return boddy;
}
double getconsumetotal()
{
return consumetotal;
}
double getscore()
{
return score;
}
void SetInformation(int m)
{
switch(m)
{
case 1:
cout<<"请输入要修改的学生姓名:";
cin>>name;
case 2:
cout<<"请输入要修改的学生年龄:";
cin>>age;
break;
case 3:
cout<<"请输入要修改的学生学号:";
cin>>num;
break;
case 4:
cout<<"请输入要修改的学生性别:";
cin>>sex;
break;
case 5:
cout<<"请输入要修改的学生专业:";
cin>>speciatly;
break;
case 6:
cout<<"请输入要修改的学生爱好:";
cin>>boddy;
break;
case 7:
cout<<"请输入要修改的消费总额:";
cin>>consumetotal;
break;
case 8:
cout<<"请输入要修改的学生成绩:";
cin>>score;
break;
}
}
void getinformation()
{
tag='#';
cout<<"姓名 年龄 学号 性别 专业 爱好 消费总额 学生成绩 "<
}
void disp()
{
if(tag=='#')
cout<
};
int comp(char s1[],char s2[])
{
int i=0,flag=0;
while(s1[i]!='\0' || s2[i]!='\0' )
{
if(s1[i]==s2[i])
flag=1;
else
flag=0;
i++;
}
return flag;
}
void addstudentinformation()
{
fstream putinto("studentinformation.txt",ios::app);
studentinformation a;
cout<<"请输入你要添加的信息:"<
putinto.write((char*)&a,sizeof(a));
putinto.close();
}
void findstudentinformation()
{
char name[10];
int flag=0;
ifstream file("studentinformation.txt");
studentinformation f;
file.seekg(0);
cout<<"输入要查询的姓名:";
cin>>name;
file.read((char *)&f,sizeof(f));
while(file)
{
if(comp(f.getname(),name)==1)
{
cout<<"输出查询结果:"<
flag=1;
}
file.read((char*)&f,sizeof(f));
};
if(flag==0)
cout<<"没有找到该学生,请核对后再查"<
}
void delstudentinformation()
{
char sname[12];
int i=0;
fstream outdel("studentinformation.txt",ios::in|ios::out);
studentinformation one;
outdel.seekg(0);
cout<<"输入要删除的姓名:";
cin>>sname;
while(!outdel.eof())
{
outdel.seekp(sizeof(studentinformation)*i);
outdel.read((char *)&one,sizeof(one));
if(comp(one.getname(),sname)==1 && one.gettag()=='#')
{
outdel.seekp(sizeof(studentinformation)*i);
outdel.put('*');
}
i++;
}
outdel.close();
}
void showstudentinformation()
{
ifstream input("studentinformation.txt");
studentinformation s;
cout<<"输出全部学生信息:"<
while(input)
{
s.disp();
input.read((char*)&s,sizeof(s));
};
input.close();
}
void alterstudentinformation()
{
int flag=0,n=0,i=0;
char name[10];
fstream file("studentinformation.txt",ios::in|ios::out);
studentinformation stu;
cout<<"请输入要修改的学生名字:";
cin>>name;
while(file.eof()==0)
{
file.seekp(sizeof(studentinformation)*i);
file.read((char *)&stu,sizeof(stu));
if(comp(stu.getname(),name)==1)
{
flag=1;
cout<<"该学生的具体信息:"<
cout<<"请入要修改的信息类别:"<
cin>>n;
if(n<1||n>9)
{
cout<<"输入错误,请重新输入"<
}
else if(n==9)
cout<<"退出";
else
{
file.seekp(sizeof(studentinformation)*i);
stu.SetInformation(n);
file.write((char*)&stu,sizeof(stu));
}
break;
}
i++;
};
if(flag==0)
{
cout<<"没有找到该学生,请核对后再查"<
file.close();
}
void main()
{
int s;
do
{
cout<<"请选择你要处理的问题(退出请按其它键):"<
cin>>s;
switch(s)
{
case 1:
addstudentinformation();
break;
case 2:
findstudentinformation();
break;
case 3:
delstudentinformation();
break;
case 4:
showstudentinformation();
break;
case 5:
alterstudentinformation();
break;
}
}while(s<=4&&s>=1);
}
看不明白啊
都很牛