上课随机点名系统
随机点名系统毕业设计python

随机点名系统毕业设计一、引言随机点名系统作为一种教学辅助工具,可以帮助教师在课堂上随机点名学生,增加课堂纪律,激发学生的积极性。
设计并实现一个基于Python的随机点名系统是一种很有意义的毕业设计。
本文将介绍随机点名系统的设计思路以及系统的实现过程。
二、系统设计1. 系统功能随机点名系统的功能主要包括学生信息的录入、随机点名、点名记录的保存与管理等。
在系统设计时,需要充分考虑这些功能,确保系统的实用性和可靠性。
2. 技术选型在设计随机点名系统时,选择合适的技术是非常重要的。
Python作为一种功能强大且易于学习的编程语言,非常适合用于开发此类系统。
还可以结合使用GUI库来实现系统的用户界面。
3. 数据结构学生信息的管理是随机点名系统的核心功能之一。
在设计系统时,需要考虑如何合理地组织和管理学生信息。
可以使用字典、列表等数据结构来存储学生的尊称、学号等信息。
三、系统实现1. 学生信息录入模块在系统中,需要提供学生信息录入的功能。
通过输入学生的尊称、学号等信息,将学生信息保存到系统中。
2. 随机点名模块随机点名是随机点名系统的核心功能之一。
可以通过随机数生成算法来实现随机点名功能,并确保每位学生都有机会被点到。
3. 点名记录管理模块点名记录的保存与管理也是系统的重要功能之一。
可以将点名记录保存到文件中,以便后续的查阅和管理。
四、系统测试在系统设计和实现完成之后,需要对系统进行充分的测试,以确保系统的稳定性和可靠性。
可以进行单元测试、集成测试等多种测试手段,发现并解决系统中存在的问题。
五、总结设计并实现一个基于Python的随机点名系统,是对所学知识的全面运用和巩固。
通过本文的介绍,希望读者能够对随机点名系统的设计和实现有一定的了解,同时也能够对Python编程语言有更加深入的认识。
希望本文对相关领域的同学们能够有所帮助。
六、系统优化随机点名系统的设计和实现是一个不断优化的过程。
在系统测试中,可能会发现一些问题或者可以改进的地方。
Java做的一个小程序-随机点名器

