软件工程课设源码分析(一)
开始
假期在家,不想看书,不想敲代码,想出去玩,但是又因为去了几天 吧,可能是 吧电脑屏幕太大导致脸上过敏,于是只能待在家里被中药汤困住了。想想天天睡觉也很无聊,那就以一个相对比较熟悉的作为寒假第一件事情吧。
功能描述
之前做的东西比较简陋,功能也比较简单。说白了就是一个在局域 内部,一个教师端,数十个学生端,相互搜索建立连接,一对多进行收发文件的功能。具体功能如下:
a) 教师模块
1) 考试信息设置
教师通过教师模块设置考试的基本信息,包括课程 、课程名称、任课教师、考试时间
2) 上传考试资料
教师使用文件选择对话框选择要上传的考试资料。
3) 准备考试
教师填写考试信息和考试资料路径后点击准备考试,教师模块开始不间断地在局域 内广播考试信息,等待学生模块连接,学生模块连接后向其发送基本考试息。
4) 参加考试学生人数显示
显示已经和教师模块建立通信的学生模块的数量。
5) 准备考试
教师将考试信息设置完毕,并将考试资料上传完毕之后,向学生模块广播信 发送教师模块IP和端口 。
6) 取消考试
教师点击取消考试后,教师模块停止广播,停止发送IP和端口 ,并向所有已连接学生模块发送取消考试信 ,考试设置的所有信息清空。
7) 考试开始
教师点击考试开始后,教师模块向所有建立连接的学生模块发送考试开始信 ,并向所有建立连接的学生模块发送考试资料。
8) 手动设置考试结束
教师可以选择提前结束考试,选择后,教师模块向所有建立连接的学生模块发送考试结束信 。
9) 已上传考试成果学生人数显示
显示已经上传考试结果的学生的数量。
10) 打开提交的考试成果目录
教师可以查看学生提交的考试成果。每场考试有一个特定的目录用于学生提交考试成果,教师可以点击查看考试成果直接定位到该目录,以查看考试成果。
11) 查看当前考生
教师模块可以查看当前参加当前考试的学生信息,包括学生姓名、学生学 、学生模块所在电脑的IP。
12) 查看历史记录
查看曾在本机考试的所有记录(包括参加考试学生记录和考试记录)。
13) 清空历史记录
清空曾在本机考试的所有记录(包括参加考试学生记录和考试记录)。
14) 考试时间提醒
考试开始后,教师模块根据考试时长倒计时,若没有提前结束考试,则倒计时结束后自动结束考试。
b) 学生模块
1) 登录
学生进入登录界面,输入姓名、学 后进行格式验证,若正确,进入搜索界面;若不正确,则不能进入。
2) 搜索教师模块
学生登录后,开启线程尝试等待接收广播,若接受到来自教师模块的广播,则开启新线程与教师模块建立通信并发送学生的姓名和学 和学生模块所在电脑的IP和端口 。
3) 重新搜索
学生模块可能由于某种原因等待接收线程被阻塞,始终接收不到教师模块的广播,则应该关闭该线程并建立新线程以重新尝试等待接收广播。
4) 考试状态显示
显示当前考试状态(准备考试、考试中、考试结束)。
5) 下载考试资料
学生模块接收到教师模块发送的考试资料和开考信 后,学生模块将考试资料存放到指定目录。
6) 考试成果提交
考试结束之前,学生模块向教师模块发送考试成果。学生通过文件选择器选择文件,向教师模块发送。
7) 考试时间提醒
考试开始后,学生模块根据教师模块发送的考试时长启动倒计时,以便提醒学生时间。
类图
由于在设计过程中,存在若干的内部类,但是rational rose中没有找到内部类如何表示,所以下面两个类图不是很标准,只是一个大概的关系。
分析难点
界面又或者是数据库没有什么好说的,对我而言,实现难度主要在教师和学生模块的通讯上面,局域 内的广播、tcp和udp套接字的运用、多线程的使用,这些都是需要我一一攻克的地方,除此之外,后台对界面的跳转控制也是需要设计的地方。 文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92156 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!