java图书管理系统代码Word格式.docx
《java图书管理系统代码Word格式.docx》由会员分享,可在线阅读,更多相关《java图书管理系统代码Word格式.docx(49页珍藏版)》请在冰点文库上搜索。
3、开发和运行环境介绍
开发语言:
前台开发语言为java,后台数据库为SQLserver2000
运行环境:
eclipse
Eclipse是着名的跨平台的自有(IDE)。
最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。
Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。
许多软件开发商以Eclipse为框架开发自己的IDE。
4、需求分析
4.1系统需求描述
实现管理员对用户的增删改查,对图书信息增删查改、图书借阅信息的修改以,实现用户对图书的查找、借阅、续借、归还以及修改密码。
4.2系统功能结构图
图1图书管理系统系统流程图
4.3系统E-R图
图2用户实体图
图3书籍实体图
图4实体属性图
4.5数据库表结构
表1图书信息表
字段名称
字段类型
长度
是否为空
备注
图书编号
数字
4
否
主键
书名
出版社
文本
50
编着者
出版日期
时间
单价
库存数量
出版书号
表2用户借阅表
数据类型
读者号
姓名
借书日期
8
还书日期
借阅图书编号
表3用户信息表
用户编号
用户名
用户密码
身份
5.系统设计与实现
5.1模块功能描述
.在整个图书管理系统中读者用户登录系统的设计,主要包括如下功能:
连接远程数据库:
首先建立连接,然后配置数据源。
整个界面的设计:
主框架,点击按钮分别触发事件。
用户登录:
管理员,图书馆工作人员,普通用户分别实现进入自己的界面。
.在整个图书管理系统中管理员用户管理子系统的设计,主要包括如下功能:
用户添加:
用于添加用户信息。
用户信息修改:
管理员可以修改用户所有信息,用户可以修改自己的密码。
用户删除:
用于删除用户信息。
包括按用户id和密码删除。
.在整个图书馆管理系统中图书管理子系统的设计,主要包括如下功能:
图书添加:
用于添加图书信息。
图书信息修改:
管理员可以修改图书所有信息。
图书删除:
用于删除图书信息。
包括按图书id删除。
.在整个图书馆管理系统中图书借阅管理子系统的设计,主要包括如下功能:
借阅图书:
用户借书。
续借:
通过改变归还日期来续借。
借阅信息显示:
管理员和工作人员可以查看所有用户借阅信息,普通用户只可以查看自己的借阅信息。
5.2软件实现
读者用户登录系统:
packagehehe;
import
@SuppressWarnings("
serial"
)
publicclass菜单1extendsFrameimplementsActionListener{
//TextAreata;
//文本区
MenuBarmb;
//MenuBar类封装绑定到框架的菜单栏的
MenumnLog,mnJy,mnFy,mnLy;
//从菜单栏部署的下拉式菜单组件
MenuItemmizhuce,milog,miExit,miyhzh,miyhxx;
//菜单中的所有项必须属于类MenuItem或其子类之一
MenuItemmifyshow,mifydelete,mifyinsert,mifymodify,milyshow,miyshow,mijyshow,mijyinsert,mijymodify;
public菜单1(){
super("
图书管理系统"
);
//调用父类构造方法
//ta=newTextArea("
"
20,20);
//新建文本区,第一个参数是默认文本,第二个参数是行数,第三个是列数
/*
*BorderLayout边框布局
*添加文本区到Frame,BorderLayout.CENTER是居中位置
**/
//add(ta,BorderLayout.CENTER);
mb=newMenuBar();
//创建菜单栏对象
*创建菜单,指定菜单名
mnLog=newMenu("
退出"
mnFy=newMenu("
读者信息管理"
mnJy=newMenu("
借阅管理"
mnLy=newMenu("
意见簿留言"
/*jLabel=newJLabel("
欢迎进入设备管理系统"
jLabel.setHorizontalAlignment(JLabel.CENTER);
jLabel.setForeground(Color.red);
*/
*创建子菜单,并指定名称
**/
miExit=newMenuItem("
miExit.addActionListener(this);
//为退出菜单添加监听
*添加上面创建的子菜单到文件菜单下
mnLog.add(miExit);
//将一个分隔线或连字符添加到菜单的当前位置
/*
*添加miBinary、miFont两个子菜单到mnFormat(格式)下
mifyshow=newMenuItem("
查看"
mifyshow.addActionListener(this);
mnFy.add(mifyshow);
milyshow=newMenuItem("
留言"
mnLy.add(milyshow);
milyshow.addActionListener(this);
miyshow=newMenuItem("
mnLy.add(miyshow);
miyshow.addActionListener(this);
mijyinsert=newMenuItem("
借书"
mijyinsert.addActionListener(this);
mnJy.add(mijyinsert);
*将文件、编辑、格式、帮助添加到菜单栏
mb.add(mnLog);
mb.add(mnJy);
mb.add(mnFy);
mb.add(mnLy);
setMenuBar(mb);
//添加菜单栏到Frame
*关闭窗口时,关闭运行成语
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
}
publicstaticvoidmain(Stringargs[]){
菜单1tm=new菜单1();
tm.setSize(700,500);
//设置窗体的宽、高
tm.setLocation(300,100);
//将组件移到新位置Component类方法
tm.setVisible(true);
//设置显示窗体,true为显示,false为隐藏
/**
*监听事件,实现ActionListener接口的actionPerformed方法
*/
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==miExit){
System.exit(0);
//停止运行程序
}
if(e.getSource()==mifyshow){
读者信息查询wo=new读者信息查询("
this.setVisible(true);
if(e.getSource()==mijyinsert){
读者借阅信息插入wo=new读者借阅信息插入("
if(e.getSource()==milyshow){
意见留言wo=new意见留言("
if(e.getSource()==miyshow){
留言查看wo=new留言查看("
}}
管理员用户登录:
登入界面系统:
import
publicclass登陆界面implementsActionListener{
publicJFramejf=newJFrame("
图书管理系统系统"
publicContainercon=jf.getContentPane();
publicToolkittoolkit=Toolkit.getDefaultToolkit();
//获取工具包
publicDimensionsc=toolkit.getScreenSize();
//getScreenSize(),最后的这个方法返回一个Dimension类型的对象.是返回当先分辨率的.
Objecta,b;
publicJRadioButtonrb1=newJRadioButton("
读者"
publicJRadioButtonrb2=newJRadioButton("
管理员"
publicButtonGroupgroup=newButtonGroup();
publicJLabelyong_hu=newJLabel("
用户名"
publicJLabelmi_ma=newJLabel("
密码"
publicJTextFieldtextName=newJTextField();
publicJPasswordFieldtextPs=newJPasswordField();
publicJButtondeng_ru=newJButton("
登陆"
publicJButtonqu_xiao=newJButton("
取消"
publicFontfont1=newFont("
宋体"
1,14);
publicFontfont2=newFont("
0,12);
public登陆界面(){
//con.setLayout(null);
//jf.setSize(sc.width/1,sc.height/2);
//大小
/*jf.setLocation(sc.width/5,sc.height/1010);
*//*publicvoidsetLocation(intx,
inty)将组件移到新位置。
通过此组件父级坐标空间中的x和y参数来指定新位置的左上角。
参数:
x-父级坐标空间中新位置左上角的x坐标y-父级坐标空间中新位置左上角的y坐标*/
con.setLayout(null);
group.add(rb1);
group.add(rb2);
deng_ru.addActionListener(this);
qu_xiao.addActionListener(this);
rb1.addActionListener(this);
rb2.addActionListener(this);
jf.setSize(/*sc.width/3*/500,sc.height/2);
jf.setLocation(sc.width/3,sc.height/4);
jf.setResizable(false);
yong_hu.setLocation(80,30);
//位置
yong_hu.setSize(100,100);
yong_hu.setFont(font1);
//设置字体
yong_hu.setForeground(Color.BLUE);
//设置颜色
rb1.setLocation(80,180);
rb1.setSize(65,20);
rb2.setLocation(250,180);
rb2.setSize(80,20);
mi_ma.setLocation(80,90);
mi_ma.setSize(100,100);
mi_ma.setForeground(Color.BLUE);
mi_ma.setFont(font1);
textName.setSize(140,20);
textName.setLocation(170,70);
textPs.setSize(140,20);
textPs.setLocation(170,130);
//textPs.setEchoChar('
*'
//返回※
deng_ru.setSize(90,25);
deng_ru.setLocation(80,220);
deng_ru.setFont(font2);
qu_xiao.setSize(90,25);
qu_xiao.setLocation(250,220);
qu_xiao.setFont(font2);
con.add(rb1);
con.add(rb2);
con.add(yong_hu);
con.add(mi_ma);
con.add(textName);
con.add(textPs);
con.add(deng_ru);
con.add(qu_xiao);
con.setBackground(Color.WHITE);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
publicvoidactionPerformed(ActionEvente)
{
Objectdx;
Connectioncon;
Statementsql;
ResultSetrs;
if(group.ge