Java专业实践课题设计报告模版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

********学院
JAVA语言编程实践
报告
实践题目:
组长姓名:
组员姓名:
完成日期:
目录
1 摘要 (1)
2 系统设计与实现 (2)
2.1 系统分析 (2)
2.1.1 需求分析 (2)
2.1.2 可行性分析 (2)
2.1.3开发及运行环境分析 (2)
2.2 系统总体设计 (3)
2.2.1 系统总体功能描述 (3)
2.2.2 系统总体流程 (3)
2.2.3 系统功能模块图 (4)
2.3 数据库设计 (5)
2.3.1 E-R图 (5)
2.3.2 数据表 (6)
2.3.3 连接数据库模块 (7)
2.4 系统详细设计 (9)
2.4.1 系统功能实现小组分工描述 (9)
2.4.2 管理员登录模块 (9)
2.4.3 系统主界面模块 (10)
2.4.4 用户管理模块 (11)
2.4.5 图书信息管理模块 (14)
2.4.6 图书借阅模块 (17)
2.4.7服务器端处理过程 (19)
2.5 系统测试设计 (20)
2.5.1测试过程描述 (20)
2.5.2 测试结果分析 (20)
3 结论 (21)
1 摘要
为了巩固Java语言程序设计课程的主要知识,提高编程实际的开发能力,基于课程的技术要求和作业标准,设计并实现了系统。

该系统的主要功能是
,系统的开发语言是,开发环境是,数据库是。

本系统具有的特点是:,优点是:
2 系统设计与实现
2.1 系统分析
2.1.1 需求分析
在当今这个知识经济时代,知识的大爆炸带来了图书业的大发展,图书数量急剧增加,但是图书数量的增多也给图书管理带来了很大的不方便,图书信息管理系统开发的目的就是要解决图书信息管理的问题。

本系统需要实现图书管理系统的基本功能。

本系统能够对读者信息和图书信息进行管理,对借书操作和还书操作进行管理。

在对用户操作时候,操作者可以一句用户编号或姓名进行用户管理;对图书操作时候,操作者可以一句图书序列号或图书名称对图书进行管理。

本系统会提高图书管理工作者的工作效率和工作能力,介绍工作人员的出错率,减少读者的借阅实践,让读者把更多的时间用在选择书和读书上。

2.1.2 可行性分析
以前,图书馆采用手工方式对图书借阅信息进行管理,将借阅情况记录在借书证上,将图书数目和内容记录在文件中,这样,随着资料的增多,时间的增长,再查询时候,就需要在众多的资料中查找,即浪费时间又浪费人力,手工操作使得图书借阅信息的工作混乱而复杂。

基于以上问题,开发一个智能化的、操作简单、使用方便的图书管理系统是非常有必要的。

图书管理系统使得图书管理工作规范化、系统化、程序化,避免手工管理的繁琐工作,减少出错的概率,提高信息处理的速度和准确性。

图书信息管理系统是一个典型的数据库应用系统,主要设计数据读写和数据的传递,利用Eclipse工具,采用Java语言进行开发不存在技术方面的问题。

2.1.3开发及运行环境分析
1.硬件平台
CPU:P1.60GHZ
内存:512MB以上
2.软件平台
操作系统:Windows2000/Windows xp
数据库:SQL Server2005
开发工具:JDK 1.6.0 Eclipse3.4
2.2 系统总体设计
2.2.1 系统总体功能描述
图书信息管理系统需要具备以下几个主要功能:
1. 用户管理:将用户信息存储于系统中,管理员可以管理用户,如查询用户、添加新用户、修改和删除用户等;
2. 书籍管理:将图书信息存储于系统中,管理员可以添加新书、修改错误书和删除不存在的书,并可以查阅图书被借阅的情况;
3. 借阅管理:管理员帮用户借书、还书,并可以查询用户借阅图书的情况。

另外,图书借阅管理系统属于图书馆内部的一种管理系统,通过内部网络处理和交换信息,C/S模式采用开放结构、解决数据库共享问题,本系统就采用C/S模式,其中客户端运行Java客户端程序,服务器端运行Java服务器端程序,如图2-1所示。

图2-1 系统运行总体结构
2.2.2 系统总体流程
借书过程如下:
1.用户将图书和借阅卡交给管理人员;
2.管理人员将图书和借阅卡上的号码输入系统;
3.系统依据借阅卡号作为借阅条件进行查找;
4.若查找到该用户,则依据图书编码查找图书;
5.若查找到该图书,则予以借出。

还书过程如下:
1.用户将图书和借阅卡交给管理人员;
2.管理人员将图书和借阅卡上的号码输入系统;
3.系统依据图书编码作为查询调节进行查找;
4.若查找到该图书被借阅的记录,则正常归还图书,并记录还书时间。

系统图书借阅流程如图2-2所示。

