随机点名系统源程序ok

合集下载

随机点名系统毕业设计python

随机点名系统毕业设计python

随机点名系统毕业设计一、引言随机点名系统作为一种教学辅助工具,可以帮助教师在课堂上随机点名学生,增加课堂纪律,激发学生的积极性。

设计并实现一个基于Python的随机点名系统是一种很有意义的毕业设计。

本文将介绍随机点名系统的设计思路以及系统的实现过程。

二、系统设计1. 系统功能随机点名系统的功能主要包括学生信息的录入、随机点名、点名记录的保存与管理等。

在系统设计时,需要充分考虑这些功能,确保系统的实用性和可靠性。

2. 技术选型在设计随机点名系统时,选择合适的技术是非常重要的。

Python作为一种功能强大且易于学习的编程语言,非常适合用于开发此类系统。

还可以结合使用GUI库来实现系统的用户界面。

3. 数据结构学生信息的管理是随机点名系统的核心功能之一。

在设计系统时,需要考虑如何合理地组织和管理学生信息。

可以使用字典、列表等数据结构来存储学生的尊称、学号等信息。

三、系统实现1. 学生信息录入模块在系统中,需要提供学生信息录入的功能。

通过输入学生的尊称、学号等信息,将学生信息保存到系统中。

2. 随机点名模块随机点名是随机点名系统的核心功能之一。

可以通过随机数生成算法来实现随机点名功能,并确保每位学生都有机会被点到。

3. 点名记录管理模块点名记录的保存与管理也是系统的重要功能之一。

可以将点名记录保存到文件中,以便后续的查阅和管理。

四、系统测试在系统设计和实现完成之后,需要对系统进行充分的测试,以确保系统的稳定性和可靠性。

可以进行单元测试、集成测试等多种测试手段,发现并解决系统中存在的问题。

五、总结设计并实现一个基于Python的随机点名系统,是对所学知识的全面运用和巩固。

通过本文的介绍,希望读者能够对随机点名系统的设计和实现有一定的了解,同时也能够对Python编程语言有更加深入的认识。

希望本文对相关领域的同学们能够有所帮助。

六、系统优化随机点名系统的设计和实现是一个不断优化的过程。

在系统测试中,可能会发现一些问题或者可以改进的地方。

(完整版)C语言随机点名

(完整版)C语言随机点名

