基于Socket的网上考试系统的设计与实现
来源:wenku163.com 资料编号:WK1632250 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9AWK1632250
资料介绍
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进行客户端和服务器端的通信,如何为到达的数据分配内存空间,用什么样的数据结构表示数据库中的各字段的信息。
提纲 第一章:总论 第二章:概要设计 第三章:详细设计 第四章:进行软件设计的困难及解决方法 第五章:自我评价 第六章:结束语
|