C语言学生成绩管理系统源程序1word版本.docx
- 文档编号:12672538
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:21
- 大小:19.27KB
C语言学生成绩管理系统源程序1word版本.docx
《C语言学生成绩管理系统源程序1word版本.docx》由会员分享,可在线阅读,更多相关《C语言学生成绩管理系统源程序1word版本.docx(21页珍藏版)》请在冰豆网上搜索。
C语言学生成绩管理系统源程序1word版本
附录程序
#include"stdio.h"
#include
#include
#include"process.h"
#include"ctype.h"
typedefstruct
{
charnum[10];
charname[10];
intchinese;
intmath;
intenglish;
intdianlu;
doubleaver;
}Student;
Studentstu[99];
intshuru(Studentstud[],intn)/*输入若干条记录*/
{
inti=0;
charsign,x[10];
doublea=0.0;
while(sign!
='n'&&sign!
='N')
{
printf("输入学生学号:
");
scanf("%s",stu[n+i].num);
printf("输入学生姓名:
");
scanf("%s",stu[n+i].name);
printf("输入学生的语文、数学、英语、电路分数:
");
scanf("%d%d%d%d",&stu[n+i].chinese,&stu[n+i].math,&stu[n+i].english,&stu[n+i].dianlu);
a=1.0*(stu[n+i].chinese+stu[n+i].math+stu[n+i].english+stu[n+i].dianlu)/4;
stu[n+i].aver=a;
gets(x);/*清除多余的输入*/
printf("是否继续输入?
(Y/N):
\n");
scanf("%c",&sign);
i++;
}
return(n+i);
}
voidxianshi(Studentstud[],intn)/*显示所有记录*/
{
inti;
printf("----------------------------------------------------------\n");/*格式头*/
printf("学号姓名语文数学英语电路平均成绩\n");
printf("----------------------------------------------------------\n");
for(i=0;i { printf("%-10s%-10s%-10d%-10d%-10d%-10d%-10.2lf\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver); } } voidxiugai(Studentstud[],intn)/*修改*/ { inti=0,choice=1; charx[10]; while(choice! =0) {printf("请输入您要修改的学生的学号: \n"); scanf("%s",x); for(i=0;;i++) { if(strcmp(stu[i].num,x)==0)break; } printf("请选择您要修改的内容: \n"); printf("----------------------\n"); printf("|姓名请按1|\n"); printf("|语文请按2|\n"); printf("|数学分数请按3|\n"); printf("|英语分数请按4|\n"); printf("|电路请按5|\n"); printf("|退出请按0|\n"); printf("+----------------------+\n"); printf("请输入您的选择: "); scanf("%d",&choice); switch(choice) { case0: break; case1: printf("请输入新姓名: "); scanf("%s",stu[i].name); break; case2: printf("请输入新的语文分数: "); scanf("%d",&stu[i].chinese); break; case3: printf("请输入新的数学分数: "); scanf("%d",&stu[i].math); break; case4: printf("请输入新的英语分数: "); scanf("%d",&stu[i].english); break; case5: printf("请输入新的电路分数: "); scanf("%d",&stu[i].dianlu); break; default: printf("\n无效选项! "); break; }break; } return; } intshanchu(Studentstud[],intn)/*按姓名查找,删除一条记录*/ {chars[20]; inti; intj; i=0; printf("输入要删除记录的姓名: "); scanf("%s",s); while(strcmp(stu[i].name,s)! =0&&i if(i==n) {printf("notfind! \n"); return(n);} for(j=i;j { strcpy(stu[j].num,stu[j+1].num); strcpy(stu[j].name,stu[j+1].name); stu[j].chinese=stu[j+1].chinese; stu[j].math=stu[j+1].math; stu[j].english=stu[j+1].english; stu[j].dianlu=stu[j+1].dianlu; stu[j].aver=stu[j+1].aver; } printf("DeleteSuccessed! \n"); return(n-1); } voidchaxun_xingming(Studentstud[],intn)/*按姓名查找并显示一个记录*/ {chars[20]; inti=0; printf("输入姓名: "); scanf("%s",s); while(strcmp(stu[i].name,s)! =0&&i if(i==n) {printf("notfind! \n");/*输入失败信息*/ return;} printf("他的姓名、学号是: %s%s\n",stu[i].name,stu[i].num);/*输出该学生信息*/ printf("语文高数英语电路平均成绩是: %d,%d,%d,%d,%lf\n",stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver); } voidchaxun_pingjun(Studentstud[],intn)/*按平均成绩查找并显示一个记录*/ {doubles; inti=0; printf("输入平均成绩: "); scanf("%lf",&s); while(stu[i].aver! =s&&i if(i==n) {printf("notfind! \n");/*输入失败信息*/ return; } printf("他的学号是: %s\n",stu[i].num);/*输出该学生信息*/ printf("他的姓名是: %s\n",stu[i].name); printf("他的语文、数学、英语、电路分数是: %d%d%d%d\n",stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu); } voidpaixu_xuehao(Studentstud[],intn)/*按学号排序*/ {inti,j,p,q,r,w; doubley; charx[20],t[10]; for(i=0;i for(j=0;j if(strcmp(stud[j].num,stud[j+1].num)>0) {strcpy(t,stud[j].num); strcpy(stud[j].num,stud[j+1].num); strcpy(stud[j+1].num,t); strcpy(x,stud[j].name); strcpy(stud[j].name,stud[j+1].name); strcpy(stud[j+1].name,x); y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y; p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p; q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q; r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r; w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w; } return; } voidpaixu_pingjun(Studentstud[],intn)/*按平均成绩排序*/ {inti,j,p,q,r,w; doubley; charx[20],t[10]; for(i=0;i for(j=0;j if(stu[j].aver>stu[j+1].aver) {y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y; p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p; q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q; r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r; w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w; strcpy(x,stu[j].name); strcpy(stu[j].name,stu[j+1].name); strcpy(stu[j+1].name,x); strcpy(t,stu[j].num); strcpy(stu[j].num,stu[j+1].num); strcpy(stu[j+1].num,t); } return; } voidpaixu_chinese(Studentstud[],intn)/*按语文成绩排序*/ {inti,j,p,q,r,w; doubley; charx[20],t[10]; for(i=0;i for(j=0;j if(stu[j].chinese>stu[j+1].chinese) { y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y; p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p; q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q; r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r; w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w; strcpy(x,stu[j].name); strcpy(stu[j].name,stu[j+1].name); strcpy(stu[j+1].name,x); strcpy(t,stu[j].num); strcpy(stu[j].num,stu[j+1].num); strcpy(stu[j+1].num,t); } return; } voidpaixu_english(Studentstud[],intn)/*按英语成绩排序*/ {inti,j,p,q,r,w; doubley; charx[20],t[10]; for(i=0;i for(j=0;j if(stu[j].english>stu[j+1].english) { y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y; p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p; q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q; r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r; w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w; strcpy(x,stu[j].name); strcpy(stu[j].name,stu[j+1].name); strcpy(stu[j+1].name,x); strcpy(t,stu[j].num); strcpy(stu[j].num,stu[j+1].num); strcpy(stu[j+1].num,t); } return; } voidpaixu_math(Studentstud[],intn)/*按数学成绩排序*/ {inti,j,p,q,r,w; doubley; charx[20],t[10]; for(i=0;i for(j=0;j if(stu[j].math>stu[j+1].math) { y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y; p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p; q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q; r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r; w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w; strcpy(x,stu[j].name); strcpy(stu[j].name,stu[j+1].name); strcpy(stu[j+1].name,x); strcpy(t,stu[j].num); strcpy(stu[j].num,stu[j+1].num); strcpy(stu[j+1].num,t); } return; } voidpaixu_dianlu(Studentstud[],intn)/*按电路成绩排序*/ {inti,j,p,q,r,w; doubley; charx[20],t[10]; for(i=0;i for(j=0;j if(stu[j].dianlu>stu[j+1].dianlu) { y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y; p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p; q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q; r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r; w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w; strcpy(x,stu[j].name); strcpy(stu[j].name,stu[j+1].name); strcpy(stu[j+1].name,x); strcpy(t,stu[j].num); strcpy(stu[j].num,stu[j+1].num); strcpy(stu[j+1].num,t); } return; } voidtongji(Studentstud[],intn)//按分数段统计人数 {inti,j,a,max,min,k,l,q,p,w; k=0,l=0,p=0,q=0,w=0; printf("你想统计哪科成绩: 1语文2数学3英语4电路5平均\n"); scanf("%d",&j); printf("input2score: \n"); scanf("%d%d",&max,&min); if(max { a=max;max=min;min=a; } if(j==1) { for(i=0;i<99;i++) { if(stu[i].chinese>min&&stu[i].chinese } printf("分数段的人数为: %d",k); } elseif(j==2) { for(i=0;i<99;i++) { if(stu[i].math>min&&stu[i].math } printf("分数段的人数为: %d",l); } elseif(j==3) { for(i=0;i<99;i++) { if(stu[i].english>min&&stu[i].english } printf("分数段的人数为: %d",p); } elseif(j==4) { for(i=0;i<99;i++) { if(stu[i].dianlu>min&&stu[i].dianlu w++; } printf("分数段的人数为: %d",w); } elseif(j==5) { for(i=0;i<99;i++) { if(stu[i].aver>min&&stu[i].aver } printf("分数段的人数为: %d",q); } return; } intwenjian2(Studentstud[],intn)/*从文件中读入数据*/ {inti=0,num; FILE*fp;/*定义文件指针*/ charfilename[20];/*定义文件名*/ printf("\t\t\tInputthefilename: "); scanf("\t\t\t%s",filename);/*输入文件名*/ if((fp=fopen(filename,"rb"))==NULL)/*打开文件*/ {printf("\t\t\tcann'topenthefile\n");/*打开失败信息*/ printf("\t\t\t"); system("pause"); return(n); } fscanf(fp,"%d",&num);/*读入总记录量*/ while(i { fscanf(fp,"%s%s%d%d%d%d%lf\n",stu[n+i].num,stu[n+i].name,&stu[n+i].chinese,&stu[n+i].math,&stu[n+i].english,&stu[n+i].dianlu,&stu[n+i].aver); i++; } n+=num; fclose(fp);/*关闭文件*/ printf("\t\t\tSuccessed! \n"); printf("\t\t\t"); system("pause"); return(n); } voidwenjian1(Studentstud[],intn)/*将所有记录写入文件*/ { inti=0; FILE*fp;/*定义文件指针*/ charfilename[20];/*定义文件名*/ printf("Inputthefilename: ");/*输入文件名*/ scanf("%s",filename); if((fp=fopen(filename,"w"))==NULL)/*打开文件*/ { printf("cann'topenthefile\n"); return; } fprintf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 成绩管理系统 源程序 word 版本