C++课程设计学生成绩管理系统样一.docx
《C++课程设计学生成绩管理系统样一.docx》由会员分享,可在线阅读,更多相关《C++课程设计学生成绩管理系统样一.docx(17页珍藏版)》请在冰豆网上搜索。
![C++课程设计学生成绩管理系统样一.docx](https://file1.bdocx.com/fileroot1/2023-3/30/18afabfd-6f67-4500-b31c-d5dec1ffad3e/18afabfd-6f67-4500-b31c-d5dec1ffad3e1.gif)
C++课程设计学生成绩管理系统样一
#include
#include
classSTU{
public:
longintxh;
charxm[20],xb[20],jg[20];
floatc,eng,phy;
STU*next;
friendclassBJ;
};
classBJ{
public:
STU*create(intn){
STU*p,*pend,*h=0;
inti=0;
if(n<1)return0;
cout<<"学号姓名性别籍贯VC++成绩英语成绩物理成绩"<while(ip=newSTU;
cin>>(*p).xh>>(*p).xm>>(*p).xb>>(*p).jg>>(*p).c>>(*p).eng>>(*p).phy;
(*p).next=0;
if(h==0){h=p;pend=p;}
else{pend->next=p;pend=p;}
i++;
}returnh;
}
voidprint(STU*h){
STU*p;
p=h;
cout<<"学号姓名性别籍贯vc++成绩英语成绩物理成绩"<while(p){
cout<<(*p).xh<<'\t'<<(*p).xm<<'\t'<<(*p).xb<<'\t'<<(*p).jg<<'\t'<<(*p).c<<'\t'<<(*p).eng<<'\t'<<(*p).phy<<'\n';
p=(*p).next;
}
}
voidcount(STU*h,intn){
floatS[20],aver[20],aver1=0,aver2=0,aver3=0,MAX,max1,max2,max3;
floats1[20],s2[20],s3[20];
STU*p;
p=h;
for(inti=0;iS[i]=(*p).c+(*p).eng+(*p).phy;
aver[i]=S[i]/3;
p=(*p).next;
}
for(p=h,i=0;iaver1+=(*p).c;
aver2+=(*p).eng;
aver3+=(*p).phy;
p=(*p).next;
}
aver1=aver1/n;
aver2=aver2/n;
aver3=aver3/n;
for(p=h,i=0;iMAX=0;max1=0;max2=0;max3=0;
for(i=0;iif(MAX
if(max1if(max2if(max3}
cout<<"总成绩最高的学生:
"<<'\n';
for(p=h,i=0;iif(MAX==S[i])
cout<<(*p).xh<<'\t'<<(*p).xm<<'\t'<p=(*p).next;
}
cout<<"VC++成绩最高的学生:
"<<'\n';
for(p=h,i=0;icout<<"英语成绩最高的学生:
"<<'\n';
for(p=h,i=0;icout<<"物理成绩最高的学生:
"<<'\n';
for(p=h,i=0;i}
voidsearch(STU*h){
STU*p;
p=h;
intr,t;
charxm[10];
cout<<"按学号查询请输入1,按姓名查询请输入2!
"<cin>>r;
switch(r){
case1:
{
cout<<"请输入要查询的学号:
"<cin>>t;
while(p){
if((*p).xh==t){
print(p);
break;
}
elsep=(*p).next;
}
}break;
case2:
{
cout<<"请输入要查询的姓名:
"<cin>>xm;
while(p){
if(strcmp(xm,(*p).xm)==0){
print(p);
break;
}
elsep=(*p).next;
}break;
}
}
}
voidsort(STU*h,inta,intn){
STU*p,*p1,*p2;
longintXH;
charXM[20],XB[20],JG[20];
floatS[20],aver[20],VC,ENGLISH,PHYSICS;
p=h;
for(inti=0;iS[i]=(*p).c+(*p).eng+(*p).phy;
aver[i]=S[i]/3;
p=(*p).next;
}
cout<<"请选择排序方式!
"<cout<<"按姓名排序请输入1"<cout<<"按VC++成绩排序请输入2"<cout<<"按英语成绩排序请输入3"<cout<<"按物理成绩排序请输入4"<cout<<"按总成绩排序请输入5"<cout<<"按平均成绩排序请输入6"<cin>>a;
switch(a){
case1:
if(h==0)cout<<"无结点"<<'\n';
else{
p1=h;
while((*p1).next)
for(i=0;ip2=(*p1).next;{
for(intj=i+1;jif(strcmp((*p1).xm,(*p2).xm)==1){
XH=(*p1).xh;(*p1).xh=(*p2).xh;(*p2).xh=XH;strcpy(XM,(*p1).xm);strcpy((*p1).xm,(*p2).xm);
strcpy((*p2).xm,XM);
strcpy(XB,(*p1).xb);strcpy((*p1).xb,(*p2).xb);strcpy((*p2).xb,XB);
strcpy(JG,(*p1).jg);strcpy((*p1).jg,(*p2).jg);strcpy((*p2).jg,JG);
VC=(*p1).c;(*p1).c=(*p2).c;(*p2).c=VC;
ENGLISH=(*p1).eng;(*p1).eng=(*p2).eng;(*p2).eng=ENGLISH;
PHYSICS=(*p1).phy;(*p1).phy=(*p2).phy;(*p2).phy=PHYSICS;
}
p2=(*p2).next;
}
p1=(*p1).next;
}
}
}p=h;
for(i=0;iprint(p);
p=(*p).next;
}
cout<case2:
if(h==0)cout<<"无结点"<<'\n';
else{
p1=h;
while((*p1).next)
for(i=0;ip2=(*p1).next;
for(intj=i+1;jif((*p1).c>=(*p2).c){
XH=(*p1).xh;(*p1).xh=(*p2).xh;(*p2).xh=XH;strcpy(XM,(*p1).xm);strcpy((*p1).xm,(*p2).xm);
strcpy((*p2).xm,XM);strcpy(XB,(*p1).xb);strcpy((*p1).xb,(*p2).xb);strcpy((*p2).xb,XB);
strcpy(JG,(*p1).jg);strcpy((*p1).jg,(*p2).jg);strcpy((*p2).jg,JG);
VC=(*p1).c;(*p1).c=(*p2).c;(*p2).c=VC;ENGLISH=(*p1).eng;(*p1).eng=(*p2).eng;(*p2).eng=ENGLISH;
PHYSICS=(*p1).phy;(*p1).phy=(*p2).phy;(*p2).phy=PHYSICS;
}
p2=(*p2).next;
}
p1=(*p1).next;
}
}
p=h;
for(i=0;iprint(p);
p=(*p).next;
}
cout<case3:
if(h==0)cout<<"无结点"<<'\n';
else{
p1=h;
while((*p1).next)
for(i=0;ip2=(*p1).next;{
for(intj=i+1;jif((*p1).eng>=(*p2).eng){
XH=(*p1).xh;(*p1).xh=(*p2).xh;(*p2).xh=XH;
strcpy(XM,(*p1).xm);strcpy((*p1).xm,(*p2).xm);strcpy((*p2).xm,XM);
strcpy(XB,(*p1).xb);strcpy((*p1).xb,(*p2).xb);strcpy((*p2).xb,XB);
strcpy(JG,(*p1).jg);strcpy((*p1).jg,(*p2).jg);strcpy((*p2).jg,JG);
VC=(*p1).c;(*p1).c=(*p2).c;(*p2).c=VC;
ENGLISH=(*p1).eng;(*p1).eng=(*p2).eng;(*p2).eng=ENGLISH;
PHYSICS=(*p1).phy;(*p1).phy=(*p2).phy;(*p2).phy=PHYSICS;
}
p2=(*p2).next;
}
p1=(*p1).next;
}
}
}
p=h;
for(i=0;iprint(p);
p=(*p).next;
}
cout<case4:
if(h==0)cout<<"无结点"<<'\n';
else{
p1=h;
while((*p1).next)
for(i=0;ip2=(*p1).next;
{
for(intj=i+1;jif((*p1).c>=(*p2).c){
XH=(*p1).xh;(*p1).xh=(*p2).xh;(*p2).xh=XH;
strcpy(XM,(*p1).xm);strcpy((*p1).xm,(*p2).xm);strcpy((*p2).xm,XM);
strcpy(XB,(*p1).xb);strcpy((*p1).xb,(*p2).xb);strcpy((*p2).xb,XB);
strcpy(JG,(*p1).jg);strcpy((*p1).jg,(*p2).jg);strcpy((*p2).jg,JG);
VC=(*p1).c;(*p1).c=(*p2).c;(*p2).c=VC;ENGLISH=(*p1).eng;(*p1).eng=(*p2).eng;(*p2).eng=ENGLISH;
PHYSICS=(*p1).phy;(*p1).phy=(*p2).phy;(*p2).phy=PHYSICS;
}
p2=(*p2).next;
}
p1=(*p1).next;
}
}
}
p=h;
for(i=0;iprint(p);
p=(*p).next;
}
cout<case5:
if(h==0)cout<<"无结点"<<'\n';
else{
p1=h;
while((*p1).next)
for(i=0;ip2=(*p1).next;
{
for(intj=i+1;jif(S[i]>=S[j]){
XH=(*p1).xh;(*p1).xh=(*p2).xh;(*p2).xh=XH;
strcpy(XM,(*p1).xm);strcpy((*p1).xm,(*p2).xm);strcpy((*p2).xm,XM);
strcpy(XB,(*p1).xb);strcpy((*p1).xb,(*p2).xb);strcpy((*p2).xb,XB);
strcpy(JG,(*p1).jg);strcpy((*p1).jg,(*p2).jg);strcpy((*p2).jg,JG);
VC=(*p1).c;(*p1).c=(*p2).c;(*p2).c=VC;
ENGLISH=(*p1).eng;(*p1).eng=(*p2).eng;(*p2).eng=ENGLISH;
PHYSICS=(*p1).phy;(*p1).phy=(*p2).phy;(*p2).phy=PHYSICS;
}
p2=(*p2).next;
}
p1=(*p1).next;
}
}
}
p=h;
for(i=0;icout<<(*p).xh<<'\t'<<(*p).xm<<'\t'<<(*p).xb<<'\t'<<(*p).jg<<'\t'<<(*p).c<<'\t'<<(*p).eng<<'\t'<<(*p).phy<<'\t'<
p=(*p).next;
}
cout<case6:
if(h==0)cout<<"无结点"<<'\n';
else{
p1=h;
while((*p1).next)
for(i=0;ip2=(*p1).next;
{
for(intj=i+1;jif(aver[i]>=aver[j]){
XH=(*p1).xh;(*p1).xh=(*p2).xh;(*p2).xh=XH;
strcpy(XM,(*p1).xm);strcpy((*p1).xm,(*p2).xm);strcpy((*p2).xm,XM);
strcpy(XB,(*p1).xb);strcpy((*p1).xb,(*p2).xb);strcpy((*p2).xb,XB);
strcpy(JG,(*p1).jg);strcpy((*p1).jg,(*p2).jg);strcpy((*p2).jg,JG);
VC=(*p1).c;(*p1).c=(*p2).c;(*p2).c=VC;
ENGLISH=(*p1).eng;(*p1).eng=(*p2).eng;(*p2).eng=ENGLISH;
PHYSICS=(*p1).phy;(*p1).phy=(*p2).phy;(*p2).phy=PHYSICS;
}
p2=(*p2).next;
}
p1=(*p1).next;
}
}
}
p=h;
for(i=0;icout<<(*p).xh<<'\t'<<(*p).xm<<'\t'<<(*p).xb<<'\t'<<(*p).jg<<'\t'<<(*p).c<<'\t'<<(*p).eng<<'\t'<<(*p).phy<<'\t'<p=(*p).next;
}
cout<default:
cout<<"无可排序的依据!
"<}
}
voiddeleteSTU(STU*h,intdata){
STU*p1,*p2;
intb;
cout<<"如果要删除学生的信息请输入1!
"<<'\n'<<"如果不需要删除学生的信息请输入2!
"<cin>>b;
switch(b){
case1:
cout<<"输入要删除信息学生的学号:
"<cin>>data;
if(h==0)cout<<"无学生信息不能删除!
";
if(h->xh==data){
p2=h;h=h->next;
deletep2;cout<<"成功删除学生的信息!
"<}
else{
p2=p1=h;
while((*p2).xh!
=data&&(*p2).next!
=0){
p1=p2;
p2=(*p2).next;
}
if((*p2).xh==data){
(*p1).next=(*p2).next;
deletep2;cout<<"成功删除学号为"<}
elsecout<<"没有找到要删除的信息";
}
case2:
break;
}
}
voidscore(STU*h,intn){
STU*p;
charxm[20][20],xb[20][20],jg[20][20],b[20],c[20],d[20];
doubles[20],xh[20],vc[20],english[20],physics[20],S,a,e,f,g;
p=h;
for(inti=0;is[i]=(((*p).c*4.5+(*p).eng*4+(*p).phy*3)/11.5-50)/10;
xh[i]=(*p).xh;strcpy(xm[i],(*p).xm);
strcpy(xb[i],(*p).xb);strcpy(jg[i],(*p).jg);
vc[i]=(*p).c;vc[i]=(*p).c;physics[i]=(*p).phy;
p=(*p).next;
}
for(i=0;ifor(intj=i+1;jif(s[i]<=s[j]){
S=s[i];s[i]=s[j];s[j]=S;
a=xh[i];xh[i]=xh[j];xh[j]=a;strcpy(b,xm[i]);
strcpy(xm[i],xm[j]);strcpy(xm[j],b);strcpy(c,xb[i]);
strcpy(xb[i],xb[j]);strcpy(xb[j],c);strcpy(d,jg[i]);
strcpy(jg[i],jg[j]);strcpy(jg[j],d);e=vc[i];
vc[i]=vc[j];vc[j]=e;f=english[i];english[i]=english[j];
english[j]=f;g=physics[i];physics[i]=physics[j];physics[j]=g;
}
}
}
for(i=0;icout<<"特等奖学金名单:
"<<'\n';
for(i=0;iif(s[i]>=4.0)
cout<}
cout<<"一等奖学金名单:
"<<'\n';
for(i=0;iif(s[i]>=3.6&&s[i]<4.0)
cout<}
cout<<"二等奖学金名单:
"<<'\n';
for(i=0;iif(s[i]>=3.2&&s[i]<3.6)
cout<}
cout<<"三等奖学金名单:
"<<'\n';
for(i=0;iif(s[i]>=2.8&&s[i]<3.2)
cout<}
}
voidgoodstudent(STU*h,intn){
doubles[20];
charXM[20][20];
longintXH[20];
STU*p;
p=h;
for(inti=0;is[i]=(((*p).c*4.5+(*p).eng*4+(*p).phy*3)/11.5-50)/10;
strcpy(XM[i],(*p).xm);XH[i]=(*p).xh;
p=(*p).next;
}
cout<<"三好学生的名单:
"<<'\n';
for(i=0;iif(s[i]>=3.0||s[i]>3.5&&(((*p).c-50)/10)>=1.0&&(((*p).c-50)/10)<=2.0||s[i]>3.5&&(((*p).eng-50)/10)>=1.0&&(((*p).eng-50)/10)<=2.0||s[i]>3.5&&(((*p).phy-50)/10