


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include<stdio.h> 指令#include<string.h>符串函数#include<process.h>明#include<como.h>制台进行数据输入以及输出#define N 2000人define M 3typedef struct student char number10;的学号char name20;名char sex10;float scoreM;成绩float aver;平均成绩float total;STU;STU stuN;mt n;void mputscore(void);void savescore(v
2、oid);void avergescore(void);void total(void);void modifyscore(void);void lookscore(void);void searchscore(void);void statistic(void);void add(void);加void modify (void);改void delscore(void);void menu(void);单编译预处理定义处理字宏指令的声定义通过控最多的人数统计成绩定义类型保存所有人保存学生姓保存性别/保存所有课程保存每个人的总计成绩/学生成绩新建学生成绩保存/学生平均成绩/学生成绩总计/学生
3、成绩修改/学生成绩查看/学生成绩查询/学生成绩统计学生成绩添学生成绩修学生成绩删除学生成绩菜case 3r: searchscore();break; 通过学号査找学生成绩信息功能case f4r: statisticQ;break;门课程的最高分,平均分以及不及格人员case r5r: modify();break;学号修改学生成绩的功能case &: addQ;break;加学生成绩case 7r: delscoreQ;break;指定学生的成绩case 8 : savescoreQ;break; 成绩信息保存case 9 :exit(O); break; default: pnn
4、tfC输入有误n”);pnntf(”按任意键继续n”); getchO;按任意键继续,menuQ; / 菜单while (flag=l);清屏欢迎进入学生成绩管理系统void mainQ short int flag=0; menuQ;do Aag=l;switch(getch(J) case T : inputscoreO;break;/在菜单界面输入 1,调用 1 函数 nputscoreQ实现输入学生成绩信息功能case 2 : lookscore();break;在菜单界面输入2,调用函数lookscore()实现学生成绩按平均分高低排序输出,同时lookscoreQ函数调用avreg
5、escore()函数实现各个学生的平均 分计算在菜单界山|输入3,调用searchscore()函数头现在菜单界|何输入4,调用statisticQ函数输出每一在菜单界而输入5,调用modify。函数实现通过在菜单界面输入6,调用ndd()函数实现添在菜单界而输入7,调用delscoreQ函数实现删除在菜单界IA i输入8,调用savescoreQ函数将学生在菜单界面输入9,退出成绩管理系统起到暂停的作用,函数头文件como.h B经定义过 void menu(void)system(nclsM); pnntffW); pnntf(n);prmtf(n pnntf(n pnntf(n pnnt
6、f(n pnntf(n pnntf(n pnntf(n pnntf(n pnntfC pnntf(n pnntf(n pnntf(n菜单nH);纟责1査看成绩及成绩排序25”);査询学生成绩-3S”);成绩统计4n");修改成绩5S”);添加成绩6W);删除成绩7S”);保存成绩8W);退出系统 95”);请输入您的选择(19) nH);冲*未"*沐"*沐未输入各个 同学白勺学生信息“ *"* *未"沐未"*/ void mputscore(void)输入成绩 nit ij;system(nclsM); pnntf(n清屏专用,以下出
7、现位豐作用相同 己经转到输入成绩菜单);pnntf(”请输入学生总数:W);scanfd”,&n);printff*提示:输入学号时请输入9位学生编号:图书借阅证上的学号n”);因二维表上下需对正故有此耍求for(i=0;i<n;i+) printfC'W1);pnntf("请输入第d位学生的学号:n",i+l);scanf(H%s "、stu 1 .number);输入学生学号pnntf(” 姓名:n”);scanf(n%sn,stu 1 .name);/输入学生名字pnntf(”请输入该学生性别n“);scanf(n%sM,stu i.s
8、ex);/ 输入性别pnntf("请输入学生成绩:n");pnntf("高数分t英语分tC语言分5");for(j=0j<MJ+) printf(n成功输入(按任意键继续后请输入8进行保存)scanf(n%f&stui.scorej);输入高数、英语.C语言的成绩/*4+T%4<lHl:iitt4*''void total(void) nit ij;定义变量1, j: i用來表示学生个数,J则用來表示学生每门课的分数for(i=0;i<n;i+) stui.total=0;for(j=Oj<Mj+)/M表示
9、科目在头文件出己经定义stu 1. total+=stu ij.sc ore j ;void avergescore(void)nit ij;定义变量1, j: 1用来表示学生个数,J则用來表示学生每门课的分数for(i=0;i<n;i+) stui.aver=O;for(j=0j<Mj+)/M表示科目在头文件出己经定义stu i. aver+=stii i.sc ore j ;stu i aver=stu 1. aver/M;计算平均分void lookscore(void) rntijk; / i, j, k都表示学生成绩比较用来调换顺序STU t;totalQ; /此处用來对
10、调用函数的声明avergescoreQ;systemf'cls"); / 清屏专用printfC-已经转到査看成绩及成绩排序菜单n”);for(i=0;i<n-l ;i+) for(k=ij=i+lj<nj+)if(stu ) aver>stu k aver)k=j;改 k!=j)(t=stuk;stuk=stui;stui=t;prmtf(“名次t学号tt姓名t性别t高数分t英语分tC语言分t总分t平均分n”);for(i=0;Kn;i-H-)printf(n%dt%st%st%stHa+1、stu 1 .number, stu 1 .name.stu 1
11、. sex); for(j=OJ<MJ+)printf(n%4.2ft,stui.scorej);pnntf(”4 2ft”, stu 1 total);pnntf(n%4.2fstui.aver); pnntfCWvoid searchscore(void) char a10; mt uj;定义数组a的类型可输入数字,字母或字符system(nclsM);prmtf(n清屏己经转到查询学生成绩菜单n“);pnntf(请输入需查询的学生学号W);scanf(n%s,a);for(i=0;i<n;i+) if(strcmp(a,stui .number)=0)如果输入的学号为真则输出
12、相关信息 printfC名次t学号tt姓名t性别t高数分t英语分tC语言分t总分t平均分5”);printf(n%dt%st%st%st,i+l,,stui.sex); fbrO=Oj<Mj+)printf(H%4.2ft,stui.scorej);printf(H%4.2ft,stui.total);printf(n%4.2fstui.aver);printf(nQn);break;/找到该学生成绩信息后跳出for循环elsepnntfC未找到该学生信息);/*统计学生成绩信息,计算出每一门课的最高分*/void statistic()int
13、ij=0,k=0,cl;char str2;float averageM.sum=O; prmtf(”没有可被査找的记录n”);/system(nclsM);if(M=0)如果没有输入成绩则输出没有可查找的记录pnntf(”没有可被查找的记录n");elsexvhile(l)pnntff下面将统计考试成绩n“);pnntf(“请选择你要统计哪科的成绩1.高数t2.英语t3.C语言S”); scanfd”.&cl);prmtf(nt 一共有<1个记录WM);广总共记录数Mswitch(cl)case 1:用來判断髙数的最高分,平均分,输出不及格人员名单for(i=0;i&
14、lt;M;i-H-)sum+=stu i score 0;if(stuk.score0>stui.score0) k=i;if(stuj.score0<stiii.score0) j=i;average 0=sum/M;printf("t髙数的最高分:n”);prmtf(ntt 学号:s 姓名:s 分数:%.2fn,,stiij.score0); printf("t高数的最低分是:5”);prmtf(ntt 学号:s 姓名:s 分数:%.2fn,stuk.numbeE.stuk.score0); pr
15、intf("t 高数的平均分是 %5.2fn'average0);printfC平均分低于60分的学生成员名单S”);for(i=0;i<M;i+)if(stu i score0<60) pTintfC%sd'、stu 1 .name);break;case 2:/用來判断英语的最高分,平均分,输出不及格人员名单sum+=stu i score 1;if(stuk .score 1 >stu1.score 1 ) k=i;if(stuj.scorel<stui.scorel) j=i;average 1 =sum/M;printf("
16、t英语的最高分:n”);printf("tt 学号:s 姓名:s 分数:%.2fn",stuj.number,,stuj.scorel); printf("t英语的最低分是:5”);printf("tt 学号:s 姓名:s 分数:%.2fn",stuk.number,,stiik.score 1 ); printf("t 英语的半均分是 %5.2fn",averagel);printfC平均分低于60分的学生成员名单S”);for(i=0;i<M;i+)if(stu i score
17、1 <60)pnntff %sd'、stu 1 .name);break;case 3:用來判断C语言的最高分,平均分,输出不及格人员名单for(i=0;i<M;i+) /* 循环输入判断*/sum+=stu 1 score 2;if(stuk.score2>stui.score2) k=i;if(stuj.score2<stui.score2) j=i;average 2 =sum/M;printf("tC语言的最高分:n"); /*最髙分*7prmtf(ntt 学号:s 姓名:s 分数2fiT'qStujni】mbei;stuji
18、KimeqStujscore2); printf("tC语言的最低分是严最低分*/prmtf(ntt 学号:s 姓名:s 分数2fiT:stuknumbei:,stukiKimeqStukscoTe2); printf(HtC 语言的平均分是 %5.2fn,average2);printfC平均分低于60分的学生成员名单S”);for(i=0;i<M;i+)if(stui.score2<60) pnntfV'%sd;stu 1 .name); break;default:如果输入的数字不符合要求则显示错误信息pnntf(”输入错误!请输入13之间的数n”);sum
19、=O;getcharQ;printff是否继续进行统计?(y/n)");gets(str);if(strO=y|strO=,Y,) statisticQ;else break;void modify(void)char a10;mt ij;system(,'cls'r);pnntf(”己经转到修改成绩菜单5”);pnntf(“请输入需要修改成绩的学生学号n”);scanf(H%s,a);for(i=0;i<n;i*+) if(strcmp(a,stiii .number)=0)printfC名次t学号tt姓名t性别t高数分t英语分tC语言分t总分t平均分n”);
20、printf(n%dt%st%st%st,i+l,,stui.sex); fbrO=Oj<Mj+) pnntf(n%4.2ffstui.scorej);printf(n%4.2fstui.total);printf(H%4.2fstui.aver);printf(nQn);printfC请重新输入该学生的姓名:n”); scanf(n%s,stii 1 .number);printf(nQn);scanf(n%sH,);printfC请输入该学生性别n”);scanf(n%sH,stiii.sex);pnntf("请重
21、新输入该学生成绩:n"); printf("itj数分t英语分tC语言分S');fbrO=Oj<Mj+)scanf(n%f&stui.score|j);pnntfC修改成功n”); break;找到该学生成绩后进行修改,跳出for循环elseprintfC*请确认该学生是否为该校学生! n-);/*Hc*力学生成幺责仆*"*"*void add(void)/丄定义为学生,j为学生分数,a代表加入学生的数量 system(,'clsn);pnntfC己经转到添加成绩菜单n”);pnntfC请输入新增加的学生人数:W);scan
22、f(n%d'&a);n=n+a;for(i=n-a;i<n;i+) printf(,rnH);pnntf("请输入第d位学生的学号:n",i+l);scanf(H%s,stui.number);pnntfC 姓名:n”); scanf(,%s,); pnntf("输入该学生性别E); scanf(,%s,stui.sex); printf("请输入学生成绩:n"); pnntf("高数分t英语分tC语言分5"); for(j=0j<Mj+)scanf(n%f&stuiscorej);pnntf(”添加成功n”);void delscore(void) int i,j,c;char m<a10;/m用來存放后面输入删除的字母y或nsystem(nclsM);pnntfC己经转到删除成绩菜单prmtf(”请输入学生学vW); scanf(H%s,a);for(i=0;i<n;i+) if(strcmp(a,stiii .number)=O)printfC名次t学号tt姓名t性别t高数分t英语分t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村旧房改造土建合同范例
- 个人建材销售合同范本
- 厂房木工劳务合同范例
- 单位购柴油合同范例
- 包工合同范例范例
- 原木砍伐工程合同范例
- 区域白酒经销合同范例
- 出售农村别墅合同范例
- 保障众筹合同范例
- 发电玻璃租赁合同范例
- 六年级下册信息技术 课件-1.2无脚走天下-“启动电机”模块和“延时等待”模块 清华版 (共15张PPT)
- 2022年中国通用技术集团控股有限责任公司招聘笔试题库及答案解析
- 间歇经口管饲法 课件
- 导电胶rohs2.078中文深圳市华测检测技术股份市浦东新区新金桥路1996号
- 9 短诗三首 生字笔顺课件(共10张PPT)
- 无线射频识别技术外文翻译参考文献
- 电力负荷曲线与用电负荷预测课件
- 钢支撑、围檩专项施工方案
- 【2021部编版语文】-四年级下册第六单元教材解读--PPT课件
- 压力管道安装许可证换证自评报告
- 起重机械定期检验规则概述
评论
0/150
提交评论