用c语言学习知识编写学生成绩管理方案计划系统.doc

上传人:一*** 文档编号:2643963 上传时间:2020-04-26 格式:DOC 页数:9 大小:102.52KB
返回 下载 相关 举报
用c语言学习知识编写学生成绩管理方案计划系统.doc_第1页
第1页 / 共9页
用c语言学习知识编写学生成绩管理方案计划系统.doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《用c语言学习知识编写学生成绩管理方案计划系统.doc》由会员分享,可在线阅读,更多相关《用c语言学习知识编写学生成绩管理方案计划系统.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、.#include#include#include#include#define N 30#define M 3typedef struct studentchar number10;char name20;float scoreM;float aver;float total;STU;STU stuN;int n;void inputscore(void);void savescore(void);void avergescore(void);void total(void);void modifyscore(void);void lookscore(void);void searchsco

2、re(void);void statistic(void);void add(void);void modify(void);void delscore(void);void menu(void);void main()short int flag=0;menu();doflag=1;switch(getch()case 1 : inputscore();break; /*输入成绩*/case 2 : lookscore();break;/*查看成绩*/case 3 : searchscore();break;/*查找成绩*/case 4 : statistic();break;/*成绩统计*

3、/case 5 : modify();break;/*修改成绩*/case 6 : add();break;/*添加成绩*/case 7 : delscore();break;/*删除成绩*/case 8 : savescore();break;/*保存成绩*/case 9 :exit(0);break;/*退出程序*/default : printf(输入有误n);printf(按任意键继续n);getch();menu();while (flag=1);void menu(void)system(cls); /清屏printf(n);printf( *欢迎进入学生会成绩管理系统*n);pr

4、intf( 菜单 n);printf( 输入成绩-1n);printf( 查看成绩及成绩排序-2n);printf( 查询学生成绩-3n);printf( 成绩统计-4n);printf( 修改成绩-5n);printf( 添加成绩-6n);printf( 删除成绩-7n);printf( 保存成绩-8n);printf( 退出系统-9n);printf( *n);printf( 请输入您的选择(19)n);/*输入各个同学的学生信息*/void inputscore(void)int i,j;system(cls);printf( 已经转到输入成绩菜单n);printf(请输入学生总数:n)

5、;scanf(%d,&n);printf(提示:输入学号时请输入由1位大写字母和8位数字组成的学号,如P01214000n);/*因二维表上下需对正故有此要求*/for(i=0;in;i+) printf(n);printf(请输入第%d位学生的学号:n,i+1); scanf(%s,stui.number);printf(姓名:n);scanf(%s,stui.name);printf(请输入学生成绩:n);printf(出勤分t值班分t贡献分n);for(j=0;jM;j+)scanf(%f,&stui.scorej);printf( 成功输入(按任意键继续后请输入8进行保存)n);/*计

6、算各个同学的总分*/void total(void)int i,j; for(i=0;in;i+)stui.total=0;for(j=0;jM;j+)stui.total+=stui.scorej;/*计算各个同学的平均分*/void avergescore(void)int i,j;for(i=0;in;i+)stui.aver=0;for(j=0;jM;j+)stui.aver+=stui.scorej;stui.aver=stui.aver/M;/*查看学生成绩及根据平均分对学生进行排序*/void lookscore(void)int i,j,k;STU t;total();aver

7、gescore();system(cls);printf( 已经转到查看成绩及成绩排序菜单n);for(i=0;in-1;i+)for(k=i,j=i+1;jstuk.aver)k=j;if(k!=j)t=stuk;stuk=stui;stui=t;printf(名次t学号tt姓名tt出勤分t值班分t贡献分t总分t平均分n);for(i=0;in;i+)printf(%dt%st%st,i+1,stui.number,stui.name);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2ft,stui.total);printf(%4.2

8、f,stui.aver);printf(n);/*通过输入学号查找学生成绩*/void searchscore(void)char a10;int i,j;system(cls); printf( 已经转到查询学生成绩菜单n);printf(请输入需查询的学生学号n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)printf(名次t学号tt姓名tt出勤分t值班分t贡献分t总分t平均分n);printf(%dt%st%st,i+1,stui.number,stui.name);for(j=0;jM;j+)printf(%4.2ft,s

9、tui.scorej);printf(%4.2ft,stui.total);printf(%4.2f,stui.aver);printf(n);break;/*找到该学生成绩信息后跳出for循环*/elseprintf(未找到该学生信息n);/*统计学生成绩信息,平均分及格率,优秀率*/void statistic(void) STU *p=stu;int i;float count=0.0,sum=0.0;system(cls);printf( 已经转到成绩统计菜单n);for(i=0;iaver;printf(该学生会平均分为%4.2fn,sum/n);/*平均分计算*/for(i=0;i

10、aver=60)count+;printf(该学生会及格率为%4.2f%n,count/n*100);/*及格率计算*/count=0.0;for(i=0;iaver=90)count+;printf(该学生会优秀率为%4.2f%n,count/n*100);/*优秀率计算*/printf(平均分低于60的学生会成员名单n);for(i=0;in;i+)if(stui.aver60)printf(%sn,stui.name);/*统计不及格学生名单*/*修改学生成绩*/void modify(void) char a10;int i,j;system(cls); printf( 已经转到修改成

11、绩菜单n);printf(请输入需要修改成绩的学生学号n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)printf(名次t学号tt姓名tt出勤分t值班分t贡献分t总分t平均分n);printf(%dt%st%st,i+1,stui.number,stui.name);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2f,stui.total);printf(%4.2f,stui.aver);printf(n);printf(请重新输入该学生的学号:n);scanf(%s,stu

12、i.number);printf(姓名:n);scanf(%s,stui.name);printf(请重新输入学生成绩:n);printf(出勤分t值班分t贡献分n);for(j=0;jM;j+)scanf(%f,&stui.scorej);/*找到该学生成绩后进行修改,跳出for循环*/printf(修改成功n);break;elseprintf(请确认该学生是否为学生会学生!n);/*添加学生成绩*/void add(void)int a,i,j;system(cls);printf( 已经转到添加成绩菜单n);printf(请输入新增加的学生人数:n);scanf(%d,&a);n=n+

