java大作业.docx
- 文档编号:5509185
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:18
- 大小:334.75KB
java大作业.docx
《java大作业.docx》由会员分享,可在线阅读,更多相关《java大作业.docx(18页珍藏版)》请在冰豆网上搜索。
java大作业
1.项目概述
1.1背景
管理信息系统是信息、软件与科学管理相结合的产物,它的应用已深入到社会的各行各业。
管理信息系统的开发过程不仅是一个编写应用程序的过程,而且是一个以软件工程的思想为指导,经过系统分析、系统设计、系统实施等为主要阶段的规范开发过程。
图书管理系统就是隶属于本系统的例子。
1.2Java开发环境
本系统的开发环境是JDK+NetBeans6.9.1+SQLserver2005,在此种开发环境下能够方便的完成图书管理系统的编写、编译、调试、打包过程。
1.3基本功能
1.3.1注册用户管理
系统中的角色分为图书管理员和借书人,这两个角色都是系统的使用者。
借书人在使用系统前首先需要注册,注册成功后方能登录进入系统,登陆成功后可以修改用户信息。
功能实现如图1-1所示。
图1-1
1.3.2图书信息管理
系统管理的主要对象就是图书,使用图书管理员账户登录系统成功后,可以从txt添加书籍、直接添加、删除和修改图书信息。
功能实现如图1-2所示。
图1-2
1.3.3图书借阅管理
图书借阅管理是图书管理系统的核心,主要包括借书、还书、借阅预定和借阅信息查询。
功能实现如图1-3所示。
图1-3
1.3.4图书管理员管理
图书管理员登录系统后,可以查看所有图书的详细信息,根据图书查看所有与之相关的借阅信息和全部注册列表。
功能实现如图1-4所示。
图1-4
1.3.5聊天测试管理
此系统实现简单的聊天测试。
功能实现如图1-5所示。
图1-5
1.4数据库设计
为系统规模和以后对于网络的支持,采用MicrosoftSQLServer2005数据库服务器,新建名为“library”的数据库。
各个数据表的字段定义和说明如图1-1所示。
●users(用户信息表),存放注册用户的基本信息,如图1-5。
图1-6
●books(图书信息表),存放所有图书的基本信息,如图1-6。
图1-7
●bookbrowse(图书借阅信息表),存放图书的借阅信息,如图1-7。
图1-8
2.具体功能
2.1注册用户管理
系统管理员首先登录系统,进行添加用户、修改用户、删除用户。
系统管理员进行添加、修改用户时,可以有三个级别的权限选择:
a.系统管理员权限(对应的级别是1),可以进行一切操作;b.用户权限(对应的级别是2),可以进行借书;c.图书管理员权限(对应的级别是3),对借书者进行还书管理。
图2-1-1用户登录窗口图2-1-2系统管理员添加用户窗口
图2-1-3系统管理员修改用户窗口2-1-4系统管理员删除用户窗口
2.1图书信息管理
系统管理员登录系统成功后,可以从txt添加书籍、直接添加、删除和修改图书信息。
2-2-1从txt添加书籍窗口2-2-2添加书籍窗口
2-2-3修改书籍窗口2-2-4删除书籍窗口
2.2图书借阅管理
用户登录系统后,通过图书借阅管理可以借书、修改借阅信息、还书、还书信息修改。
2-2-1借书窗口2-2-2借书信息修改窗口
2-2-3还书窗口2-2-4还书信息修改窗口
2.3图书管理员管理
图书管理员登录系统后,可以查看所有图书的详细信息,根据图书查看所有与之相关的借阅信息和全部注册列表。
2-3-1书籍列表
图2-3-2借书列表
图2-3-3用户列表
2.4聊天测试管理
为了让用户在登录系统客户端时能够和其他系统管理员或其他用户聊天,以确保自己的信息正确,如果有错误,及时与系统管理员联系,进行更正。
图2-4-1聊天测试窗口
3.设计与实现
3.1类的设计(继承、多态、数据结构)
核心类有:
AddChatQQ、AddTxtfrbook、Addbookfrm、Adduser、Booklistfrm、BorMsgbookfrm、Borbookfrm、Borlistbookfrm、Delbookfrm、Librarybox、Mdibookfrm、Returnbookfrm、Userlistfrm、ReturnMsgbookfrm、Readme均继承JFrame实现接口ActionListener;
Mdiuser、Deluser、Loginfrm均继承Dialog实现接口ActionListener;
Netconn;Library.
其中,类AddTxtfrbook(添加新用户)、Mdiuser(修改用户信息)、Addbookfrm(插入新图书信息)、AddTxtfrbook(从Txt插入新图书信息)、Mdibookfrm(修改图书信息)是整个系统中数据信息的核心,属于基本数据维护功能。
类Borbookfrm(借阅图书信息)是系统中业务逻辑的实现,通过在bookbrowse表中插入一条新纪录的方式实现了借书信息保存,通过修改借书信息所对应的数据记录中的还书字段实现了还书的业务操作,属于基本业务功能。
类Borlistbookfrm(查询图书详细信息)主要负责通过各种查询条件的组合查询找到对应信息,属于查询功能。
类Loginfrm(用户登录)通过接收用户登录信息来验证用户的合法性,属于安全使用管理功能。
(代码见附录对应的java文件)
3.2JavaIO(文件访问)
本系统文件访问是在txt文件中写入要录入系统的书籍信息,然后把txt文件通过JavaIO机制读入SQLserver数据库。
截图如3-2-1,3-2-2。
核心代码:
try{
BufferedReaderbr=newBufferedReader(newFileReader("booklist.txt"));
Strings=br.readLine();
while(s!
=null){
String[]ss=s.split(",");
Stringsqla="INSERTINTObooks(bookname,company,author,pressdata,price,conun,beizhu)VALUES("+"'"+ss[0]+"','"+ss[1]+"','"+ss[2]+"','"+ss[3]+"','"+ss[4]+"','"+ss[5]+"','"+ss[6]+"')";
System.out.println(sqla);
if(db.executeNonQurty(sqla)==-1)
l_sur.setText("数据插入失败");
l_sur.setText("书籍添加成功");
System.out.println("从文件插入成功!
");
s=br.readLine();
}
}catch(IOExceptione){
e.printStackTrace();
}
图3-2-1录入系统的书本信息booklist.txt
图3-2-2从txt读入数据库后,数据库中的信息
3.3JDBC(数据库访问:
桥接)
本系统数据库是通过桥接的方式连接,用了4个核心类:
●DriverManager:
注册并跟踪可用的驱动程序,同时在数据库和相应的驱动程序之间建立连接;
●Connection:
Connection对象代表与数据库的连接。
调用DriverManager类的getConnection()方法将返回一个Connection对象;
●Statement:
Statement对象是由Connection类的createStatement()方法创建,用于将SQL语句发送给数据库;
●ResultSet:
ResultSet类提供数据结果及的访问机制。
核心代码如下:
Connectioncon;
Statementsql;
publicStatementconnect()
{
try
{//载入驱动程序字符串
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundExceptione1){}
try
{
//通过JDBCURL得到Connetction对象
con=DriverManager.getConnection("jdbc:
odbc:
library","","");
//通过Connection对象创建Statement对象
sql=con.createStatement();
}
catch(SQLExceptione2){}
returnsql;
}
数据库截图如下:
图3-3-1books表
图3-3-2bookbrowse表
图3-3-3users表
3.4Socket+Multi-Thread
本系统用到了Socket编程,在本系统的客户端,点击聊天测试,用户可以和系统管理员进行对话。
以下是方法Client和Server的核心代码:
classServerextendsThread{
publicvoidrun(){
try{
j1.setEnabled(false);
jf3.setText("正在连接中@");
ss=newServerSocket(4000);
s1=ss.accept();
br=newBufferedReader(newInputStreamReader(s1.getInputStream()));
pw=newPrintWriter(s1.getOutputStream(),true);
while(true){
if(ss.isBound()==true){
jf3.setText("连接成功");
j2.setEnabled(true);
j3.setEnabled(true);
break;
}
}while(true){
input=br.readLine();
if(input.length()>0){
ja.append(input);}
}
}catch(Exceptione){}
}
}
classClientextendsThread{
publicvoidrun(){
try{
j1.setEnabled(false);
jf3.setText("正在连接中@");
s2=newSocket(InetAddress.getByName(jf1.getText()),4000);br=newBufferedReader(newInputStreamReader(s2.getInputStream()));
pw=newPrintWriter(s2.getOutputStream(),true);
while(true){
if(s2.isConnected()==true){
jf3.setText("连接成功");
j2.setEnabled(true);
j3.setEnabled(true);
break;
}
}
input="";
while(true){
input=br.readLine();
if(input.length()>0)
{
ja.append(input);
}
}
}catch(Exceptione){}
}
}
}
服务端和客户端截图如下:
3.5GUI(用户界面)
本系统用了awt和swing组件进行GuI的开发。
JFrame(Strings):
用于创建一个有标题窗口
get/setState(chars):
用于设置为窗口标题。
get/setState():
获取/设置帧的最小化、最大化等状态。
is/setVisible(booleanb):
获取/设置帧的可视状态,默认为不可见。
get/setLocation(inta,intb):
获取/设置帧在屏幕上应当出现的位置。
get/setSize(intwidth,intheight):
获取/设置帧的大小。
setDefaultCloseOperation(intoperation);设单击关闭图标后的响应,operation可取下值
HIDE_ON_CLOSE隐藏当前窗口
DISPOSE_ON_CLOSE隐藏当前窗口,并彩旗窗体占有的其他资源
EXIT_ON_CLOSE结束窗体所在应用程序
部分截图见上文,部分截图如下,
图3-5-1主界面
图3-5-2修改书籍成功
4.总结:
本系统采用图形化的界面为图书馆工作人员提供管理服务,耗费了很多时间和精力,但是很值得;对于系统中的用户预定图书功能尚未实现,聊天功能的实现有些勉强,对Statement类和preparedStatement类的选择也有些问题。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 作业