#include<stdio.h>#include<stdlib.h>#include<time.h>#define STU_NUM_MAX64//假设最多有64个学生struct Student{char name[10];int stuID;}stu[STU_NUM_MAX];int exist[STU_NUM_MAX];//用以保存被点过名static int index=0;//记住点名的次数void Iitialize(){for(int i=0;i<STU_NUM_MAX;i++)exist[i]=0;}bool IsExist(int id){for(int i=0;i<STU_NUM_MAX;i++)if(exist[i]==id)return true;//已存在return false;//不存在}void Add()//添加数据{FILE*fp;int stu_num;printf("\t\t You want to input the number of student?:");scanf("%d",&stu_num);for(int i=0;i<stu_num;i++){printf("\n");printf("\t\tPlease input student ID:");scanf("%d",&stu[i].stuID);printf("\t\tPlease input student name:");scanf("%s",stu[i].name);fflush(stdin);}if((fp=fopen("stu.dat","ab"))==NULL){printf("Can't open file\n");exit(1);}for(int j=0;j<stu_num;j++){if(fwrite(&stu[j],sizeof(struct Student),1,fp)!=1)printf("Error writing file.\n");}fclose(fp);}void rollcall()//随机点名{FILE*fp;if((fp=fopen("stu.dat","rb"))==NULL){printf("Can't open file.\n");exit(1);}srand((unsigned)time(NULL));int i=0;int randID=rand()%(64-1+1)+1;//1~64printf("\t\t随机点到的学号为:%d\n\t\t%s\t%s\n",randID,"StuID","StuName");do{fseek(fp,i*sizeof(struct Student),SEEK_SET);if(fread(&stu[i],sizeof(struct Student),1,fp)){if(stu[i].stuID==randID&&!IsExist(randID)){printf("\t\t%4d\t%5s\n",stu[i].stuID,stu[i].name);exist[index++]=randID;break;}}i++;}while(!feof(fp));fclose(fp);}int main(){int select=0;char answer='y';Iitialize();do{printf("1.添加数据2.随机点名3.退出\n请选择:");fflush(stdin);scanf("%d",&select);switch(select){case1:Add();break;case2:rollcall();break;case3:return0;}fflush(stdin);printf("You want to continue?:");scanf("%c",&answer);}while(answer=='y'||answer=='Y');return0;}#include<stdio.h>#include <stdlib.h>#include<string.h>#include <conio.h>#include <time.h>struct studentinfo{char sNo[5];char sxueNo[14];char sname[20];}st[100];int main(){int i=0,j=0,k,flag,RN,*a;FILE *fp;char ch,filename[20]={0},line[100]={0};printf("Please input file name:");fflush(stdin);gets(filename);fp=fopen(filename,"r");printf("名单如下:\n");while (fgets(line,sizeof(line)-1,fp)){if (line[0]!='\n' && line[0]!=' '){sscanf(line,"%s %s %s\n",st[i].sNo,st[i].sxueNo,st [i].sname);printf("%s\n%s\n%s\n",st[i].sNo,st[i].sxueNo,st[i].sna me);i++;}}srand((unsigned)time(NULL));a=(int*)malloc(sizeof(int)*i);memset(a,-1,sizeof(a));printf("按任意键点名:");fflush(stdin);while (!(ch=getch())==NULL){RN=rand()%i;flag=1;for (k=0;k<i;k++){if (RN==a[k]){flag=0;break;}}if (flag){a[j]=RN;j++;printf("\n~~~~~\n%s\n%s\n%s\n------------\n",st[RN]. sNo,st[RN].sxueNo,st[RN].sname);}}}#include<stdio.h>#include<stdlib.h>#include<time.h>#define STU_NUM_MAX4struct StudentInfo//学生信息结构{char name[15];int stu_id;}stu[STU_NUM_MAX];void WriteData()//写入学生信息{FILE*fp;int stu_num=4;for(int i=0;i<stu_num;i++){printf("请输入第%d个学生的姓名:",i+1);scanf("%s",stu[i].name);printf("请输入第%d个学生的学号:",i+1);scanf("%d",&stu[i].stu_id);}if((fp=fopen("myfile.dat","ab"))==NULL){printf("Can't open file\n");exit(1);}for(int j=0;j<stu_num;j++){if(fwrite(&stu[j],sizeof(struct StudentInfo),1,fp)!=1)printf("Error writing file.\n");}fclose(fp);}void TeacherDM(int stuID)//教师点名{FILE*fp;bool find_mark=false;printf("\n\t%s\t\t%s\n","学号","姓名");if((fp=fopen("myfile.dat","rb"))==NULL){printf("Can't open file\n");exit(1);}int i=0;do{fseek(fp,i*sizeof(struct StudentInfo),SEEK_SET);fread(&stu[i],sizeof(struct StudentInfo),1,fp);if(stu[i].stu_id==stuID){printf("\t%4d\t%s\n",stu[i].stu_id,stu[i].name);printf("\n\n\t请【%s】同学回答某某问题.\n",stu[i].name);find_mark=true;break;}i++;}while(!feof(fp));if(!find_mark)printf("\n\t\t未能找到学生号为:%d的记录!\n",stuID);fclose(fp);}void main(void){int stuID[4]={2013011001,2013011002,2013011003,2013011004};//WriteData();srand((unsigned)time(NULL));//随机种子TeacherDM(stuID[rand()%(3-0+1)+0]);}#include <stdlib.h> #include <stdio.h> #include <math.h> #define SIZE 4 struct student {char num[20]; char name[10]; int time; }std[SIZE]; void save() {int i; FILE *fp;if((fp=fopen("myfile.dat","rb+"))==NULL) {printf("文件打开失败\n"); exit(0);}for(i=0;i<SIZE;i++)沈阳航院设计用纸9if(fwrite(&std[i],sizeof(struct student),1,fp)!=1) /*将内存中的数据输出到磁盘文件中*/ printf("文件保存失败\n"); }void main() {int j,i; char c; FILE *fp;if((fp=fopen("myfile.dat","ab+"))==NULL) {printf("文件打开失败\n"); exit(0); }for(i=0;i<SIZE;i++)fread(&std[i],sizeof(struct student),1,fp); /*将fp所指向的文件中的数据存储到数组std中*/printf("*************欢迎使用上课随机点名程序**************\n"); printf("******输入a:显示所有同学名情况*********\n"); printf("******输入d: 开始点名*********\n"); printf("******输入s:保存点名*********\n"); printf("******输入b: 点名次数归零*********\n"); printf("******输入q: 退出*********\n"); printf("******************************************\n"); while(1) {c=getchar(); switch(c) {case 'a': for(i=0;i<SIZE;i++) printf("\t\t%s\t\t%s\t\t被点名%d次\n",std[i].num,std[i].name,std[i].time); break;case 's': save();printf("****文件保存成功!退出请输入q****\n");break;case 'b': for(i=0;i<SIZE;i++)沈阳航院设计用纸10std[i].time=0;printf("点名次数归%d\n",std[i].time);break; case 'q': exit(0); case 'd': loop: j=rand()/1000; /*调用rand的函数进行点名*/ if(j==0) { std[0].time++;printf("\t\t%s\t\t%s\n",std[j].num,std[j].name); }else if(j==1) {std[1].time++;printf("\t\t%s\t\t%s\n",std[j].num,std[j].name); }else if(j==2) {std[2].time++;printf("\t\t%s\t\t%s\n",std[j].num,std[j].name); }else if(j==3) {std[3].time++;printf("\t\t%s\t\t%s\n",std[j].num,std[j].name); }else goto loop; break;} }fclose(fp); }。

