




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河南理工大学计算机科学与技术学院课程设计报告201 3 201 4 学年第 2 学期课程名称 C语言程序设计 设计题目 学生成绩管理 学生姓名 学 号 专业班级 指导教师 2014年 6 月 23 日1 题目与要求1.1 问题提出本人计划编写一个学生成绩管理系统,主要用来管理学生基本信息及成绩信息。1.2 本系统涉及的知识点结构、数组、循环、函数、分支、指针1.3 功能要求1、建立学生信息,每个学生的信息包括:学号、姓名、班级、各科成绩、学期、平均成绩;2、求出每个学生的平均分;3、排序:分别按平均分排序4、根据学号查询成绩及不及格科目;5、按班级输出学生的成绩单2 功能设计2.1 算法设计本
2、系统需要实现的功能要求:利用switch语句设计如图1所示的主菜单:请输入选项编号(16)1信息导入2信息修改3信息查询4信息浏览5统计成绩6数据存盘0退出系统图1 学生成绩管理系统主菜单选择1后,调用输入学生成绩,进入函数后实现一个如图2所示的菜单。是否要输入信息(y/n)输入学期输入班级输入学号输入姓名输入语文成绩输入数学成绩输入英语成绩输入计算机成绩 图2 排序子菜单2.2 部分模块流程图 3 程序代码设计输入模块1)函数原形:struct infor *creat()2)功 能:利用while循环语句和scanf、if函数完成对结构数组的输入,存放n个学生的信息(学号、姓名、班级、学期
3、、平均成绩、4门成绩)。3)变量及类型: struct infor *head=NULL,*p=NULL,*q=NULL;4 C程序设计总结内容:1. 程序调试情况;登陆界面:输入信息:输入成绩:查询成绩:求平均分:修改信息:5 结束语做这个系统,感觉很难,有些内容上课没听懂,对知识点没彻底弄懂,导致做系统的时候感觉知识不够用,力不从心。 在以后的学习中更要上课认真听讲,注重每个知识点、细节,彻底搞懂;也要多些程序以提高自己编程的水平;课余时间更要多花时间在编程上面,这样才能学好。感谢朱老师一年的教导,感谢老师引导我们走进程序设计的大门。参考文献1 贾宗璞 许合利,C语言程序设计,人民邮电出版
4、社,2012.12 Stephen Prata, Primer Plus(第五版)中文版,人民邮电出版社,2014.2附录:程序清单#include#include#include #define N 4struct infor int term; / 定义学期(1或2)int no; /学号int clas; /定义班级(1或2班)char name9; /姓名 float chinese; /定义四门成绩float english;float math;float computer;struct infor *link;int n=0 ;/*/函数功能:创建链表,录入学生的相关信息,此函数
5、返回一个指向链表头的指针/*struct infor *creat()struct infor *head=NULL,*p=NULL,*q=NULL;char c;fflush(stdin);printf(是否要输入信息(y/n):);scanf(%c,&c); p=q=(struct infor *)malloc(sizeof(struct infor); q=head;while(p!=NULL&c=y)n+;p=(struct infor *)malloc(sizeof(struct infor); printf(请输入要录入学生信息的学期:);fflush(stdin); scanf(
6、%d,&p-term); /学期只能为1或2while(p-term!=1&p-term!=2)getchar();printf(输入错误!请重新输入:); /若学期不为1或2,则输入有误scanf(%d,&p-term); printf(请输入要录入学生成绩信息的班级:); fflush(stdin); /班级只能为1或2 scanf(%d,&p-clas);while(p-clas!=1&p-clas!=2)getchar();printf(输入错误!请重新输入:); scanf(%d,&p-clas); printf(请输入该班的学生信息!n); /输入学生信息(包括学号、四门成绩) p
7、rintf(请输入学生学号:); fflush(stdin); scanf(%d,&p-no); printf(请输入学生姓名:); fflush(stdin); scanf(%s,p-name); /输入学生姓名 printf(请输入语文成绩(0-100):); /输入四门成绩 scanf(%f,&p-chinese); printf(请输入数学成绩(0-100):); scanf(%f,&p-math); printf(请输入英语成绩(0-100):); scanf(%f,&p-english); printf(请输入计算机成绩(0-100):); scanf(%f,&p-computer
8、); if(n=1) /创建新结点 head=p; elseq-link=p;q=p; printf(是否还要输入信息(y/n):); fflush(stdin); scanf(%c,&c); q-link=NULL; /链表结尾 return(head); /链表返回头指针/*/函数功能:实现对学生信息的修改/*void change(struct infor *head)struct infor *p=head;char ch,m;char name9; /定义一个数组,存储学生的姓名int num;if(p=NULL)printf(出错!请先输入学生信息!);while(1) /设置循环
9、控制printf(ttt请选择要修改的信息!tn); printf(tttn); / 输出要修改的信息 printf(ttt a、学号: n); printf(ttt b、姓名: n);printf(ttt c、班级: n);printf(ttt d、成绩: n);printf(tttn);fflush(stdin); /清盘 scanf(%c,&ch); if(ch=a) printf(你要修改的信息是:学号!n); /按姓名修改学号 printf(请输入你要修改的学生姓名:); scanf(%s,name); if (strcmp(name,p-name)=0) printf(请输入该学生
10、新的学号:); /输入新学号 scanf(%d,&p-no); else printf(无法查找到该学生!n); /找不到信息 else if(ch=b) /按学号修改该班级学生的信息 printf(你要修改的信息是:姓名!n); printf(请输入你要修改的学生的学号:); scanf(%d,&num); if(num=p-no) /输入学号,判断条件 printf(请输入该学生的姓名:); scanf(%s,p-name); /输入要做修改的学生姓名 else printf(无法查找到该学生!n); /找不到信息 else if(ch=c) printf(你要修改的信息是:班级!n);
11、/按学号修改班级 printf(请输入你要修改的学生的学号:); scanf(%d,&num); if(num=p-no) printf(请输入该学生的班级:); /输入要做修改的班级 scanf(%d,p-clas); else printf(无法查找到该学生!n); /找不到信息 else if(ch=d) printf(你要修改的信息是:成绩!n); /按学号修改成绩 printf(请输入你要修改的学生的学号:); scanf(%d,&num); if(num=p-no) /输入学号 printf(请输入该学生新的语文成绩:); scanf(%f,p-chinese); printf(请
12、输入该学生新的数学成绩:); scanf(%f,p-math); /输入新的四门成绩 printf(请输入该学生新的英语成绩:); scanf(%f,p-english); printf(请输入该学生新的计算机成绩:); scanf(%f,p-computer);else printf(无法查找该学生的信息!n); /找不到信息 else printf(出错!n); p=p-link; printf(是否还要继续修改信息(y/n):); /判断,是否还要修改信息,跳出循环 fflush(stdin); if(m=getchar()=n)break; /*/函数功能:按照学号查询学生信息/*vo
13、id checkno(struct infor *head) /按学号查询学生的成绩 struct infor *p; p=head; int num,i=0; printf(请输入你要查询的学生学号:n); scanf(%d,&num); if(num=p-no) /输入学号,判断条件 printf(-); printf(t学期t学号t班别t姓名t语文t数学t英语t计算机tn); printf(-n); printf(%dt,p-term); printf(%dt,p-no); printf(%dt,p-clas); /输出学生的班级 printf(%st,p-name); printf(%
14、1ft,p-chinese); /输出四门成绩 printf(%1ft,p-math); printf(%1ft,p-english); printf(%1ft,p-computer); i=2; if(i=0) printf(没找到该学生的信息!); /找不到信息void checkclass(struct infor *head) int banji,i=0; struct infor *p=head; while(p!=NULL) /按班级查询学生的成绩 printf(请输入你要查询成绩的班级:); scanf(%d,&banji); if(banji=p-clas) printf(请输
15、出%d班所有同学的成绩:,banji); printf(-); printf(t学期t学号t班别t姓名t语文t数学t英语t计算机tn); printf(-n); printf(%dt,p-term); /输出要查询成绩的班级 printf(%dt,p-no); /输出查询成绩的学生学号 printf(%dt,p-clas); /输出要查询成绩的班级 printf(%st,p-name); /输出要查询成绩的学生姓名 printf(%1ft,p-chinese); printf(%1ft,p-math); /输出四门成绩 printf(%1ft,p-english); printf(%1ft,p
16、-computer); printf(n); i=2; p=p-link; if(i=0) printf(没找到学生信息!); /输出错误,找不到信息void checkterm(struct infor *head) /定义按学期查找信息的函数int xueqi,i=0;struct infor *p=head; while(p!=NULL) /设置循环控制 /按学期查询学生的成绩 printf(请输入你要查询成绩的学期:); scanf(%d,&xueqi); if(xueqi=p-term) printf(请输出第%d学期所有班级的信息:); printf(-); printf(t学期t
17、学号t班别t姓名t语文t数学t英语t计算机tn); printf(-n); printf(%dt,p-term); printf(%dt,p-no); printf(%dt,p-clas); printf(%st,p-name); /输出姓名 printf(%1ft,p-chinese); printf(%1ft,p-math); printf(%1ft,p-english); /输出四门成绩 printf(%1ft,p-computer); printf(n); i=2; p=p-link; if(i=0) printf(没找到学生信息!); /找不到信息void norich(struct
18、 infor *head) /定义一个函数,查找不及格的学生 struct infor *p; p=head;int num,i=0;float toa;printf(请输入要查询成绩的学生学号:);scanf(%d,&num);if(num=p-no) printf(正在查询该学生的成绩,请稍侯n); /查询学生的成绩,输出不及格的科目while(p!=NULL) if(p-chinesemathenglishcomputer0) printf(%s同学共有%d门成绩不及格!n学号是:%dn,p-name,i,p-no); printf(n); toa=p-chinese+p-math+p-
19、english+p-computer; if(toaname); /输出不及格的学生名单 p=p-link;void search(struct infor *head) /定义一个查询学生信息的函数,调用各子函数,进行查询char k,ch; struct infor *p=head; while(p!=NULL) /设置循环控制条件 /输出查询方式 printf(ttt 你要选择何种方式查询成绩!n); printf(tn); printf(ttt a、学号: n); printf(ttt b、班级: n); printf(ttt c、学期: n); printf(ttt d、不及格的学生
20、: n); printf(tn); fflush(stdin); scanf(%c,&k); switch(k) case a:checkno(head);break; /调用学号函数 case b:checkclass(head);break; case c:checkterm(head);break; case d:norich(head);break; printf(n); printf(是否还要继续查询学生的信息(y/n):); fflush(stdin); if(ch=getchar()=n)break; /跳出循环,返回主菜单 /*/函数功能:对学生成绩进行统计,按班级求总分及平均
21、分/*void zong(struct infor *head) /对该班级的学生成绩求总分、平均分float toa=0,ave=0; int i=0;struct infor *p=head;while(p!=NULL) toa=p-chinese+p-math+p-english+p-computer; /输出学生的总分和平均分成绩 ave=toa/N;printf(第%d个学生的总分为:%1f!n,i+1,toa);printf(n);printf(第%d个学生的平均分:%1f!n,i+1,ave);printf(n); printf(已经统计了第%d个学生的成绩!n,i+1); /统
22、计完毕printf(n); i+; p=p-link; /指向下一个结点void paixu(struct infor *head) /对该班级的学生成绩进行排序int i=0,j;float a10,t; /把结点信息输入到数组,然后排序 struct infor *p=head;while(p!=NULL) ai=p-chinese+p-math+p-computer+p-english; i+;p=p-link; for(j=0;j4;j+) /用数组排序 for(i=0;i3-j;i+) if(aiai+1) t=ai;ai=ai+1;ai+1=t;i+; for(i=0;iterm); /查询学期printf(%dt,p-no); /查询学号printf(%dt,p-clas); /查询姓名printf(%st,p-name);printf(%ft,p-chinese); /查询四门成绩printf(%1ft,p-math);printf(%1ft,p-english);printf(%1ft,p-computer);p=p-link;printf(n);printf(-n);ret
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深信服aES产品技术白皮书-V1.5
- 3.3汽化和液化 说课稿2025年初中人教版物理八年级上册
- 我奋斗我幸福心得体会
- 积极心理学理论下护理在细菌性阴道炎患者中的应用
- 《会计信息系统应用》课件 学习情境5 薪资管理系统应用
- 餐厨垃圾收运合作协议书
- 二零二五图书仓储与仓储物流信息化合同样本
- 二零二五年度办公大楼自来水供应与智能抄表服务合同
- 健康饮食规划实践指南
- 三农村资源利用优化方案设计
- 仓库收货流程图快速指导仓库新入职人员熟悉收货流程
- 毛泽东思想和中国特色社会主义理论体系概论智慧树知到答案章节测试2023年山东大学(威海)
- 教学资源 音乐女驸马教案
- 幼儿园春季传染病预防知识课件
- GB/T 11067.1-2006银化学分析方法银量的测定氯化银沉淀-火焰原子吸收光谱法
- GA 857-2009货物运输微剂量X射线安全检查设备通用技术要求
- 学校食堂食品安全自查自评表
- 管道防腐检验批质量验收记录
- 出口商业发票范本
- (本科)东南亚经济与贸易全套教学课件完整版PPT
- 《村级财务管理培训》PPT课件
评论
0/150
提交评论