教师上课点名系统_c语言_第1页
教师上课点名系统_c语言_第2页
教师上课点名系统_c语言_第3页
教师上课点名系统_c语言_第4页
教师上课点名系统_c语言_第5页
已阅读5页,还剩9页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计班级:学号:姓名:一指导教师:2010年09月09日课程设计任务书院系:电子信息工程学院专业:电子信息工程班级:学号:题目:教师上课点名系统一、课程设计时间201011第1学期第2周,共计1周,20学时。二、课程设计内容用C语言编写程序完成以下任务:教师在每次上课时,需要对学生点名。学生信息保存在文件方le20.txt(由教师提供)中,包括学号、姓名、是否缺席三项。编写程序,完成如下功能:1教师点名:对所有学生进行点名,并更新file20.txt文件;2分别统计已到和未到的学生,并显示;3能够向文件中添加后报到的学生信息。三、课程设计要求1 .程序质量:贯彻结构化的程序设计思想。用户界

2、面友好,功能明确,操作方便。用户界面中的菜单至少应包括“开始点名”、“信息统计”、“学生信息添加”“退出”4项。代码应适当缩进,并给出必要的注释,以增强程序的可读性。2 .课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:学生签名:五、说明书成绩六、教师评语一、程序设计题目1二、需求分析1.三、程序流程图2四、核心技术的实现方法及程序段6五、个人总结8六、参考文献8七、源程序8、程序设计题目1教师点名:对所有学生进行点名,并更新file20.txt文件;2分别统计已到和未到的学生,并显示;3能够向文件中添加后报到的

3、学生信息。二、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为七个模块,其中每一个模块对应一个功能,他们的功能分别是:程序界面设计模块,文件读写模块,文件更新模块,教师点名模块,学生信息添加模块,学生缺席情况统计模块,学生信息显示模块,。1、程序界面设计模块主要实现程序最初运行时程序界面友好、美观的的构型以及简明的操作提示;2、文件读写模块实现的功能是对myfile.dat文件数据的读取和存储,将文件中的数据保存到结构体student中,并将点名次数通过save函数保存到文件13、显示点名情况模块按照题目的要求将数据文件中所有学生的学号、姓名、被点名次数打印到屏幕上;4、随机点

4、名算法模块通过调用数学函数库中的随机数生成函数rand实现点名的随机性,并将被点到的学号、姓名打印到屏幕上;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。三、程序流程图总体框架图:模块设计:读取数据模块(图一)intiFILE*fpfp=fopen("myfile.txt","ab+")i=0;i<SIZE;i+Fread(&stdi;sizeof(structstudent),1,fp)printf("读取成功!n")点名模块(图二)保存模块(图三)in

5、tiFILE*fpfp=fopen("myfile.txt","rb+")i=0;i<SIZE;i+Fwrite(&stdi;sizeof(structstudent),1,fp)printf("保存成功!n")程序运行结果如图:-aixi(图一)国选定"DAgengzhongHn/061Mo2111犷Debug值机点名程序-”课一名数上所点点次用示始存名出使显开保点退名名点点机学随同280130119012S013011002280130110032S013011004h_jr-»,h->&#

6、171;j*<_>_rh_jTWTTffvtrwTWTTfrl-»,h->«j*<_>_rh_j-»,h->«J<_>_rH_JTWTTffvtrwTMWfvtMMNMMEJ(调KM【点十青水华斯杜王殷杨次畋诙次7110名名名名点点点点MHJfMSMiMMKKHiMJOCXJmHMMiK餐HMM!)(鬻文呼呆存成功|退t)清焉Q2e0i30iim杜永宁2B0130110B2王传华2«013011001过护音杜永宁而“二IJOlx(图二)essanykeytocontinue杜永宁260130110

7、1般泳20fll3011093SMMMMMMMMMMMMMMMMMMMMHMMMMM3B我?PI2,存肝I退出常入qM冢31tM:XMMXMMSMJM*等堇堇:MX杜永宁26013R11001"D:gengdiDnglin2006D4CliZl118PebugR*Lj£-e»e"N*醺同迎.:WHWMM-M二二二二二二*一一由点点次用示始存名出-一使显开保点退二二二二二X二二M二二二二二二二二二二二二二二二二二1TJW一tad.bq时入1A入入1A(图三)K选定"DEmsgdioi5而芝口口6口4口21116,口感bug雅加点名程序.亡我更&q

