Skip to content

max-vb6/Examer

Repository files navigation

Examer

Examer, a web server for examination, completed in February 2024.

一个可以在局域网进行考试的服务器, 完成于 2014 年二月 (大概高一).

刚上高中的时候就被钦定成为学校计算机社的社长. 社团会在前一年秋季学期开学招新, 然后教大家 VB6/C++ 或者是 3ds Max/Photoshop. 下一年的秋季学期开学, 社团要进行选拔考试, 看看大家学得怎么样, 把比较有水平的那几个留下来, 教一下新成员, 或者一块搞点什么别的东西.

在我当社长之前, 每次考试都是纸笔答题, 或者是电脑上写个文档然后人工验收之类的, 反正很吃人力. 我觉得我们都是计算机社团了, 用这种方式岂不是太没面子, 于是花一个寒假写了这么个程序. 出题人编辑好题目, 然后在机房的其中一台电脑运行 Examer, 其他人只需要打开浏览器, 就能参加考试. 考试结束后, 程序自动收集答题结果, 统计分数. 效率堪称飞跃.

当然, 如这个程序所说, 这是个没开发完的 Alpha 1 版本. 有些预期要加入的功能还没做, 比如统计数据部分就直接是“施工中”的状态. 但目前的版本功能已经很完善了. 这个程序不管从 GUI 设计还是编码风格来看, 都属于我写 VB6 写到后期的风格, 非常稳健. 我对此是相当自豪的.

程序从启动开始就透露出浓浓的二次元气息 (画外音: 骂谁二次元呢?). 你要理解, 2014 年的时候还是很流行这种萌二风格的, 反正就是不好好说话. 现在的我看了之后, 只想给当时的自己一拳.

还有那个出现在考试结束页面的图, 是我自己画的, 求求你们千万别看. MaxXing 画了这么多年的画, 还真就 tmd 一直不会画人. 如果当时的我狠下心来学习一下漫画风格的绘画技法, 可能一代抽象派画伯也不至于就此陨落.

Examer

补充说明

软件自带演示用的题库 (Test.qlib) 见 Questions 目录, 目录里还顺带放了计算机社某年的考题.

题库文件和配置文件都是 XCfg 格式的, 见 XCfgEditor.

我在这个程序里藏了后门, 考试者只要访问特定的 URL, 就能直接看到客观题答案, 甚至远程操作考试机关机.

以及, 我预料到自己会向一些人透露这个后门, 于是我还加了隐藏的反后门开关 (老藏逼了). 在关于页面按住 Ctrl 键的同时用鼠标左键拖动 Logo, 可以发现 Logo 之后藏着一个复选框, 勾选即可关掉后门.

你现在用 VB6 直接打开这个工程的话, 会遇到找不到资源文件 ..\..\Mainfests\Theme.res 的问题. 别急, 这是正常现象, 我只是懒得改这个 VBP 了 (代码能跑就别动). 这个资源文件只是一份 XP visual styles manifest, 没了的话顶多就是程序难看一点, 不会影响运行的.

写这个软件的时候还发现了一种方法, 可以让依赖 ActiveX 的 VB6 的程序在不加载 ActiveX 的情况下先启动, 自行注册 ActiveX, 然后再运行软件, 避免程序直接报错退出. 记录见 blog.

原始的 README, 来自 2014 年的 MaxXing

Examer 使用相关
     ——MaxXSoft Examer 用户帮助文档

     By MaxXSoft 曼软工作室
          2014.2.11

===================================

一、软件使用相关:

MaxXSoft Examer(以下简称 Examer)是一个采用了萌化设计的考试用软件。
其主要功能为在局域网内(或者外网也可)发起考试,并对考试结果进行评分、管理。
考生只需要在网络内的浏览器中浏览运行 Examer 的主机地址,即可开始考试,十分方便。
考生加入答题时会出现在 Examer 左侧的用户栏,选中用户时可以查看用户的详细信息,并进行评分。
目前软件处在 Alpha 1 技术预览版阶段,功能尚不成熟。
如果处理答题结果时遇到了异样(比如显示某题无答案)时请勿首先追究考生的责任……
所有用户数据均在点击主页上“结束考试”按钮后进行保存,在开始考试时载入。

若您被提示组件无法自动注册,请尝试运行 cmd(NT6 用户,如 Vista/7/8/8.1,需管理员身份),
并使用“regsvr32”手动注册程序目录下的“MSWINSCK.OCX”。

===================================

二、题库文件相关:

