C/S考试系统程序制作详解
2010-05-27 20:37:07 来源:WEB开发网核心提示:三、换行中存在的问题行宽=客户区的象素宽/每个文字的宽度/2*2是偶数;汉字占用双字节,字母和标点符号占用单字节;一行文字=字母+标点+汉字 (有可能产生奇数宽);当一行文字产生一个奇数宽,C/S考试系统程序制作详解(3),最后一个字符又是汉字的时,就会把这个汉字切成两份,另一半会在下一行中显示,这就造成了乱码;我的解
三、换行中存在的问题
行宽=客户区的象素宽/每个文字的宽度/2*2是偶数;
汉字占用双字节,字母和标点符号占用单字节;
一行文字=字母+标点+汉字 (有可能产生奇数宽);
当一行文字产生一个奇数宽,最后一个字符又是汉字的时,就会把这个汉字切成两份,另一半会在下一行中显示,这就造成了乱码;
我的解决办法是在换行时增加一个变量HanChar=0,当扫描到字母或是标点时,就HanChar++。一行文字扫描完后需要另起一行时,判断HanChar的奇偶性,当为奇数时行宽往里缩进一个字节,以避免以上情况。
四、客户端程序总结
由于客户端界面采用大量计算,显示的内容不会是固定的模式,他会根据题目的长短变化作出相应调整,以达到最好的显示效果。
当用户登陆验证成功之后,服务器会抛一个时间计数,客户端通过一个定时器,每隔1秒钟将计数减1,并显示倒计时在界面上,直到计数为0,表明考试结束,程序自动保存数据退出。这样做的好处是用户更改客户端的时间,不会影响程序的正常计时。
客户端每隔10秒钟自动保存一次数据,以防突然死机之类的情况,死机后再次登陆,程序会自动加载你先前保存的作答。但点击“提交试卷”后就无法登陆了。
对例子程序的说明
随付的程序和源码是我大型作业的作品,运行时先运行服务器程序,再运行服务端程序:
帐号:姚明
密码:1981922
运行之前请先调整数据库的试卷信息表的开考时间和结束时间。还要确保学生试卷成绩表里面“姚明”那一行中试卷状态为1。
本文配套源码
更多精彩
赞助商链接