Java做的一个小程序-随机点名器介绍随机点名器是一款使用Java编写的小程序,它主要用于在学生课堂上随机抽取学生姓名进行点名。
该程序可以通过命令行方式运行,而且它的使用非常简单,不需要任何的专业技能与知识。
功能特点随机点名器的主要功能是在学生课堂上进行学生姓名的随机抽取,以帮助老师完成课堂管理工作。
程序的具体功能特点如下:•支持添加学生姓名:程序可以通过用户输入学生姓名的方式,将其添加到学生库中。
•支持删除学生姓名:用户可以对已存在的学生进行删除操作。
•支持随机点名:程序可以随机抽取学生姓名,以完成点名的操作。
•支持列表显示:程序可以展示所有的学生姓名列表,以供用户查看。
使用说明系统要求随机点名器使用Java语言编写,因此用户需要先安装Java运行环境。
具体要求如下:•操作系统:Windows、Linux、MacOS等•Java版本:JRE 1.8或以上版本安装方法1.下载程序压缩包。
2.解压缩到用户指定的目录。
3.运行“run.bat”文件(Windows平台)或“run.sh”文件(Linux/MacOS平台)。
使用方法1.添加学生姓名:在命令行窗口中输入“add”命令,然后输入学生姓名进行添加。
2.删除学生姓名:在命令行窗口中输入“delete”命令,然后输入需要删除的学生姓名。
3.随机点名:在命令行窗口中输入“random”命令,程序将随机抽取一个学生姓名进行点名。
4.显示学生列表:在命令行窗口中输入“list”命令,程序将展示所有已经添加的学生姓名。
技术实现技术框架随机点名器采用Java语言编写,主要使用了JDK中的标准库,使用了Collection接口中的List、Set集合类、Random类等。
算法实现随机点名的算法实现主要通过Java中的Random类实现,随机整数范围为0到学生数量-1,通过集合类的索引访问随机抽取的学生姓名。
代码实现```Java import java.util.*;public class RandomPicker { private List students;public RandomPicker() {students = new ArrayList<String>();}public void add(String name) {students.add(name);}public void delete(String name) {students.remove(name);}public String random() {Random random = new Random();int index = random.nextInt(students.size());return students.get(index);}public void list() {int n = 1;for(String student : students) {System.out.println((n++) + \。
Python实现上课点名器系统

Python实现上课点名器系统⽬录前⾔⼀、核⼼功能设计⼆、实现步骤1. UI排版布局设计2. 学⽣姓名加载3. 随机点名实现4. 连抽模式实现5. 抽取历史查看三. 打包配置总结前⾔前段时间,⽤PyQt5写了⼏篇⽂章,关于Python⾃制⼀款炫酷⾳乐播放器、⾃定义动态壁纸、车牌⾃动识别系统。
今天就继续给⼤家分享⼀个读者粉丝投稿的,关于上课点名的实战案例,⼀起来看看是如何实现的吧!⾸先我们还是⼀起先来看看点名器实现的效果:下⾯,我们开始介绍这款点名器的制作过程。
直接跳到⽂末获取源码及exe打包程序。
⼀、核⼼功能设计总体来说,我们这款点名器实现的思路⼤致是,可以⾃定义设置班级学⽣姓名或者默认通过学号进⾏学⽣随机点名抽取,可以每次单⼈抽取也可以⾃⼰选择连抽⼈数进⾏多⼈连抽,并将这些随机抽取的学⽣姓名历史数据显⽰。
拆解需求,接下来我们可以通过以下⼏步进⾏实现:1.UI排版布局设计,确认点名器的各个功能设计2.读取班级学⽣的姓名⽂件,将各个学⽣的姓名加载到列表中,如果没有学⽣姓名⽂件默认创建学号⽂件3.实现对学⽣姓名的随机点名抽取功能4.实现多⼈连抽模式5.查看随机抽取的学⽣姓名历史数据⼆、实现步骤之前有读者反馈说,不知道程序中具体需要哪些模块、包⽂件,下⾯我就把程序中⽤到模块先放出来。
主要包括了⽂件读写,随机数,PyQt5,win32con等。
import sys,osfrom random import randintfrom PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtGui import *from PyQt5.QtCore import Qt, QTimerfrom PyQt5.QtWidgets import *from win32api import MessageBoxfrom win32con import MB_OK, MB_ICONWARNING1. UI排版布局设计根据点名器所需要的功能,⾸先我们可以进⾏UI布局设计,我们这次还是使⽤的pyqt5。
学生点名系统

学生点名系统引言随着技术的发展,学生点名已逐渐从传统的手动方式转向了自动化的电脑点名系统。
学生点名系统通过利用计算机技术和数据库管理,可以更加准确、高效地完成学生点名的任务,减少了教师的工作量,提高了点名的准确性和效率。
本文将介绍学生点名系统的基本原理、功能和优势,以及在教育领域中的应用。
一、学生点名系统的基本原理学生点名系统的基本原理是通过利用计算机软件和硬件,将学生的信息录入系统中,然后通过扫描学生的身份证件或者使用学生在系统中注册的特定账号,进行学生的身份验证和点名操作。
系统会根据教师设定的点名规则和顺序,自动进行点名,并记录点名的结果。
二、学生点名系统的功能1. 学生信息管理:学生点名系统具有学生信息管理的功能,教师可以通过系统录入学生的基本信息,包括姓名、学号、班级等。
这些信息可以在点名时用于身份验证和点名结果的记录。
2. 点名规则设定:教师可以根据需要设定点名的规则和顺序,例如按照学号、姓名首字母等进行点名。
系统会按照设定的规则自动进行点名,提高了点名的效率。
3. 自动点名:学生点名系统可以通过扫描学生的身份证件或者使用学生在系统中注册的特定账号进行学生的身份验证和点名操作。
系统能够自动识别学生的信息,快速进行点名,并记录点名的结果。
4. 点名结果记录与查询:学生点名系统可以自动记录点名的结果,并将结果保存在系统中。
教师可以通过系统查询学生的出勤情况和点名记录。
这样可以方便教师及时了解学生的出勤情况和点名结果,及时进行统计和处理。
三、学生点名系统的优势1. 准确性:学生点名系统通过自动识别学生的信息和身份验证,减少了因为疏忽或人为错误而导致的点名错误。
系统能够更加准确地完成点名的任务,确保每位学生的出勤记录正确无误。
2. 高效性:学生点名系统通过自动化的点名操作和记录,提高了点名的效率。
与传统的手动点名方式相比,系统可以更快速地完成点名,并且可以将点名记录保存在系统中,方便教师查询和统计。
随机点名系统(软件详细设计说明书)

1引言21.1编写目的21.2背景21.3定义21.4参考资料32程序系统的构造33程序1〔教师记录考勤情况〕设计说明33.1程序描述33.2功能43.3性能43.4输人项43.5输出项53.6算法53.7流程逻辑53.8接口63.9存储分配63.10注释设计63.11限制条件63.12测试方案73.13尚未解决的问题74程序2〔登陆程序〕设计说明74.1程序描述74.2功能74.3性能74.4输入项74.5输出项84.6算法84.7流程逻辑94.8接口104.9存储分配104.10注释设计104.11限制条件114.12测试方案114.13尚未解决的问题11详细设计说明书1引言1.1编写目的在本随机点名系统工程的前一阶段,也就是概要设计阶段中,已经将系统用户对本系统的子模块功能做了详细的阐述,这些模块功能具体设计将在本报告中详尽得以表达及说明。
本阶段已在系统的概要设计的根底上,对随机点名系统做详细设计。
主要解决了实现该系统程序模块具体设计问题。
包括确定算法,数据构造,模块接口的使用,数据库的动态操作以及界面设计等。
在以下的概要设计报告中将对在本阶段中对系统所做的所有详细设计进展详细的说明。
在下一阶段的编码过程中,可参考此详细设计报告,在详细设计对随机点名系统所做的算法设计,数据构造以及数据库动态操作的根底上,对系统进展编码。
1.2背景开发软件名称:随机点名系统。
开发者:昊霖用户:高校教师,学生,教务人员运行环境:个人电脑开发平台:VB平台,Mysql数据库。
1.3定义流程图:反映现行系统各机构的业务处理过程和它们之间的业务分工与联系,以及连接学生,教师和管理员信息流的传递和流通关系,表达现行系统的界限、环境、输入、输出、处理和数据存储等容。
功能需求:用以说明系统"做什么〞用户接口:在数据库系统中,数据库管理系统作为用户与数据库的接口,提供了数据库定义、数据库运行、数据库维护和数据平安性、完整性等控制功能。
随机点名系统完整版

《软件工程》课程设计随机点名系统的设计与实现专业:计算机科学与技术班级:软件051、052班学生姓名:杨银玲、温鹏、王东东、韩冀指导教师:***2008 年12 月31 日目录一、随机点名系统需求分析 (6)1、引言 (6)1.1、项目名称 (6)1.2、项目背景和内容概要 (7)1.3、相关资料、缩略语、定义 (7)2、项目概述 (7)2.1、被开发软件一般描述 (7)2.2、被开发软件的功能 (8)2.3、实现语言 (8)3、系统进程 (8)3.1、系统模块图: (8)3.2、系统主要流程: (9)4、数据描述 (12)4.1、原始数据描述 (12)4.2、数据流向图 (12)4.3、数据概念模型和描述 (13)5、功能需求 (14)5.1、功能描述 (14)5.3、处理要求 (14)5.4、输出要求 (15)6、界面要求 (15)6.1、报表格式 (15)6.2、图形要求 (15)6.3、输入输出要求 (15)7、接口要求 (15)7.1、硬件接口 (15)7.2、软件接口 (15)7.3、通讯接口 (15)8、性能要求 (16)8.1、数据精确度 (16)8.2、数据量 (16)8.3、时间特性要求 (16)8.4、灵活性 (16)9、运行环境要求 (16)9.1、网络和硬件设备平台 (16)9.2、操作系统平台 (16)9.4、编程工具 (16)9.5、其他支持软件 (16)二、随机点名系统详细设计 (16)1、引言 (17)1.1、项目名称 (17)1.2、编写目的 (17)1.3、项目背景及内容摘要 (17)1.4、相关资料、缩略词、术语 (17)1.5、参考资料 (17)2、程序结构 (17)2.1、程序结构图 (17)2.2、程序文件清单 (18)3、程序设计说明 (19)3.1、程序功能描述 (19)3.2、输入项与输出项 (19)3.3、主要数据结构 (19)3.4、存取的数据库表和字段 (20)3.5、调用的函数及控件 (20)3.7、测试要点 (21)4、用户界面设计说明 (22)4.1、登录界面 (22)4.2、教师界面 (22)4.3、管理员界面 (24)4.4、学生界面图 (27)三、随机点名系统实现与测试: (28)1、管理员模块中数据的添加、删除、修改的功能测试 (28)2、用户登陆测试 (29)3、随机点名、记录给分功能测试 (30)4、打印功能测试 (30)5、导入导出数据功能测试 (31)四、随机点名系统调试与运行: (32)五、随机点名系统总结: (33)六、附录(相关代码) (33)一、随机点名系统需求分析1、引言在高等院校、职中专、大专学校里,学生考勤是一项日常必要性的工作,学校的各院系需要了解和掌握各班级的学生出勤情况,以加强对学生的教育和管理。
随机点名系统

C#课堂随机点名系统题目:课堂随机点名系统班级:姓名:学号:指导教师 :朱新峰成绩:2021年12月一、任务描述本次任务要求完成一个课堂随机点名系统。
具体内容为:教师在每次上课时,有时需要叫学生起来答复下列问题,为了公平起见,使每个学生被叫起来答复下列问题的概率相同,故采用 c#来编写一个随机点名系统。
具体要求如下:〔一〕完成一个点名系统界面的设计,具体设计如下:1.安置一个“开始〞按钮,当按下“开始〞按钮时,按钮上面的字显示为“停止〞,并且开始在界面上随机抽取数字。
2.安置一个“被点名单〞按钮,可以查看已经被点过的学生的学号以及被点次数。
3.添加两个标签,分别在上面显示“欢送进入点名系统〞和抽取的随机数字。
4. 添加一个listbox用来存放已经被点过的学生的学号以及被点次数。
5.安置一个“去除〞按钮,用来去除 listbox 中的数据。
6.安置一个“保存被点名单〞按钮,保存本次点名的数据。
〔二〕该点名系统能够实现随机点名,并且当一个学生被点次数超过三次时,会提醒老师重新点名。
〔三〕能将本节课点名的情况记录到文件中,有利于老师下课后查看分析学生上课答复下列问题的情况并且有利于老师下节课点其他未被点过的学生。
二、系统概要设计〔一〕模块整体设计图课堂随机点名系统界点保面存设被计名点名单记被抽录点随被三机点次取名后学单提号醒〔二〕模块功能介绍1.窗体类〔1〕窗体事件 Form1()功能:对各变量进行初始化〔2〕开始按钮事件 button1_Click(object sender, EventArgs e)功能:进行随机点名,将点到的学号和被点次数写入 listbox ,并在某学号点到三次后提醒老师〔3〕定时器事件 timer1_Tick(object sender, EventArgs e)功能:产生随机学号并将数据在界面上显示出来〔4〕被点名单按钮事件button2_Click(object sender, EventArgs e)功能:显示和隐藏listbox〔5〕去除按钮事件 button3_Click(object sender, EventArgs e)功能:去除 listbox 中的内容〔6〕保存被点名单事件button4_Click(object sender, EventArgs e)功能:将被点名单写入文件并记录点名时间2.写文件类〔1〕写文件函数 WriteData(string filestr,string st)功能:将点到的学号和被点次数写入文件三、系统详细设计〔一〕数据结构设计1.本系统采用文件保存点到的学号及其被点次数2.定义全局变量 n , num以及名为 count 的数组分别用来存放班级人数,产生的随机学号以及每个学号被点次数〔二〕模块接口设计:1.各类的原型为:public partial class Form1 : Form/*窗体类*/public class FileWrite/* 写文件类 */2. 各事件原型为:public Form1()/* 窗体事件 */private void button1_Click(object sender, EventArgs e)/*“开始〞按钮事件*/ timer1_Tick(object sender, EventArgs e)/* 定时器事件 */private void button2_Click(object sender, EventArgs e)/*“被点名单〞按钮事件*/ private void button3_Click(object sender, EventArgs e)/* “保存被点名单〞按钮事件*/ public static void WriteData(string filestr,string st)/*写文件函数 */四、系统实现1.界面设计2.点名界面3.开始点名4.显示被点名单5.文档数据6.提醒界面五、系统调试在做这个系统的时候,由于对 C#的语法不太了解,所以即使是这样一个简单的系统,还是花了我一个星期的时间,并且还有许多不完善的地方。
课程设计教师上课随机点名系统

沈阳航空航天大学课程设计任务书学院:航空宇航工程学院专业:航空维修班级:04030501 学号:2010040305004 题目:教师上课随机点名一、课程设计时间2011年3月12日~18日(第2周),共计1周。
二、课程设计内容教师在每次上课时,需要对学生随机点名,学生信息保存到文本文件或access 数据库中,学生信息至少包括:学号,姓名,点名次数(初始值为0)。
所谓点名,是指将某位同学的姓名和学号显示到屏幕上,则表示该同学被点名一次,并累加点名次数,注意点名的随机性(可使用随机函数)。
用户界面中的菜单至少包括“编辑学生数据”,“开始点名”,“查询学生点名情况”,“退出”4项。
三、课程设计要求程序质量:✧贯彻事件驱动的程序设计思想。
✧用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
✧用户界面中的菜单至少应包括“编辑学生数据”、“开始点名”、“查询学生点名情况”、“退出”4项。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:✧课程结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字指导教师:________ 学生签名:________五、成绩六、教师评语目录需求分析 (4)设计分析 (4)技术要点 (5)主要界面截图 (9)图(一)学生点名系统主界面 (9)总结 (10)参考文献 (14)需求分析教师在每次上课时,需要对学生随机点名,学生信息保存到文本文件或access数据库中,学生信息至少包括:学号,姓名,点名次数(初始值为0)。
1.运用随机函数从数据库中提取学生的数据。
2.对学生的点名情况进行查询,并在用户界面中显示。
3.对学生的学号和姓名等信息进行编辑,并添加到数据库中。
设计分析(1)概述:通过使用ADO控件建立程序设计与数据库的联系,用SQL语句在数据库中查找,添加和更改数据,运用随机函数,随机地提取学生的数据,体现点名的随机性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计实习报告专业:地球物理与空间信息学院学号:班级序号:姓名:* * *指导教师:张*C语言程序设计报告(实习日期: 2013-12至2014-1)一、C语言课程设计的目的: (3)二、题目:教师上课点名系统 (3)三、总体设计 (4)四、详细设计 (4)1、结构体 (4)2、主函数 (5)3、各功能模块设计 (8)(1)点名模块 (8)(2)次数统计模块 (9)(3)次数清零模块 (10)五、上机操作 (11)1、进入界面 (11)2、进行点名 (12)3、点名次数查询 (13)六、算法和系统的优缺点 (16)七、源程序(附录) (16)一、C语言课程设计的目的:高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。
其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
二、题目:教师上课点名系统制作一个自动点名系统使之有以下功能:1、每次选取相应的功能,系统随即抽取一个学生,显示给老师,用做点名。
2、学生名单存在一个文本文件students.txt中。
3、可以使用另一个文本文件,记录学生被点名的次数,或在students.txt文件中加入一个记录学生被点名次数的字段。
4、一般用文本界面显示菜单,自行设计和完成菜单功能,供老师点选,可以考虑动态显示系统选择的过程,最好能设计成图形界面。
5、每个学生被点中的概率和次数尽量一样,不能出现一个学生被点两次了,还有学生没被点中的情况。
三、总体设计根据分析,整个系统可以设计为以下四个部分:四、详细设计1、结构体struct student {int num;char name[20];int time;}std[SIZE]; 上课点名系统读取数据进行点名次数统计次数归零2、主函数主函数的设计用来打开文本文件,并提供数据输入和数据处理以及三个函数的调用,其中各功能模块用菜单方式选择。
void main(){void function1();void function2();void function3();}主函数具体的程序如下:void main(){void kaishidianming();void dianmingcishu();void cishuguiling(); /*对被调用函数的声明*/char s;FILE * fp;if((fp=fopen("D:\\c\\kechengsheji\\students.txt","r+"))==NULL) {printf("cannot open this file\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"); printf("-*-*-*-*-*-点名了请小心!-*-*-*-*-*-\n"); printf("-*-*-* 输入1:开始点名*-*-*-\n"); printf("-*-*-* 输入2:点名情况*-*-*-\n"); printf("-*-*-* 输入3:次数归零*-*-*-\n"); printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n\n"); for(;;){s=getchar();switch(s){case'1':kaishidianming();break;case'2':dianmingcishu();break;case'3':cishuguiling();break;} /*使用switch语句进行选择实现不同函数功能*/ }fclose(fp);}主函数的流程图如下:3、各功能模块设计(1)点名模块void kaishidianming(){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\t姓名\t\t被点次数\n");printf("%d%-15d%-10s%10d\n",t,std[n].num,std[n].name,std[n].time );}else goto loop;}}点名模块流程图如下:(2)次数统计模块void dianmingcishu(){printf("学号\t\t姓名\t\t被点次数\n");for(i=0;i<SIZE;i++)printf("%d%-15d%-10s%10d\n",t,std[i].num,std[i].name,std[i].time); }(3)次数清零模块void cishuguiling(){for(i=0;i<SIZE;i++)std[i].time=0;k=1;l=0;printf("点名次数已归零\n"); }五、上机操作1、进入界面2、进行点名3、点名次数查询4、次数归零学习心得在以前C程序设计的学习中,我们只需要写几个简单的程序,完成一些简单的功能,输入手段也都是单一的从键盘输入,从未涉及到对文件的操作,所以书本上九、十章的内容基本上没怎么掌握。
但是通过这次C语言课程设计的学习,我感受到了独自完成一个程序去实现一个目的快乐,也增强了对于C语言相关知识的了解。
当然,过程不是一帆风顺的。
为了完成程序,由于对文件操作内容的不熟悉,我首先把课本看了几遍,弄清楚了一些基本的知识。
还有在程序编写的过程中,错误频出,虽然经常是一些简单的问题,但寻找错误的过程总是那么的痛苦。
所以,经过这次C语言课程设计,我深深的感受到了耐心和细心在程序编写中的重要性。
最后祝贺自己完成了程序!六、算法和系统的优缺点此系统最大的有点是简明易懂,操作方便,在一次点名过程中,实现了点名的公平性。
但每次退出点名系统后,不能对点名次数进行保存,不便于调用。
改进思路:可以用一个文件,将点名的次数进行保存。
七、源程序(附录)#include <stdio.h>#include <stdlib.h>#include <math.h>#include <time.h>#define SIZE 57int i,n,m;int k=1,l=0,t=0; /*全局变量的定义*/struct student{int num;char name[20];int time;}std[SIZE]; /*结构体数组的定义*/void main(){void kaishidianming();void dianmingcishu();void cishuguiling(); /*对被调用函数的声明*/ char s;FILE * fp;if((fp=fopen("D:\\c\\kechengsheji\\students.txt","r+"))==NULL) {printf("cannot open this file\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");printf("-*-*-*-*-*-点名了请小心!-*-*-*-*-*-\n");printf("-*-*-* 输入1:开始点名*-*-*-\n");printf("-*-*-* 输入2:点名情况*-*-*-\n");printf("-*-*-* 输入3:次数归零*-*-*-\n");printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n\n");for(;;){s=getchar();switch(s){case'1':kaishidianming();break;case'2':dianmingcishu();break;case'3':cishuguiling();break;} /*使用switch语句进行选择实现不同函数功能*/ }fclose(fp);}void kaishidianming(){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\t姓名\t\t被点次数\n");printf("%d%-15d%-10s%10d\n",t,std[n].num,std[n].name,std[n].time );}else goto loop;}}void dianmingcishu(){printf("学号\t\t姓名\t\t被点次数\n");for(i=0;i<SIZE;i++)printf("%d%-15d%-10s%10d\n",t,std[i].num,std[i].name,std[i].time); }void cishuguiling(){.for(i=0;i<SIZE;i++)std[i].time=0;k=1;l=0;printf("点名次数已归零\n");}Word 资料。