#include { { { { { { { cout< { { cout< { { cout< { cout<
#include
using namespace std;
int p=0; //计数
struct Score_sys //定义一个结构体存储学生相关信息
{
double id;
char name[20];
struct Score //定义一个分数结构体存储各项课程分数
{ int basic;
int major;
int selected;
int humanities;
int experiment;
};
Score score;
struct Class_num //定义一个一个班级结构体
{
int num;
};
Class_num classnum;
Score_sys *next;
};
class List
{
Score_sys *head,*tail;
public:
List();
~List();
void add();
void inquire();
void inquire_cla();
void change();
void compositor();
};
Score_sys stu[2000]; //允许添加 2000 个学生的信息
//给定某个班级的班号,显示该班所有学生学分完成情况;
List::List() //构造函数实现
{
head=tail=NULL;
}
List::~List() //析构函数实现
{
Score_sys *p;
if(head)//若非空,则删除
{
p=head;
head=head->next;
delete p;//删除,释放空间
}
}
void List::add() //添加学生信息函数
{ int i;
char s;
cout<
{
p++;
cout<<"请输入第"< cin>>stu[i].classnum.num; cout<<"请输入第"< cin>>stu[i].id;
cout<<"请输入第"< cin>>stu[i].name;
cout<<"请输入第"< cin>>stu[i].score.basic;
cout<<"请输入第"< cin>>stu[i].score.major;
cout<<"请输入第"< cin>>stu[i].score.selected;
cout<<"请输入第"< cin>>stu[i].score.humanities;
cout<<"请输入第"< cin>>stu[i].score.experiment;
cout<
cout<<"继续输入吗?!(y/n)";
cin>>s;
if(s=='n')break;
else
if(s=='y')
continue;
else
{
cout<<"输入有误!!请重新输入:";
break;
}
}
}
void List::inquire() //查询学生信
{
char s;
int j;
double k;
do{
cout<
cin>>k;
for(j=0;j<2000;j++)
{
if(k==stu[j].id)
{
cout<<"这是系统中存储的第"<
/*-------------------判断学生学分的情况---------------*/
if(stu[j].score.basic<50)
cout<<"基础课学分未完成"<
cout<<"基础课学分完成"<
cout<<"专业课学分未完成"<
cout<<"专业课学分完成"<
cout<<"选修课学分未完成"<
cout<<"选修课学分完成"<
cout<<"人文类课程学分未完成"<
cout<<"人文类课程学分完成"<
cout<<"实践性课程学分未完成"<
cout<<"实践性类课程学分完成"<
}
else cout<<"无该生信息"<
cout<
cin>>s;
if(s=='n')
break;
}while(s=='y');
}
void List::inquire_cla()
{
char s;
int n,j,i;
do
{
i=1;
cout<<"本操作为显示某个班级所有的学生学分完成情况!"<
for(j=0;j
if(n==stu[j].classnum.num)
{
cout<<"这个班第"< cout<<" 这 个 班 第 "< cout<<" 这 个 班 第 "< cout<<" 这 个 班 第 "< cout<<" 这 个 班 第 "< cout<<" 这 个 班 第 "< i++;
continue;
}
}
cout<
cin>>s;
if(s=='n')
break;
}
while(s=='y');
}
// 给定某位学生的学号,修改该学生的学分信息;
void List::change()
{
int i,j;
char s;
double n;
do
{
cout<
cin>>n;
for(j=0;j
if(n==stu[j].id)
{
cout<<"这是系统中存储的第"<
do
{
cout<<"*****************************************"<
cin>>i;
switch(i)
{
case 1:cout<<"基础学分修改为:";cin>>stu[j].score.basic;break;
case 2:cout<<"专业学分修改为:";cin>>stu[j].score.major;break;
case 3:cout<<"选修学分修改为:";cin>>stu[j].score.selected;break;
case 4:cout<<" 人 文 类 课 程 学 分 修 改 为:";cin>>stu[j].score.humanities;break;
case 5:cout<<" 实 验 性 课 程 学 分 修 改 为:";cin>>stu[j].score.experiment;break;
}
}
while(i!=6);
/*-------------------判断修改学生学分---------------*/
}
}
cout<
cin>>s;
if(s=='n')
break;
}
while(s=='y');
}
void List::compositor()
{
int a,i,j,max;
do
{
cout<<"请输入需要排序的科目";
cout<<"*****************************************"<
cin>>a;
if(a==1)
{
for(i=0;i
max=i;
for(j=i+1;j
if(stu[j].score.basic>stu[max].score.basic)
max=j;
}
if(i!=max)
{
Score_sys temp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
}
for(i=0;i
cout<
}
else
if(a==2)
{
for(i=0;i
max=i;
for(j=i+1;j
if(stu[j].score.major>stu[max].score.major)
max=j;
}
if(i!=max)
{
Score_sys temp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
for(i=0;i
}
else
if(a==3)
{
for(i=0;i
max=i;
for(j=i+1;j
if(stu[j].score.selected>stu[max].score.selected) max=j;
}
if(i!=max)
{
Score_sys temp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
for(i=0;i
}
else
if(a==4)
{
for(i=0;i
max=i;
for(j=i+1;j
if(stu[j].score.humanities>stu[max].score.humanities)
max=j;
}
if(i!=max)
{
Score_sys temp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
for(i=0;i
}
else
if(a==5)
{
for(i=0;i
max=i;
for(j=i+1;j<2000;j++)
{// 分
if(stu[j].score.experiment>stu[max].score.experiment)
max=j;
}
if(i!=max)
{
Score_sys temp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
for(i=0;i
};
break;
}
while(a!=6);
}
//---------------------------------
// 给定某位学生的学号,修改该学生的学分信息;
void main()
{
int i;
cout<<"**********************************************"<
List TXL;
while(flag)
{
cin>>i;
switch(i)
{
case 1:
TXL.add();break;
case 2:
TXL.inquire();break;
case 3:
TXL.inquire_cla();break;
case 4:
TXL.change();break;
case 5:
TXL.compositor();break;
case 6:
flag=0;break;
}
}
}
这个耗时间 又没分 极少人 会帮你做
实在没办法 建议 找同学 Copy(- -)
有多少付出。就有多少回报,你真的当别人都是活雷锋
我这里有一个.但是功能不是你所要的.
你可以自行修改.
如果要的话 百度HI我
先占个位,不知道能不能写出来。