C语言学生成绩标准管理系统源程序.doc
《C语言学生成绩标准管理系统源程序.doc》由会员分享,可在线阅读,更多相关《C语言学生成绩标准管理系统源程序.doc(20页珍藏版)》请在咨信网上搜索。
附录程序 #include"stdio.h" #include<stdlib.h> #include<string.h> #include"process.h" #include"ctype.h" typedef struct { char num[10]; char name[10]; int chinese; int math; int english; int dianlu; double aver; }Student; Student stu[99]; int shuru(Student stud[],int n)/*输入若干条统计*/ { int i=0; char sign,x[10]; double a=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); } void xianshi(Student stud[],int n) /*显示全部统计*/ { int i ; printf("----------------------------------------------------------\n"); /*格式头*/ printf("学号 姓名 语文 数学 英语 电路 平均成绩 \n"); printf("----------------------------------------------------------\n"); for(i=0;i<n;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); } } void xiugai(Student stud[],int n)/*修改*/ { int i=0,choice=1; char x[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) { case 0:break; case 1: printf("请输入新姓名:"); scanf("%s", stu[i].name); break; case 2: printf("请输入新语文分数:"); scanf("%d", &stu[i].chinese); break; case 3: printf("请输入新数学分数:"); scanf("%d",&stu[i].math); break; case 4: printf("请输入新英语分数:"); scanf("%d", &stu[i].english); break; case 5: printf("请输入新电路分数:"); scanf("%d", &stu[i].dianlu); break; default: printf("\n无效选项!"); break; } break; } return; } int shanchu(Student stud[],int n) /*按姓名查找,删除一条统计*/ { char s[20]; int i; int j; i=0; printf("输入要删除统计姓名:"); scanf("%s",s); while(strcmp(stu[i].name,s)!=0&&i<n) i++; if(i==n) {printf("not find!\n"); return(n); } for(j=i;j<n-1;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("Delete Successed!\n"); return(n-1); } void chaxun_xingming(Student stud[],int n) /*按姓名查找并显示一个统计*/ { char s[20]; int i=0; printf("输入姓名:"); scanf("%s",s); while(strcmp(stu[i].name,s)!=0&&i<n) i++; /*查找判定*/ if(i==n) {printf("not find!\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); } void chaxun_pingjun(Student stud[],int n) /*按平均成绩查找并显示一个统计*/ { double s; int i=0; printf("输入平均成绩:"); scanf("%lf",&s); while(stu[i].aver!=s && i<n) i++; if(i==n) { printf("not find!\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); } void paixu_xuehao(Student stud[],int n) /*按学号排序*/ { int i,j,p,q,r,w; double y; char x[20],t[10]; for(i=0;i<n-1;i++) /*冒泡法排序*/ for(j=0;j<n-1-i;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; } void paixu_pingjun(Student stud[],int n) /*按平均成绩排序*/ { int i,j,p,q,r,w; double y; char x[20],t[10]; for(i=0;i<n-1;i++) /*冒泡法排序*/ for(j=0;j<n-1-i;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; } void paixu_chinese(Student stud[],int n) /*按语文成绩排序*/ { int i,j,p,q,r,w; double y; char x[20],t[10]; for(i=0;i<n-1;i++) /*冒泡法排序*/ for(j=0;j<n-1-i;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; } void paixu_english(Student stud[],int n) /*按英语成绩排序*/ { int i,j,p,q,r,w; double y; char x[20],t[10]; for(i=0;i<n-1;i++) /*冒泡法排序*/ for(j=0;j<n-1-i;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; } void paixu_math(Student stud[],int n) /*按数学成绩排序*/ { int i,j,p,q,r,w; double y; char x[20],t[10]; for(i=0;i<n-1;i++) /*冒泡法排序*/ for(j=0;j<n-1-i;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; } void paixu_dianlu(Student stud[],int n) /*按电路成绩排序*/ { int i,j,p,q,r,w; double y; char x[20],t[10]; for(i=0;i<n-1;i++) /*冒泡法排序*/ for(j=0;j<n-1-i;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; } void tongji(Student stud[],int n)//按分数段统计人数 { int i,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("input 2 score:\n"); scanf("%d%d",&max,&min); if(max<min) { a=max;max=min;min=a; } if(j==1) { for(i=0;i<99;i++) { if(stu[i].chinese>min&&stu[i].chinese<max) k++; } printf("分数段人数为 :%d",k); } else if(j==2) { for(i=0;i<99;i++) { if(stu[i].math>min&&stu[i].math<max) l++; } printf("分数段人数为 :%d",l); } else if(j==3) { for(i=0;i<99;i++) { if(stu[i].english>min&&stu[i].english<max) p++; } printf("分数段人数为 :%d",p); } else if(j==4) { for(i=0;i<99;i++) { if(stu[i].dianlu>min&&stu[i].dianlu<max) w++; } printf("分数段人数为 :%d",w); } else if(j==5) { for(i=0;i<99;i++) { if(stu[i].aver>min&&stu[i].aver<max) q++; } printf("分数段人数为 :%d",q); } return; } int wenjian2(Student stud[],int n) /*从文件中读入数据*/ { int i=0,num; FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/ printf("\t\t\tInput the filename:"); scanf("\t\t\t%s",filename); /*输入文件名*/ if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/ { printf("\t\t\tcann't open the file\n"); /*打开失败信息*/ printf("\t\t\t"); system("pause"); return(n); } fscanf(fp,"%d",&num); /*读入总统计量*/ while(i<num) /*循环读入数据*/ { 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); } void wenjian1(Student stud[],int n) /*将全部统计写入文件*/ { int i=0; FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/ printf("Input the filename:");/*输入文件名*/ scanf("%s",filename); if((fp=fopen(filename,"w"))==NULL) /*打开文件*/ { printf("cann't open the file\n"); return; } fprintf(fp,"%d\n",n); /*循环写入数据*/ while(i<n) { fprintf(fp,"%s %s %d %d %d %d %lf\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver); i++; } fclose(fp); /*关闭文件*/ printf("Successed!\n"); /*返回成功信息*/ } int menu() /*菜单函数*/ { int c; do{ printf("\t\t****学生信息管理系统菜单****\n"); printf("\t\t 1. 编辑 \n"); printf("\t\t 2. 显示 \n"); printf("\t\t 3. 查询 \n"); printf("\t\t 4. 排序\n"); printf("\t\t 5. 统计\n"); printf("\t\t 6. 文件 \n"); printf("\t\t 0. 退出 \n"); printf("************************************************************\n"); printf("\t\t\t请选择(0-6):"); scanf("%d",&c); }while(c<0||c>6); return(c-0); /*返回选择*/ } int bianji() { printf("\t\t 1. 录入\n"); printf("\t\t 2 .修改\n"); printf("\t\t 3. 删除 \n"); printf("\t\t 按其它数字键退出 \n"); int i; scanf("%d",&i); return i; } int chaxun() { printf("\t\t 1. 按姓名查询\n"); printf("\t\t 2 .按平均成绩查询\n"); printf("\t\t 按其它数字键退出\n"); int i; scanf("%d",&i); return i; } int paixu() { printf("\t\t 1. 按学号\n"); printf("\t\t 2 .按语文成绩\n"); printf("\t\t 3 .按数学成绩\n"); printf("\t\t 4 .按英语成绩\n"); printf("\t\t 5 .按电路成绩\n"); printf("\t\t 6 .按平均成绩\n"); printf("\t\t按其它数字键退出\n"); int i; scanf("%d",&i); return i; } int wenjian() { printf("\t\t 1. 从文件中读入数据\n"); printf("\t\t 2 .将全部统计写入文件\n"); printf("\t\t 按其它数字键退出 \n"); int i; scanf("%d",&i); return i; } void main() /*主函数*/ { int n=0; for(;;) { for(;;) { switch(menu()) { case 1: switch(bianji()) { case 1:n=shuru(stu,n);xianshi(stu,n); break; case 2:xiugai(stu ,n);xianshi(stu,n); break; case 3:shanchu(stu ,n);xianshi(stu,n); break; } break; case 2:xianshi(stu,n);break; case 3: switch(chaxun()) { case 1:chaxun_xingming(stu,n);break; case 2:chaxun_pingjun(stu ,n);break; } break; case 4: switch(paixu()) { case 1:paixu_xuehao(stu,n);xianshi(stu,n); break ; case 2:paixu_chinese(stu ,n);xianshi(stu,n);break; case 3:paixu_math(stu ,n);xianshi(stu,n); break; case 4:paixu_english(stu ,n);xianshi(stu,n); break; case 5:paixu_dianlu(stu ,n);xianshi(stu,n); break; case 6:paixu_pingjun(stu ,n);xianshi(stu,n); break; } break; case 5:tongji(stu,n);break; case 6: switch(wenjian()) { case 1:n=wenjian2(stu,n);break; case 2:wenjian1(stu ,n);break; } break; case 0: exit(0); /*结束程序*/ } } } }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 成绩 标准 管理 系统 源程序
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文