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

下载本文档

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

文档简介

1、沈 阳 航 空 工 业 学 院 课程设计学 号 _班 级 _姓 名 _指导教师 _尹航_年 月 日沈阳航空工业学院课程设计任务书电子工程系 电子信息工程专业 84020103班 学号2008040201106一、课程设计题目:教师上课随机点名二、课程设计工作自2009年9月7日起至2009年9月11日止三、课程设计内容:用C语言编写软件完成以下任务:教师在每次上课时,需要对学生点名提问。学生信息应事先保存到文件file20.txt中。学生共有7人,名单如下:101 杜永宁N 102 段楠N 103 冯红N 104 郝苇N 105 胡龙N106 李南 N 107刘盈N所谓点名,是指将某位同学的姓

2、名和学号打印到屏幕上,则表示该同学是否缺席。四、课程设计要求:1程序质量:l 贯彻结构化的程序设计思想。l 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。l 用户界面中的菜单至少应包括“开始点名”、“信息统计”、“学生信息添加”、“退出”4项。l 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容如下:l 课程设计任务书l 程序设计题目l 需求分析(分析题目的要求)l 程序框图l 核心技术的实现方法及程序源代码及注释l 个人总结l 参考资料五、指导教师: 学生签名:六、成绩: 七、教师评语:目 录一、

3、需求分析2二、程序流程图3三、核心技术的实法现方6四、个人总结11五、参考文献12六、源程序12沈 阳 航 院 设 计 用 纸一、需求分析此程序是为点名而设计,经分析可知,整个程序的设计实现大致分为四个模块,其中每一个模块对应一个功能,他们的功能分别是:程序界面设计模块,文件读写模块,显示点名情况模块,随机算法模块。1、程序界面设计模块 主要实现程序最初运行时程序界面友好、美观的的构型以及简明的操作提示;2、文件读写模块 实现的功能是对file20.txt文件数据的读取和存储,将文件中的数据保存到结构体student中,并将点名次数通过save函数保存到文件中;3、显示点名情况模块 按照题目的