随机点名系统(软件需求说明书)

随机点名系统(软件需求说明书)

1引言 (2)1.1编写目的 (2)1.2背景 (2)1.3定义 (2)1.4参考资料 (3)2任务概述 (3)2.1目标 (3)2.2用户的特点 (3)2.3假定与约束 (4)3需求规定 (4)3.1对功能的规定 (4)3.2对性能的规定 (5)3.2.1精度 (5)3.2.2时间特性要求 (5)3.2.3灵活性 (6)3.3输人输出要求 (6)3.4数据管理能力要求 (6)3.5故障处理要求 (7)3.6其他处理要求 (7)4运行环境规定 (7)4.1设备 (7)4.2支持软件 (7)4.3接口 (7)4.4控制 (8)软件需求说明书1引言1.1编写目的在高等院校、职中专、大专学校里,学生考勤是一项日常必要性的工作,学校的各院系需要了解和掌握各班级的学生出勤情况,以加强对学生的教育和管理。

因而学生考勤是学校一项非常重要的工作。

传统的学生考勤以及平时在课堂上的表现,主要是依靠老师在课堂上点名或学生会抽查点名制度,还有上课提问等。

学生人数多、考勤不全面、数据不准确,特别是点名考勤制耗费了老师和学生大量的时间且起不到太大的效果。

1.2背景软件系统的名称:随机点名系统随着社会的发展和信息技术的进步,全球信息化的趋势越来越明显。

几乎没有一个学校不再走信息化的路子,都在用自己的智慧将工作效率一步一步的提升。

在现在的高校中,由于学生的分布式教学,造成了教学管理的非严谨性,使得一些学生产生了逃课旷课的侥幸心理。

所以教师的任务不仅仅是教学,还要同时负担考勤等烦杂的日常事务,这样就会严重影响到教师的授课时间,同时也影响了学生的听课时间。

因此,信息化给这样的一个状况带来了一个契机,基于信息化的考勤系统就在这种情况下变的越来越受欢迎,它给教师带来了更加高效的处理考勤和课堂提问的方法,使得教学能够比较顺利的进行下去,不会再因为考勤等烦杂事务影响教学。

因此,开发随机点名系统,来实现相应的需求功能,达到所需目的。

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、引言在高等院校、职中专、大专学校里,学生考勤是一项日常必要性的工作,学校的各院系需要了解和掌握各班级的学生出勤情况,以加强对学生的教育和管理。

点名系统 源程序及说明

点名系统 源程序及说明

源程序

hy

注:
1.运行该点名系统前务必将所有.m/.fig/.asv/.mat文件放于当前运行的matlab工作目录中。

2.本系统在matlab2010b环境下编写的,因此建议在matlab2010b及以上版本运行,以免出现兼容问题。

3.为了避免计算机伪随机现象,系统内设置了clock函数来解决这个问题。

每次每位同学被点到的概率理论上是相等的。

也因为每次点名的独立性,相邻两次或多次点到同一同学的情况也是时常发生的。

下面是部分运行结果:
1.在command widow窗口输入源程序【hy】:
2.点击“点击进入”,进入选择界面:
3.选择班级或随机后进入点名界面:
4.点击“点名/继续点名”实现点名。

点名界面由两个text和三个pushbutton控件组成,两个text分别显示当前点名情况和最初被点名同学的列表。

三个pushbutton分别实现点名/继续点名、换班级和推出系统的功能。

VB制作随机点名程序源码!

VB制作随机点名程序源码!

VB制作幻灯片随机点名工具大家好,我是、灬尛坏坏"注:此程序适用于学校班级实用,此文是原创,转载请标明岀处,本次教程:这个在powerpoint里,完全和powerpoint结合起来,我简单写了一下,新建一个vb程序,在窗体上放一个label, 一个timer和一个按钮,timer 的interval 设置为1,Enable 设置为False。

