教师上课点名系统DOC.docx

上传人:b****2 文档编号:17196170 上传时间:2023-07-22 格式:DOCX 页数:14 大小:34.03KB
下载 相关 举报
教师上课点名系统DOC.docx_第1页
第1页 / 共14页
教师上课点名系统DOC.docx_第2页
第2页 / 共14页
教师上课点名系统DOC.docx_第3页
第3页 / 共14页
教师上课点名系统DOC.docx_第4页
第4页 / 共14页
教师上课点名系统DOC.docx_第5页
第5页 / 共14页
教师上课点名系统DOC.docx_第6页
第6页 / 共14页
教师上课点名系统DOC.docx_第7页
第7页 / 共14页
教师上课点名系统DOC.docx_第8页
第8页 / 共14页
教师上课点名系统DOC.docx_第9页
第9页 / 共14页
教师上课点名系统DOC.docx_第10页
第10页 / 共14页
教师上课点名系统DOC.docx_第11页
第11页 / 共14页
教师上课点名系统DOC.docx_第12页
第12页 / 共14页
教师上课点名系统DOC.docx_第13页
第13页 / 共14页
教师上课点名系统DOC.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

教师上课点名系统DOC.docx

《教师上课点名系统DOC.docx》由会员分享,可在线阅读,更多相关《教师上课点名系统DOC.docx(14页珍藏版)》请在冰点文库上搜索。

教师上课点名系统DOC.docx

教师上课点名系统DOC

沈阳航空工业学院

课程设计

学号__________

班级__________

姓名__________

指导教师___尹航___

年月日

沈阳航空工业学院

课程设计任务书

电子工程系电子信息工程专业84020103班学号2008040201106

一、课程设计题目:

教师上课随机点名

二、课程设计工作自2009年9月7日起至2009年9月11日止

三、课程设计内容:

用C语言编写软件完成以下任务:

教师在每次上课时,需要对学生点名提问。

学生信息应事先保存到文件file20.txt中。

学生共有7人,名单如下:

101杜永宁N102段楠N103冯红N104郝苇N105胡龙N

106李南N107刘盈N

所谓点名,是指将某位同学的姓名和学号打印到屏幕上,则表示该同学是否缺席。

四、课程设计要求:

1.程序质量:

●贯彻结构化的程序设计思想。

●用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。

●用户界面中的菜单至少应包括“开始点名”、“信息统计”、“学生信息添加”、“退出”4项。

●代码应适当缩进,并给出必要的注释,以增强程序的可读性。

2.课程设计说明书:

课程结束后,上交课程设计说明书和源程序。

课程设计说明书的内容如下:

●课程设计任务书

●程序设计题目

●需求分析(分析题目的要求)

●程序框图

●核心技术的实现方法及程序源代码及注释

●个人总结

●[参考资料]

五、指导教师:

学生签名:

六、成绩:

七、教师评语:

 

目录

一、需求分析2

二、程序流程图3

三、核心技术的实法现方6

四、个人总结11

五、参考文献12

六、源程序12

 

一、需求分析

此程序是为点名而设计,经分析可知,整个程序的设计实现大致分为四个模块,其中每一个模块对应一个功能,他们的功能分别是:

程序界面设计模块,文件读写模块,显示点名情况模块,随机算法模块。

1、程序界面设计模块主要实现程序最初运行时程序界面友好、美观的的构型以及简明的操作提示;

2、文件读写模块实现的功能是对file20.txt文件数据的读取和存储,将文件中的数据保存到结构体student中,并将点名次数通过save函数保存到文件中;

3、显示点名情况模块按照题目的要求将数据文件中所有学生的学号、姓名、是否缺席打印到屏幕上;

4、点名算法模块通过调用自定义函数open()和rew()实现点名,并将被点到的学号、姓名、是否缺席打印到屏幕上;

除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。

二、程序流程图

1、整体框架图:

 

图1:

整体框架图

2、流程图

 

Save函数进行保存的流程图

 

yes

if((fp=fopen("file20.txt","rb+"))==NULL)

 

No

printf("文件打开失败\n"

for(i=0;i<7;i++)

if(fwrite(&std[i],sizeof(structstudent),1,fp)!

=1)

 

yes

No

printf("文件保存失败\n");

文件保存成功

图2Save函数进行保存的流程图

 

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)

 

Case1

 

开始点名

 

Case2

 

信息统计

Case3;

学生信息添加

Case4

退出

图3:

点名模块的流程图

4、学生信息修改图

 

if((fp=fopen("file20.txt","ab+"))==NULL)

yes

No

文件打开失败

Exit(0)

scanf("%c",&j);

h=0;

While(h)

Case1

修改信息

 

Case2

h=0;

跳出;

图3:

学生信息修改图

三、核心技术的实法现方

1、结构体的定义并把原始信息一同定义在结构体成员中,是程序的核心内容之一

structstudent

{longnum;

charname[10];

chardata;

}st[7];

从上面的定义中可以看出,结构体类型定义中成员项都有确定的类型和名字,而要使用结构体类型的数据,必须经过两个步骤:

先由关键字struct和用户定义的结构体名来说明类型,然后在由它们说明变量。