13、a;for(i=n-a;in;i+) printf(n);printf(请输入第%d位学生的学号:n,i+1); scanf(%s,stui.number);printf(姓名:n);scanf(%s,stui.name);printf(请输入学生成绩:n);printf(出勤分t值班分t贡献分n);for(j=0;jM;j+)scanf(%f,&stui.scorej);printf(添加成功n);/*删除学生成绩*/void delscore(void)int i,j,c;char m,a10;system(cls);printf( 已经转到删除成绩菜单n);printf(请输入学生学号n

14、);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)printf(名次t学号tt姓名tt出勤分t值班分t贡献分t总分t平均分n);printf(%dt%st%st,i+1,stui.number,stui.name);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2ft,stui.total);printf(%4.2f,stui.aver);printf(n);c=i;break;elseprintf(未找到该学生信息n);printf(是否删除该学生成绩(y/n)n);scanf

15、(%s,&m);if(m=y)for(i=c;in-1;i+)stui=stui+1;/*结构体整体赋值将后一位学生成绩信息拷贝进入前一位学生信息的存储位置*/n=n-1;/*删除该学生信息后学生总数减一*/printf(删除成绩成功n);elseprintf(删除成绩失败n);/*保存学生成绩*/void savescore(void)FILE *fp;int i,flag=1;char m;system(cls);printf( 已经转到保存成绩菜单n);puts(是否保存学生成绩(y/n);scanf(%s,&m);if(m=y)if(fp=fopen(score.dat,wb)=NULL)printf(文件打开失败n);return;for(i=0;in;i+)if(fwrite(&stui,sizeof(struct student),1,fp)!=1)printf(保存失败n);flag=0;if(flag=1)printf(保存成功!n);fclose(fp);elsereturn;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