源码(不解释,自己研究):Dim a(0 To 9) As StringPrivate Sub Command1_Click()Timer1.Enabled = Not Timer1.EnabledEnd SubPrivate Sub Form_Load()SetHotkey Me.hwnd, 1, 0, vbKeyHome,"Add"a(0)=" 张三"a(1)=" 李四"a(2)=" 王五"a(3)=" 刘六"a(4)=" 牛七"a(5)=" 马八”a(6)=" 杨九"a(7)=" 苟十"a(8)=" 朱----a(9)=" 吕十二”End SubPrivate Sub Form_Unload(Cancel As Integer)SetHotkey Me.hwnd, 1, 0, 0, "Del"End SubPrivate Sub Timer1_Timer()Dim i As Integeri = Int(Rnd * 10)Label1.Caption = a(i)Labell.Tag = iEnd Sub新建一个模块,写入以下代码Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVai hwnd As Long, ByVai nIndex As Long, ByVai dwNewLong As Long) As LongPrivate Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVai hwnd As Long, ByVai nIndex As Long) As LongPrivate Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVaiIpPrevWndFunc As Long, ByVai hwnd As Long, ByVai Msg As Long, ByVai wParam As Long, ByVai iParamAs Long) As LongPrivate Deciare Function RegisterHotKey Lib "user32" (ByVai hwnd As Long, ByVai id As Long, ByVai fskey_Modifiers As Long, ByVai vk As Long) As LongPrivate Deciare Function UnregisterHotKey Lib "user32" (ByVai hwnd As Long, ByVai id As Long)As LongPublic Deciare Function ShowWindow Lib "user32" (ByVai hwnd As Long, ByVai nCmdShow As Long) AsLongPublic Deciare Sub keybd_event Lib "user32" (ByVai bVk As Byte, ByVai Scan As Byte, ByVai dwFiagsAs Long, ByVai dwExtraInfo As Long)Public Deciare Function SendMessageLib "user32" Alias "SendMessageA" (ByVai hwnd As Long, ByVai wMsg As Long, ByVai wParam As Long, iParam As Any) As LongPublic Deciare Function SetForegroundWindow Lib "user32" (ByVai hwnd As Long) As LongConst SW_HIDE = 0Const SW_SHOW = 5Const WM_HOTKEY = & H312Const MOD_ALT = &H1Const MOD_CONTROL = &H2Const MOD_SHIFT = &H4Const GWL_WNDPROC = (-4)'窗口函数的地址Dim FormlsShowing As BooleanDim key_preWinProc As Long ' 用来保存窗口信息Dim key_IsWinAddress As Boolean ' 是否取得窗口信息的判断Function keyWndproc(ByVai hwnd As Long, ByVai Msg As Long, ByVai wParam As Long, ByVai iParamAs Long) As LongIf Msg = WM_HOTKEY ThenSelect Case wParam 'wParam 值就是 key_idHotKeyCase 1 '激活多个热键后,多个热键所对应的操作,大家在其他的程序中,只要修改此处就可以了FormlsShowing = Not FormlsShowingIf FormIsShowing ThenShowWindow hwnd, SW_HIDEElseShowWindow hwnd, SW_SHOW'SendMessage hwnd, & H32, 0, 0SetForegroundWindow hwndEnd If'Case 2'MsgBox "hide"'ShowWindow hwnd, SW_HIDEEnd SelectEnd If'将消息传送给指定的窗口keyWndproc = CallWindowProc(key_preWinProc, hwnd, Msg, wParam, IParam)End FunctionFunction SetHotkey(ByVal hwnd As Long, ByVal KeyId As Long, ByVal keyControlKey As Long, ByVal keyNormalKey As Long, ByVal Action As String)If key_IsWinAddress = False Then ' 判断是否需要取得窗口信息,如果重复取得,再最后恢复窗口时, 将会造成程序死掉'记录原来的window程序地址key_preWinProc = GetWindowLong(hwnd, GWL_WNDPROC)'用自定义程序代替原来的window程序SetWindowLong hwnd, GWL_WNDPROC, AddressOf keyWndprocEnd IfSelect Case ActionCase "Add"RegisterHotKey hwnd, KeyId, keyControlKey, keyNormalKey ' 向窗口注册系统热键key_IsWinAddress = True ' 不需要再取得窗口信息Case "Del"SetWindowLong hwnd, GWL_WNDPROC, key_preWinProc '恢复窗口信息UnregisterHotKey hwnd, KeyId ' 取消系统热键key_IsWinAddress = False ' 可以再次取得窗口信息End SelectEnd Function这样就成了,主要的思路是注册系统热欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求。

随机点名系统

随机点名系统

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语句在数据库中查找,添加和更改数据,运用随机函数,随机地提取学生的数据,体现点名的随机性。

Python写一个简单上课点名系统(附源码)

Python写一个简单上课点名系统(附源码)

Python写⼀个简单上课点名系统(附源码)⽬录⼀.准备⼯作inter2.PIL⼆.预览1.启动2.开始点名-顺序点名3.开始点名-随机点名4.⼿动加载⼈名单5.开始点名-顺序点名-Pyqt5版本三.思路1.整体实现思路2.点名实现思路四.源代码五.总结⼀.准备⼯作interTkinter 是python 内置的 TK GUI ⼯具集。

TK 是 Tcl 语⾔的原⽣ GUI 库。

作为python 的图形设计⼯具,它所使⽤的 Tcl 语⾔环境已经完全嵌⼊到了python 解释器中。

我们使⽤Tkinter开发GUI界⾯。

2.PILPIL(Python Image Library)库是Python语⾔的第三⽅库,需要通过pip⼯具安装。

安装PIL库的⽅法如下,需要注意,安装库的名字是pillow。