2、Voidopen()是自定义函数它的主要用途是打开预存的学生的信息,并把它显示在屏幕上给老师点名。

程序如下:

voidopen()

{inti;

FILE*fp;

if((fp=fopen("file20.txt","ab+"))==NULL)

{

printf("文件打开失败\n");

exit(0);

}

for(i=0;i<7;i++)

{fread(&st[i],sizeof(structstudent),1,fp);

printf("%d\t%s\t%c\n",st[i].num,st[i].name,st[i].data);

}

}

3、Voidrew()是学生信息修改程序,提供给老师对缺席学生信息的修改,即缺席的学生,老师只要输入学号,程序就将该学生的缺席情况自动改为”Y”。

如下:

voidrew()

{

inti;

inth=1;

intk;

charj;

FILE*fp;

if((fp=fopen("file20.txt","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;

st[k].data='Y';

break;

case'b':

h=0;

}

}

for(i=0;i<7;i++)

{fread(&st[i],sizeof(structstudent),1,fp);

printf("%d\t%s\t%c\n",st[i].num,st[i].name,st[i].data);

}

}

4、voidsave()是保存学生信息的自定义函数,主要将修改后的学生信息保存到file20.txt文档中去,实现保存功能。

程序如下:

voidsave()

{

inti;

FILE*fp;

if((fp=fopen("file20.txt","rb+"))==NULL)

{

printf("文件打开失败\n");

exit(0);

}

for(i=0;i<7;i++)

if(fwrite(&st[i],sizeof(structstudent),1,fp)!

=1)

printf("文件保存失败\n");

}

在上面的程序段中,用到了三个调用函数语句进行操作,尽管在程序化设计中有些重复,但其很方便,应用及操作比较简单。

比如voidopen()语句是为了打开file20.txt文件并输出学生情况进行点名,voidrew()语句点名是进行信息统计,voidsave()是保存功能的函数,通过它实现了学生信息的添加及保存。

四、个人总结

在此次课设之前我C语言学的一般,只能勉强应付考试,很多概念都非常模糊记不清楚。

虽然,我的编程题目并不算难,但是,在这一周的时间里,经过不断的学习与努力及与同学进行探讨,还有老师的指导,我的C语言编程终于能圆满完成。

虽然程序还有一定的瑕渍,但我以尽力自己独立完成了。

我感到C语言程序设计确实是一门很有用的学科,所以这次课设并不是一个结束,而是一个开始,一个对C语言更深入学习的开始。

并借着机会继续学习C语言,努力尽早通过国家计算机二级考试。

五、参考文献

1姚合生.C程序设计.北京:

清华大学出版社,2008

2刘成等.C语言程序设计实验指导与习题集.北京:

中国铁道出版社,2006

六、源程序

#include

#include

#include

structstudent

{longnum;

charname[10];

chardata;

}st[7]={{101,"杜永宁",'N'},{102,"段楠",'N'},{103,"冯红",'N'},{104,"郝苇",'N'},{105,"胡龙",'N'},{106,"李南",'N'},{107,"刘盈",'N'}};

voidopen()

{inti;

FILE*fp;

if((fp=fopen("file20.txt","ab+"))==NULL)

{

printf("文件打开失败\n");

exit(0);

}

for(i=0;i<7;i++)

{fread(&st[i],sizeof(structstudent),1,fp);

printf("%d\t%s\t%c\n",st[i].num,st[i].name,st[i].data);

}

}

voidrew()

{

inti;

inth=1;

intk;

charj;

FILE*fp;

if((fp=fopen("file20.txt","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;

st[k].data='Y';

break;

case'b':

h=0;

}

}

for(i=0;i<7;i++)

{fread(&st[i],sizeof(structstudent),1,fp);

printf("%d\t%s\t%c\n",st[i].num,st[i].name,st[i].data);

}

}

voidsave()

{

inti;

FILE*fp;

if((fp=fopen("file20.txt","rb+"))==NULL)

{

printf("文件打开失败\n");

exit(0);

}

for(i=0;i<7;i++)

if(fwrite(&st[i],sizeof(structstudent),1,fp)!

=1)

printf("文件保存失败\n");

}

voidmain()

{structstudent

{longnum;

charname[10];

chardata;

}st[7]={{101,"杜永宁",'N'},{102,"段楠",'N'},{103,"冯红",'N'},{104,"郝苇",'N'},{105,"胡龙",'N'},{106,"李南",'N'},{107,"刘盈",'N'}};

inti;

intc;

printf("**************************************************************************\n");

printf("********************************MENU**************************************\n");

printf("****************************欢迎使用教师上课点名系统**********************\n");

printf("******输入1:

开始点名*********\n");

printf("******输入2:

信息统计*********\n");

printf("******输入3:

学生信息添加*********\n");

printf("******输入4:

退出*********\n");

printf("**************************************************************************\n");

while

(1)

{

scanf("%d",&c);

switch(c)

{case1:

printf("学号\t姓名\t是否缺席\n");

open();

break;

case2:

rew();

printf("*****************学生信息添加完毕,请保存*******************\n");

break;

case3:

save();

printf("*****************信息添加成功,输入4退出********************\n");

break;

case4:

exit(0);

}

}

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2