#include <iostream>
#include <string>
#include<fstream>
using namespace std;
class Humen
{
};
class Student:public Humen//学生类
{
private:
public:
string name,number;
double math,engligh,chinese;
Student(string na=" ",string nu=" ",double ma=0,double en=0,double ch=0)
{
name=na;
number=nu;
math=ma;
engligh=en;
chinese=ch;
}
void show1()//显示全部信息
{
cout<<"姓名:"<<name<<endl;
cout<<"学号:"<<number<<endl;
cout<<"数学:"<<math<<endl;
cout<<"英语:"<<engligh<<endl;
cout<<"语文:"<<chinese<<endl;
cout<<"总分:"<<engligh+math+chinese<<endl;
cout<<"平均分:"<<(engligh+math+chinese)/3<<endl;
}
void show2()//查询个人信息
{
cout<<"姓名:"<<name<<endl;
cout<<"学号:"<<number<<endl;
}
void show3()//查询单门 总分
{
cout<<"姓名:"<<name<<endl;
cout<<"总分:"<<engligh+math+chinese<<endl;
}
void show4()//查询单门 平均分
{
cout<<"姓名:"<<name<<endl;
cout<<"平均分:"<<(engligh+math+chinese)/3<<endl;
}
void show5()//查询单门数学
{
cout<<"数学:"<<math<<endl;
}
void show6()//查询单门英语
{
cout<<"英语:"<<engligh<<endl;
}
void show7()//查询单门语文
{
cout<<"语文:"<<chinese<<endl;
}
};
class Teacher:public Humen//教师类
{
private:
public:
string NAME;
string NUMBER;
string WORK;
Teacher(string NA="",string NU="",string WO="")
{
NAME=NA;
NUMBER=NU;
WORK=WO;
}
void printf()
{
cout<<"姓名:"<<NAME<<endl;
cout<<"编号:"<<NUMBER<<endl;
cout<<"职称:"<<WORK<<endl;
}
};
int main()
{
cout<<"请选择用户对象:"<<endl;
cout<<"1.学生\t2.教师"<<endl;
int G;
cin>>G;
switch(G)
{
int pass1;
case 1://学生类
{
first: cout<<"\n请输入学生学号:";
string xuehao;
cin>>xuehao;
cout<<"请输入登陆密码:";
string mima1;
cin>>mima1;
ifstream in("file1.txt");
if(!in) {cout<<"发生未知错误\n";system("pause");return 0;}
string a1;
string a2;
while(in>>a1)
{
in>>a2;
if(a1==xuehao&&a2==mima1)
{pass1=1;break;}
else pass1=0;
}
in.close();
if(pass1==0)
{
cout<<"\n账号或密码输入错误"<<endl;
cout<<"请重新输入"<<endl;
goto first;
}
cout<<"\n登陆成功(*_*)\n"<<endl;
ifstream out("file3.txt");//从文本读取学生信息
if(!out) {cout<<"发生未知错误";exit(0);}
string mmmz,xxxh;
double mmm,eee,yyy;
Student s[100];
int w=0;
while(out>>mmmz)
{
out>>xxxh>>mmm>>eee>>yyy;
s[w].name=mmmz;
s[w].number=xxxh;
s[w].math=mmm;
s[w].engligh=eee;
s[w].chinese=yyy;
w++;
}
in.close();
late: cout<<"请选择学生功能:"<<endl;
cout<<"1.显示个人信息"<<endl;
cout<<"2.查询个人成绩"<<endl;
cout<<"3.计算总分"<<endl;
cout<<"4.计算平均成绩"<<endl;
int k;
cin>>k;
switch(k)
{
case 1://显示个人信息
{
int a;
for(a=0;a<=w;a++)
{
while(xuehao==s[a].number)
{
s[a].show1();break;
}
}
}
break;
case 2://查询个人单门成绩
{
cout<<"请输入课程名称:";
aa: string kecheng;
cin>>kecheng;
int a;
for(a=0;a<=w;a++)
{
while(xuehao==s[a].number)
{
if(kecheng=="math")
{s[a].show5();break;}
else if(kecheng=="english")
{s[a].show6();break;}
else if(kecheng=="chinese")
{s[a].show7();break;}
else
{cout<<"请输入正确的课程名:";
goto aa;}
}
}
}
break;
case 3://计算总分
{
int a;
for(a=0;a<=w;a++)
{
while(xuehao==s[a].number)
{
s[a].show3();break;
}
}
}
break;
case 4://计算平均成绩
{
int a;
for(a=0;a<=w;a++)
{
while(xuehao==s[a].number)
{
s[a].show4();break;
}
}
}
break;
}
ww: cout<<"是否继续?Yes/No"<<endl;
string qq;
cin>>qq;
if(qq=="Yes")
goto late;
else if(qq=="No")
break;
else
{cout<<"输入有误,请重新选择!"<<endl;
goto ww;}
}
case 2://教师类
{
second: cout<<"\n请输入教师编号:";
string bianhao;
cin>>bianhao;
cout<<"请输入登陆密码:";
string mima2;
cin>>mima2;
ifstream in("file2.txt");
if(!in) {cout<<"发生未知错误\n";system("pause");return 0;}
string b1;
string b2;
while(in>>b1)
{
in>>b2;
if(b1==bianhao&&b2==mima2)
{pass1=1;break;}
else pass1=0;
}
in.close();
if(pass1==0)
{
cout<<"\n账号或密码输入错误"<<endl;
cout<<"请重新输入"<<endl;
goto second;
}
cout<<"\n登陆成功(*_*)\n"<<endl;
PP: cout<<"请选择教师功能:"<<endl;
cout<<"1.显示教师信息"<<endl;
cout<<"2.录入成绩"<<endl;
cout<<"3.查询成绩"<<endl;
cout<<"4.修改成绩"<<endl;
cout<<"5.成绩排序"<<endl;
ifstream laoshi("file4.txt");//从文本读取教师信息
if(!laoshi) {cout<<"发生未知错误";exit(0);}
string name,number,work;
Teacher t[100];
int m=0;
while(laoshi>>name)
{
laoshi>>number>>work;
t[m].NAME=name;
t[m].NUMBER=number;
t[m].WORK=work;
m++;
}
int r;
cin>>r;
switch(r)
{
case 1://显示教师信息
{
int a;
for(a=0;a<=m;a++)
{
while(bianhao==t[a].NUMBER)
{
t[a].printf();break;
}
}
break;
}
case 2://录入成绩
{
string xxx;
string hhh;
double eee;
double sss;
double www;
cout<<"请输入学生姓名:";
cin>>xxx;
cout<<"请输入学生学号:";
cin>>hhh;
cout<<"请输入学生数学成绩:";
cin>>eee;
cout<<"请输入学生英语成绩:";
cin>>sss;
cout<<"请输入学生语文成绩:";
cin>>www;
ofstream fout("file3.txt",ios::app);
fout<<""<<xxx<<" "<<hhh<<" "<<eee<<" "<<sss<<" "<<www<<endl;
in.close();
cout<<"成绩录入成功!"<<endl;
break;
}
case 3://查询成绩
{
ifstream out("file3.txt");//从文本读取学生信息
if(!out) {cout<<"发生未知错误";exit(0);}
string mmmz,xxxh;
double mmm,eee,yyy;
Student s[100];
int w=0;
while(out>>mmmz)
{
out>>xxxh>>mmm>>eee>>yyy;
s[w].name=mmmz;
s[w].number=xxxh;
s[w].math=mmm;
s[w].engligh=eee;
s[w].chinese=yyy;
w++;
}
in.close();
yy: cout<<"请输入学生学号:";
string ee;
cin>>ee;
int a;
for(a=0;a<=w;a++)
{
if(ee==s[a].number)
{
s[a].show1();break;
}
}
if(a>w){cout<<"未找到该生信息,请重新操作!"<<endl;goto yy;}break;
}
case 4://修改成绩
{
ifstream out("file3.txt");//从文本读取学生信息
if(!out) {cout<<"发生未知错误";exit(0);}
string mmmz,xxxh;
double mmm,eee,yyy;
Student s[100];
int w=0;
while(out>>mmmz)
{
out>>xxxh>>mmm>>eee>>yyy;
s[w].name=mmmz;
s[w].number=xxxh;
s[w].math=mmm;
s[w].engligh=eee;
s[w].chinese=yyy;
w++;
}
out.close();
kk: cout<<"请输入需要修改的学生学号:";
string mz;
cin>>mz;
cout<<"请输入需要修改的课程名称:";
string hm;
cin>>hm;
cout<<"请输入需要的修改课程成绩:";
double cj;
cin>>cj;
int a;
for(a=0;a<=w;a++)
{
if(mz==s[a].number&&hm=="math")
{s[a].math=cj;break;}
else if(mz==s[a].number&&hm=="english")
{ s[a].engligh=cj;break;}
else if(mz==s[a].number&&hm=="chinese")
{ s[a].chinese=cj;break;}
}
if(a>w){ cout<<"输入错误,请输入正确的学号以及课程名称!"<<endl;goto kk;}
ofstream fout("file3.txt");
for(a=1;a<=m;a++)
fout<<""<<s[a].name<<" "<<s[a].number<<" "<<s[a].math<<" "<<s[a].engligh<<" "<<s[a].chinese<<endl;
in.close();
cout<<"成绩修改成功!"<<endl;
break;
}
case 5://成绩排序
{
cout<<"该功能还未实现"<<endl;break;
}
}
II: cout<<"是否继续?Yes/No"<<endl;
string qq;
cin>>qq;
if(qq=="Yes")
goto PP;
else if(qq=="No")
break;
else
{cout<<"输入有误,请重新选择!"<<endl;
goto II;}
}
}
system("pause");
return 0;
}
上面是我自己写的 ,但需要文本,你在cpp目录下先建几个文件夹 ,别的不懂加我QQ8660673吧
温馨提示:答案为网友推荐,仅供参考