PIL库⽀持图像储存、显⽰和处理,他能够处理⼏乎所有图⽚格式,可以完成对图像的缩放、剪裁、叠加以及向图像添加线条、图像和⽂字等操作。

使⽤PIL中的Image,ImageTk处理、引⼊⼀张图⽚,可以使⽤下⾯代码安装⼀下。

pip install pillow⼆.预览1.启动双击打开后,进⼊软件主界⾯,所有功能⼀⽬了然。

程序会⾃动识别软件⽬录下的names.txt,将⾥⾯的名字导⼊。

2.开始点名-顺序点名选择顺序点名后,点击开始,屏幕上就开始滚动出现⼈名,⼈名出现的概率是相同的,点击停⽌,⼈名就停⽌滚动,点名结束。

3.开始点名-随机点名点击随机点名,程序就会进⾏随机点名,⼈名出现的概率是随机的。

4.⼿动加载⼈名单可以⾃⼰⼿动选择⼈名单,前提是⼈名单格式为txt,且每个名字占⼀⾏。

5.开始点名-顺序点名-Pyqt5版本⽤Pyqt5也写了⼀个版本,实现逻辑与TK版本相同,界⾯可能更好看了⼀些,但是⽂件⼤了许多,⼤家可以在后⾯总结部分⾃取。

三.思路1.整体实现思路2.点名实现思路四.源代码point_names-GUI.py(主程序GUI)import randomimport reimport timeimport threadingfrom tkinter import *from tkinter import ttkfrom base64 import b64decodefrom PIL import Image,ImageTkfrom tkinter import messageboxfrom tkinter.filedialog import askopenfilename""""2021-11-10点名/抽奖程序主要亮点:1.两种模式:①顺序点名②随机点名2.⾃动识别⼈名单3.⽀持⼿动导⼊⼈名单4.⼈名单导⼊校验5.⼈名显⽰位置⾃动矫正6.最多显⽰五个⼤字"""imgs=['./point_name.png']class APP:def __init__(self):self.root = Tk()self.running_flag=False #开始标志self.time_span=0.05 #名字显⽰间隔self.root.title('Point_name-V1.0')width = 680height = 350left = (self.root.winfo_screenwidth() - width) / 2top = (self.root.winfo_screenheight() - height) / 2self.root.geometry("%dx%d+%d+%d" % (width, height, left, top))self.root.resizable(0,0)self.create_widget()self.set_widget()self.place_widget()self.root.mainloop()def create_widget(self):bel_show_name_var=StringVar()bel_show_name=bel(self.root,textvariable=bel_show_name_var,font=('Arial', 100,"bold"),foreground = '#1E90FF')self.btn_start=ttk.Button(self.root,text="开始",)self.btn_load_names=ttk.Button(self.root,text="⼿动加载⼈名单",)self.lf1=belFrame(self.root,text="点名⽅式")self.radioBtn_var=IntVar()self.radioBtn_var.set(1)self.radioBtn_sequence=ttk.Radiobutton(self.lf1,text="顺序点名",variable=self.radioBtn_var, value=1)self.radioBtn_random=ttk.Radiobutton(self.lf1,text="随机点名",variable=self.radioBtn_var, value=2)bel_show_name_num=bel(self.root,font=('Arial', 20),foreground = '#FF7F50')paned = PanedWindow(self.root)self.img = imgsimg_=b'iVBORw0KGgoAAAANSUhEUgAAALQAAAB4CAIAAADUhU+qAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElEQVR4nO196XNbx5Vvd9+LfSU2EgD3fRNJbZRkyVJseY9sP7scOy+ZTCqpVKXm8/wp+TA1X2amJjWZSXksy1Ik27IsWXIsRpK1k the_img = b64decode(img_)#将图⽚硬编码到GUIpaned.image = ImageTk.PhotoImage(data=the_img)self._img = Label(self.root, image=paned.image,background='black')def set_widget(self):default_name_="会是谁?"bel_show_name_var.set(default_name_)bel_show_name_adjust(default_name_)self.btn_start.config(command=lambda :self.thread_it(self.start_point_name))self.btn_load_names.config(command=self.load_names)init_names=self.load_names_txt("./names.txt")self.root.protocol('WM_DELETE_WINDOW',self.quit_window)self.root.bind('<Escape>',self.quit_window)if init_names:self.default_names=init_names #1.⽂件存在但是⽆内容。

VB制作随机点名程序源码!

VB制作随机点名程序源码!

VB制作幻灯片随机点名工具大家好,我是、灬尛坏坏"注:此程序适用于学校班级实用,此文是原创,转载请标明岀处,本次教程:这个在powerpoint里,完全和powerpoint结合起来,我简单写了一下,新建一个vb程序,在窗体上放一个label, 一个timer和一个按钮,timer 的interval 设置为1,Enable 设置为False。