图2-2 系统图书借阅流程图
2.2.3 系统功能模块图
根据系统的设计要求,图书信息管理系统实现了五个完整的功能。

根据这些功能要求,设计的系统功能模块如图2-3所示。

图2-3 系统功能模块
图书信息管理系统各模块功能要求分析如下:
1. 用户登录要求
实现对管理员用户登录的验证、标识,为用户对系统的操作提供授权依据,在这一模块中,首先要求管理员输入自己的登录用户名和登录密码,然后系统对用户名和密码进行验证,判断用户的身份。

2. 用户管理要求
由于用户众多,为了方便每个用户借阅,该系统需要存储每个用户的基本信息,以便用户借书时候通过用户名从数据库中快速调出用户信息,用户的基本信息包括用户名、姓名、密码、学院、专业和年级等,管理员可以添加新用户、查询用户、修改用户和删除用户。

3. 图书管理要求
为了方便图书的管理,需要把每本书的相关信息添加到数据库中,以便通过书号从数据库中快速调出图书信息,图书基本信息包括书号、作者、出版社、出版年月等,管理员可以添加图书、查询图书、修改图书和删除图书。

4. 借阅管理要求
通过本系统,图书管理员可以进行图书借阅登记和图书归还登记,并可以查询图书被借阅的情况。

2.3 数据库设计
图书借阅系统不仅要求数据库功能强大,而且要有很好的安全保障机制。

SQL Server 数据库是当前应用最为广泛的数据库,它可以很好第支持各种信息,而且具有较高的数据安全保障,是一般公司、企业首选的数据库之一,本系统采用SQL Server数据库进行创建。

2.3.1 E-R图
本系统的数据库表的E-R图如图2-4至2-7所示:
(1)用户实体的E-R图
图2-4 用户实体
(2)借阅实体的E-R图
图2-5 借阅实体
(3)图书实体的E-R图
图2-6 图书实体
(4)各实体之间的联系图
图2-7 实体联系图
2.3.2 数据表
根据系统的设计要求和模块功能,进行数据库的分析和设计。

由图2-4到图2-7可以知道,系统拥有图书管理员、用户(读者)、图书等实体。

在数据库中,可以使用表描述这些实体。

另外,还需要存储图书借阅记录,也需要用表来表示,这些表的名称以及表的说明如下:
1.管理员表Admin
用来保存管理员用户信息,结构如表2-1所示。

2. 图书用户表users
用来保存图书用户信息,结构如表2-2所示。

3. 图书表book
用来保存图书信息,结构如表2-3所示。

表2-3 图书表book
4. 借阅表borrow
用来保存读者借阅信息,结构如表2-4所示。

表2-4借阅表borrow
2.3.3 连接数据库模块
系统所需要的信息都存储在数据库中,例如图书信息、读者信息、借阅信息等,要对这些信息进行操作,就必须连接数据库,为了省去每次操作都要编写连接数据库程序的步
骤,把连接数据库操作封装到一个类jdbcfile.java中,在不同的模块中调用这个类就可以对数据库进行连接,执行相应的数据库操作,这样就使得连接数据库安全高效,程序代码简洁清晰,也符合Java面向对象的思想。

连接数据库类jdbcfile.java的代码如下:
import java.sql.*;
public class jdbcfile{
Connection conn;
Statement stmt;
int inorupdatevalue=-1;
public jdbcfile() throws Exception{
try{
String
drivername="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String
dbURL="jdbc:sqlserver://localhost:1489;DatabaseName=book";
Class.forName(drivername);
conn=DriverManager.getConnection(dbURL,"sa","123");
stmt=conn.createStatement();
}catch(ClassNotFoundException e){
throw new Exception("数据库驱动未找到"+e.getMessage());
}catch(SQLException e){
throw new Exception("数据库未连接"+e.getMessage());
}
}
public synchronized ResultSet executeQuery(String sql) throws Exception{
ResultSet rs=stmt.executeQuery(sql);
return rs;
}
public synchronized int insert(String sql) throws Exception{
inorupdatevalue=stmt.executeUpdate(sql);
return inorupdatevalue;
}
public synchronized int update(String sql) throws Exception{ inorupdatevalue=stmt.executeUpdate(sql);
return inorupdatevalue;
}
public synchronized int del(String sql) throws Exception{
inorupdatevalue=stmt.executeUpdate(sql);
return inorupdatevalue;
}
public void close() throws Exception{
conn.close();
}
}
2.4 系统详细设计
2.4.1 系统功能实现小组分工描述
序号姓名实现模块及功能备注
2.4.2 管理员登录模块
为保证系统的完全性,只有管理员才可以对系统进行操作,因此,需要对用户登录信息进行验证,管理员的用户名和密码存放在数据库中,通过文本框获得用户输入的用户名和密码,然后与数据库中的用户名和密码进行比较,如果匹配,则进入系统,否则提示用户名和密码不正确。

