搜档网
当前位置:搜档网 › 学生选修课程系统

学生选修课程系统

学生选修课程系统
学生选修课程系统

#include

#include

#include

#include

#include

using namespace std;

int i;

struct student

{ char name[20];

char sex[10];

int age,num;

struct sco

{ int phy;

int maths;

int english;

int computer;

int vc;

}score;

}stu[1000];

void scan()

{ int u,xe;

i=0;

for(u=0;u<1000;u++)

{ strcpy(stu[u].name,"/0");

strcpy(stu[u].sex,"/0");

stu[u].num=0;

stu[u].age=0;

stu[u].score.phy=0;

stu[u].score.maths=0;

stu[u].score.english=0;

stu[u]https://www.sodocs.net/doc/199561628.html,puter=0;

stu[u].score.vc=0;

}

printf("依次输入你要输入的信息,先是名字,然后学号,性别,年龄,成绩(5科),此系统最多科存1000名学生信息,剩余1000\n");

do

{ printf("输入学生名字\n");

scanf("%s",&stu[i].name);

printf("输入学生学号\n");

scanf("%d",&stu[i].num);

printf("输入学生性别\n");

while(scanf("%s",&stu[i].sex)&&strcmp(stu[i].sex,"boy")!=0&&strcmp(stu[i].sex, "girl")!=0)

printf("输入错误,请再输入");

printf("输入学生年龄\n");

scanf("%d",&stu[i].age);

printf("输入学生成绩(5科)\n");

printf("物理:");

scanf("%d",&stu[i].score.phy);

printf("数学:");

scanf("%d",&stu[i].score.maths);

printf("电脑:");

scanf("%d",&stu[i]https://www.sodocs.net/doc/199561628.html,puter);

printf("英语:");

scanf("%d",&stu[i].score.english);

printf("VC:");

scanf("%d",&stu[i].score.vc);

printf("剩余%d\n",999-i);

printf("0继续输入下一个学生信息\n1回到菜单\n");

i++;

if(i>=1000){printf("系统存储空间已满,无法继续增加,抱歉!");break;}

while(scanf("%d",&xe)&&xe!=0&&xe!=1)

printf("输入错误,请再输入");

if(xe==0)printf("请继续输入\n");

}while(xe!=1);

}

void watch1()

{ if(i==0)printf("请先输入学生信息\n");

while(i!=0)

{ int i2,j2,all[100],averge[100],g,a,za;

char change3[10];

for(i2=0;i2

{ all[i2]=stu[i2].score.phy+stu[i2]https://www.sodocs.net/doc/199561628.html,puter+stu[i2].score.english+stu[i2]. score.maths+stu[i2].score.vc;

averge[i2]=all[i2]/5;

}

for(i2=1;i2

{ for(j2=1;j2

{ if(all[j2-1]

{ a=stu[j2-1].age;stu[j2-1].age=stu[j2].age;stu[j2].age=a;

a=stu[j2-1]https://www.sodocs.net/doc/199561628.html,puter;stu[j2-1]https://www.sodocs.net/doc/199561628.html,puter=stu[j2]https://www.sodocs.net/doc/199561628.html,puter;st u[j2]https://www.sodocs.net/doc/199561628.html,puter=a;

a=stu[j2-1].score.english;stu[j2-1].score.english=stu[j2].score.english;stu[j2].sc ore.english=a;

a=stu[j2-1].score.maths;stu[j2-1].score.maths=stu[j2].score.maths;stu[j2].scor e.maths=a;

a=stu[j2-1].score.phy;stu[j2-1].score.phy=stu[j2].score.phy;stu[j2].score.phy=a; a=stu[j2-1].score.vc;stu[j2-1].score.vc=stu[j2].score.vc;stu[j2].score.vc=a;

a=all[j2-1];all[j2-1]=all[j2];all[j2]=a;

a=stu[j2-1].num;stu[j2-1].num=stu[j2].num;stu[j2].num=a;

a=averge[j2-1];averge[j2-1]=averge[j2];averge[j2]=a;

strcpy(change3,stu[j2-1].name);

strcpy(stu[j2-1].name,stu[j2].name);

strcpy(stu[j2].name,change3);

strcpy(change3,stu[j2-1].sex);

strcpy(stu[j2-1].sex,stu[j2].sex);

strcpy(stu[j2].sex,change3);

}

}

}

printf("学号姓名性别年龄物理数学英语电脑VC 总分平均分名次\n"); for(g=0;g

printf("%-6d%-10s%-5s%-5d%-5d%-5d%-5d%-5d%-5d%-5d%-5d%-5d\n",stu[ g].num,stu[g].name,stu[g].sex,stu[g].age,stu[g].score.phy,stu[g].score.maths,s tu[g].score.english,stu[g]https://www.sodocs.net/doc/199561628.html,puter,stu[g].score.vc,all[g],averge[g],g+1); printf("输入0返回菜单");

while(scanf("%d",&za)&&za!=0)

printf("输入错误,请再输入");

if(za==0)break;

}

}

void watch2()

{ if(i==0)printf("请先输入学生信息\n");

while(i!=0)

{ int max[5],min[5],j,g,i2,all[100],averge[100],za,j2,a,yy[5][2];char change3[20]; for(i2=0;i2

{ all[i2]=stu[i2].score.phy+stu[i2]https://www.sodocs.net/doc/199561628.html,puter+stu[i2].score.english+stu[i2]. score.maths+stu[i2].score.vc;

averge[i2]=all[i2]/5;

}

for(i2=0;i2

{ for(j2=1;j2

{ if(all[j2-1]

{ a=stu[j2-1].age;stu[j2-1].age=stu[j2].age;stu[j2].age=a;

a=stu[j2-1]https://www.sodocs.net/doc/199561628.html,puter;stu[j2-1]https://www.sodocs.net/doc/199561628.html,puter=stu[j2]https://www.sodocs.net/doc/199561628.html,puter;st u[j2]https://www.sodocs.net/doc/199561628.html,puter=a;

a=stu[j2-1].score.english;stu[j2-1].score.english=stu[j2].score.english;stu[j2].sc ore.english=a;

a=stu[j2-1].score.maths;stu[j2-1].score.maths=stu[j2].score.maths;stu[j2].scor e.maths=a;

a=stu[j2-1].score.phy;stu[j2-1].score.phy=stu[j2].score.phy;stu[j2].score.phy=a; a=stu[j2-1].score.vc;stu[j2-1].score.vc=stu[j2].score.vc;stu[j2].score.vc=a;

a=all[j2-1];all[j2-1]=all[j2];all[j2]=a;

a=stu[j2-1].num;stu[j2-1].num=stu[j2].num;stu[j2].num=a;

a=averge[j2-1];averge[j2-1]=averge[j2];averge[j2]=a;

strcpy(change3,stu[j2-1].name);

strcpy(stu[j2-1].name,stu[j2].name);

strcpy(stu[j2].name,change3);

strcpy(change3,stu[j2-1].sex);

strcpy(stu[j2-1].sex,stu[j2].sex);

strcpy(stu[j2].sex,change3);

}

}

}

printf("学号姓名性别年龄物理数学英语电脑VC 总分平均分名次\n"); for(i2=0;i2

{ all[i2]=stu[i2].score.phy+stu[i2]https://www.sodocs.net/doc/199561628.html,puter+stu[i2].score.english+stu[i2]. score.maths+stu[i2].score.vc;

averge[i2]=all[i2]/5;

}

for(g=0;g

printf("%-6d%-10s%-5s%-5d%-5d%-5d%-5d%-5d%-5d%-5d%-5d%-5d\n",stu[ g].num,stu[g].name,stu[g].sex,stu[g].age,stu[g].score.phy,stu[g].score.maths,s tu[g].score.english,stu[g]https://www.sodocs.net/doc/199561628.html,puter,stu[g].score.vc,all[g],averge[g],g+1);

max[0]=0;min[0]=100;

for(j=0;j

{

if(stu[j].score.phy>=max[0])

{ max[0]=stu[j].score.phy;yy[0][0]=j;}

if(stu[j].score.phy<=min[0])

{ min[0]=stu[j].score.phy;yy[0][1]=j;}

}

max[3]=0;min[3]=100;

for(j=0;j

{

if(stu[j]https://www.sodocs.net/doc/199561628.html,puter>=max[3])

{ max[3]=stu[j]https://www.sodocs.net/doc/199561628.html,puter;yy[3][0]=j;}

if(stu[j]https://www.sodocs.net/doc/199561628.html,puter<=min[3])

{ min[3]=stu[j]https://www.sodocs.net/doc/199561628.html,puter;yy[3][1]=j;}

}

max[2]=0;min[2]=100;

for(j=0;j

{

if(stu[j].score.english>=max[2])

{ max[2]=stu[j].score.english;yy[2][0]=j;}

if(stu[j].score.english<=min[2])

{ min[2]=stu[j].score.english;yy[2][1]=j;}

}

max[1]=0;min[1]=100;

for(j=0;j

{

if(stu[j].score.maths>=max[1])

{ max[1]=stu[j].score.maths;yy[1][0]=j;}

if(stu[j].score.maths<=min[1])

{ min[1]=stu[j].score.maths;yy[1][1]=j;}

}

max[4]=0;min[4]=100;

for(j=0;j

{

if(stu[j].score.vc>=max[4])

{ max[4]=stu[j].score.vc;yy[4][0]=j;}

if(stu[j].score.vc<=min[4])

{ min[4]=stu[j].score.vc;yy[4][1]=j;}

}

printf("物理最高分:%d %s最低分:%d %s\n数学最高分:%d %s最低分%d %s\n 英语最高分:%d %s最低分:%d %s\n电脑最高分:%d %s最低分:%d %s\nV C最高分:%d %s最低

分:%d %s\n",max[0],stu[yy[0][0]].name,min[0],stu[yy[0][1]].name,max[1],stu[yy

[1][0]].name,min[1],stu[yy[1][1]].name,max[2],stu[yy[2][0]].name,min[2],stu[yy[

2][1]].name,max[3],stu[yy[3][0]].name,min[3],stu[yy[3][1]].name,max[4],stu[yy[ 4][0]].name,min[4],stu[yy[4][1]].name);

printf("输入0返回菜单");

while(scanf("%d",&za)&&za!=0)

printf("输入错误,请再输入");

if(za==0)break;

}

}

void fine()

{ if(i==0)printf("请先输入学生信息\n");

while(i!=0)

{ printf("用学号查找请输入0,用姓名查找请输入1\n");

int i1,j1,num1,te=0,tc=0;char name1[20];

scanf("%d",&i1);

if(i1!=0&&i1!=1)

printf("输入错误\n");

else if(i1==0)

{ printf("请输入学生学号");

scanf("%d",&num1);

for(j1=0;j1

if(num1==stu[j1].num)

{ printf("学号:%d姓名:%s性别:%s年龄:%d物理:%d数学:%d英语:%d电脑:%dVC:%d总

分%d\n",stu[j1].num,stu[j1].name,stu[j1].sex,stu[j1].age,stu[j1].score.phy,stu[j1 ].score.maths,stu[j1].score.english,stu[j1]https://www.sodocs.net/doc/199561628.html,puter,stu[j1].score.vc,stu[j 1].score.vc+stu[j1]https://www.sodocs.net/doc/199561628.html,puter+stu[j1].score.english+stu[j1].score.maths+ stu[j1].score.phy);

te=1;

}

if(te!=1) printf("无此学生信息\n");

}

else if(i1==1)

{ printf("请输入学生姓名");

scanf("%s",&name1);

for(j1=0;j1

if(strcmp(name1,stu[j1].name)==0)

{ printf("学号:%d姓名:%s性别:%s年龄:%d物理:%d数学:%d英语:%d电脑:%dVC:%d总

分%d\n",stu[j1].num,stu[j1].name,stu[j1].sex,stu[j1].age,stu[j1].score.phy,stu[j1 ].score.maths,stu[j1].score.english,stu[j1]https://www.sodocs.net/doc/199561628.html,puter,stu[j1].score.vc,stu[j 1].score.vc+stu[j1]https://www.sodocs.net/doc/199561628.html,puter+stu[j1].score.english+stu[j1].score.maths+ stu[j1].score.phy);

tc=1;

}

if(tc!=1) printf("无此学生信息\n");

}

printf("继续查找请输入1,回菜单请输入0");

int qq;

while(scanf("%d",&qq)&&qq!=0&&qq!=1)

printf("输入错误,请再输入");

if(qq==1)continue;

if(qq==0)break;

}

}

void became()

{ if(i==0)printf("请先输入学生信息\n");

while(i!=0)

{ printf("请输入要修改的学生学号\n");

int num2,j3;

scanf("%d",&num2);

for(j3=0;j3<=i;j3++)

if(num2==stu[j3].num)

{ strcpy(stu[j3].name,"/0");

printf("重新输入该学生所有数据,依次为学号、姓名、性别、年龄、物理、数学、英语、电脑、VC。\n");

printf("输入学生名字\n");

scanf("%s",&stu[j3].name);

printf("输入学生学号\n");

scanf("%d",&stu[j3].num);

printf("输入学生性别\n");

while(scanf("%s",&stu[j3].sex)&&strcmp(stu[j3].sex,"boy")!=0&&strcmp(stu[j3]. sex,"girl")!=0)

printf("输入错误,请再输入");

printf("输入学生年龄\n");

scanf("%d",&stu[j3].age);

printf("输入学生成绩(5科)\n");

printf("物理:");

scanf("%d",&stu[j3].score.phy);

printf("数学:");

scanf("%d",&stu[j3].score.maths);

printf("电脑:");

scanf("%d",&stu[j3]https://www.sodocs.net/doc/199561628.html,puter);

printf("英语:");

scanf("%d",&stu[j3].score.english);

printf("VC:");

scanf("%d",&stu[j3].score.vc);

printf("修改成功");

}

else("未找到该学号学生请确定输入无误\n");

int za;

printf("输入0返回菜单,输入1继续查找");

while(scanf("%d",&za)&&za!=0&&za!=1)

printf("输入错误,请再输入");

if(za==0)break;

if(za==1)continue;

}

}

void out()

{ if(i==0)printf("请先输入学生信息\n");

while(i!=0)

{ printf("请输入要删除的学生的学号\n");

int num3,j4,i3,za;

scanf("%d",&num3);

for(j4=0;j4<=i;j4++)

if(num3==stu[j4].num)

{ for(i3=j4;i3

{ stu[i3].num=stu[i3+1].num;

stu[i3].age=stu[i3+1].age;

strcpy(stu[i3].name,stu[i3+1].name);

strcpy(stu[i3].sex,stu[i3+1].sex);

stu[i3]https://www.sodocs.net/doc/199561628.html,puter=stu[i3+1]https://www.sodocs.net/doc/199561628.html,puter;

stu[i3].score.english=stu[i3+1].score.english;

stu[i3].score.maths=stu[i3+1].score.maths;

stu[i3].score.phy=stu[i3+1].score.phy;

stu[i3].score.vc=stu[i3+1].score.vc;

}

i--;

printf("修改成功\n");

}

else printf("未找到该学号学生请确定输入无误\n");

printf("输入0返回菜单,输入1继续修改");

while(scanf("%d",&za)&&za!=0&&za!=1)

printf("输入错误,请再输入");

if(za==0)break;

if(za==1)continue;

}

}

void into()

{ for(;;)

{ if(i>1000){printf("系统存储空间已满,无法继续增加,抱歉!\n");break;} printf("输入要增加学生信息,依次为学号、姓名、性别、年龄、物理、数学、英语、电脑、VC。\n");

i++;

printf("输入学生名字\n");

scanf("%s",&stu[i-1].name);

printf("输入学生学号\n");

scanf("%d",&stu[i-1].num);

printf("输入学生性别\n");

while(scanf("%s",&stu[i-1].sex)&&strcmp(stu[i-1].sex,"boy")!=0&&strcmp(stu[i-1].sex,"girl")!=0)

printf("输入错误,请再输入");

printf("输入学生年龄\n");

scanf("%d",&stu[i-1].age);

printf("输入学生成绩(5科)\n");

printf("物理:");

scanf("%d",&stu[i-1].score.phy);

printf("数学:");

scanf("%d",&stu[i-1].score.maths);

printf("电脑:");

scanf("%d",&stu[i-1]https://www.sodocs.net/doc/199561628.html,puter);

printf("英语:");

scanf("%d",&stu[i-1].score.english);

printf("VC:");

scanf("%d",&stu[i-1].score.vc);

printf("输入成功,剩余%d",1000-i);

if(i>=1000){printf("系统存储空间已满,无法继续增加,抱歉!\n");break;}

int za;

printf("输入0返回菜单,输入1继续增加");

while(scanf("%d",&za)&&za!=0&&za!=1)

printf("输入错误,请再输入");

if(za==0)break;

if(za==1)continue;

}

}

void main()

{ int a,wu=0;

FILE *fp;

fp=fopen("out.txt","rb+");

if(feof(fp)!=0)i=0;

while(feof(fp)==0)

{ fread(&i,sizeof(int),1,fp);

for(int m=0;m

fread(&stu[m],sizeof(struct student),1,fp);

}

fclose(fp);

do

{printf("********************主菜单********************\n");

printf(" 1.输入和储存学生信息(会删除之前记录)\n");

printf(" 2.查看学生信息(已排名)\n");

printf(" 3.学生成绩统计\n");

printf(" 4.查找学生信息\n");

printf(" 5.修改学生信息\n");

printf(" 6.删除学生信息\n");

printf(" 7.增加学生信息\n");

printf(" 8.退出\n");

printf("**********************************************\n");

printf("请输入选择项目序号:");

while(scanf("%d",&a)&&a!=0&&a!=1&&a!=2&&a!=3&&a!=4&&a!=5&&a!=6&&a !=7&&a!=8)

printf("输入错误,请再输入");

if(a==1)

{scan();}

if(a==2)

{watch1();}

if(a==3)

{watch2();}

if(a==4)

{fine();}

if(a==5)

{became();}

if(a==6)

{out();}

if(a==7)

{into();}

if(a==8)

{ FILE *fp;

fp=fopen("out.txt","rb+");

fwrite(&i,sizeof(int),1,fp);

for(int m=0;m

fwrite(&stu[m],sizeof(struct student),1,fp); fclose(fp);

break;

}

}while(8);

}

相关主题