4、要求将数据文件中所有学生的学号、姓名、是否缺席打印到屏幕上;4、点名算法模块 通过调用自定义函数open()和rew()实现点名,并将被点到的学号、姓名、是否缺席打印到屏幕上;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。二、程序流程图1、整体框架图:输出目录选项定义结构体点名及显示模块修改模块保存模块结束开始图1:整体框架图2、流程图Save 函数进行保存的流程图yesif(fp=fopen("file20.txt","rb+")=NULL) Noprintf("文件打开失败n

5、"for(i=0;i<7;i+) if(fwrite(&stdi,sizeof(struct student),1,fp)!=1)yes No printf("文件保存失败n"); 文件保存成功图2 Sa ve 函数进行保存的流程图3、点名模块的流程图if(fp=fopen("file20.txt","ab+")=NULL)yes No 文件打开失败 Exit(0)for(i=0;i<7;i+)scanf("%d",&c);switch(c);While(1)真Case 1 否

6、开始点名真 Case 2 否 信息统计真Case 3; 否学生信息添加 Case 4 退出 图3:点名模块的流程图4、学生信息修改图if(fp=fopen("file20.txt","ab+")=NULL)yesNo文件打开失败Exit(0)scanf("%c",&j);h=0;While(h)真Case 1否修改信息真Case 2否h=0;跳出;图3: 学生信息修改图三、核心技术的实法现方1、结构体的定义并把原始信息一同定义在结构体成员中,是程序的核心内容之一struct studentlong num; char name

7、10; char data;st7;从上面的定义中可以看出,结构体类型定义中成员项都有确定的类型和名字,而要使用结构体类型的数据,必须经过两个步骤:先由关键字struct和用户定义的结构体名来说明类型,然后在由它们说明变量。2、Void open()是自定义函数它的主要用途是打开预存的学生的信息,并把它显示在屏幕上给老师点名。程序如下:void open() int i;FILE *fp;if(fp=fopen("file20.txt","ab+")=NULL)printf("文件打开失败n");exit(0);for(i=0;i&l

8、t;7;i+)fread(&sti,sizeof(struct student),1,fp);printf("%dt%st%cn",sti.num,,sti.data); 3、Void rew()是学生信息修改程序,提供给老师对缺席学生信息的修改,即缺席的学生,老师只要输入学号,程序就将该学生的缺席情况自动改为”Y”。如下:void rew() int i;int h=1;int k;char j;FILE *fp;if(fp=fopen("file20.txt","r")=NULL)printf("

9、文件打开失败n");exit(0);printf("*学生缺席请按'a'进行修改*n");printf("*输入'b'跳出修改*n");while(h)scanf("%c",&j);switch(j)case 'a':printf("缺席学生学号n");scanf("%d",&k);k=k-101;stk.data='Y'break;case 'b':h=0;for(i=0;i<7;i

10、+)fread(&sti,sizeof(struct student),1,fp);printf("%dt%st%cn",sti.num,,sti.data); 4、void save()是保存学生信息的自定义函数,主要将修改后的学生信息保存到file20.txt文档中去,实现保存功能。程序如下: void save()int i;FILE *fp;if(fp=fopen("file20.txt","rb+")=NULL)printf("文件打开失败n");exit(0);for(i=0;i

11、<7;i+)if(fwrite(&sti,sizeof(struct student),1,fp)!=1)printf("文件保存失败n");在上面的程序段中,用到了三个调用函数语句进行操作,尽管在程序化设计中有些重复,但其很方便,应用及操作比较简单。比如void open()语句是为了打开file20.txt文件并输出学生情况进行点名,void rew()语句点名是进行信息统计,void save()是保存功能的函数,通过它实现了学生信息的添加及保存。四、个人总结在此次课设之前我C语言学的一般,只能勉强应付考试,很多概念都非常模糊记不清楚。虽然,我的编程题目

12、并不算难,但是,在这一周的时间里,经过不断的学习与努力及与同学进行探讨,还有老师的指导,我的C语言编程终于能圆满完成。虽然程序还有一定的瑕渍,但我以尽力自己独立完成了。我感到C语言程序设计确实是一门很有用的学科,所以这次课设并不是一个结束,而是一个开始,一个对C语言更深入学习的开始。并借着机会继续学习C语言,努力尽早通过国家计算机二级考试。五、参考文献1 姚合生C程序设计北京:清华大学出版社,20082 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序 #include <stdlib.h>#include <stdio.h>#include

13、 <math.h> struct studentlong num; char name10; char data;st7=101,"杜永宁",'N',102,"段楠",'N',103,"冯红",'N',104,"郝苇",'N',105,"胡龙",'N',106,"李南",'N',107,"刘盈",'N'void open() int

14、i;FILE *fp;if(fp=fopen("file20.txt","ab+")=NULL)printf("文件打开失败n");exit(0);for(i=0;i<7;i+)fread(&sti,sizeof(struct student),1,fp);printf("%dt%st%cn",sti.num,,sti.data);void rew() int i;int h=1;int k;char j;FILE *fp;if(fp=fopen("file20.txt&qu

15、ot;,"r")=NULL)printf("文件打开失败n");exit(0);printf("*学生缺席请按'a'进行修改*n");printf("*输入'b'跳出修改*n");while(h)scanf("%c",&j);switch(j)case 'a':printf("缺席学生学号n");scanf("%d",&k);k=k-101;stk.data='Y'break;

16、case 'b':h=0;for(i=0;i<7;i+)fread(&sti,sizeof(struct student),1,fp);printf("%dt%st%cn",sti.num,,sti.data);void save()int i;FILE *fp;if(fp=fopen("file20.txt","rb+")=NULL)printf("文件打开失败n");exit(0);for(i=0;i<7;i+)if(fwrite(&sti,sizeo

17、f(struct student),1,fp)!=1)printf("文件保存失败n");void main() struct studentlong num; char name10;char data;st7=101,"杜永宁",'N',102,"段楠",'N',103,"冯红",'N',104,"郝苇",'N',105,"胡龙",'N',106,"李南",'N',107,"刘盈",'N'int i;int c;printf("*n");printf("*MENU*n");printf("*欢迎使用教师上课点名系统*n");printf("* 输入1:开始点名 *n");printf("* 输入2:信息统计 *n");printf("* 输入3:学生信息添加 *n");printf(&quo

温馨提示

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

评论

0/150

提交评论