{$cfg_webname}
主页 > 计算机 > Delphi >

基于Socket的网上考试系统的设计与实现

来源:wenku168.com  资料编号:WK1682250 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9AWK1682250
资料介绍


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进行客户端和服务器端的通信,如何为到达的数据分配内存空间,用什么样的数据结构表示数据库中的各字段的信息。

提纲
第一章:总论
第二章:概要设计
第三章:详细设计
第四章:进行软件设计的困难及解决方法
第五章:自我评价
第六章:结束语

推荐资料