1.管理员登录界面
2.技术实现主要代码(详见源程序)
3. 开发说明
管理员登录由Login类继承了Jframe类,首先声明了标签、按钮、文本框、密码框和一个Jframe窗口,然后通过构造方法创建标签、按钮、文本框、密码框,并添加到窗口容器中,最后设置窗口的大小和可见行;
然后为按钮增加事件监听,实现AciontListener接口完成用户名、密码的检测并登录。

2.4.3 系统主界面模块
系统主界面也就是登录后进入的第一个浏览界面,这也是图书信息管理系统的主要模块,在主页面中应该包括系统葛模块的连接,通过主页面可以打开如何一个功能模块,实现各种不同的功能。

1.系统主界面
2.技术实现主要代码(详见源程序)
3. 开发说明
Bookmain类继承了Jframe类,定义了一个菜单栏、4个菜单和12个菜单项,然后定义了一个方法go(),通过该方法设置窗口的布局、窗口的大小和标题,将菜单项加入到各自的菜单中,把菜单加入到菜单栏中,并将菜单栏加入到窗口中;
当单击菜单项时候产生单击实践,传递给监听者,实现接口并处理监听到的事件。

2.4.4 用户管理模块
管理员可以对用户进行管理,包括增加新用户、删除用户、修改用户和查询用户信息。

1. 用户信息增加模块
(1)用户信息增加界面
(2)技术实现主要代码(详见源程序)
(3)开发说明
在系统主界面中,单击“用户管理”->“添加用户”菜单命令,打开添加用户界面,该界面包含6个标签、5个文本框、1个密码框和两个按钮,在文本框中输入用户信息,单击“添加”按钮就可以把数据信息添加到数据库中;
单击按钮进行用户添加,添加用户信息要求每项信息都不能为空,如果某一项为空则弹出消息提示对话框,否则调用方法connect()把数据流信息传输到服务器端。

2. 用户信息删除模块
(1)用户信息删除界面
(2)技术实现主要代码(详见源代码)
(3)开发说明
在系统主界面中,单击“用户管理”->“删除用户”菜单命令,打开删除用户信息界面,界面包含6个标签、5个文本框、1个密码框和两个按钮,在最上面的文本框中输入学号,单击“查询”按钮用于查询用户是否存在,如果存在,则把用户信息显示在对应的文本框中,单击“删除”按钮就可以删除数据库中的信息;
为两个按钮分别添加事件监听,并对监听到的事件进行处理。

3. 用户信息修改模块
(1)用户信息修改界面
(2)技术实现主要代码(详见源代码)
(3)开发说明
在系统主界面中,单击“用户管理”->“修改用户”菜单命令,打开修改用户信息界面,界面包含6个标签、5个文本框、1个密码框和两个按钮,在最上面的文本框中输入学号,单击“查询”按钮用于查询用户是否存在,如果存在,则把用户信息显示在对应的文本框中,修改用户信息后,单击“修改”按钮就可以修改数据库中的信息;
为两个按钮分别增加事件监听,并对监听到的事件进行处理。

4. 用户信息查询模块
(1)用户信息查询界面
(2)技术实现主要代码(详见源代码)
(3)开发说明
在系统主界面中,单击“用户管理”->“查询用户”菜单命令,打开查询用户信息界面,界面包含一个标签、一个文本框、一个下拉菜单和一个查询按钮,在文本框中输入查询条件,并通过下拉菜单选择按学号或按姓名查询,单击“查询”按钮就可以把查询结果显示出来;
通过actionPerformed()处理监听到的事件,首先获得查询条件,如果查询条件不为空,接着调用方法connect()将数据传递到服务器端。

2.4.5 图书信息管理模块
管理员可以对图书进行管理,包括增加新图书、删除图书、修改图书和查询图书信息。

1. 图书信息增加模块
(1)图书信息增加界面
(2)技术实现主要代码(详见源代码)
(3)开发说明
在系统主界面中,单击“图书管理”->“添加图书”菜单命令,打开添加图书信息界面,界面包含6个标签、6个文本框和两个按钮,在文本框中输入图书信息;
为按钮添加事件监听,添加图书信息要求每项信息都不能为空,如果某一项为空则弹
出消息提示对话框,否则调用方法connect()把数据流信息传输到服务器端。

2. 图书信息删除模块
(1)图书信息删除界面
(2)技术实现主要代码(详见源代码)
(3)开发说明
在系统主界面中,单击“图书管理”->“删除图书”菜单命令,打开删除图书信息界面,界面包含6个标签、6个文本框和两个按钮,在最上面的文本框中输入图书编号,单击“查询”按钮用于查询该图书是否存在,如果存在,则把图书信息显示在对应的文本框中,单击“删除”按钮就可以删除数据库中的图书信息;
为按钮添加事件监听,并对监听到的事件进行处理。

