




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机技术基础课程设计C语言设计报告题 目:学生成绩管理系统一选题背景:问题的提出:在学校的学生管理工作过程中,对学生的成绩统计管理是一个非常必要的问题。就此编写此C程序,对一个班的学生成绩进行管理,其中:每个学生的数据包括学号,姓名,三门功课的成绩(英语,数学,计算机),平均成绩及总成绩。并且可以根据实际情况的需要,对学生的数据进行修改(删除,添加,更改数据等)。二 设计思想 运用了C语言中的各种语句(如for循环语句,case开关语句,if else条件语句等),数组的知识以及函数及函数的调用等C语言基础知识将学生不同信息输入后统计输出并计算出其平均成绩和总成绩。用结构体的形式输入若干名学
2、生的数据,用比较美观的格式输出所有学生的数据,用比较法对输入的数据按平均分进行由低到高的排序,查找指定学号的学生数据,并按照一定的格式输出查找结果。按照平均分统计各个分数段的学生人数,0为退出整个程序的运行。 三 程序流程图开始 学号排列比较法排序升序主菜单包含7个功能输入学生数据学号姓名三门功课成绩运用for语句求总分平均分调用output函数输出学生数据调用sort函数平均分按降序排列调用find函数查找任一学号学生的数据调用inset函数插入若干学生数据对数据进行处理调用del函数删除学生数据可进行连续删除调用analyze函数调用Switch函数结束分析函数,列出每分数段人数四程序清单
3、:#includestdlib.h#includeconio.h#includestdio.h #define M 60#define A %d%s%f%f%f#define B %-5d %-20s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2fn#define C %d%s%f%f%f%f int n=3;struct student int num; char name10; float score3; float aver; float sum;sM;void nsort() int i,j; struct student a;for(j=1;jn;j+) for(i=1;
4、isi+1.num) a=si;si=si+1;si+1=a; void menu() printf(n Main Menun); printf( 1.Data input 2.Date Outputn); printf( 3.Data sorted(By Average) 4.Date Find(By NO.)n); printf( 5.Data Inset 6.Date deln); printf( 7.Data Analyze(By Average) 0.EXITn); printf(n); printf(“ * write by qinlifu *”);printf(“n”);prin
5、tf( Please input option(0-7):);void input() int i; float f1,f2,f3; printf(Please input data:n); printf( NO. Name English Math Computern); printf( n ); for(i=0;in;i+) printf(nPlease input NO.:); scanf(%d%*c,&si.num); printf(nPlease input name:); scanf(%s,); printf(nPlease input English score:)
6、; scanf(%f,&f1); printf(nPlease input Math score:); scanf(%f,&f2); printf(nPlease input Computer score:); scanf(%f,&f3); printf( nn); si.score0=f1; si.score1=f2; si.score2=f3; for(i=0;in;i+) si.sum=si.score0+si.score1+si.score2; si.aver=si.sum/3; printf(n);void output() int i; printf(nn NO. Name Eng
7、lish Math Computer Aver sumn); printf( nn ); for(i=0;in;i+) printf(B,si.num,,si.score0,si.score1,si.score2,si.aver,si.sum); printf(n ); printf(b n); printf(n);void sort() int i,j; struct student a; printf(n The sorted data:n);for(j=1;jn;j+) for(i=0;isi+1.aver) a=si;si=si+1;si+1=a; printf(n);v
8、oid find() /*调用函数*/ int low=0,top=n-1,mid,m,i; nsort(); /*查找任意学生的数据*/ printf( Please input the NO.:); scanf(%d,&m); while(low=top) mid=(low+top)/2; if(msmid.num)low=mid+1; else printf( NO. Name English Math Computer aver sumn); printf( n );printf(B,smid.num,,smid.score0,smid .score1,smid.sc
9、ore2,smid.aver); break; if(lowtop) printf(n NOT FOUND THIS NO. !n); printf(n);void inset() /*插入学生数据*/ int m,i; float f1,f2,f3; printf(Inset numbers ?:); scanf(%d,&m); printf(Please input data inset:n); for(n=0,i=0;im;i+) printf(nPlease input name:); gets(); printf(nPlease input English score:
10、); scanf(%f,&f1); printf(nPlease input Math score:); scanf(%f,&f2); printf(nPlease input Computer score:); scanf(%f,&f3); printf( n); sn.score0=f1; sn.score1=f2; sn.score2=f3; sn.sum=sn.score0+sn.score1+sn.score2; sn.aver=sn.sum/3; n+; sort(); output(); printf(n);void del() int m,i,j,t,p; printf(Ple
11、ase input how many numbers to ndel:); scanf(%d,&t); for(p=0;pt;p+) printf(Please input NO.del:); scanf(%d,&m); for(i=0;in) printf(This NO.is not exist !n); if(in) for(j=i;jn-1;j+) sj=sj+1; n-; printf(n);void analyze() int m,i,a5=0; for(i=0;in;i+) m=(int)si.aver/10; switch(m) case 0: case 1: case 2:
12、case 3: case 4: case 5: a0=a0+1; break; case 6: a1=a1+1; break; case 7: a2=a2+1; break; case 8: a3=a3+1; break; case 9: a4=a4+1; break; case 10:a5=a5+1; break; printf( Average Score Bracketsnn); printf( nn); printf( Brackets 0-59 60-69 70-79 80-89 90-100nn); printf( numbers %d %5d %5d %5d %5dnn,a0,a
13、1,a2,a3,a4); printf( nn); printf(nn); void main() /*主函数*/ int m=1; clrscr(); menu(); while(m!=0) scanf(%d,&m); switch(m) case 1: input(); clrscr(); output(); menu(); break; case 2: clrscr(); output(); menu(); break; case 3: clrscr(); sort(); output(); menu(); break; case 4: clrscr(); find(); menu(); break; case 5: clrscr(); inset(); menu(); break; case 6: clrscr(); del(); output(); menu(); break; case 7: clrscr(); analyze(); menu(); break; 五 主要问题及解决方法排序问题: 主要运用了for语句,依照每个学生的平均成绩用比较的方法进行名次排序。调用函数: 在此程序中多次使用“调用函数”的方法将结果有序的以较美观的格式输出所有学生的数据。 1、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南永州市零陵高新技术产业开发区公开选调工作人员4人模拟试卷及答案详解(各地真题)
- 2025年4月四川成都市金牛区中医医院招聘17人考前自测高频考点模拟试题附答案详解(突破训练)
- 2025年金华市卫生健康委员会所属医院金华市第二医院招聘7人(第一批)模拟试卷及一套完整答案详解
- 2025贵州银行金融科技相关岗位招聘10人考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025年西安亮丽电力集团有限责任公司招聘(10人)考前自测高频考点模拟试题有答案详解
- 2025江苏南京林业大学招聘专职辅导员和体育教师12人模拟试卷及答案详解(全优)
- 2025甘肃陇南市人民检察院招聘司法警察辅助人员5人模拟试卷及答案详解参考
- 2025北京市延庆区卫生健康委员会所属事业单位第一批招聘医务人员25人考前自测高频考点模拟试题及一套答案详解
- 2025江苏苏州高新区人力资源开发有限公司外包服务岗人员招聘5人考前自测高频考点模拟试题及一套参考答案详解
- 2025年河北省烟草专卖局(公司)招聘141人模拟试卷(含答案详解)
- 简单离婚协议书模板
- 生猪定点屠宰场申请书
- 康复医学概论课件
- 2025年《公共基础知识》试题库(附答案)
- 高二《复活》课文解读
- 大圆满前行考试题及答案
- 【衢州】2025年浙江衢州市柯城区属事业单位招聘工作人员17人笔试历年典型考题及考点剖析附带答案详解
- 钢构农业大棚建设项目可行性研究报告
- 非货币支付管理办法
- 湖北省武汉2025-2026学年度高一上学期开学分班考试-英语(解析版)
- 2025年宜昌专业技术人员公需科目培训考试题及答案
评论
0/150
提交评论