源码(不解释,自己研究):Dim a(0 To 9) As StringPrivate Sub Command1_Click()Timer1.Enabled = Not Timer1.EnabledEnd SubPrivate Sub Form_Load()SetHotkey Me.hwnd, 1, 0, vbKeyHome,"Add"a(0)=" 张三"a(1)=" 李四"a(2)=" 王五"a(3)=" 刘六"a(4)=" 牛七"a(5)=" 马八”a(6)=" 杨九"a(7)=" 苟十"a(8)=" 朱----a(9)=" 吕十二”End SubPrivate Sub Form_Unload(Cancel As Integer)SetHotkey Me.hwnd, 1, 0, 0, "Del"End SubPrivate Sub Timer1_Timer()Dim i As Integeri = Int(Rnd * 10)Label1.Caption = a(i)Labell.Tag = iEnd Sub新建一个模块,写入以下代码Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVai hwnd As Long, ByVai nIndex As Long, ByVai dwNewLong As Long) As LongPrivate Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVai hwnd As Long, ByVai nIndex As Long) As LongPrivate Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVaiIpPrevWndFunc As Long, ByVai hwnd As Long, ByVai Msg As Long, ByVai wParam As Long, ByVai iParamAs Long) As LongPrivate Deciare Function RegisterHotKey Lib "user32" (ByVai hwnd As Long, ByVai id As Long, ByVai fskey_Modifiers As Long, ByVai vk As Long) As LongPrivate Deciare Function UnregisterHotKey Lib "user32" (ByVai hwnd As Long, ByVai id As Long)As LongPublic Deciare Function ShowWindow Lib "user32" (ByVai hwnd As Long, ByVai nCmdShow As Long) AsLongPublic Deciare Sub keybd_event Lib "user32" (ByVai bVk As Byte, ByVai Scan As Byte, ByVai dwFiagsAs Long, ByVai dwExtraInfo As Long)Public Deciare Function SendMessageLib "user32" Alias "SendMessageA" (ByVai hwnd As Long, ByVai wMsg As Long, ByVai wParam As Long, iParam As Any) As LongPublic Deciare Function SetForegroundWindow Lib "user32" (ByVai hwnd As Long) As LongConst SW_HIDE = 0Const SW_SHOW = 5Const WM_HOTKEY = & H312Const MOD_ALT = &H1Const MOD_CONTROL = &H2Const MOD_SHIFT = &H4Const GWL_WNDPROC = (-4)'窗口函数的地址Dim FormlsShowing As BooleanDim key_preWinProc As Long ' 用来保存窗口信息Dim key_IsWinAddress As Boolean ' 是否取得窗口信息的判断Function keyWndproc(ByVai hwnd As Long, ByVai Msg As Long, ByVai wParam As Long, ByVai iParamAs Long) As LongIf Msg = WM_HOTKEY ThenSelect Case wParam 'wParam 值就是 key_idHotKeyCase 1 '激活多个热键后,多个热键所对应的操作,大家在其他的程序中,只要修改此处就可以了FormlsShowing = Not FormlsShowingIf FormIsShowing ThenShowWindow hwnd, SW_HIDEElseShowWindow hwnd, SW_SHOW'SendMessage hwnd, & H32, 0, 0SetForegroundWindow hwndEnd If'Case 2'MsgBox "hide"'ShowWindow hwnd, SW_HIDEEnd SelectEnd If'将消息传送给指定的窗口keyWndproc = CallWindowProc(key_preWinProc, hwnd, Msg, wParam, IParam)End FunctionFunction SetHotkey(ByVal hwnd As Long, ByVal KeyId As Long, ByVal keyControlKey As Long, ByVal keyNormalKey As Long, ByVal Action As String)If key_IsWinAddress = False Then ' 判断是否需要取得窗口信息,如果重复取得,再最后恢复窗口时, 将会造成程序死掉'记录原来的window程序地址key_preWinProc = GetWindowLong(hwnd, GWL_WNDPROC)'用自定义程序代替原来的window程序SetWindowLong hwnd, GWL_WNDPROC, AddressOf keyWndprocEnd IfSelect Case ActionCase "Add"RegisterHotKey hwnd, KeyId, keyControlKey, keyNormalKey ' 向窗口注册系统热键key_IsWinAddress = True ' 不需要再取得窗口信息Case "Del"SetWindowLong hwnd, GWL_WNDPROC, key_preWinProc '恢复窗口信息UnregisterHotKey hwnd, KeyId ' 取消系统热键key_IsWinAddress = False ' 可以再次取得窗口信息End SelectEnd Function这样就成了,主要的思路是注册系统热欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求。

(完整word)随机点名系统源程序ok

(完整word)随机点名系统源程序ok

#include 〈stdlib.h〉#include 〈stdio.h〉#include 〈math。

h〉#define SIZE 4struct student{char num[20];char name[20];int time;}std[SIZE];void save(){int i;FILE *fp;if((fp=fopen("myfile。