3. 图书信息修改模块
(1)图书信息修改界面
(2)技术实现主要代码(详见源代码)
(3)开发说明
在系统主界面中,单击“图书管理”->“修改图书”菜单命令,打开修改图书信息界面,界面包含6个标签、6个文本框和两个按钮,在最上面的文本框中输入图书编号,单击“查询”按钮查询该图书是否存在,如果存在,则把图书信息显示在对应的文本框中,修改图书信息后,单击“修改”按钮就可以修改数据库中的信息了;
为按钮增加事件监听,并对监听到的事件进行处理。

4. 图书信息查询模块
(1)图书信息查询界面
(2)技术实现主要代码(详见源代码)
(3)开发说明
在系统主界面中,单击“图书管理”->“查询图书”菜单命令,打开查询图书信息界
面,界面包含一个标签,一个文本框、一个下拉菜单和一个查询按钮,在文本框中输入查询条件,并通过下拉菜单选择按编号或按书名查询,单击“查询”按钮就可以把查询结果显示出来;
通过方法actionPerformed()处理监听到的事件,首先获得查询条件,如果查询条件不为空,然后就调用方法connect()将数据传输到服务器端。

2.4.6 图书借阅模块
管理员不仅可以对图书和用户进行管理,还可以借阅图书、归还图书和查询图书借阅情况。

1. 图书借阅模块
(1)图书借阅界面
(2)技术实现主要代码(详见源代码)
(3)开发说明
在系统主界面中,单击“借阅管理”->“借阅图书”菜单命令,打开借阅图书界面,界面包含两个标签、两个文本框和两个按钮,在文本框中输入图书编号和读者编号,单击“借阅”按钮就可以借阅图书;
在这里为按钮添加事件监听,如果文本框为空,则弹出消息提示对话框,否则调用方法connect()把数据流传输到服务器端。

2. 图书归还模块
(1)图书归还界面
(2)技术实现主要代码(详见源代码)
(3)开发说明
在系统主界面中,单击“借阅管理”->“归还图书”菜单命令,打开归还图书界面,界面包含1个标签、1个文本框和两个按钮,在文本框中输入图书编号,单击“归还”按钮就可以归还图书;
为按钮添加监听,如果文本框为空,则弹出消息提示对话框,否则调用方法connect()把数据流传输到服务器端。

3. 图书查询模块
(1)图书查询界面
(2)技术实现主要代码(详见源代码)
(3)开发说明
在系统主界面中,单击“借阅管理”->“借阅查询”菜单命令,打开查询图书借阅情况界面,界面包含1个标签、1个文本框、1个下拉菜单和1个查询按钮,在文本框中输入查询条件,并通过下拉菜单选择按图书或按读者查询,单击“查询”按钮就可以把查询结果显示出来;
通过方法actionPerformed()处理监听到的事件,首先获得查询条件,如果查询条件不为空,然后就调用方法connect()将数据传输到服务器端。

2.4.7服务器端处理过程
在系统设计过程中采用的是C/S模式,具体操作时候需要把要处理的数据发送到服务器端进行处理,然后把处理的结果返回给客户端。

服务器端处理的操作过程如下:(1)创建ServerSocket对象和Socket对象,用于接收来自客户端的数据流,并输出数据流到客户端;
(2)创建线程;
(3)读取来自客户端的数据流,并进行相应的处理;
(4)把处理的结果返回给客户端。

其中在用户管理模块、图书管理模块和图书借阅模块都有相应的服务器端,它们的实现过程类似,具体编程过程如下所示(代码详见源代码)。

(1)导入程序所使用的包;
(2)创建图形用户界面
为更清楚第显示客户机与服务器之间的连接情况,客户端与服务器端之间传输的数据流以及在程序运行过程中出现的异常情况,可以创建一个图形用户界面,用于显示系统的信息;
(3)定义connect()方法
来接收来自客户端的数据流,启动线程处理,最后关闭数据库连接;
(4)创建线程
由于可能同事有多个客户端对图书信息进行操作,因此要创建线程处理来自客户端的数据流;
(5)定义方法sendData()
将操作结果输出到客户端。

2.5 系统测试设计
2.5.1测试过程描述
各模块运行效果的描述和截图:
2.5.2 测试结果分析
根据以上实际测试结果,
3 结论
该系统的题目是:,经过测试能够正确地实现了所要求的功能:。

开发过程中采用的工具和环境是:,系统主要功能是:
具有的优点。

当然此系统仍存在一些不足之处:
通过本次Java语言程序设计实践项目的设计、开发和实现过程,深深体会到:
Java语言程序设计实践报告作业报告成绩评定。

相关文档
最新文档