8、uot;输入七二点名次数归零输入(T通田26013011091260130110922HH130110B326013011094丁华*语编隼殷杨点名5次点茗次点名工旗,名工次2S013811091杜永宁2&&13&11&31杜永宁26013011093殷泳杨柳青*HXKX*MXMXKKXHX,KMH,M*WX.义件保存成功IJ_出请情)'*XMMXMX*MX,XKXXKMKXXMMMX*M*60130110912Q013Q11&&22A013S110B32Q013011094儆软拱音半,中华青永惇薪杜王殷杨次次我欢7122专名名点所点点四

9、、核心技术的实现方法及程序段1 .结构体定义:structstudentcharnum20;charname10;inttime;stdSIZE;2 .将fp所指向的文件中的数据存储到数组std中FILE*fp;if(fp=fopen("myfile.dat","ab+")=NULL)printf("文件打开失败n");exit(0);for(i=0;i<SIZE;i+)fread(&stdi,sizeof(structstudent),1,fp);3 .调用rand的函数进行点名loop:j=rand()/1000;i

10、f(j=0)(std0.time+;printf("tt%stt%sn",stdj.num,);elseif(j=1)(std1.time+;printf("tt%stt%sn",stdj.num,);elseif(j=2)(std2.time+;printf("tt%stt%sn",stdj.num,);elseif(j=3)(std3.time+;printf("tt%stt%sn",stdj.num,);elsegotoloop;brea

11、k;fclose(fp);4.保存点名voidsave()inti;FILE*fp;if(fp=fopen("myfile.dat","rb+")=NULL)printf("文件打开失败n");exit(0);for(i=0;i<SIZE;i+)if(fwrite(&stdi,sizeof(structstudent),1,fp)!=1)printf("文件保存失败n");/*将内存中的数据输出到磁盘文件中*/五、个人总结之前的C语言学的不是很好,基本处于一知半解的阶段,甚至对有些概念都还很模糊,但是

12、,在这一周的时间里,通过自己查找资料与同学之间进行探讨,还有老师和学长的指导,使我的C语言编程能力有了质的飞跃。虽然我们学的是电子专业,但C语言程序设计确实是一门很有用的学科,像我的题目一教师点名系统,就与我们的生活紧密联系在一起,所以这次课设并不是一个结束,而是一个开始,一个对C语言更深入学习的开始。六、参考文献1谭浩强.C程序设计.北京:清华大学出版社,20052刘成等.C语言程序设计实验指导与习题集.北京:中国铁道出版社,2006七、源程序#include<stdlib.h>#include<stdio.h>#include<math.h>#defin

13、eSIZE4structstudentcharnum20;charname10;inttime;stdSIZE;voidsave()inti;FILE*fp;if(fp=fopen("myfile.dat","rb+")=NULL)printf("文件打开失败n");exit(0);for(i=0;i<SIZE;i+)if(fwrite(&stdi,sizeof(structstudent),1,fp)!=1)/*将内门中的数据输出到磁盘文件中*/printf("文件保存失败n");voidmain(

14、)intj,i;charc;FILE*fp;if(fp=fopen("myfile.dat","ab+")=NULL)printf("文件打开失败n");exit(0);for(i=0;i<SIZE;i+)printf("*欢迎使用上课随机点名程序*门”);printf("*输入a:显示所有同学名情况*n");printf("*输入d:开始点名*n)printf("*输入s:保存点名*n)printf("*输入b:点名次数归透>*n");printf(&

15、quot;*输入q:退出*n)fread(&stdi,sizeof(structstudent),1,fp);/*将fp所指向的文件中的数据存储到数组std中*/printf('I*n");while(1)c=getchar();switch(c)被点名d次case'a':for(i=0;i<SIZE;i+)printf("tt%stt%sttn",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,stdj.na

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论