学分管理软件C++编程.docx
《学分管理软件C++编程.docx》由会员分享,可在线阅读,更多相关《学分管理软件C++编程.docx(17页珍藏版)》请在冰豆网上搜索。
学分管理软件C++编程
#include
#include
usingnamespacestd;
intp=0;//计数
structScore_sys//定义一个结构体存储学生相关信息
{
doubleid;
charname[20];
structScore//定义一个分数结构体存储各项课程分数
{
intbasic;
intmajor;
intselected;
inthumanities;
intexperiment;
};
Scorescore;
structClass_num//定义一个一个班级结构体
{
intnum;
};
Class_numclassnum;
Score_sys*next;
};
classList
{
Score_sys*head,*tail;
public:
List();
~List();
voidadd();
voidinquire();
voidinquire_cla();
voidchange();
voidcompositor();
};
Score_sysstu[2000];//允许添加2000个学生的信息
//给定某个班级的班号,显示该班所有学生学分完成情况;
List:
:
List()//构造函数实现
{
head=tail=NULL;
}
List:
:
~List()//析构函数实现
{
Score_sys*p;
if(head)//若非空,则删除
{
p=head;
head=head->next;
deletep;//删除,释放空间
}
}
voidList:
:
add()//添加学生信息函数
{
inti;
chars;
cout<"<cout<for(i=p;i<2000;i++)
{
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<cout<<"继续输入吗?
!
(y/n)";
cin>>s;
if(s=='n')break;
else
if(s=='y')
continue;
else
{
cout<<"输入有误!
!
请重新输入:
";
break;
}
}
}
voidList:
:
inquire()//查询学生信息
{
chars;
intj;
doublek;
do{
cout<"<cout<<"请输入该学生的学号:
";
cin>>k;
for(j=0;j<2000;j++)
{
if(k==stu[j].id)
{
cout<<"这是系统中存储的第"<cout<<"他所在班级:
"<cout<<"该学生名字为:
"<cout<<"该学生的基础课学分为:
"<cout<<"该学生的专业课学分为:
"<cout<<"该学生的选修课学分为:
"<cout<<"该学生的人文类课程学分为:
"<cout<<"该学生的实验性课程学分为:
"<cout<"</*-------------------判断学生学分的情况---------------*/
if(stu[j].score.basic<50)
cout<<"基础课学分未完成"<else
cout<<"基础课学分完成"<if(stu[j].score.major<50)
cout<<"专业课学分未完成"<else
cout<<"专业课学分完成"<if(stu[j].score.selected<24)
cout<<"选修课学分未完成"<else
cout<<"选修课学分完成"<if(stu[j].score.selected<8)
cout<<"人文类课程学分未完成"<else
cout<<"人文类课程学分完成"<if(stu[j].score.selected<20)
cout<<"实践性课程学分未完成"<else
cout<<"实践性类课程学分完成"<break;
}
elsecout<<"无该生信息"<}
cout<cout<<"继续查询吗?
!
(y/n)";
cin>>s;
if(s=='n')
break;
}while(s=='y');
}
voidList:
:
inquire_cla()
{
chars;
intn,j,i;
do
{
i=1;
cout<<"本操作为显示某个班级所有的学生学分完成情况!
"<cout<";
cin>>n;
for(j=0;j
{
if(n==stu[j].classnum.num)
{
cout<<"这个班第"<
"<cout<<"这个班第"<
"<cout<<"这个班第"<
"<cout<<"这个班第"<
"<cout<<"这个班第"<
"<cout<<"这个班第"<
"<i++;
continue;
}
}
cout<cout<<"继续查询吗?
!
(y/n)";
cin>>s;
if(s=='n')
break;
}
while(s=='y');
}
//给定某位学生的学号,修改该学生的学分信息;
voidList:
:
change()
{
inti,j;
chars;
doublen;
do
{
cout<"<cout<<"请输入需要修改学生的学号:
";
cin>>n;
for(j=0;j
{
if(n==stu[j].id)
{
cout<<"这是系统中存储的第"<cout<<",他所在班级为:
"<cout<<"该名学生名字为:
"<cout<<"该名学生的基础课学分为:
"<cout<<"该名学生的专业课学分为:
"<cout<<"该名学生的选修课学分为:
"<cout<<"该名学生的人文类课程学分为:
"<cout<<"该名学生的实验性课程学分为:
"</*-------------------判断修改学生学分---------------*/
do
{
cout<<"*****************************************"<cout<<"*子菜单*"<cout<<"*1.--------修改基础课学分-----------*"<cout<<"*2.--------修改专业课学分-----------*"<cout<<"*3.--------修改选修课学分-----------*"<cout<<"*4.--------修改人文类课程学分-------*"<cout<<"*5.--------修改实验性课程学分-------*"<cout<<"*6.--------不做修改(退出)-----------*"<cout<<"*****************************************"<cout<<"请输入你想要操作(1、2、3、4、5、6):
";
cin>>i;
switch(i)
{
case1:
cout<<"基础学分修改为:
";cin>>stu[j].score.basic;break;
case2:
cout<<"专业学分修改为:
";cin>>stu[j].score.major;break;
case3:
cout<<"选修学分修改为:
";cin>>stu[j].score.selected;break;
case4:
cout<<"人文类课程学分修改为:
";cin>>stu[j].score.humanities;break;
case5:
cout<<"实验性课程学分修改为:
";cin>>stu[j].score.experiment;break;
}
}
while(i!
=6);
/*-------------------判断修改学生学分---------------*/
}
}
cout<cout<<"继续修改吗?
!
(y/n)";
cin>>s;
if(s=='n')
break;
}
while(s=='y');
}
voidList:
:
compositor()
{
inta,i,j,max;
do
{
cout<<"请输入需要排序的科目";
cout<<"*****************************************"<cout<<"*子菜单*"<cout<<"*1.--------排序基础课学分-----------*"<cout<<"*2.--------排序专业课学分-----------*"<cout<<"*3.--------排序选修课学分-----------*"<cout<<"*4.--------排序人文类课程学分-------*"<cout<<"*5.--------排序实验性课程学分-------*"<cout<<"*6.--------不做排序(退出)-----------*"<cout<<"*****************************************"<cout<<"请输入你想要操作(1、2、3、4、5、6):
";
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_systemp;
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_systemp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
for(i=0;i
cout<"<}
}
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_systemp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
for(i=0;i
cout<"<}
}
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_systemp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
for(i=0;i
cout<"<}
}
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_systemp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
for(i=0;i
cout<"<}
};
break;
}
while(a!
=6);
}
//----------------------------------
//给定某位学生的学号,修改该学生的学分信息;
voidmain()
{
inti;
cout<<"**********************************************"<cout<<"*主菜单*"<cout<<"*1.--------新增学生信息*"<cout<<"*2.--------查询单个学生信息*"<cout<<"*3.--------查询班级全部学生信息*"<cout<<"*4.--------修改学生信息*"<cout<<"*5.--------按照某类课程的学分高低进行排序*"<cout<<"*6.--------退出*"<cout<<"**********************************************"<cout<<"请输入你想要操作:
"<intflag=1;
ListTXL;
while(flag)
{
cin>>i;
switch(i)
{
case1:
TXL.add();break;
case2:
TXL.inquire();break;
case3:
TXL.inquire_cla();break;
case4:
TXL.change();break;
case5:
TXL.compositor();break;
case6:
flag=0;break;
}
}
}