




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录一、设计任务书21.1 题目与要求21.2 本程序涉及的知识点2 二、应用程序的详细说明22.1设计思路22.2大概设计模块22.3详细设计思路2三、输入数据类型、格式和内容限制3四、主要模块的算法描述34.1功能描述34.2主要流程图44.3模块代码及其相关注释7五、结束语9六、程序源代码清单10七、参考文献12一、设计任务书1.1、 题目与要求成绩统计要求:在一个文件里存放10个学生的信息(内容自定);姓名学号成绩(长度为5的数组)输出每个学生每科的评分(ABCD)等级和平均分(要求输出格式整齐)1.2、 本程序涉及的知识点变量的定义、输入和输出函数、if语句、while语句、for语
2、句、结构体、文件的打开与关闭、文件的写入与读入、文件类型指针、转意字符的使用等等。二、应用程序详细说明2.1、设计思路:1)在x.txt文件中,写入10个学生信息的相关数据。2)定义文件指针。读入x.txt中文件。通过printf输出。3)要求输出格式整齐不能超过所规定长度。2.2大概设计模块(1)先编入系统所需的库函数,从而使程序可运行。#include#include(2)Main()函数的设计 在main()函数中主要运用让for()循环语句if()-else选择判断语句来调用相关。(3)功能模块:学生数据写入功能和学生数据读入功能以及成绩输出功能。2.3详细设计思路(1) 确定应用程序
3、主要功能模块这个就比较简单了,主要是根据系统设计的说明及要求来设计,从而设计了功能模块,有文件操作,有输入输出等基本功能,添加了提示语。这个程序的主要功能时写入和读入学生的学号,姓名,三科成绩来对成绩进行统计输出(以ABCDE等级模式),同时输出所有同学的平均分,在整个过程中所做的操作都会到student.txt文件中读入数据(2)系统结构体的设计struct student/结构体 char name8;/姓名int num10;/学号float score3;/成绩;三、输入数据类型、格式和内容限制数据名 类型 格式 内容限制name string %s 非空sno string %s 非
4、空score float %f 非空i int %d 非空j int %d 非空s float %f 非空lv char %c 非空四、主要模块的算法描述4.1功能描述1).学生数据写入功能:输入初始学生信息,包括学生的姓名、学号、以及学生成绩的相关信息;通过for()循环嵌套语句printf和scanf标准输入输出以及pf=fopen(文件名,使用文件方式)、fwrite(butter,size,count,fp)完成学生信息写入文件中。2).学生数据读入功能:读取x.txt文件中的学生信息,通过pf=fopen(文件名,使用文件方式)、fread(butter,size,count,fp)
5、完成从x.txt文件中读取学生信息。3).成绩输出功能:输出学生的信息以及成绩以输出,通过puts(“*”)输出学生信息,以及for循环嵌套语句调用if()else来实现成绩等级输出,同时printf()函数对平均成绩标准输出。4.2、流程图1).主要流程图int i=0,j;i=0IN N Yprintf(“input scores .”) j=0j3 N YPrintf(“scores %d:”j+1); j+ i+fp=fopen(“student5.txt”,”wb”); i=0iN N Ymultiplexi+2).部分流程图:Multiplex的流程图: 打开stu.txt文件 w
6、hile(i+N) 读取第i-1个学生姓名和第i-1学生的学号 for(j=0;j5j+) 读取第i-1个学生的第j门课的成绩 关闭stu.txt文件 For(i=0;iN,i+) 显示第i个学生的姓名和第i个学生的学号 for(j=0;j=90 Y N Si.scorej=80 V=A Y N Si.scorej=70 V=B Y N Si.scorej=60 Y N V=C Si.scorej=0 Y N V=D V=E 输出error 输出平均成绩average 4.3模块代码及其相关注释:/*头文件*/#include /*引用库函数*/#include /*引用库函数*/#defin
7、e N 10 /*宏定义学生的数量*/struct student /*定义一个结构体用来存放学生学号、姓名、三门课成绩*/char num10; /*学生学号;*/char name8; /*学生姓名;*/float score3; /*三门课成绩;*/SN; /*结构体数组变量*/void main( ) int i=0, j; float s; char lv; FILE *fp;/*指向文件的指针*/ /*输入这十个学生的相关信息*/for(i=0; iN; i+)printf(intput scores of student %d:n,i+1); /*请输入第%d个学生的分数:*/p
8、rintf(No.:); scanf(%s,Si.num);printf(name:);scanf(%s,S);/*循环输入成绩*/for(j=0; j3; j+)printf(score%d:,j+1);scanf(%f,&s);Si.scorej=s;fp=fopen(student5.txt,wb);/*以“只写”的方式为输出打开一个二进制文件*/fwrite(S, sizeof(struct student), N, fp); /*一次写入N个学生的信息*/fclose(fp);/*关闭文件*/fp=fopen(student5.txt,rb); /*以“只读”的方式为输入
9、打开一个二进制文件*/ fread(S, sizeof(struct student), N, fp);/*一次读入N个学生的信息*/ fclose(fp); /*关闭文件*/ /*对学生信息及成绩的输出*/ puts(NametSNOtCn En Math AVG); for(i = 0; i N; i+) printf(%st%st, S, Si.num); s = 0.0; /*以“ABCDE“等级形式输出成绩*/ for(j = 0; j = 90) lv = A; else if(Si.scorej = 80) lv = B; else if(Si.scorej = 70
10、) lv = C; else if(Si.scorej = 60) lv = D; else if(Si.scorej = 0) lv = E; else puts(error); printf(%c , lv);/*以ABCDE等级形式输出成绩*/ s += Si.scorej;/*计算三门功课的总分*/ printf(%.2fn, s/3.0);/*计算出三门功课的平均分*/ 五、结束语1)总结:调试时有许多错误,但在我的努力及同学的帮助下都被一一克服,现在在操作本程序时可根据提示进行相关操作,能正确输出结果。在刚开始的几次调试中曾经出现过不能运行、不能输出成绩,运行后不能格式整齐、即不会
11、正确输出结果等等问题。经过我的努力及同学的帮助,这些问题得到克服,并且使程序的功能也得到了一定的完善。现在程序能对文件里学生信息输出,并且给出正确进行统计。最后更重要的是能够完全按要求输出。在这次设计过程中,不仅复习课本上所学知识,还通过查资料、问同学学到了课本上没有的知识。从而启发我,要想写好程序,在写好课本知识的同时还需要多读和专业有关的一些书籍,同时还需要多动脑子,尽量把所学的知识综合起来应用,力争写出完美的程序。除此之外,我还得到了一些有用的教训:写程序时必须要细心,不能输错一个字符标点,就连全角半角也得注意。在修改时要有耐心,编译出错后必须逐个错误去改正,绝不能心急浮躁,否则修改之后
12、还会有新的错误。2)致谢:能够完成这次课程设计必须感谢C语言课程老师(因为是您教会我c语言)以及同学的帮助,更感谢学校为我们设计这门课程,满足我们求知的欲望。六、程序的源代码清单#include #include #define N 10struct studentchar num10;char name8;float score3;SN;void main( ) int i=0, j; float s; char lv; FILE *fp;for(i=0; iN; i+)printf(intput scores of student %d:n,i+1);printf(No.:);scanf(
13、%s,Si.num);printf(name:);scanf(%s,S);for(j=0; j3; j+)printf(score%d:,j+1);scanf(%f,&s);Si.scorej=s;fp=fopen(student5.txt,wb);fwrite(S, sizeof(struct student), N, fp);fclose(fp);fp=fopen(student5.txt,rb); fread(S, sizeof(struct student), N, fp); fclose(fp); puts(NametSNOtCn En Math AVG); for(i = 0; i N; i+) printf(%st%st, S, Si.num); s = 0.0; for(j = 0; j = 90) lv = A; else if(Si.scorej = 80) lv = B; else if(Si.scorej = 70) lv = C; else if(Si.scorej = 60) lv = D; else i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025黑龙江中铁特货物流股份有限公司招聘75人笔试参考题库附带答案详解
- 2025河南郑州煤炭工业(集团)有限责任公司招聘260人笔试参考题库附带答案详解
- 2025年陕西建工集团工程八部招聘笔试参考题库附带答案详解
- 2025年国网英大国际控股集团有限公司招聘2人(第一批)笔试参考题库附带答案详解
- 2025宁夏睿丞新能源有限公司招聘31人笔试参考题库附带答案详解
- 2024重庆市兴盈光电科技有限公司招聘34人笔试参考题库附带答案详解
- 2025年上半年兰州新区农投丝路园艺限公司招聘工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年佛山市禅城区南庄镇政府招考编外人员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年人民日报社招聘应届高校毕业生85人笔试易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年云南红河州开远市事业单位考试调动28人易考易错模拟试题(共500题)试卷后附参考答案
- 安庆大学科技园建设实施方案
- 项目资金管理统筹实施方案
- 高中英语新课程标准解读课件
- 2024年秋新沪科版物理八年级上册 6.3来自地球的力 教学课件
- 定密培训课件教学课件
- 三、种植芽苗菜(教学设计)鲁科版二年级下册综合实践活动
- 2025届东北师大附属中学高考物理五模试卷含解析
- 父母买房在子女名下协议书范本
- 项目投资计算分析表系统(共有17张表格)excel格式
- DBJ15 31-2016建筑地基基础设计规范(广东省标准)
- 高危新生儿管理专家共识解读
评论
0/150
提交评论