Java:32-在线考试系统

在线考试系统

软件开发的流程---------------------------------
需求分析文档、概要设计文档、详细设计文档、编码和测试、安装和调试、维护和升级
软件的需求分析---------------------------------
在线考试系统的主要功能分析如下:
学员系统---------------------------------
用户模块:登录、修改密码、退出
考试模块:开始考试、查询成绩、导出成绩(选)
管理员系统---------------------------------
学员管理模块:增加学员、删除学员、修改学员、查找学员
考题管理模块:增加考题、删除考题、修改考题、查找考题、导入考题(选)

在这里插入图片描述

软件的概要设计---------------------------------
在线考试系统采用C(Client客户端)/S(Server服务器)架构进行设计
具体如下:客户端(Client) - 主要用于提供字符界面供用户选择并将处理结果显示出来
服务器(Server) - 主要用于针对字符界面的选择实现真正业务功能的处理
数据库(Database) - 主要用于进行数据的存取
如qq,需要现下载qq(C-客户端)才可,而B/S就是要有B(浏览器)才可

在这里插入图片描述

软件的详细设计---------------------------------
客户端和服务器之间采用基于tcp协议的编程模型进行通信
客户端的对象输出流连接服务器的对象输入流
服务器的对象输出流连接客户端的对象输入流
客户端采用消息的类型作为具体业务的代表,伴随着账户信息等一并发送给服务器
当客户端发来的消息类型为"managerCheck"时,则表示要实现管理员账户信息的校验功能
当客户端发来的消息类型为"userCheck"时,则表示要实现学员账户信息的校验功能
服务器采用消息的类型作为是否校验成功的标志发送给客户端
当客户端收到的消息类型为"success"时,则表示账户信息正确
当客户端收到的消息类型为"fail"时,则表示账户信息错误
记住,在操作文件时,做好要关闭资源,否则下次运行时,如果系统没有回收的话
那么就会操作不了资源,即会出现输出空的东西,即你对应的文件没有,当然对于其他的要关闭的资源一样,也要这样操作
都是防止资源占用,而操作不了,导致出现错误,或者结果的不正确
对于文件方法阻塞问题,必须满足该方法的需求才不会阻塞
而在网络编程里,主要阻塞的基本上是IO流的阻塞,即读取时,必须等待输出流输出数据时,才读取
即getInputStream方法和getOutputStream方法,之间相互制约
所以必须等待getOutputStream输出内容时getInputStream方法的读取才不会阻塞
若没有输出内容,那么当程序运行完时(前提是会执行完毕),也不会阻塞了,即读取时,读取内容在先,然后返回数值,若没有读取内容
那么就会等待你运行完毕,然后在解除阻塞,若你没有自己关闭资源,那么就会报一个提示错误(输入输出关闭一个即可,另外一个会跟着的),当然,有定义的错误就会报
若在IO流里,将一个流要输出之前进行关闭,那么就不会阻塞了(可能会报错,包括等待连接阻塞之前关闭)
注意对于NIO来说,流变成了管道,即流的关闭就变成了连接的关闭了
所以通常不考虑连接的关闭的话,是用不了流的关闭进行阻塞的(阻塞之前关闭,使得报错,因为他是内部,只能使用管道了)
因为程序运行完时,会自动关闭的,而报错的原因,就是没有自动关闭
但其实之所以这样,是因为网络编程,都是阻塞的IO流
因为他一直在等待结果,如果没有结果就会一直等待
注意:上面的说明最好进行细度,有助于了解阻塞的原因,因为是我测试的结果,可能有问题
软件的编码流程---------------------------------
管理员登录功能:
编写基于tcp协议的服务器端,也就是初始化服务器
编写基于tcp协议的客户端,来连接服务器
编写客户端的字符界面并提示客户进行业务的选择
将客户的选择和输入的相关信息通过对象输出流发送给服务器
服务器通过对象输入流接收客户端发来的消息并进行功能处理,将处理结果发送给客户端
客户端通过对象输入流接收服务器的处理结果并给出提示
学员管理系统的功能---------------------------------
当项目启动时,将文件中的所有学员账户信息全部读取出来放到一个List集合中
客户端输入要增加学员的用户名和密码信息,通过对象输出流发送给服务器
服务器接收客户端发来的消息,判断集合中是否存在该学员账户信息并实现具体添加功能
服务器将增加学员功能的处理结果发送给客户端,客户端给出对应的提示
当项目退出时,将集合中的所有学员账户信息整体写入到文件中
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值