学号 0121910870218
《面向对象与多线程综合实验》报告
学 院
计算机科学与技术学院
专 业
班 级
姓 名
指导教师
计算机卓越
计算机 zy1901
张居富
耿枫
日期
2020.12.29
1
目录
1 实验目的 ......................................................... 4
2 系统功能与描述 ................................................... 4
2.1 基本功能 ...................................................... 4
2.1.1 用户登录功能 .............................................. 4
2.1.2 用户管理功能 .............................................. 4
2.1.3 档案管理功能 .............................................. 4
2.1.4 个人信息修改功能 .......................................... 4
2.1.5 GUI 用户界面实现 .......................................... 4
2.1.6 数据库的调用 .............................................. 5
2.1.7 网络编程 .................................................. 5
2.1.8 多线程实现 ................................................ 5
2.2 改进,完善和拓展的功能 ........................................ 5
2.2.1 档案删除功能 .............................................. 5
2.2.2 查看密码功能 .............................................. 6
2.2.3 按回车键换行或点击功能 .................................... 6
2.2.4 信息提示功能 .............................................. 7
2.2.5 无法新增也存在用户功能 .................................... 7
2.2.6 系统管理员无法修改自己角色和删除自己的功能 ................ 8
2.2.7 独立运行操作 .............................................. 8
3 模块设计 ......................................................... 9
3.1 控制台应用程序的模块设计 ...................................... 9
3.1.1 各个功能小模块之间的关系 .................................. 9
3.1.2 各个小模块之间的功能实现 .................................. 9
3.2GUI 模块设计 .................................................. 14
3.2.1 各个功能小模块之间的关系 ................................. 14
3.2.2 各个小模块之间的功能实现 ................................. 14
3.3 网络多线程模块设计 ........................................... 17
3.3.1 各个功能小模块之间的关系 ................................. 17
3.3.2 各个小模块之间的功能实现 ................................. 17
4 开发难点与体会 .................................................. 18
4.1 开发难点 ..................................................... 18
4.2 体会 ......................................................... 19
5 实验总结 ........................................................ 19
2
3
1 实验目的
运用 Java 语言,以迭代方式逐步编程实现一个小型档案管理系统。由此了
解软件开发的一般过程,深入理解面向对象语言的基本概念和基本原理,理解和
掌握继承与多态、异常处理、输入输出流、GUI 设计、JDBC 数据库操作、网络编
程、多线程等技术;熟练掌握在 Java 语言环境下,上述技术的具体实现方法。
2 系统功能与描述
2.1 基本功能
2.1.1 用户登录功能
根据用户输入的登录名、密码进行验证登录,通过验证后方可登陆系统。
将用户的角色分为系统管理人员、档案录入人员,档案浏览人员类根据用户的
角色,为用户分配不同的可执行操作。
2.1.2 用户管理功能
如果用户为系统管理员,那么他就可以进行添加新用户、修改某个已存在
用户的和角色以及删除某个已存在的用户这些功能。
2.1.3 档案管理功能
如果用户为档案管理员,那么他就可进行任意位置的档案的上传、下载和
删除。
2.1.4 个人信息修改功能
进行个人密码信息的修改。
2.1.5 GUI 用户界面实现
将上述功能使用 GUI 实现,以达到人机交互的作用,使用户能够轻松使用,
轻松实现各项功能。
4
2.1.6 数据库的调用
将用户的信息以及上传的文件信息保存到数据库中,以便系统退出再次录
后,信息保持不变。
2.1.7 网络编程
使用 URL 类访问网络资源,基于 Socket 的客户和服务器编程,将已完成的单机版程
序修改为客户机/服务器模式,客户端程序展现用户界面,访问网络资源,服务端程序相
应用户请求,并返回结果。(这里只具体实现了用户登录,文件上传和下载的网络传输功
能)
2.1.8 多线程实现
能同时处理多个客户端的请求。
2.2 改进,完善和拓展的功能
2.2.1 档案删除功能
设计原因:
由于我们数据存储的容量是有限的,并且内容是不断发展的,所以我增加了一个档
案删除的功能,来更好的管理档案。
功能实现:
1 文件真正的删除:删除文件的原理十分简单,就调用文件对象的 delete()方法
2 数据库中文件信息的删除:原理和删除用户的原理找到,使用
String sql = "DELETE FROM doc_info where ID=?";
这条 spl 语句来达到删除的目的
真实效果:
5
2.2.2 查看密码功能
设计原因:
有些时候我们为了达到保护隐私的目的,我们会选择把我们的用户密码给隐藏掉,但
是这样隐藏也会带带来我们无法查看我们密码的结果,所以好多软件就会在登录密码那
里设计一个小眼睛的图标来查看密码,所以我就模仿这个设置了查看密码的功能
功能实现:
在我们输入密码的地方的右面设置一个 checkBox,我们可以根据 checkBox 的状态来判
断用户是否需要查看密码,当状态为 true 是我们就显示明码,如果为 false 则为加密状
态。其关键性代码如下:
真实效果:
2.2.3 按回车键换行或点击功能
设计原因:
我们输入信息的时候不方便使用鼠标换行和点击确定按钮,所以如果能直接换行那
么将会大大提高我们的是生产力
功能实现:
在每一个需要换行输入的地方,我在那个 GUI 组件上设置一个键盘事件,当监听到
用户输入的值为“ENTER”时,他就对换行或点击的地方做出响应,来实现换行输入或
点击的功能。其关键性代码如下:
6
2.2.4 信息提示功能
设计原因:
当我们进行操作的时候我们会渴望得到一个操作的结果,因此设计了几个提示窗口,
他们分别为错误提示,操作提示,确定提示
功能实现:
其关键性代码分别如下:
错误提示弹窗:
JOptionPane.showMessageDialog(component, msg, title, JOptionPane.YES_NO_OPTION);
操作提示弹窗:
JOptionPane.showMessageDialog(component, msg, title, JOptionPane.INFORMATION_MESSAGE);
确定提示弹窗:
JOptionPane.showConfirmDialog(component, msg, title, JOptionPane.OK_CANCEL_OPTION);
我们可以根据确定提示窗口的返回值来达到“确定”或取消的功能。
真实效果:
2.2.5 无法新增也存在用户功能
设计原因:
为了保证每个用户的唯一性,这里规定了系统管理员账户无法新增也存在的用户
功能实现:
在新增用户的时候获得用户的姓名,然后遍历数据库搜索这个姓名如果该用户存在则
返回 false,不能实现新增用户的操作
真实效果:
7