上课随机点名系统Word格式文档下载.docx

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

上课随机点名系统Word格式文档下载.docx

《上课随机点名系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《上课随机点名系统Word格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。

上课随机点名系统Word格式文档下载.docx

高级语言程序设计?

课程后进展的一次全面的综合性上机实验。

其目的在于为同学提供了一个既动手又动脑,独立实践的时机,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。

提高学生适应实际,实践编程的能力。

二、题目:

教师上课点名系统

制作一个自动点名系统使之有以下功能:

1、每次选取相应的功能,系统随即抽取一个学生,显示给教师,用做点名。

2、学生存在一个文本文件students.txt中。

3、可以使用另一个文本文件,记录学生被点名的次数,或在students.txt文件中参加一个记录学生被点名次数的字段。

4、一般用文本界面显示菜单,自行设计和完成菜单功能,供教师点选,可以考虑动态显示系统选择的过程,最好能设计成图形界面。

5、每个学生被点中的概率和次数尽量一样,不能出现一个学生被点两次了,还有学生没被点中的情况。

三、总体设计

根据分析,整个系统可以设计为以下四个局部:

四、详细设计

1、构造体

structstudent

{

intnum;

charname[20];

inttime;

}std[SIZE];

2、主函数

主函数的设计用来翻开文本文件,并提供数据输入和数据处理以及三个函数的调用,其中各功能模块用菜单方式选择。

voidmain()

voidfunction1();

voidfunction2();

voidfunction3();

}

主函数具体的程序如下:

voidkaishidianming();

voiddianmingcishu();

voidcishuguiling();

/*对被调用函数的声明*/

chars;

FILE*fp;

if((fp=fopen("

D:

\\c\\kechengsheji\\students.txt"

"

r+"

))==NULL)

{

printf("

cannotopenthisfile\n"

);

exit(0);

}/*翻开文本文件*/

for(i=0;

i<

SIZE;

i++)

fscanf(fp,"

%d%s"

&

std[i].num,std[i].name);

std[i].time=0;

}/*读取文本文件保存在内存中*/

printf("

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n"

-*-*-*-*-*-点名了请小心!

-*-*-*-*-*-\n"

-*-*-*输入1:

开场点名*-*-*-\n"

-*-*-*输入2:

点名情况*-*-*-\n"

-*-*-*输入3:

次数归零*-*-*-\n"

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n\n"

for(;

;

{

s=getchar();

switch(s)

{

case'

1'

:

kaishidianming();

break;

case'

2'

dianmingcishu();

3'

cishuguiling();

}/*使用switch语句进展选择实现不同函数功能*/

}

fclose(fp);

主函数的流程图如下:

3、各功能模块设计

〔1〕点名模块

voidkaishidianming()

l++;

k=k+l/(SIZE+1);

loop:

srand((unsigned)time(NULL));

/*产生随机数进展点名*/

for(m=0;

m<

1;

m++)

n=rand()%57;

if(std[n].time<

k)/*实现公平点名防止有人没点到有人被点屡次的情况产生*/

std[n].time++;

printf("

学号\t\tXX\t\t被点次数\n"

%d%-15d%-10s%10d\n"

t,std[n].num,std[n].name,std[n].time);

elsegotoloop;

}

}点名模块流程图如下:

不公平

〔2〕次数统计模块

voiddianmingcishu()

t,std[i].num,std[i].name,std[i].time);

〔3〕次数清零模块

voidcishuguiling()

k=1;

l=0;

点名次数已归零\n"

五、上机操作

1、进入界面

2、进展点名

3、点名次数查询

4、次数归零

学习心得

在以前C程序设计的学习中,我们只需要写几个简单的程序,完成一些简单的功能,输入手段也都是单一的从键盘输入,从未涉及到对文件的操作,所以书本上九、十章的内容根本上没怎么掌握。

但是通过这次C语言课程设计的学习,我感受到了单独完成一个程序去实现一个目的快乐,也增强了对于C语言相关知识的了解。

当然,过程不是一帆风顺的。

为了完成程序,由于对文件操作内容的不熟悉,我首先把课本看了几遍,弄清楚了一些根本的知识。

还有在程序编写的过程中,错误频出,虽然经常是一些简单的问题,但寻找错误的过程总是那么的痛苦。

所以,经过这次C语言课程设计,我深深的感受到了耐心和细心在程序编写中的重要性。

最后祝贺自己完成了程序!

六、算法和系统的优缺点

此系统最大的有点是简明易懂,操作方便,在一次点名过程中,实现了点名的公平性。

但每次退出点名系统后,不能对点名次数进展保存,不便于调用。

改良思路:

可以用一个文件,将点名的次数进展保存。

七、源程序〔附录〕

#include<

stdio.h>

stdlib.h>

math.h>

time.h>

#defineSIZE57

inti,n,m;

intk=1,l=0,t=0;

/*全局变量的定义*/

/*构造体数组的定义*/

exit(0);

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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