




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈 阳 航 空 工 业 学 院 课程设计学 号 200704033018 班 级 74033018 姓 名 刘福佳 指导教师 王 晓 岩 2009 年 3 月 6日沈阳航空工业学院课程设计任务书院系:航空宇航工程学院 专业:飞行器设计与工程 班级:7403301学号:200704033018 题目:计算机成绩统计系统一、课程设计时间200809第2学期第1周,共计1周,20学时。二、课程设计内容用C语言编写程序完成以下任务:(1) 录入学生信息(信息包括学号,姓名,平时成绩,考试成绩等),并保存到myfile.txt文件中。(2) 统计学生的总成绩(计算方法:总成绩=考试成绩*70%+平时成绩30%)。(3) 采用选择法对总成绩排序并打印。(4) 修改某个学生的平时成绩或考试成绩。三、课程设计要求1. 程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应包括“学生信息录入”、“总成绩统计”、“总成绩排序”、“成绩更改”、“退出”5项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、说明书成绩六、教师评语 沈 阳 航 院 设 计 用 纸目录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段6四、课设总结12五、参考文献12六、源程序1317一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为四个模块,其中每一个模块对应一个函数,它们的功能分别是:添加学生数据函数,总成绩查询函数,总成绩排序函数, 更改学生数据函数。这四个函数的实现严格按照题目的要求。1、添加学生数据函数 主要实现程序最初运行时学生数据的录入以及其后的运行中学生数据的追加功能;2、总成绩排序函数 按照题目的具体要求实现的是总成绩的递减排序以及名次显示,其中总成绩相同者名次相同;3、总成绩查询函数 对全体同学的总成绩进行查询;4、更改数据函数 可以实现对学生记录中除学号以外的信息进行修改;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每一个学生记录都包含学号、姓名,以及平时成绩和考试成绩,在程序当中,将学生记录类型定义为结构体类型,添加以及追加的学生信息直接写入D盘的student.txt文件中,其它函数每次对学生记录的访问,其数据来源都是student.txt文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。二、程序流程图1、程序总体结构图.图1程序总体结构图2、具体功能框图(1) 添加学生数据函数add图2 添加学生数据函数(2)按总分排序函数sort图3总分排序函数(3)更改学生信息函数 change 图4更改学生数据 三、核心技术的实现说明及相应程序段 本程序主要由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,添加数据函数、更改数据函数和排序函数是程序中较为核心的部分,下面分别进行说明。1、添加数据函数 添加数据分为两种情况,其一是在学生文件(student.txt)不存在的情况下,首先由程序创建一个新文件,并将录入的学生信息写入该文件当中;其二是在学生文件(student.txt)已经存在的情况下,此时文件要以读写方式或追加的方式打开,这样才可以if(fp=fopen(d:student.txt,a)!=NULL)/*新建学生文件并添加信息*/ printf(请输入要添加的学生数量,按回车键确认:); scanf(%d,&n); for(i=1;i=n;i+) printf(n请输入第%d个学生的学号、姓名,用空格分开,并按回车键确认:n,i); scanf(%s%s,stu.num,); printf(n请输入第%d个学生的平时成绩、考试成绩,用空格分开,并按回车键确认:n,i); scanf(%f%f,&stu.usual,&stu.exam ); fprintf(fp,n%s %s %f %f,stu.num,,stu.usual,stu.exam);/*学生信息写入文件*/ fclose(fp);4、修改成绩change():这个程序段主要应用还是for()循环和if()条件的嵌套来确定要修改的人的及其所对应的成绩。通过赋值,替换学生成绩。函数段如下:void change()struct student stuN,temp; int n,i; FILE *fp; printf(n请输入要更改信息的学生学号,按回车键确认:); scanf(%s,temp.num); reads(stu,&n); for(i=0;i=n) printf(无此学生信息!); return; printf(n请输入更改后学生的姓名,平时成绩和考试成绩,按回车键确认:n); scanf(%s%f%f,,&temp.usual,&temp.exam ); stui=temp; if(fp=fopen(d:student.txt,w)=NULL)/*更新文件*/ printf(打开文件失败!); return; for(i=0;i=0;j-) /*选择法排序*/ for(i=j-1;i=0;i-) if(stuj.usual*0.3+stuj.exam*0.7stui.usual*0.3+stui.exam*0.7) a=stuj; stuj=stui; stui=a; printf(n 名次 学号 姓名 平时成绩 考试成绩 总成绩:);if(fp=fopen(d:student.txt,w)=NULL)/*更新文件*/ printf(打开文件失败!); return; j=1; for(i=0;in;i+) fprintf(fp,n%s %s %f %f,stui.num,,stui.usual,stui.exam); if(stui.usual*0.3+stui.exam*0.7=stui+1.usual*0.3+stui+1.exam*0.7) printf(n%3d%5s%5s%8.2f %8.2f%9.2fn,j,stui.num,,stui.usual,stui.exam,stui.usual*0.3+stui.exam*0.7); else printf(n%3d%5s%5s%8.2f %8.2f%9.2fn,j+,stui.num,,stui.usual,stui.exam,stui.usual*0.3+stui.exam*0.7); fclose(fp); getch(); 四、课设总结通过这次课程设计,使我又进一步熟悉和掌握了通过用C语言软件编写一个实际应用的程序,对一些文件打开等细节的程序函数进行了复习和熟悉,顺便也了解了一些WORD中没有了解的例如目录搜索等方法,而且我深深的体会到编程是一个需要谨慎与严密精神的工作,同时我也感觉到做一名优秀程序员的不易。在编程序过程中,我积极的和同学讨论,请教老师一些困难的问题和难点,最终编好和完善了程序。使程序基本能完成编好和完善了程序,而且用户界面也比较友好,用了全中文的形式,使界面更容易被别人接受,在运行过程中输出内容明了,循环顺畅,退出方便,很好的完成了任务。五、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序#include#include#include#include #define N 20struct studentchar num20; char name10; float usual; float exam; ;void menu();void reads(struct student stuN,int *n);void add();void total();void sort();void change();void main() int n; while(1) menu(); printf(n 请输入您要选择的操作序号,按回车键确认:); scanf(%d,&n); switch(n) case 1: add();break; case 2: total();break;case 3: change();break; case 4: sort();break; case 5: exit(0); default: printf(输入错误,请输入列表中存在的序号!n ); void menu()printf( *计算机成绩统计系统* ); printf(n 1 添加学生数据); printf(n 2 总成绩统计数据); printf(n 3 更改学生数据); printf(n 4 总成绩排序); printf(n 5 退出);void reads(struct student stuN,int *n) FILE *fp; int i=0; if(fp=fopen(d:student.txt,r)=NULL) printf(文件打开失败!n); return; else for(i=0;!feof(fp);i+) fscanf(fp,%s%s%f%f,stui.num,,&stui.usual,&stui.exam ); *n=i; fclose(fp);void add()/*添加学生信息*/FILE *fp; int n,i; struct student stu; if(fp=fopen(d:student.txt,a)!=NULL)/*新建学生文件并添加信息*/ printf(请输入要添加的学生数量,按回车键确认:); scanf(%d,&n); for(i=1;i=n;i+) printf(n请输入第%d个学生的学号、姓名,用空格分开,并按回车键确认:n,i); scanf(%s%s,stu.num,); printf(n请输入第%d个学生的平时成绩、考试成绩,用空格分开,并按回车键确认:n,i); scanf(%f%f,&stu.usual,&stu.exam ); fprintf(fp,n%s %s %f %f,stu.num,,stu.usual,stu.exam);/*学生信息写入文件*/ fclose(fp);void change()struct student stuN,temp; int n,i; FILE *fp; printf(n请输入要更改信息的学生学号,按回车键确认:); scanf(%s,temp.num); reads(stu,&n); for(i=0;i=n) printf(无此学生信息!); return; printf(n请输入更改后学生的姓名,平时成绩和考试成绩,按回车键确认:n); scanf(%s%f%f,,&temp.usual,&temp.exam ); stui=temp; if(fp=fopen(d:student.txt,w)=NULL)/*更新文件*/ printf(打开文件失败!); return; for(i=0;in;i+) fprintf(fp,n%s %s %f %f %f,stui.num,,stui.usual,stui.exam ); fclose(fp); printf(修改学生信息成功!n);void total() /*总成绩统计函数*/struct student stuN; int n,i; reads(stu,&n); printf(n 学号 姓名 平时成绩 考试成绩 总成绩:); for(i=0;i=0;j-) for(i=j-1;i=0;i-) if(stuj.usual*0.3+stuj.exam*0.7stui.usual*0.3+stui.exam*0.7) a=stuj; stuj=stui; stui=a; printf(n 名次 学号 姓名 平时成绩 考试成绩 总成绩:);if(fp=fopen(d:student.txt,w)=NULL)/*更新文件*/ printf(打开文件失败!); return; j=1; for(i=0;in;i+) fprintf(fp,n%s %s %f %f,stui.num,,stui.usual,stui.exam); if(stui.usual*0.3+stui.exam*0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宝鸡三和职业学院《清洁生产与循环经济》2023-2024学年第二学期期末试卷
- 河北劳动关系职业学院《古典园林设计》2023-2024学年第二学期期末试卷
- 北京外国语大学《生物育种综合实验技术》2023-2024学年第二学期期末试卷
- 赣州职业技术学院《突发公共卫生事件应急管理》2023-2024学年第二学期期末试卷
- 长沙师范学院《计算机辅助绘图基础》2023-2024学年第二学期期末试卷
- 大兴安岭职业学院《医学信息导论》2023-2024学年第二学期期末试卷
- 巴中职业技术学院《信息安全技术》2023-2024学年第二学期期末试卷
- 昆明理工大学津桥学院《固体表面物理化学》2023-2024学年第二学期期末试卷
- 武汉商学院《国际贸易实务英语(一)》2023-2024学年第二学期期末试卷
- 喀什理工职业技术学院《江南丝竹》2023-2024学年第二学期期末试卷
- GB∕T 17466.1-2019 家用和类似用途固定式电气装置的电器附件安装盒和外壳 第1部分:通用要求
- 钻探设备工具材料共12
- 得到上市招股书:北京思维造物信息科技股份有限公司
- 机动车检测站授权签字人内部培训考题(含答案)
- 2022年浙江省小升初语文试卷(含答案)
- Q∕GDW 12158-2021 国家电网有限公司重大活动电力安全保障工作规范
- 我把没有送给你(课堂版)(1)
- 刘半农雨散文的特点
- 南靖和溪各姓氏源流
- 智能PID算法在液位控制系统中的应用毕业论
- 肾病及生活质量KDQOL-SF
评论
0/150
提交评论