C语言程序设计课程和数据结构课程的基础上,完成学生成绩管理系统的设计,求源代码。

该系统的主要功能包括如下:
1、添加、修改、删除和查询等功能。
2、学生基本数据的编辑:包括学生记录的添加、修改、删除和查询等功能。
3、课程数据的编辑:包括课程记录的添加、修改、删除和查询等功能。
4、学生成绩数据的编辑:包括学生成绩记录的添加、修改、删除和查询等功能。

#include<iostream.h>
#include<string>
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<<endl<<"************ 请输入操作代码 *************"<<endl;
cout<<"************ 0-------- 按班级录入成绩 *************"<<endl;
cout<<"************ 1-------- 按学期录入成绩 *************"<<endl;
cout<<"************ 2-------- 修改学生成绩 *************"<<endl;
cout<<"************ 3-------- 计算总分与平均分 *************"<<endl;
cout<<"************ 4-------- 排名 *************"<<endl;
cout<<"************ 5-------- 查找 *************"<<endl;
cout<<"************ 6-------- 按班级显示成绩单 *************"<<endl;
cout<<"************ 7-------- 显示不及格名单 *************"<<endl;
cout<<"************ 8-------- 退出 *************"<<endl;
cin>>p;
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<<endl<<" 姓名:";cin>>name;
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<<endl<<" 姓名:";cin>>name;
i++;
}
menu();
}
void Score::alter()//修改成绩
{
cout<<"请输入您要修改的学生的姓名:";
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{ int n,te,a,b,c;
cout<<" 班级:"<<endl;cin>>n;
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<<"对不起!您要修改的学生不存在!"<<endl;
menu();
}
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<i;h++)
cout<<"学生姓名:"<<s[h]->name<<" 班级:"<<s[h]->no<<" 学期:"<<s[h]->term<<" 语文:"<<s[h]->ch<<" 英语:"<<s[h]->en<<" 数学:"<<s[h]->ma<<" 总分:"<<s[h]->Total()<<" 平均分:"<<s[h]->Average()<<endl;
menu();
}
void Score::sort()//排序
{
for(int k=0;k<i;k++)
{
for(int j=k+1;j<i;j++)
{
if(s[k]->Average()<s[j]->Average())
{
Score *t;
t=s[k];s[k]=s[j];s[j]=t;
}
}
}
for(int h=0;h<i;h++)
cout<<"学生姓名:"<<s[h]->name<<" 班级:"<<s[h]->no<<" 学期:"<<s[h]->term<<" 语文:"<<s[h]->ch<<" 英语:"<<s[h]->en<<" 数学:"<<s[h]->ma<<" 总分:"<<s[h]->Total()<<" 平均分:"<<s[h]->Average()<<endl;
menu();
}
void Score::find()//查找
{
cout<<"请输入您要查找的学生的姓名:";cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
cout<<"学生姓名:"<<s[h]->name<<" 班级:"<<s[h]->no<<" 学期:"<<s[h]->term<<" 语文:"<<s[h]->ch<<" 英语:"<<s[h]->en<<" 数学:"<<s[h]->ma<<endl;
break;
}
}
if(h==i) cout<<"对不起!您要查找的学生不存在!"<<endl;
menu();
}
void Score::fund()
{
cout<<"语文不及格的学生有:";
for(int h=0;h<i;h++)
if(s[h]->ch<60) cout<<s[h]->name;
cout<<"英语不及格的学生有:";
for(h=0;h<i;h++)
if(s[h]->en<60) cout<<s[h]->name;
cout<<"数学不及格的学生有:";
for(h=0;h<i;h++)
if(s[h]->ma<60) cout<<s[h]->name;
menu();
}
void Score::output()//输出
{
cout<<"本系统所有学生成绩如下:"<<endl;
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
else
{ for(int m=0;m<i;m++)
for(int n=m+1;n<i;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<i;h++)
cout<<"学生姓名:"<<s[h]->name<<" 班级:"<<s[h]->no<<" 学期:"<<s[h]->term<<" 语文:"<<s[h]->ch<<" 英语:"<<s[h]->en<<" 数学:"<<s[h]->ma<<" 总分:"<<s[h]->Total()<<" 平均分:"<<s[h]->Average()<<endl;
}
menu();
}
void Score::quit(){exit(0);}
void main()
{
Score score1;
score1.menu();
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-01
这是暑期大作业中的一题,很水的,建议LZ自己编吧
相似回答