#include
#include
class Score
{
private:
char name[20];
int no;//班级
int term;//学期
int ch,en,ma;//科目成绩
int total,average;
public:
Score();
Score(char [],int,int,int,int,int);
~Score();
void menu();
void inputC();//按班级C录入成绩
void inputT();//按学期T录入成绩
void alter();//修改学生成绩
int Average();
int Total();
void compute();//计算
void sort();//排序
void find();//查找
void output();//输出
void fund();//显示不及格名单
void quit();
};
Score *s[100];
static int i=0;
Score::Score(){}
Score::Score(char na[20],int n,int te,int a,int b,int c)
{
strcpy(name,na);
no=n;
term=te;
ch=a;
en=b;
ma=c;
}
Score::~Score(){}
void Score::menu()
{
int p;
cout<
switch(p)
{
case 0:inputC();break;
case 1:inputT();break;
case 2:alter();break;
case 3:compute();break;
case 4:sort();break;
case 5:find();break;
case 6:output();break;
case 7:fund();break;
case 8:quit();break;
}
}
void Score::inputC()//按班级C录入成绩
{
cout<<"按班级录入成绩,请输入以下学生的班级NO:";
cin>>no;
cout<<" 请输入姓名以输入x为结束,姓名:";
cin>>name;
while(*name!='x')
{
cout<<" 学期:";cin>>term;
cout<<" 语文:";cin>>ch;
cout<<" 英语:";cin>>en;
cout<<" 数学:";cin>>ma;
s[i]=new Score(name,no,term,ch,en,ma);
cout<
i++;
}
menu();
}
void Score::inputT()//按学期T录入成绩
{
cout<<"按学期录入成绩,请输入以下学生的成绩是第几学期:";
cin>>term;
cout<<" 请输入姓名以输入x为结束,姓名:";
cin>>name;
while(*name!='x')
{
cout<<" 班级:";cin>>no;
cout<<" 语文:";cin>>ch;
cout<<" 英语:";cin>>en;
cout<<" 数学:";cin>>ma;
s[i]=new Score(name,no,term,ch,en,ma);
cout<
i++;
}
menu();
}
void Score::alter()//修改成绩
{
cout<<"请输入您要修改的学生的姓名:";
cin>>name;
for(int h=0;h{
if(strcmp(name,s[h]->name)==0)
{ int n,te,a,b,c;
cout<<" 班级:"<
cout<<" 学期:";cin>>te;
cout<<" 语文:";cin>>a;
cout<<" 英语:";cin>>b;
cout<<" 数学:";cin>>c;
no=n;
s[h]->term=te;
s[h]->ch=a;
s[h]->en=b;
s[h]->ma=c;
cout<<"数据修改成功!";
break;
}
}
if(h==i) cout<<"对不起!您要修改的学生不存在!"<
}
int Score::Total()
{
total=ch+en+ma;
return total;
}
int Score::Average()
{
average=Total()/3;
return average;
}
void Score::compute()
{
for(int h=0;h cout<<"学生姓名:"<name<<" 班级:"<no<<" 学期:"<term<<" 语文:"<ch<<" 英语:"<en<<" 数学:"<ma<<" 总分:"<Total()<<" 平均分:"<Average()<
}
void Score::sort()//排序
{
for(int k=0;k{
for(int j=k+1;j {
if(s[k]->Average()Average())
{
Score *t;
t=s[k];s[k]=s[j];s[j]=t;
}
}
}
for(int h=0;h cout<<"学生姓名:"<name<<" 班级:"<no<<" 学期:"<term<<" 语文:"<ch<<" 英语:"<en<<" 数学:"<ma<<" 总分:"<Total()<<" 平均分:"<Average()<
}
void Score::find()//查找
{
cout<<"请输入您要查找的学生的姓名:";cin>>name;
for(int h=0;h{
if(strcmp(name,s[h]->name)==0)
{
cout<<"学生姓名:"<name<<" 班级:"<no<<" 学期:"<term<<" 语文:"<ch<<" 英语:"<en<<" 数学:"<ma<
}
}
if(h==i) cout<<"对不起!您要查找的学生不存在!"<
}
void Score::fund()
{
cout<<"语文不及格的学生有:";
for(int h=0;h if(s[h]->ch<60) cout<name;
cout<<"英语不及格的学生有:";
for(h=0;h if(s[h]->en<60) cout<name;
cout<<"数学不及格的学生有:";
for(h=0;h if(s[h]->ma<60) cout<name;
menu();
}
void Score::output()//输出
{
cout<<"本系统所有学生成绩如下:"<
cout<<"管理系统中没有录入数据或者数据已经被删除!";
else
{ for(int m=0;m for(int n=m+1;n {
if(s[m]->no>s[n]->no)
{Score *t;t=s[m];s[m]=s[n];s[n]=t;}
}
for(int h=0;h cout<<"学生姓名:"<name<<" 班级:"<no<<" 学期:"<term<<" 语文:"<ch<<" 英语:"<en<<" 数学:"<ma<<" 总分:"<Total()<<" 平均分:"<Average()<
menu();
}
void Score::quit(){exit(0);}
void main()
{
Score score1;
score1.menu();
}
这是暑期大作业中的一题,很水的,建议LZ自己编吧