发新话题
打印

开发网络管理员考试系统遇到的问题

开发网络管理员考试系统遇到的问题

操作员版本开发完成
这两天将完成管理员版本的开发

现在有个问题还未明确解决办法   就是考试客户端中有关系统命令操作题目题的结果获取过程

比如有个题目是让考生在用户主目录创建一个foo.txt 并将权限设置为777
当学生交卷时  客户端需要获取到用户的操作结果  并且在服务端程序里能够自动进行评分处理

我的初步想法是
对每道题目增加一个开始答题按钮  点击后 打开终端  让考生完成操作后 再用exit退出
并点击完成答题   之后 客户端从 .bash_history中获取操作命令
将命令提交到服务端
服务端在重现命令执行过程 并根据题目要求判断操作的正确与否

不过这样也存在不少问题
不知是否有更好的解决方案
邮箱 sanool at gmail.com  
可以试试直接查看操作结果,查看foo.txt是否存在,权限是否正确。
分析:
在操作题在有几个题目是要求用命令进行操作的,所以必须得到考生操作的命令
而考生的操作命令是在终端退出以后才会保存进.bash_history的。所以在交卷时还要判断终端是否还在运行或由程序来强制关闭。
现在不知道C用什么函数或命令能关闭终端,所以改为判断是否在运行,强制要求考生来关闭终端(经测试终端强制关闭(不用exit命令)时信息也会保存进.bash_history文件)
然后从.bash_story文件提取命令(所有命令,到服务端分析)
当考生点 开始答题按钮  点击后 打开终端(打开时用cat /dev/null >/root/.bash_history 清空.bash_history文件)

history命令能显示未保存里.bash_history文件的命令

[ 本帖最后由 snail 于 2007-3-14 17:33 编辑 ]
补充:
因为在考生考试的通程中,考生可能多次用"打开终端"的按钮打开终端,所以cat /dev/null >/root/.bash_history 清空.bash_history文件命令不应该用这在儿,应该放在程序刚运行时,或在初始化控件显示题目时(不在TAB上添加事件把这个命令放到Tab上也是这个原因)
.bash_history 可以导出和考生的操作题题目一起发还给服务端
现在的问题,不知道是不是所有的题目能要用终端输命令来完成,还是可以通过面型界面用手工完成(如创建一个foo.txt 并将权限设置为777,是否可右击新建空白文件再改属性中的权限)
如果必须用命令完成,那只要把.bash_history文件内容给服务端就行了.不然还要通过判断这个foo.txt是否存在,然后取出它的权限发给服务端
现在是发送.bash_history文件内容给服务端,让服务端来判断考生的操作,如果想到客户端就判断出考生的操作,然后把相关结束发给服务端(服务端只要判断正确于否).那么还要对操作题进行分类,如新建特定权限的文件为一类,那在客户端只要在交卷只判断文件是否存在,它的权限是什么;或命令中分解中新建文件的命令和文件名,还是修改文件权限的命令和权限就行了.但是这样题目本身每一类都必须是相近的细化的.如:在用户主目录创建一个foo.txt 并将权限设置为777。或,在用户主目录创建一个foofoo.txt 并将权限设置为555。
命令的分解方法
.bash_history文件内容是一行一行保存的,分解文件时只要一行一行分析。
命令中一定有特定的命令的,如新建目录就有mkdir命令,只要找到这个命令然后再分析这个命令后面的参数,最后和答案进行对比判断对错就行了(标准答案也要以特定的格式保存)
注意:在分析命令时要注意空格

开幕式主题曲换成芙蓉姐姐多好啊

??几个原因证明芙蓉是最佳人选:
  一、芙蓉姐姐有一种古典美,穿上旗袍绝对惊艳,不是说名族的就是世界的吗?请一个洋妞就是和国际接轨了吗?
  
  二、芙蓉姐姐是网友们的最爱,也是互联网成就芙蓉姐姐,代表着中国的年轻积极向上的新一代。
  
  三、洋妞肯定用英语来唱歌,但芙蓉姐姐不光用一种语言唱,还能用她的肢体来表达“one world one dream”,当姐姐在全球亿万观众面前用肢体语言来唱歌的时候,全世界不同民族,不同语言都会产生共鸣的。
  
  四、芙蓉姐姐的S型身材足以震撼整个世界,她的自信、张扬、活力向外国展示了中国人的乐观心态。
  
  五、就是芙蓉姐姐也是张艺谋老乡,这样搭配起来更和谐完美,更能从舞蹈中领会张艺谋的意思。


注意,本内容绝对不是使用论坛群发,或是其他群发软件发送的。反对网站推广者请不要对号入座。




图1:芙蓉姐姐

发新话题