dat",”rb+”))==NULL){printf(”文件打开失败\n”);exit(0);}for(i=0;i〈SIZE;i++)if(fwrite(&std[i],sizeof(struct student),1,fp)!=1) /*将内存中的数据输出到磁盘文件中*/printf("文件保存失败\n");}void main(){int j,i;char c;FILE *fp;/*if((fp=fopen("myfile。

dat",”wb+"))==NULL){printf(”文件打开失败\n”);exit(0);}for(i=0;i〈SIZE;i++)scanf(”%s %s %d",std[i]。

name,std[i]。

num,&std[i]。

time);for(i=0;i〈SIZE;i++)fwrite(&std[i],sizeof(struct student),1,fp);fclose(fp);*///第一次运行写入名字if((fp=fopen("myfile。

dat”,"ab+"))==NULL){printf(”文件打开失败\n");exit(0);}for(i=0;i<SIZE;i++)fread(&std[i],sizeof(struct student),1,fp);/*将fp所指向的文件中的数据存储到数组std中*/printf(”*************欢迎使用上课随机点名程序**************\n”);printf("*************输入a:显示所有同学名情况*************\n”);printf("*************输入d: 开始点名 **********************\n”);printf("*************输入s:保存点名**********************\n”);printf(”*************输入b: 点名次数归零******************\n");printf("*************输入q:退出**************************\n”);printf("***************************************************\n");while(1){c=getchar();switch(c)case 'a':for(i=0;i〈SIZE;i++)printf(”\t\t%s\t\t%s\t\t被点名%d次\n”,std[i]。

教学点名神器-随机点名器

教学点名神器-随机点名器

教学点名神器——随机点名器3.0随机点名器功能又一大提升,而且之前若干bug均已修复。

修复内容:1.当默认开启的txt文本文件被删除或的文件名被更改或由于某种未知的原因不能访问时,程序不会报错,而是将一些提示信息以学生名导入。

例如:程序默认访问“电科一班.txt”:如果在可执行文件的路径下有“电科一班.txt”文件,则运行正常。

如果在可执行文件的路径下没有找到“电科一班.txt”文件,则运行提示信息。

在这种非正常情况下,如果仍然点击正式记录,则弹出提示帮助信息窗口。

这样,用户在看到提示信息后,会自行修复该问题。

修复2:若读取的文件中存在空行,则程序在读取文件内容的时候会自动删除空行。

现在,我把先前文件名“电科一班121314.txt”修改为“电科一班.txt”,然后在文件内容中加两个空行,如下图所示:程序在运行的时候再也不会出现空姓名。

程序运行一圈后,会给出提示信息。

功能提升:1.可以选择班级,班级内容自定义。

现在,我又新建了一个班级文件“1班.txt”,文件内容如下:现在可以选择班级,我就把“1班.txt”选进来。

一般,“选择班级...”,在程序打开后只会用一次,点击“打开”后,“选择班级...”按钮被隐藏。

2.增加出勤记录,答问记录功能。

若没有点击“正式记录”按钮,抽取信息不会被记录,也没有弹出出勤相关的选择按钮。

功能与旧版一样。

一旦点击正式记录,由于这个记录涉及到学生的平时成绩,因此非常重要,所以弹出是否确定选择对话框。

点击确定后,”正式记录“按钮被隐藏。

再次抽取后,会弹出“缺勤”和“差评”两个选择按钮,并自动在该班级目录下新建一个“班级名+点名记录清单”文本文件。

文本内容自动记录第一次被点到的学生,并创建时间,原创者,班级信息相关信息。

如下所示:若点击差评或缺勤,记录会自动加一,而且,一旦选择之后,该两个按钮即被隐藏,防止误操作。

当然你也可以不行,直接抽下一个人,但选择按钮照样被隐藏,同样该学生的点名信息也会被记录。

随机点名系统完整版

随机点名系统完整版

《软件工程》课程设计随机点名系统的设计与实现专业:计算机科学与技术班级:软件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、引言在高等院校、职中专、大专学校里,学生考勤是一项日常必要性的工作,学校的各院系需要了解和掌握各班级的学生出勤情况,以加强对学生的教育和管理。

Java做的一个小程序-随机点名器

Java做的一个小程序-随机点名器

Java做的一个小程序,随机点名器1.import java.io.*;2.import java.awt。

*;3.import java.awt.event。

*;4.import java。

util.List;5.import java。

util。

ArrayList;6.7.public class DianName extends Frame{8.9.private String fileName="a。

txt”;10.private File f;11.private FileReader fr;12.private BufferedReader br;13.private List〈String> names=new ArrayList<String>();14.private String strName;15.16.private Label labelName;17.private Button btOK;18.19.public static void main(String[] args){20. DianName dn=new DianName();21. dn。

newFrame();22. dn.read();23.}24.25.public void newFrame(){26. labelName=new Label(”显示姓名");27. btOK=new Button("开始”);28.29.this.setLocation(300,300);30.this.setResizable(false);31.this。

setSize(500,400);32.this。

add(labelName,BorderLayout。

NORTH);33.this。

add(btOK,BorderLayout.SOUTH);34.this。

Python开发抖音同款课堂点名系统,PyQt5写起来很简单

Python开发抖音同款课堂点名系统,PyQt5写起来很简单

Python开发抖音同款课堂点名系统,PyQt5写起来很简单刷抖音的时候发现一个老师在用的课堂点名系统。

用PyQt5实现了一下同款,导入学生姓名,测试了一下完美运行。

【阅读全文】操作效果展示:完整源代码块还是放在了文章的最后面,有需要直接运行到文末获取下载方式就好了。

使用的时候准备好学生姓名的文件,使用导入数据的按钮直接导入就可以开始点名了。

新建一个文本文档,将姓名设置设置好,姓名文件示例如下。

干货主要有:① 200 多本 Python 电子书(和经典的书籍)应该有② Python标准库资料(最全中文版)③ 项目源码(四五十个有趣且可靠的练手项目及源码)④ Python基础入门、爬虫、网络开发、大数据分析方面的视频(适合小白学习)⑤ Python学习路线图(告别不入流的学习)Python学习交流Q群101677771使用系统库或者第三方库都比较常规,这里就不一一介绍了。

from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *from qdarkstyle import load_stylesheet_pyqt5import osimport sysimport timeimport random为了和UI界面的主线程分离开来,我们采用的还是QThread多线程的方式来实现随机点名模块的。

这样做的目的是为了防止主线程阻塞,下面是子线程的实现部分。

class WorkThread(QThread):trigger = pyqtSignal(str)finished = pyqtSignal(bool)def __init__(self, parent=None):super(WorkThread, self).__init__(parent)self.parent = parentself.working = Truedef __del__(self):self.working = Falseself.wait()def run(self):data_list = self.parent.data_listif len(data_list) >= 1:ran = random.randint(20, 40)print('遍历次数:', ran)for a in range(ran):name = random.choice(data_list)self.trigger.emit(name)print(name)time.sleep(0.6)self.finished.emit(True)else:self.trigger.emit('无数据')UI 界面的实现部分也比较常规,下面主要实现部分的代码块。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#define SIZE 4
struct student
{char num[20];
char name[20];
int time;
}std[SIZE];
void save()
{int i;
FILE *fp;
if((fp=fopen("myfile.dat","rb+"))==NULL)
{printf("文件打开失败\n");
exit(0);}
for(i=0;i<SIZE;i++)
if(fwrite(&std[i],sizeof(struct student),1,fp)!=1)
/*将内存中的数据输出到磁盘文件中*/
printf("文件保存失败\n");
}
void main()
{
int j,i;
char c;
FILE *fp;
/*if((fp=fopen("myfile.dat","wb+"))==NULL)
{
printf("文件打开失败\n");
exit(0);
}
for(i=0;i<SIZE;i++)
scanf("%s %s %d",std[i].name,std[i].num,&std[i].time);
for(i=0;i<SIZE;i++)
fwrite(&std[i],sizeof(struct student),1,fp);
fclose(fp);*///第一次运行写入名字
if((fp=fopen("myfile.dat","ab+"))==NULL)
{
printf("文件打开失败\n");
exit(0);
}
for(i=0;i<SIZE;i++)
fread(&std[i],sizeof(struct student),1,fp);
/*将fp所指向的文件中的数据存储到数组std中*/
printf("*************欢迎使用上课随机点名程序**************\n");
printf("*************输入a:显示所有同学名情况*************\n"); printf("*************输入d: 开始点名**********************\n"); printf("*************输入s:保存点名**********************\n"); printf("*************输入b: 点名次数归零******************\n"); printf("*************输入q: 退出**************************\n"); printf("***************************************************\n"); while(1)
{
c=getchar();
switch(c)
{
case 'a':for(i=0;i<SIZE;i++)
printf("\t\t%s\t\t%s\t\t被点名%d次\n",std[i].num,std[i].name,std[i].time); break;
case 's': save();
printf("****文件保存成功!退出请输入q****\n");
break;
case 'b': for(i=0;i<SIZE;i++)
std[i].time=0;
printf("点名次数归%d\n",std[i].time);break;
case 'q': exit(0);
case 'd':
loop:j=rand()/1000; /*调用rand的函数进行点名*/
if(j==0)
{
std[0].time++;
printf("\t\t%s\t\t%s\n",std[j].num,std[j].name);
}
else if(j==1)
{
std[1].time++;
printf("\t\t%s\t\t%s\n",std[j].num,std[j].name);
}
else if(j==2)
{
std[2].time++;
printf("\t\t%s\t\t%s\n",std[j].num,std[j].name);
}
else if(j==3)
{
std[3].time++;
printf("\t\t%s\t\t%s\n",std[j].num,std[j].name);
}
else goto loop;
break;}
}
fclose(fp); }
运行结果:。

相关文档
最新文档