设计一个考场编排程序
目的与要求
1.目的
培养学生综合利用VB语言进行程序设计的能力,主要是利用扩展控件进行设计。
2.基本要求
★ 读取文件中的学生信息和考场信息,并保存在数组中。
★在窗口中显示读入的所有学生信息。
★ 在窗口中显示读入的考场的信息
★ 根据考场信息和学生信息,顺序编排准考证号。
★ 显示编排了准考证号的学生信息
3.创新要求
在基本要求达到后,进行创新设计,创新方向提示如下:
★ 对准考证号进行随机编排。
★ 实现查询功能,根据给定条件(准考证号、学号、姓名),查询考生信息;如未查询到,也应给出相应提示信息。
★ 其它方面的创新(功能实用,有一定的代码量)。
设计方法和基本原理
1.问题描述
程序主界面见第一部分的示例图。设计时可以通过运行随同本任务书一起提供的参考程序得知程序的一些特性。
①在程序界面中单击“读入数据”按钮,从数据文件中将学生信息及考场信息读入,此时可以在屏幕上显示读入了多少学生的信息和考场信息(例如:读入了40名学生、10个考场的信息)。
②在程序界面中单击“显示学生情况”按钮,在文本框中显示所有学生信息;在程序界面中单击“显示考场信息”按钮,在文本框中显示考场信息。
③单击“编排考场”按钮,按照每个考场人数自动编排准考证号。
④单击“显示考场编排”按钮,在文本框中显示编排了准考证号的学生信息。
⑤单击“查询”按钮,根据给定条件(准考证号、学号、姓名),查询考生信息。
2. 问题的解决方案
①定义数组分别用于存放学生信息、考场代号、考场人数。
②单击“读入数据”按钮后,将数据文件中的记录依次读入到相应数组中。
③单击“显示学生情况”、“显示考场信息”按钮后,将已经保存在数组中的相应信息以合适的方式在文本框中显示。
④单击“编排考场”按钮后,按照“考场代号+座位号”规则编排准考证号(例如:0121表示01考场的21号),并保存到准考证号数组中。
⑤单击“查询”按钮后,以文本框中输入的内容为查询条件,根据选定的查询部分(单选框中选择准考证号、学号或姓名)进行查询,并将结果显示。
主要技术问题的描述:
本题技术问题不多,主要是搞清楚编排考号的算法。
①由于单击各按钮时,都要对学生信息、考场信息、准考证号数组及相应变量进行操作,因此这些数组和变量应定义为模块级的。
②考场编排的算法:
01 | 30 |
02 | 25 |
03 | 35 |
04 | 30 |
05 | 25 |
06 | 40 |
如果以一个二维数组kch(1 tov 2,1 to 6)表示考场信息,则编排考场的基本思路就是:先取出第一行信息kch(1,1),kch(1,2),kch(1,1)是01,表示考场代号,用来作为准考证号的前两位;kch(1,2)是30,表示01考场的人数是30人,此时,就要建立一个循环,循环变量依次由1变化到30,每循环一次,就由考场代号kch(1,1)与循环变量(即考场代号+座位号)构造了一个考号。当第一个考场排完后,依次排余下的考场。
由此可见,编排考场就是构建循环,依次从考场信息数组kch(1 tov 2,1 to 6)中取出考场信息,再根据考场的人数,决定循环次数,生成一个一个的考号。
在生成了每个考号后,还要将其保存到与学生信息相对应的数组中。此外,需要注意:生成考号还要受到学生人数的限制,即当超过学生人数时,就要终止考号的编排。
另外一点需要注意的是:在上面由考场代号kch(1,1)与循环变量构造考号时,由于考场代号是字符型,而循环变量是数值,所以不能直接相连,需要将循环变量先转化成字符才行,即kch(1,1)+str(i)
还有一点需要考虑的是,当座位号小于10时,形成的考号可能就是018的形式(应该是0108),为此要在座位号前加"0",即kch(1,1)+"0"+str(i)
也就是在构造考号时,要随时对座位号的大小进行判断,以决定是否在其前面加"0"。
学习VB中有问题可以添加小编微信号:vbyjk521 ,随时在线答疑。
![9f2372055295869bb9274640408e97f6.gif](https://i-blog.csdnimg.cn/blog_migrate/65153d3f2863df301c6ba5543384c293.gif)
![b27a75c1e06155488a6438b647db8eaa.png](https://i-blog.csdnimg.cn/blog_migrate/04ac5140bf0e54150a0c8e9dbc4655e5.jpeg)
长按上图,关注跟我学VB