A. 题库文件的创建与编辑环境:
题库文件(Questions Library File)是一种扩展名为“.qlib”的,符合 MaxXSoft XCfg 文件规范的文件。
在适配 Examer 的专用题库编辑器编写完成之前(预计 Beta 版),它的创建与编辑暂时依赖于
XCfgEditor(以下简称 Editor),这要求您熟悉 Editor 的使用。
您可以在 MaxXSoft 主页(http://MaxXSoft.net/Software/)下载到最新版本的 Editor。 

B. 题库文件的组成
题库文件(当前版本)由考试标题(ExamTitle)、考试信息(ExamInfo)、题目满分(FullMark)、
题目总数(QueNum)、题目内容(Que+题目序数)和用户数据(UserData)这几类项目组成。
题库文件的版本与 Examer 版本相符,理论上说高版本的 Examer 兼容低版本的题库文件。

您需要在 Editor 内新建一个文件,然后创建上述项目(使用括号内的英文名称,无先后顺序要求)。
其中,用户数据项目不需填写任何内容,留空即可。此项目将交由 Examer 管理。
其余项目除考试标题(ExamTitle)、考试信息(ExamInfo)、
题目内容(Que+题目序数)填写字符以外,均填写数字(正整数)。
“题目内容”项(Que+题目序数)名称中的题目序数取决于题目总数项内填写的数字。
例如题目总数内填写了数字 10,这表示此题库内包含 10 道题,
那么题库文件内就应该有“Que1”、“Que2”……“Que10”十个项目。
考试标题与考试信息两项的内容将显示在考试的开始页面上,参与考试的考生将会浏览到这两项内容。
填写考试信息项目时如需换行,请务必使用小写的“<br>”作为换行符。
题目满分项目指定了该题库文件内所有题目的分值总和,相当于一张试卷上标注的满分分值。

C. “题目内容”项目内容的填写
“题目内容”项目包含的内容将被 Examer 解析,
其中包括了题目的题面、选择题的四个选项(即使题目类型不为选择题,也必须留出四个选项的位置)、
题目类型、题目分值,共七项内容。
这些内容之间需要使用“@@”(两个“At”符号,半角)分隔,填入“题目内容”项中。

题面即为题目本身的内容,将在考试答题页面呈现给用户。
其中如需换行,请务必使用小写的“<br>”作为换行符!还需注意的是题面本身不能含有“@@”分隔符。
选择题的四个选项包含了选择题的ABCD四种选项,特别注意的是这四个选项有先后顺序之分,
也就是说若从前往后依次为“选项w”、“选项x”、“选项y”、“选项z”,
那么最终显示在考生面前的就是:“A. 选项w”、“B. 选项x”、“C. 选项y”、“D. 选项z”。
如果题目类型设定不为选择题,也请务必使用其他字符代替,如“a”、“b”、“c”和“d”。
选择题选项中同样不能出现作为分隔的“@@”符号。
题目类型在该版本的题库文件中共有五种,它们分别为:
“cha”、“chb”、“chc”、“chd”四种选择题类型和“text”一种简答题类型。
选择题类型中“ch”后跟随的字母即为选择题的正确选项。
例如在选择题的四个选项中设定的第三个选项为正确选项,则需要将类型设定为“chc”。
若设置为“text”类型,则会忽略选择题的四个选项,用户看到的只有题面和一个可供填写答案的文本框。
简答题类型无标准答案设定,需要由评分人评分。
题目分值为题目的满分分值,该项应该是一个正整数。
编写题库文件时需要确保每道题中设置的题目分值的总和与题库中设置的满分分值相等。

D. “题目内容”项目填写示例
拿一道简单的数学题来举个例子。题目是这样的:
“已知抛物线 y=12x^2+4x+50,
则顶点坐标为:
A. (-6,-140/3) B. (-1/6,149/3) C. (1/6,149/3) D. (-6,-149)”

很显然选项B正确,那么我们开始将这道题转换入题库文件中。
首先,该题的题面为“已知抛物线 y=12x^2+4x+50,
则顶点坐标为:”,要注意的是题面本身包含一个换行符,我们需要使用“<br>”来进行替换。
将这些内容填写入创建好的题目内容项中,并在结尾加入“@@”分隔,就像这样:
“已知抛物线 y=12x^2+4x+50,<br>
则顶点坐标为:@@”。为了美观和修改方便也是可以在题面中换行的,但是文本的换行符最终会被忽略。
接下来分别将四个选项(无需填写选项标号)按顺序依次填入,并用“@@”分隔。最后,项目内容为:
“已知抛物线 y=12x^2+4x+50,<br>
则顶点坐标为:@@(-6,-140/3)@@(-1/6,149/3)@@(1/6,149/3)@@(-6,-149)”
由于这道题是一道选择题,且正确答案是B,所以我们需要将题目类型填写为“chb”,就像这样:
“已知抛物线 y=12x^2+4x+50,<br>
则顶点坐标为:@@(-6,-140/3)@@(-1/6,149/3)@@(1/6,149/3)@@(-6,-149)@@chb”
最后为该题目设定分值,在这里以分值3分为例,最终项目内容中所包含的所有文本应该为:
“已知抛物线 y=12x^2+4x+50,<br>
则顶点坐标为:@@(-6,-140/3)@@(-1/6,149/3)@@(1/6,149/3)@@(-6,-149)@@chb@@3”

若将这道题改编为简答题,则可以这样填写内容:
“已知抛物线 y=12x^2+4x+50,<br>
求顶点坐标@@a@@b@@c@@d@@text@@3”,四个选项在简答题中无作用,被“a、b、c、d”占位。

E. 题库文件的保存
使用 Editor 编辑好题库文件后,就像其他编辑软件一样,点击工具栏或菜单中的保存按钮,
储存为“.qlib”扩展名的文件即可。然后将文件放入 Examer 目录,并在 Examer 中设置该文件。
在需要时只需点击 Examer 主页的“快速开始一场考试”即可开始考试。

===================================

三、写在最后

为了软件的长远发展,Alpha 1 版本的 Examer 内置了简单的检查更新功能,每次软件启动时都会执行。
但是由于开发时间仓促,此功能目前只局限于提示用户下载更新,不会自动安装更新。
题库文件的编辑也不够简单,没有可视化的操作界面。
所以,在以后的版本中 MaxXSoft 将会对上述缺点进行改进。
最后,由衷的祝愿您能快乐地使用 Examer,也希望您可以光顾 MaxXSoft 曼软工作室的主页,
http://MaxXSoft.net/。也许您能在这里发现您所需的其它软件。

Copyright and License

Copyright (C) 2014 MaxXSoft (MaxXing). License GPLv3.

About

A web server for examination (completed in February 2024).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published