基于Socket的网上考试系统的设计与实现
无需注册登录,支付后按照提示操作即可获取该资料.
Soket是一种双向的通信端口,一对互联的套接口提供通信接口,使两端可以传输数据;使用系统调用Soket,我们可以得到Soket描述符,然后可以使用send和recv调用而于其他的程序通信。我们也可以使用一般的文件操作来调用read和write对Soket描述符进行读写,从而与其他的程序进行通信。
套接口Soket使用简介
一般服务器的进程先使用Soket调用得到一个描述符,然后使用bind调用将一个名字与Soket描述符连接起来,对于Internet域就是将地址连编到soket。之后,服务器端使用listen调用指出等待服务请求队列的长度。然后就可以使用accept调用等待客户端发起连接,一旦有客户端发出连接,accept返回客户的地址信息,并返回一个新的soket描述符,该描述符与原先的soket有相同的特性,这时服务端就可以使用这个新的soket进行读写操作了。
为了和多个客户通信,服务器端一般在accept返回后创建一个新的进程与客户的通信,父进程则回到accept调用处等待另一个连接。
客户进程一般先使用soket调用得到一个soket描述符,然后使用connect向指定的服务器上的指定端口发起连接,一旦连接成功返回,就说明已经建立了与服务器的连接,这时客户端就可以通过soket描述符进行读写操作了。
系统有四个模块,系统模块,考试模块,客户机模块,帮助。
系统模块
登录系统:提供管理员对该系统的登录和使用权限,密码错误将不能使系统;
用户修改:用户进行用户名的修改;
密码修改:进行登录系统的密码修改;
退出系统:结束使用该系统。
考试模块
帐户管理:进行学生的学号管理,使其能够参加考试;
科目设置:对要考试的科目进行添加;
题库管理:对考试题目进行管理,增加题目或删除题目;
考试策略:怎样考试,怎样从题库中进行选题;
成绩统计:对学生提交的答案进行批阅得出成绩。
客户机模块
指定锁定:将违反考试纪律的学生进行停止考试;
指定解锁:将锁定的机器重新恢复考试状态;
指定抓屏:对各台机器进行监控,随时知道各台机器在干什么。
帮助
提供给用户的帮助信息,使其能更好地使用该系统。
课题的重点和难点:
本系统是使用Delphi语言结合SQL SERVER 2000数据库系统及网络中的套节字(Socket)进行完整系统的开发。在软件设计的过程中,我遇到了很多意料之外的困难,从最早的系统分析到最后的综合测试,从程序错误到系统问题大部分的困难是我们以前没有见过的。
(1)在开始的设计时,数据表的设计很关键,我们为尽可能做到表内冗佘度小,表间的关系明确、重复字须少,最大可能实现数据的完整性和独立性、达到第三范式,所以花费大量的时间和精力。
(2)此类数据库系统软件的设计过程会涉及到多表查询问题,当查询涉及多字段、多表时,表与字段间的关系很难把握,尤其是Master/Detail表关系,因此对SQL语句的调试会增加很大的难度。
(3)怎样使用Socket进行客户端和服务器端的通信,如何为到达的数据分配内存空间,用什么样的数据结构表示数据库中的各字段的信息。
提纲
第一章:总论
第二章:概要设计
第三章:详细设计
第四章:进行软件设计的困难及解决方法
第五章:自我评价
第六章:结束语