




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课程设计班 级 :学 号 :姓 名 : 指导教师 :2010年09月09日课程设计任务书院系:电子信息工程学院 专业:电子信息工程 班级:学号: 题目:教师上课点名系统一、课程设计时间201011第1学期第2周,共计1周,20学时。二、课程设计内容用C语言编写程序完成以下任务:教师在每次上课时,需要对学生点名。学生信息保存在文件file20.txt(由教师提供)中,包括学号、姓名、是否缺席三项。编写程序,完成如下功能:1 教师点名:对所有学生进行点名,并更新file20.txt文件;2 分别统计已到和未到的学生,并显示;3 能够向文件中添加后报到的学生信息。三、课程设计要求1. 程序质量:&
2、#178; 贯彻结构化的程序设计思想。² 用户界面友好,功能明确,操作方便。² 用户界面中的菜单至少应包括“开始点名”、“信息统计”、“学生信息添加”、“退出”4项。² 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、说明书成绩六、教师评语目 录一、程序设计题目1二、需求分析1.三、程序流程图2四、核心技术的实现方法及程序段6五、个人总结7六、参考文献7七、源程序8 一、程序设计题目1 教师点名:对所有学
3、生进行点名,并更新file20.txt文件;2 分别统计已到和未到的学生,并显示;3 能够向文件中添加后报到的学生信息。二、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为七个模块,其中每一个模块对应一个功能,他们的功能分别是:程序界面设计模块,文件读写模块,文件更新模块,教师点名模块,学生信息添加模块,学生缺席情况统计模块,学生信息显示模块,。1、程序界面设计模块 主要实现程序最初运行时程序界面友好、美观的的构型以及简明的操作提示;2、文件读写模块 实现的功能是对myfile.dat文件数据的读取和存储,将文件中的数据保存到结构体student中,并将点名次数通过save函数
4、保存到文件中;3、显示点名情况模块 按照题目的要求将数据文件中所有学生的学号、姓名、被点名次数打印到屏幕上;4、随机点名算法模块 通过调用数学函数库中的随机数生成函数rand实现点名的随机性,并将被点到的学号、姓名打印到屏幕上;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。三、程序流程图总体框架图:开始读取数据开始点名保存点名结束 int iFILE *fpfp=fopen("myfile.txt","ab+")i=0;i<SIZE;i+Fread(&stdi;sizeof(
5、struct student),1,fp)printf("读取成功!n")模块设计: 读取数据模块(图一) 点名模块(图二)Int j 调用随即生成函数rand进行点名 J=rand()/1000If(j=0) if(j=2)std0.time+; std2.time+;printf("tt%stt%sn", printf(“tt%stt%sn”, stdj.num, stdj.num,); ); if(j =1) std1.time+; printf("tt%stt%sn",stdj.num,st
6、); 保存模块 保存模块 int iFILE *fpfp=fopen("myfile.txt","rb+")i=0;i<SIZE;i+Fwrite(&stdi;sizeof(struct student),1,fp)printf("保存成功!n") 保存模块(图三): 程序运行结果如图: (图一) (图二) (图三)四、核心技术的实现方法及程序段1结构体定义:struct studentchar num20; char name10; int time;stdSIZE;2将fp所指向的文件中的数据存储到数组
7、std中FILE *fp;if(fp=fopen("myfile.dat","ab+")=NULL)printf("文件打开失败n");exit(0);for(i=0;i<SIZE;i+)fread(&stdi,sizeof(struct student),1,fp);3调用rand的函数进行点名loop:j=rand()/1000;if(j=0)std0.time+; printf("tt%stt%sn",stdj.num,);else if(j=1)std1.time+;prin
8、tf("tt%stt%sn",stdj.num,);else if(j=2)std2.time+;printf("tt%stt%sn",stdj.num,);else if(j=3)std3.time+;printf("tt%stt%sn",stdj.num,); else goto loop;break;fclose(fp);4保存点名void save()int i;FILE *fp;if(fp=fopen("myfile.dat","rb+&qu
9、ot;)=NULL)printf("文件打开失败n"); exit(0); for(i=0;i<SIZE;i+) if(fwrite(&stdi,sizeof(struct student),1,fp)!=1) printf("文件保存失败n");/*将内存中的数据输出到磁盘文件中*/五、个人总结之前的C语言学的不是很好,基本处于一知半解的阶段,甚至对有些概念都还很模糊,但是,在这一周的时间里,通过自己查找资料与同学之间进行探讨,还有老师和学长的指导,使我的C语言编程能力有了质的飞跃。虽然我们学的是电子专业,但C语言程序设计确实是一门很有用
10、的学科,像我的题目教师点名系统,就与我们的生活紧密联系在一起,所以这次课设并不是一个结束,而是一个开始,一个对C语言更深入学习的开始。六、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006七、源程序#include <stdlib.h>#include <stdio.h>#include <math.h>#define SIZE 4struct studentchar num20; char name10; int time;stdSIZE;void save()int i;FIL
11、E *fp; if(fp=fopen("myfile.dat","rb+")=NULL) printf("文件打开失败n"); exit(0); for(i=0;i<SIZE;i+) if(fwrite(&stdi,sizeof(struct student),1,fp)!=1) /*将内存中的数据输出到磁盘文件中*/ printf("文件保存失败n");void main()int j,i;char c;FILE *fp;if(fp=fopen("myfile.dat",&quo
12、t;ab+")=NULL)printf("文件打开失败n");exit(0);for(i=0;i<SIZE;i+)fread(&stdi,sizeof(struct student),1,fp);/*将fp所指向的文件中的数据存储到数组std中*/ printf("*欢迎使用上课随机点名程序*n");printf("*输入a:显示所有同学名情况 *n");printf("*输入d: 开始点名 *n");printf("*输入s:保存点名 *n");printf("
13、;*输入b: 点名次数归零 *n");printf("*输入q: 退出 *n");printf("*n");while(1)c=getchar();switch(c)case 'a':for(i=0;i<SIZE;i+)printf("tt%stt%stt被点名%d次n",stdi.num,,stdi.time); break;case 's': save();printf("*文件保存成功!退出请输入q*n"); break;case 'b': for(i=0;i<SIZE;i+) stdi.time=0;printf("点名次数归%dn",stdi.time);break;case 'q': exit(0);case 'd':loop:j=rand()/1000; /*调用rand的函数进行点名*/if(j=0)std0.time+; printf("tt%stt%sn",stdj.num,);else if(j=1)std1.time+;printf(&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45638-2025使用条形码和二维符号的电子元器件产品包装标签
- 新生儿采足底血知识考核试题
- 中职班主任管理能力提升培训
- 车险续保培训流程
- 《联想网络营销》课件
- 气象协理员培训实务
- 车资金过桥合同协议
- 特约分销协议书
- 通州学位租赁合同协议
- 《培养自信自爱》课件
- 科研伦理试题答案及解析
- 2025成都市新劳动合同书范本
- 第二章中国体育产业的发展与现状
- 2025届高三押题信息卷(一)地理及答案
- DB3303T078-2024规模以上工业企业健康评价指标体系
- GB 7718-2025食品安全国家标准预包装食品标签通则
- GB/T 45403-2025数字化供应链成熟度模型
- 咸宁叉车考试题及答案
- 2025春 新人教版美术小学一年级下册走进旧时光
- 腹腔引流管护理查房
- 利用导函数研究极值点偏移(4题型+高分技法+限时提升练)-2025年北京高考数学复习专练(原卷版)
评论
0/150
提交评论