图书管理系统Java设计报告
- 格式:doc
- 大小:1.84 MB
- 文档页数:22
图书管理系统java课程设计报告一、教学目标本课程旨在通过学习Java语言实现图书管理系统,使学生掌握Java编程的基本语法和面向对象编程思想,具备运用Java语言解决实际问题的能力。
具体目标如下:1.知识目标:–掌握Java基本语法和数据结构;–理解面向对象编程的基本概念和方法;–熟悉图书管理系统的业务流程和设计方法。
2.技能目标:–能够使用Java编写简单的程序;–能够运用面向对象编程思想进行程序设计;–能够独立完成图书管理系统的开发和调试。
3.情感态度价值观目标:–培养学生的团队合作意识和沟通能力;–培养学生的问题解决能力和创新精神;–培养学生的自主学习能力和持续进步意识。
二、教学内容本课程的教学内容主要包括Java基本语法、数据结构、面向对象编程思想和图书管理系统的设计与实现。
具体安排如下:1.Java基本语法:介绍Java语言的基本元素、运算符、控制结构等;2.数据结构:讲解数组、链表、栈和队列等基本数据结构的使用和实现;3.面向对象编程:讲解类和对象、继承和多态、封装等基本概念和应用;4.图书管理系统:介绍图书管理系统的业务需求、设计方法和实现技巧。
三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解基本概念、原理和方法,使学生掌握相关知识;2.案例分析法:通过分析实际案例,使学生理解图书管理系统的业务流程和设计方法;3.实验法:通过动手实践,使学生熟悉Java编程环境和开发工具,提高编程能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。
1.教材:选用权威、实用的Java编程教材,如《Java核心技术》等;2.参考书:提供相关的Java编程参考书籍,如《Java编程思想》等;3.多媒体资料:制作课件、视频等多媒体教学资料,以便学生随时复习和巩固知识;4.实验设备:提供计算机、网络等实验设备,确保学生能够进行实验和实践。
原创Java图书借阅管理系统课程设计报告1. 引言图书馆是一种重要的文化设施,它们为读者提供了方便的借阅服务。
然而,传统的图书馆管理方式存在一些问题,比如手动记录借还书籍的信息、借阅排队等。
为了解决这些问题,设计并实现一个自动化的图书借阅管理系统至关重要。
本报告将说明设计和实现一个基于Java的图书借阅管理系统的过程和结果。
2. 需求分析为了满足图书借阅管理系统的要求,我们首先需要明确系统的功能需求。
根据用户的需求和图书馆的实际情况,我们确定了以下功能: - 图书管理:管理员可以添加、删除和修改图书的信息。
包括图书的名称、作者和出版日期等。
- 借书管理:读者可以借阅图书,并且系统会记录借书人、借书日期和还书日期的信息。
- 还书管理:读者归还图书时,系统将更新图书的状态和归还日期。
- 统计分析:管理员可以根据需要生成图书借阅情况的统计报表,如每月借阅量统计、图书分类统计等。
3. 系统设计3.1 数据库设计为了存储图书和借阅信息,我们需要设计一个数据库。
在本系统中,我们使用MySQL数据库来存储数据。
数据库的设计包括以下几个表: - 书籍表:存储图书的信息,如书名、作者、出版日期等。
- 读者表:存储读者的信息,如姓名、年龄、联系方式等。
- 借阅表:存储借阅信息,包括借阅人、书籍编号、借书日期、还书日期等。
3.2 系统架构设计系统的架构设计包括前端和后端两部分。
前端使用Java Swing来实现图形化界面,包括登录界面、管理员界面和读者界面。
后端使用Java编程语言来实现系统的各项功能,包括图书的增删改查、借阅和归还等操作。
4. 系统实现4.1 前端实现前端使用Java Swing来实现界面的设计和交互逻辑。
通过登录界面,管理员和读者可以登录到系统。
管理员可以进行图书管理和借阅管理,读者可以进行借阅和归还操作。
界面友好、操作简单,提供了良好的用户体验。
4.2 后端实现后端使用Java编程语言来实现系统的各项功能。
大学信息工程学院《Java实训》报告题目:图书管理系统班级:网络(1)班:辉学号:1003023352011年12 月22日摘要随着信息技术的发展,计算机已被广泛的应用于社会的各个领域,成为推动社会发展的技术动力。
而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。
软件产业已成为社会信息化进程中的一个战略性产业。
在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。
不断开发适应用户需求、市场需要的新型软件产品。
尤其是在校园里,各种软件的应用无处不在,为我们的学习和生活提供了方便。
学校的图书馆不仅给我们提供看书学习的地方,还给我们提供了一套功能齐全的图书馆系统,方便我们搜索书籍、借阅图书。
我们本次的Java课程设计的最终目标是实现一个图书馆管理系统,使其具有一般图书管理系统所具有的功能,可以实现管理员日志、管理员添加、管理员退出、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、书籍借阅与归还等功能。
因为Java是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,所以用Java 编程为我们本次程序的编写提供了方便。
在设计中我们主要进行了数据库及类的设计,把整系统分成了15个类和5个表。
通过应用awt、swing、sql、util等包,合理的添加了按钮、菜单、文本框、文本区、表格等组件类,还包含窗口、面板等容器类,经过设计者合理的布局,完成了窗体的设计,并通过建立JDBC-ODBC桥接器连接到Access数据库后,向数据库发送SQL语句实现程序与数据库中表间的消息通信,从而实现了相应的图书馆管理系统的功能。
本文主要分为绪论、系统功能介绍、数据库需求分析、系统功能实现、结论、致、参考文献7大块。
在绪论中介绍了本次课设选题的缘由及思想。
系统功能介绍中详细介绍了本图书管理系统的整体思想及其具体功能。
Java图书管理系统设计报告简介Java图书管理系统是一款用于管理图书馆借阅业务的应用程序。
该系统旨在简化图书馆的图书借阅和归还流程,提高图书馆的运作效率。
本文将对Java图书管理系统的设计进行详细介绍。
功能需求Java图书管理系统需要满足以下功能需求: 1. 用户注册和登录:用户可以注册新账号并通过账号密码登录系统。
2. 图书查询和展示:用户可以通过关键词搜索图书,并查看图书的详细信息和可借数量。
3. 图书借阅和归还:用户可以借阅图书,系统将相应图书的可借数量减少;用户还书时,系统将相应图书的可借数量增加。
4. 图书推荐:系统可以根据用户的借阅记录和兴趣,推荐适合用户的图书。
5. 借阅历史查询:用户可以查看自己的借阅历史记录。
系统设计数据库设计系统需要设计以下表格来存储数据: - 用户表(User):存储用户的账号、密码、姓名等信息。
- 图书表(Book):存储图书的信息,包括图书名称、作者、数量等。
- 借阅表(Borrow):存储用户的借阅记录,包括用户ID、图书ID、借阅日期等信息。
系统架构Java图书管理系统采用分层架构,包括以下几个层次: 1. 表现层(Presentation Layer):负责与用户进行交互,接收用户的输入和显示系统的输出。
2. 业务逻辑层(Business Logic Layer):处理具体的业务逻辑,例如用户登录、图书管理、借阅归还等。
3. 数据访问层(Data Access Layer):负责与数据库进行交互,包括插入、查询和更新数据的操作。
类设计系统设计需要定义以下几个类: 1. User类:表示用户,包括用户的账号、密码、姓名等属性。
2. Book类:表示图书,包括图书的名称、作者、数量等属性。
3. Borrow类:表示借阅记录,包括用户ID、图书ID、借阅日期等属性。
4. UserService类:处理与用户相关的逻辑,例如用户注册、登录等。
湖南科技学院2012年 6月目录课题说明 (3)程序设计思路 (4)程序状态转换图 (4)数据库设计 (5)程序部分源代码 (6)Login.java登录类 (6)QueryBook.java 查找修改书籍类 (10)BookIn.java图书入库类 (17)RemoveBook.java 图书删除类 (22)Book.java 主界面类 (29)ConnectMysql.java数据库连接类 (33)程序测试 (34)登录 (34)主界面 (34)图书查询修改界面 (35)图书入库界面 (36)图书删除界面 (37)图书概览界面 (37)修改密码界面 (38)学生信息查询界面 (38)设计总结 (39)前期准备 (39)编程实现 (39)经验体会 (39)参考文献 (40)课题说明1、设计一个图书信息管理系统2、图书信息包括图书编号、书名、作者、出版社、出版日期、图书简介及图书类别等。
3、本系统功能描述:图书信息录入功能;图书信息浏览功能;查询功能(至少一种查询方式);图书信息修改功能;及其它你认为必要的功能。
程序设计思路程序较小,分为七个个模块,分别实现:登录,图书查询修改,图书入库,图书修改,图书概览,修改密码,学生信息查询。
程序通过登录模块登录后可以通过点击相应按钮使用其余六个模块的功能,从而实现图书管理员。
程序状态转换图Login.java通过ConnectMysql.连java接数据库登录取消确定,修改QueryBook.java 借书者信息StudenInfo.java通过通过ConnectMysql.java取消ConnectMysql.java 连接数据tpl库登录系统连接数据tpl库打开图书查询修改界打开学生查询界面面图书查询修改确定,修改学生信息查询修改确定,取消BookIn.java Login.java UpdateMima.java 通过通过通过ConnectMysql.java 图书入库ConnectMysql.java修改密码ConnectMysql.java连接数据tpl库连接数据tpl库连接数据tpl库打开图书入库界面打开程序主界面打开修改密码界面确定,取消借阅图书删除RemoveBook.java BookBrower.java通过图书概览通过ConnectMysql.java ConnectMysql.java连接数据tpl库连接数据tpl库打开图书删除界面取消打开图书概览界面查询,删除确定,返回数据库设计数据库类型为 MySQL Server 5.5数据库名称为 tpl下图为表结构程序部分源代码由于源代码较多,故只写出部分源代码Login.java登录类import java.awt.event.*;import javax.swing.*;import java.awt.*;import java.sql.*;@SuppressWarnings ( "serial" )class Login extends JFrame implements ActionListener// 登录窗口类{ // 定义各容器和组件Container cp=null ;JFrame f =null ;JButton j1 , j2 ;JTextField t1 ;JPasswordField t2 ;JLabel jlable1 , jlable2 ;Color c;JPanel jp1 , jp2 ;//构造函数Login(){//创建各对象f =new JFrame( " 小型图书管理系统 " );j1=new JButton("确定");j2=new JButton("取消");cp =f .getContentPane();jlable1 =new JLabel( "输入用户名" );jlable2 =new JLabel( "用户密码" );// 重构 painComponent 函数实现 JPanel 添加背景jp1 =new JPanel(){public void paintComponent(Graphics g) {super .paintComponent(g);ImageIcon img =new ImageIcon( "1.jpg" );g.drawImage(img.getImage(), 0, 0,null );}};jp2 =new JPanel();t1 =new JTextField(18);t2 =new JPasswordField(18);//将各组件加入相应的容器jp1 .add( jlable1 );jp1 .add( t1 );jp1 .add( jlable2 );jp1 .add( t2 );JLabel JL=new JLabel( " 欢迎登陆 " ,SwingConstants.CENTER);cp.add(JL, "North" );jp2 .add( j1 );jp2 .add( j2 );cp.add( jp1 , "Center" );cp.add( "South" , jp2 );jp1 .setBackground(new Color(255,153,255));Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen. width ;/* 取得显示器窗口的宽度*/int y=screen. height ;/* 取得显示器窗口的高度*///setSize(x,y); /*让系统窗口平铺整个显示器窗口*/f .setSize(300,300);int xcenter=(x-300)/2;int ycenter=(y-300)/2;f .setLocation(xcenter,ycenter);/* 显示在窗口中央*/f .setVisible(true );//-----------------------------------------------------j1 .addActionListener(this ); // 注册事件监听器j2 .addActionListener(this );f .addWindowListener(new WindowAdapter(){//关闭窗口函数public void windowClosing(WindowEvent e){System.exit (0);}});}@SuppressWarnings ( "deprecation" )public void confirm() // 验证用户和密码是否存在{try { ConnectMysql a=new ConnectMysql();Connection con=a.Connecting();Statement sql=con.createStatement();String uName=t1 .getText().trim();String password=t2 .getText().trim();String queryMima="select * from user where用户名='" +uName+"' and密码='" +password+ "'" ;ResultSet rs=sql.executeQuery(queryMima);if (rs.next()){new Book(uName);f.hide();con.close();}else {JOptionPane.showMessageDialog( null , "该用户不存在" , " 提示! " ,JOptionPane.YES_NO_OPTION);}t1.setText("");t2.setText("");}catch (SQLException g){System.out .println("E Code" +g.getErrorCode());System.out .println("E M" +g.getMessage());}}//响应监听的不同事件public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if (cmd.equals(" 确定 " )){confirm();}else if (cmd.equals(" 取消 " )){f .dispose();}}@SuppressWarnings ( "unused" )public static void main(String []arg){Login a=new Login();}}QueryBook.java 查找修改书籍类import java.awt.event.*;import javax.swing.*;import java.awt.*;import java.sql.*;class QueryBook implements ActionListener// 查询修改书籍信息窗口类{//定义容器和组件JFrame f3 ;Container cp;JPanel jp1 , jp2 , jp3 , jp4 , jp , jpanelWest ;JButton jbt1 , jbt2 , jbt3 , jbt4 ; // 按钮,确定、取消、修改、借书者信息JLabel label ;// 标签:请输入图书号JTextField tf , tf1 , tf2 , tf3 , tf4 , tf5 , tf6 , tf7 , tf8 ;// 定义文本框JLabel label1 , label2 , label3 , label4 ;QueryBook(){f3 =new JFrame();cp=f3 .getContentPane();//初始化面板、按钮、标签、文本框jp1 =new JPanel();jp2 =new JPanel();jp3 =new JPanel();jp4 =new JPanel();jpanelWest=new JPanel();jp =new JPanel();//------------------------------------------------jbt1=new JButton("确定");jbt2=new JButton("取消");jbt3=new JButton("修改");jbt4=new JButton(" 借书者信息 " );label=new JLabel(" 请输入图书号: " ,SwingConstants. CENTER); label.setForeground(Color.blue );tf=new JTextField(20);tf1=new JTextField(20);tf2=new JTextField(20);tf3=new JTextField(20);tf4=new JTextField(20);tf5=new JTextField(20);tf6=new JTextField(20);tf7=new JTextField(20);tf8=new JTextField(20);//布局 , 添加控件JPanel jpanel=new JPanel();jpanel.add(label);jpanel.add(tf );JPanel pp4=new JPanel();JPanel jpane4=new JPanel();cp.add(jpanel,"North" );JPanel pp2=new JPanel(new GridLayout(8,1));JPanel pp3=new JPanel();pp4.setLayout(new GridLayout(8,1));pp4.add(new JLabel(" 图书名 " ,SwingConstants.CENTER)); pp2.add(tf1);pp4.add(new JLabel(" 图书号 " ,SwingConstants.CENTER)); pp2.add(tf2);pp4.add(new JLabel(" 单价 " ,SwingConstants.));CENTERpp2.add(tf3);pp4.add(new JLabel(" 作者 " ,SwingConstants.CENTER)); pp2.add(tf4);pp4.add(new JLabel(" 出版社 " ,SwingConstants.));CENTERpp2.add(tf5);pp4.add(new JLabel(" 入库时间 " ,SwingConstants.CENTER)); pp2.add(tf6);pp4.add(new JLabel(" 是否被借 " ,SwingConstants.CENTER)); pp2.add(tf7);pp4.add(new JLabel(" 借书者学号 " ,SwingConstants.));CENTER pp2.add( tf8 );//将按钮加入 pp3中pp3.add( jbt1 ); // 按钮确定pp3.add( jbt2 ); // 按钮取消pp3.add( jbt3 ); // 按钮修改pp3.add( jbt4 ); // 按钮借书者信息cp.add(pp4, "West" );cp.add(pp2, "Center" );cp.add(pp3, "South" );cp.add(jpane4, "East" );//------------------------------------------------Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen. width ;/* 取得显示器窗口的宽度*/int y=screen. height ;/* 取得显示器窗口的高度*/f3 .setSize(350,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f3 .setLocation(xcenter,ycenter);/* 显示在窗口中央*/f3 .setVisible(true );//-------------------------------------------------jbt1 .addActionListener(this ); // 注册监听器jbt2 .addActionListener(this );jbt3 .addActionListener(this );jbt4 .addActionListener(this );}//------------------------------------------------public void showRecord(){try { ConnectMysql a=new ConnectMysql();Connection con=a.Connecting();Statement sql;String ql=tf .getText().trim();String s="select * from book where图书号='"+ql + "'" ;sql=con.createStatement();ResultSet rs=sql.executeQuery(s);if (rs.next()){String bname=rs.getString(1);String bno=rs.getString(2);String price=rs.getString(3);String writer=rs.getString(4);String publish=rs.getString(5);String indate=rs.getString(6);String isBorrowed=rs.getString(7);String borrowedName=rs.getString(8);tf1 .setText(bname);tf2 .setText(bno);tf3 .setText(price);tf4 .setText(writer);tf5 .setText(publish);tf6 .setText(indate);tf7 .setText(isBorrowed);tf8 .setText(borrowedName);}else{JOptionPane.showMessageDialog( null , "您输入的图书号不存在,请重新输入" , " 输入错误 " , JOptionPane.YES_NO_OPTION);}con.close();}catch (SQLException g){System.out .println("E Code" +g.getErrorCode());System.out .println("E M" +g.getMessage());}tf1.setEditable(true);tf2.setEditable(true);tf3.setEditable(true);tf4.setEditable(true);tf5.setEditable(true);tf6.setEditable(true);tf7.setEditable(true);tf8.setEditable(true);}public void fixRecord(){try { ConnectMysql a=new ConnectMysql();Connection con=a.Connecting();Statement sql;String s="update book set图书名='" +tf1 .getText()+"',图书号='" +tf2 .getText()+"',单价 ='" +tf3 .getText()+ "', 作者 ='" +tf4 .getText()+ "', 出版社 ='" +tf5 .getText()+ "', 入库时间='"+tf6 .getText()+ "', 是否被借 ='" +tf7 .getText()+ "', 借书者学号 ='" +tf8 .getText()+ "' where 图书号 ='"+tf2 .getText()+ "'" ;sql=con.createStatement();int fix=sql.executeUpdate(s);if (fix==1){JOptionPane.showMessageDialog( null , "修改成功!" ," 信息 " , RMATION_MESSAGE);}con.close();}catch (SQLException g){System.out .println("E Code" +g.getErrorCode());System.out .println("E M" +g.getMessage());}}public void ShowStuRecord(){StudentInfo Info=new StudentInfo();Info. tf .setText( tf8 .getText());Info.showRecord();}@SuppressWarnings ( "deprecation" ) public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if (cmd.equals(" 确定 " )){showRecord();tf .setText( "" );}if (cmd.equals(" 修改 " )){fixRecord();}if (cmd.equals( " 借书者信息" )){ShowStuRecord();}if (cmd.equals(" 取消 " ))f3 .hide();}@SuppressWarnings ( "unused" )public static void main(String []arg){ QueryBook a=new QueryBook();}}BookIn.java图书入库类import java.awt.event.*;import javax.swing.*;import java.awt.*;import java.sql.*;//extends JFrameclass BookIn implements ActionListener// 图书入库类{JFrame f3 ;Container cp;JPanel jp1 , jp2 , jp3, jp4 , jp , jpanelWest ;JButton jbt1, jbt2; // 按钮 : 确定、取消、JLabel label;//标签JTextField tf1, tf2, tf3 , tf4 , tf5 , tf6 , tf7 , tf8 ;// 定义文本框JLabel label1 , label2 , label3 , label4 ;String sno;BookIn(){f3 =new JFrame();cp=f3 .getContentPane();//初始化面板、按钮、标签、文本框jp1 =new JPanel();jp2 =new JPanel();jp3 =new JPanel();jp4 =new JPanel();jpanelWest=new JPanel();jp =new JPanel();//------------------------------------------------jbt1 =new JButton(" 确定 " );jbt2 =new JButton(" 取消 " );//------------------------------------------------label =new JLabel( " 图书入库 " ,SwingConstants.CENTER); label .setForeground(Color.blue );//------------------------------------------------tf1 =new JTextField(20);tf2 =new JTextField(20);tf3 =new JTextField(20);tf4 =new JTextField(20);tf5 =new JTextField(20);tf6 =new JTextField(20);tf7 =new JTextField(20);tf8 =new JTextField(20);//------------------------------------------------//布局 , 添加控件jp1 .add( jbt1 );jp1 .add( jbt2 );sno =tf4 .getText();jp1 .add( new JLabel( " 您好 " +sno+" 欢迎登陆学生信息系统" )); JPanel jpanel=new JPanel();jpanel.add( label );JPanel pp4=new JPanel();JPanel jpane4=new JPanel();cp.add(jpanel,"North" );JPanel pp2= new JPanel(new GridLayout(8,1));JPanel pp3=new JPanel();pp4.setLayout(new GridLayout(8,1));pp4.add( new JLabel( " 图书名 " ,SwingConstants.CENTER));pp2.add(tf1);pp4.add(new JLabel(" 图书号 " ,SwingConstants.CENTER));pp2.add(tf2);pp4.add(new JLabel(" 单价 " ,SwingConstants.));CENTERpp2.add(tf3);pp4.add(new JLabel(" 作者 " ,SwingConstants.CENTER));pp2.add(tf4);pp4.add( new JLabel( " 出版社 " ,SwingConstants.CENTER));pp2.add( tf5 );pp4.add( new JLabel( " 入库时间 " ,SwingConstants.CENTER)); pp2.add( tf6 );pp4.add( new JLabel( " 是否被借 " ,SwingConstants.CENTER)); pp2.add( tf7 );pp4.add( new JLabel( " 借书者学号 " ,SwingConstants.CENTER)); pp2.add( tf8 );pp3.add( jbt1 );pp3.add( jbt2 );cp .add(pp4, "West" );cp .add(pp2, "Center" );cp .add(pp3, "South" );cp .add(jpane4, "East" );//------------------------------------------------Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen. width ;/* 取得显示器窗口的宽度*/int y=screen. height ;/* 取得显示器窗口的高度*/f3 .setSize(350,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f3.setLocation(xcenter,ycenter);/* 显示在窗口中央 */f3.setVisible(true );//-------------------------------------------------jbt1.addActionListener(this);// 注册监听器jbt2.addActionListener(this);}//------------------------------------------------public void insertRecord(){if ( tf1 .getText().equals("" )|| tf2 .getText().equals("" )|| tf3 .getText().equals("" )|| tf4 .getText().equals("" )|| tf5 .getText().equals("" )|| tf6 .getText().equals("" )) {JOptionPane.showMessageDialog( f3 , "请填写图书资料" );return ;}try { ConnectMysql a=new ConnectMysql();Connection con=a.Connecting();Statement sql;String s="insert into book values('"+tf1 .getText()+ "','"+tf2 .getText()+ "','"+ tf3 .getText()+ "','" +tf4 .getText()+ "','" +tf5 .getText()+ "','" +tf6 .getText()+ "','" +tf7 .getText()+ "','"//查询输入的图书号是否在数据库中存在String query="select * from book where图书号='" +tf2 .getText()+"'" ; sql=con.createStatement();ResultSet rs=sql.executeQuery(query);// 返回查询结果集boolean moreRecords=rs.next();// 判断结果集是否有数据if (moreRecords){JOptionPane.showMessageDialog( f3 , "图书号已经被使用,请重新输入" ); con.close();tf2 .setText( "" );return ;}int insert=sql.executeUpdate(s);if (insert==1){JOptionPane.showMessageDialog( null , "图书信息录入成功!" );tf1.setText("");tf2.setText("");tf3.setText("");tf4.setText("");tf5.setText("");tf6.setText("");tf7.setText("");tf8.setText("");}}catch(SQLException g){System.out .println("E Code" +g.getErrorCode());System.out .println("E M" +g.getMessage());}}@SuppressWarnings ( "deprecation")public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if (cmd.equals(" 确定 " )){insertRecord();}else if (cmd.equals(" 取消 " ))f3 .hide();}@SuppressWarnings ( "unused" )public static void main(String []arg){BookIn a=new BookIn();}}RemoveBook.java 图书删除类import java.awt.event.*;import javax.swing.*;import java.awt.*;import java.sql.*;class RemoveBook implements ActionListener// 图书删除类{JFrame f ;Container cp;JPanel jpS , jpanelWest ;JButton jbt1 , jbt2 , jbt3 , jbt4 ; // 按钮,查询、取消、修改JLabel label , L;// 标签:请输入学号JTextField tf ;// 定义文本框JTable table ; // 用来接收数据库中返回的信息Object columnName[]={ " 图书名 " , " 图书号 " , " 单价 " , " 作者 " , " 出版社 " , " 入库时间 " , " 是否被借 " , "借书者学号"};Object ar [][] =new Object[80][8];String sno;String count ="xx" ;@SuppressWarnings ( "unused" )RemoveBook(){f =new JFrame();cp=f .getContentPane(); // 初始化面板、按钮、标签、文本框 jpS=new JPanel();jpanelWest=new JPanel();//------------------------------------------------jbt1=new JButton("查询");jbt2=new JButton("取消");jbt3=new JButton("删除");jbt4=new JButton("修改");//------------------------------------------------label =new JLabel( " 请输入要删除的图书名:" ,SwingConstants.CENTER);label .setForeground(Color.blue );L=new JLabel( " 该种图书共有" +count +" 本 " );//------------------------------------------------table =new JTable( ar , columnName); //ar存放表中的数据,columnname表示列名JScrollPane scrollpane =new JScrollPane(table );//------------------------------------------------tf =new JTextField(18);//------------------------------------------------//布局 , 添加控件jpS .add( jbt1 );jpS .add( jbt2 );jpS .add( jbt3 );jpS .add( jbt4 );JPanel jpanel=new JPanel();jpanel.add(label );jpanel.add(tf);JPanel pp4=new JPanel();JPanel jpE=new JPanel();cp.add(jpanel,"North" );JPanel jp=new JPanel();JPanel p= new JPanel(); // 用来放两个表p.setLayout(new BorderLayout());p.add( L, "North" );p.add(scrollpane);cp.add(pp4, "West" );cp.add(p, "Center" );cp.add( jpS , "South" );cp.add(jpE, "East" );//------------------------------------------------Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize();int x=screen. width ;/* 取得显示器窗口的宽度*/ int y=screen. height ;/* 取得显示器窗口的高度*/f .setSize(400,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f .setLocation(xcenter,ycenter);/* 显示在窗口中央*/f .setVisible(true );//-------------------------------------------------jbt1.addActionListener(this); // 注册监听器jbt2.addActionListener(this);jbt3.addActionListener(this);jbt4.addActionListener(this);}int i=0;public void showRecord(String ql){while( i >=0){ar [i ][0]="";ar [i ][1]="";ar [i ][2]="";ar [i ][3]="";ar [i ][4]="";ar [i ][5]="";ar [i ][6]="";ar [i ][7]="";i--;}i =0;try{ ConnectMysql a= new ConnectMysql();Connection con=a.Connecting();Statement sql;String s="select * from book where图书名 ='" +ql+ "'" ;sql=con.createStatement();ResultSet rs=sql.executeQuery(s);while (rs.next()){String bname=rs.getString(1);String bno=rs.getString(2);String price=rs.getString(3);String writer=rs.getString(4);String publish=rs.getString(5);String indate=rs.getString(6);String isBorrowed=rs.getString(7);String borrowedName=rs.getString(8);ar [ i ][0]=bname;ar [ i ][1]=bno;ar [ i ][2]=price;ar [ i ][3]=writer;ar [ i ][4]=publish;ar [ i ][5]=indate;ar [ i ][6]=isBorrowed;ar [ i ][7]=borrowedName;i ++;}count ="" +i +"" ;L.setText( " 该种图书共有" +count +" 本 " );f .repaint();con.close();System.out .println(ar [0][1]);}catch (SQLException g){System.out .println("E Code" +g.getErrorCode());System.out .println("E M" +g.getMessage());}}public void deleteRecord( int index){try { ConnectMysql a=new ConnectMysql();Connection con=a.Connecting();Statement sql;String ql=(String)(ar [index][1]);String s="delete from book where图书号='" +ql+ "'" ;sql=con.createStatement();int del=sql.executeUpdate(s);if (del==1){JOptionPane.showMessageDialog( null , "删除成功!" ," 信息 " , JOptionPane.INFORMATION_MESSAGE);}con.close();f.repaint();}catch (SQLException g){System.out .println("E Code" +g.getErrorCode());System.out .println("E M" +g.getMessage());}}@SuppressWarnings ( "unused" )public void fixRecord( int index){try { ConnectMysql a=new ConnectMysql();Connection con=a.Connecting();Statement sql;String ql=(String)(ar [index][1]);String s="update book set图书名='" +(String)(ar [index][0])+"',图书号word 资料='"+(String)(ar [index][3])+"',出版社 ='" +(String)(ar [index][4])+"', 入库时间='"+(String)(ar [index][5])+"',是否被借 ='" +(String)(ar [index][6])+"',借书者学号='"+(String)(ar [index][7])+"' where图书号 ='" +(String)( ar [index][1])+"'" ;sql=con.createStatement();int fix=sql.executeUpdate(s);if (fix==1){JOptionPane.showMessageDialog( null , "修改成功!具体还没实现" ," 信息 " , JOptionPane.YES_NO_OPTION);}con.close();f.repaint();}catch (SQLException g){System.out .println("E Code" +g.getErrorCode());System.out .println("E M" +g.getMessage());}}@SuppressWarnings ({ "unused" , "deprecation"})public void actionPerformed(ActionEvent e){String remember="" ;String ql="" ;String cmd=e.getActionCommand();if (cmd.equals(" 查询 " )){ql=tf .getText().trim();remember=ql;showRecord(ql);}if (cmd.equals(" 删除 " )){int index= table .getSelectedRow();word 资料JOptionPane.showMessageDialog( null , "请选定要删除的表格行" ,"输入错误 " , JOptionPane. YES_NO_OPTION);else {deleteRecord(index);//showRecord(remember);}}if (cmd.equals(" 修改 " )){int index= table.getSelectedRow();if ( index==-1)JOptionPane.showMessageDialog( null , "请选定要删除的表格行" ,"输入错误 " , JOptionPane. YES_NO_OPTION);else {fixRecord(index);//showRecord(remember);}}if (cmd.equals(" 取消 " ))f .hide();}@SuppressWarnings ( "unused" )public static void main(String []arg){RemoveBook a=new RemoveBook();}}Book.java 主界面类/* 本类为用户界面*/import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;@SuppressWarnings ( "serial")class Book extends JFrame implements ActionListener// 主窗口类{JButton QueryScore =new JButton( " 图书查询修改" );JButton putBook =new JButton(" 图书入库 " );JButton shanchu =new JButton(" 图书删除 " );JButton lookBook =new JButton(" 图书概览 " );JButton gaiMima =new JButton(" 修改密码 " );JButton StuSearch =new JButton(" 学生信息查询 " );JMenuBar mb = new JMenuBar();// 菜单栏JPanel jp =new JPanel(){public void paintComponent(Graphics g) {super .paintComponent(g);ImageIcon img =new ImageIcon( "dabeijing.jpg");g.drawImage(img.getImage(), 0, 0,null );}}; ; // 用来填放子模块, 设置背景图片Container cp=getContentPane();String username ;Book(){}@SuppressWarnings ( "unused" )Book(String username){this . username=username;mb.add( QueryScore );mb.add( putBook );mb.add( shanchu );mb.add( lookBook );mb.add( gaiMima );mb.add( StuSearch );cp .add( mb, "North" );//设置边框jp .setBorder(BorderFactory.createTitledBorder(BorderFactory .createLineBorder(Color.blue , 2),null ,TitledBorder.CENTER,TitledBorder.TOP));jp .setLayout(new BorderLayout());JLabel JL=new JLabel( " 欢迎登陆 " ,SwingConstants.CENTER);jp .add(JL, "North" );JLabel label2 =new JLabel( new ImageIcon( "2.jpg")); JScrollPane scrollpane=new JScrollPane( jp );cp .add(scrollpane);setTitle(" 欢迎登陆 " ); // 在此直接创建对象Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen. width ;/* 取得显示器窗口的宽度*/int y=screen. height ;/* 取得显示器窗口的高度*///setSize(x,y); /*让系统窗口平铺整个显示器窗口*/setSize(600,600);int xcenter=(x-600)/2;int ycenter=(y-600)/2;setLocation(xcenter,ycenter);/* 显示在窗口中央*/setVisible(true );setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//注册临听器QueryScore .addActionListener(this );putBook .addActionListener(this );shanchu .addActionListener(this );lookBook .addActionListener(this );gaiMima .addActionListener(this );StuSearch .addActionListener(this );}public void actionPerformed(ActionEvent e)// 状态转换{String cmd=e.getActionCommand();if (cmd.equals( " 图书查询修改" )){new QueryBook();}if (cmd.equals(" 图书入库 " )){new BookIn();}if (cmd.equals(" 图书删除 " )){new RemoveBook();}if (cmd.equals(" 图书概览 " )){new BookBrower().showRecord();}if (cmd.equals(" 修改密码 " )){new UpdateMima( username );}if (cmd.equals( " 学生信息查询" )){new StudentInfo();}}public static void main(String[]args){new Book( "" );}}ConnectMysql.java数据库连接类import java.sql.*;public class ConnectMysql { // 连接数据库类String url = "jdbc:mysql://localhost/tpl?user=root&password=789524613";/*** @paramargs* @throws SQLException*/public ConnectMysql(){this . url = "jdbc:mysql://localhost/tpl?user=root&password=789524613";}public Connection Connecting()throws SQLException{ // 连接数据库函数try {Class.forName( "com.mysql.jdbc.Driver");}catch (ClassNotFoundException e){System.out .println(" 加载驱动程序失败 !" );}String url ="jdbc:mysql://localhost/tpl?user=root&password=789524613"; // 直接使用当前类目录下的数据库文件return DriverManager.getConnection (url);}@SuppressWarnings ( "unused" )public static void main(String[] args) {//TODOAuto-generated method stubConnectMysql a=new ConnectMysql();}}程序测试登录主界面图书查询修改界面查询 000001 号书查询借书者信息,修改图书单价输入入库信息图书入库删除图书《图书管理》图书概览界面所有图书信息修改密码界面修改密码学生信息查询界面查询学号为200905002109 学生的信息设计总结前期准备开始程序编写前先将题目要求实现的功能理清,然后分析需求,设计出各个界面草图以及数据库表的结构。
java图书馆管理系统实验报告《Java图书馆管理系统实验报告》摘要:本实验报告旨在介绍和分析Java图书馆管理系统的设计与实现过程。
通过本次实验,我们深入了解了Java编程语言的特性和图书馆管理系统的基本功能,同时也锻炼了我们的编程能力和团队合作能力。
本报告将从需求分析、系统设计、系统实现和系统测试等方面进行详细介绍,以期为后续的Java开发工作提供参考和借鉴。
1. 需求分析在需求分析阶段,我们对图书馆管理系统的功能进行了详细的分析和讨论,包括图书的借阅、归还、查询、管理等基本功能,以及读者信息管理、图书信息管理、借阅记录管理等辅助功能。
通过与图书馆管理员和读者的交流,我们明确了系统的需求和用户的期望,为后续的系统设计和实现奠定了基础。
2. 系统设计在系统设计阶段,我们采用了面向对象的思想,将系统划分为图书管理模块、读者管理模块、借阅管理模块等多个子模块,并对各个模块进行了详细的设计和规划。
我们采用UML建模工具进行系统的结构设计和行为设计,包括类图、时序图、用例图等,以便更清晰地表达系统的结构和功能。
3. 系统实现在系统实现阶段,我们采用Java语言进行编码工作,利用Eclipse等集成开发环境进行代码编写和调试。
我们遵循了面向对象的编程原则,将系统的各个模块进行了分工开发,并及时进行了代码的集成和测试。
通过不断地迭代和优化,我们最终完成了整个系统的实现工作,并对系统进行了初步的功能测试和性能测试。
4. 系统测试在系统测试阶段,我们对系统进行了全面的测试工作,包括单元测试、集成测试、系统测试等多个层次的测试。
我们利用Junit等测试工具进行了自动化测试,同时也进行了手工测试和压力测试,以确保系统的稳定性和可靠性。
通过测试,我们发现了一些潜在的问题并进行了及时的修复,最终保证了系统的质量和性能。
结论:通过本次实验,我们深入了解了Java编程语言的特性和图书馆管理系统的基本功能,同时也锻炼了我们的编程能力和团队合作能力。
原创Java图书馆管理系统课程设计报告1. 引言本文档为Java图书馆管理系统课程设计报告,旨在介绍系统的设计与实现。
图书馆管理系统是一个管理图书馆馆藏图书、读者信息以及借还书等功能的软件系统。
本课程设计旨在通过使用Java编程语言和相关技术,构建一个简单但功能完善的图书馆管理系统。
2. 需求分析根据对图书馆管理系统的需求分析,我们确定了以下功能模块:图书管理、借阅管理、读者管理、系统登录和退出。
下面对每个功能模块进行详细说明:2.1 图书管理图书管理模块负责对图书进行管理,包括图书的添加、删除、修改和查询等功能。
管理员可以通过该模块完成对图书信息的操作,保证图书信息的准确性和完整性。
2.2 借阅管理借阅管理模块负责处理读者借阅图书的操作。
读者可以通过该模块查询图书的借阅情况,并进行借书和还书的操作。
借阅管理模块需要与图书管理模块进行交互,以确保图书库存和借阅情况的实时更新。
2.3 读者管理读者管理模块负责对读者信息进行管理,包括读者的注册、修改和查询等功能。
管理员可以通过该模块管理读者信息,并对读者进行权限的控制。
2.4 系统登录和退出系统登录和退出模块负责用户身份验证和系统的安全控制。
用户需要通过有效的用户名和密码进行登录,否则将无法操作系统。
系统退出时,需要进行数据保存和清理工作,确保系统数据的完整性和安全性。
3. 系统设计在系统设计阶段,我们采用面向对象的设计思想,将系统划分为多个类,并定义了它们的属性和方法。
下面是系统设计中的几个重要类:3.1 图书类(Book)图书类表示馆藏的图书。
它包含图书的编号、名称、作者、出版社和数量等属性,并提供对这些属性的访问方法。
public class Book {private int bookId;private String title;private String author;private String publisher;private int quantity;// Getters and setters// ...}3.2 读者类(Reader)读者类表示图书馆的读者。
图书管理系统 Java 课程设计报告1. 引言本报告旨在介绍一个基于 Java 的图书管理系统的设计和实现。
图书管理系统是一个常见的应用场景,通过该系统可以实现图书的借阅、归还、查询等功能。
在本报告中,我们将逐步讨论系统的设计思路和实现过程。
2. 系统需求分析在开始系统设计之前,我们首先需要分析系统的功能需求。
根据用户的需求和使用场景,我们确定了以下主要功能:1.用户登录与身份验证:系统需要支持用户的登录,并对用户进行身份验证,以确保只有授权用户能够使用系统。
2.图书管理:系统需要支持管理员对图书进行管理,包括添加新的图书、删除图书、更新图书信息等。
3.图书借阅与归还:系统需要支持用户对图书的借阅和归还操作,并记录借阅归还的时间。
4.图书查询:用户可以通过关键词查询图书,并获取相关的图书信息。
5.用户管理:管理员可以管理用户信息,包括添加新用户、删除用户等。
3. 系统设计基于以上需求分析,我们可以开始进行系统的设计。
我们将系统分为以下几个模块:3.1 用户模块用户模块负责处理用户的登录与身份验证。
用户需要提供正确的用户名和密码才能成功登录系统。
我们可以使用数据库来存储用户信息,并在用户登录时进行验证。
3.2 图书管理模块图书管理模块负责处理图书的添加、删除和更新等操作。
我们可以使用数据库来存储图书信息,并提供相应的接口供管理员使用。
3.3 图书借阅与归还模块图书借阅与归还模块负责处理用户对图书的借阅和归还操作。
我们可以使用数据库来记录借阅和归还的信息,并提供相应的接口供用户使用。
3.4 图书查询模块图书查询模块负责处理用户对图书的查询请求。
用户可以通过关键词进行图书的搜索,并获取相关的图书信息。
我们可以使用数据库来存储图书信息,并提供相应的接口供用户使用。
3.5 用户管理模块用户管理模块负责处理管理员对用户信息的管理。
管理员可以添加新用户、删除用户等操作。
我们可以使用数据库来存储用户信息,并提供相应的接口供管理员使用。
二、实习报告图3-3 系统后台功能图3.2 开发工具及运行环境3.2.1.运行环境:JDK(Java SE Development Kit),Java标准开发平台,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及执行时需要的函数库、与C连接时所需的文件及一些Java应用程序范例等,在配置过程中设置环境变量,新建jdk安装的主目录,编辑PATH,在最后添加;%JAVA_HOME%/bin,然后打开控制台上面输入java,javac等命令,查看jdk的路径,测试环境变量。
Tomcat:Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
配置本地 Tomcat,点击 Edit Configurations,选择Templates -> Tomcat Server -> Local,编辑好模板后,再点击"+”按钮,再选择Tomcat Server -> Local。
选择 TomEE Server 或者 Tomcat Server 都可以。
然后配置 Tomcat 的名称以及配置应用服务器的位置,根据自Tomcat 的安装位置决定。
其它位置使用默认值(设置要启动的浏览器以及端口号),接着点击部署【Deployment】->点击+ ->【Artifact】;选择应用后再点回【Server】选项卡,此时:这样我们的模板就配置好了,接下来,我们点击"+"按钮,再选择Tomcat Server -> Local,直接使用我们新建配置好的模板即可。
3.2.2.开发工具:IDEA,全称 IntelliJ IDEA,是 Java 语言的集成开发环境,IDEA 在业界被公认为是最好的 java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE 支持、Ant、JUnit、CVS 整合、代码审查、创新的 GUI 设计等方面的功能可以说是超常的。
Navicat是一种快速、可靠、价格合理的数据库可视化工具。
其目的是为了满足数据库管理员、开发人员和中小型企业的需求。
Navicat建立在直观的图形用户接口上,使用户能够创建,组织,访问和分享信息。
Navicat拥有7种不同的语言,是世界上最流行的数据库前端接口工具。
可以用于管理和开发本地或远程的 MySQL, SQL Server, SQLite, Oracle 和 PostgreSQL数据库。
Navicat有三个不同的平台-微软windows,Mac OS X及 Linux。
该系统能使使用者与任意本地或远程服务器建立数据模型,数据传输,数据同步,结构同步,导入,导出,备份,还原,报告创建工具和规划来帮助管理数据。
4、详细设计4.1系统用户用例图4.1.1.管理员用例图管理员负责整个系统的后台管理,可以增删改查图书的信息、读者信息和修改图书分类,以及展示所有正在借阅图书的信息,展示所有已归还图书的信息。
本系统管理员用例图如图所示:4.2用户登录用例图4.2.1.普通用户用例图普通用户可以通过注册账号,登录系统,在系统中进行图书查询,查看当前图书信息进行借阅操作,查看借阅信息并还书,同时可以查看自己的借阅历史,普通用户的用例图如图所示:4.3业务流程图业务流程图是指代表某一特定业务过程的特定符号和链接。
业务流程图中的业务关系、工作顺序和管理信息流程图被用来在业务流程图中的各个部门和个人之间进行了描述。
本系统的业务流程图如图所示。
4.4数据流程图数据流程图是全面描述信息系统逻辑模型的工具,它抽象概括地把信息系统中各种业务处理过程联系起来。
图书馆管理信息系统地数据流程图如下:1)零层数据流程图2)1层数据流程图3)2层数据流程图1.图书借阅系统数据流程图2.图书查询系统数据流程图3.读者管理系统数据流程图4.5数据字典数据字典是对数据存储进行描述、对数据进行加工的载体,数据字典是定义并描述数据项、结构、流、存储、处理逻辑、外部实体等的数据,其目标是提供数据流程图中的各要素,图书馆管理系统的数据字典如下表所示:a.用户信息数据字典如表4.1所示:表4.3借阅历史表(history)列名类型长度能否为空是否主键备注hid int 11 否是借阅记录的id aid int 11 是否读者的idbid int 11 是否图书的idcard card 255 是否图书号bookname char 255 是否图书名称char 255 是否读者的账号adminnameusername char 255 是否读者的姓名begintime char 255 是否借阅时间endtime char 255 是否要还书的时间status int 11 是否借阅状态表4.6分类表(type)列名类型长度能否为空是否主键备注tid int 11 否是分类的id name varchar 20 否否分类的名称4.7 E-R实体图设计通过实体-关系模式表示数据库表间的关联性,概念模型的构建是对现实生活中的信息进行抽象和建模的一种方法。
通过E-R图表,可以对概念模型进行描述,实现概念结构设计。
5、软件需求5.1 系统登录模块输入用户名,密码NRequiredY页面处理N读取数据Y验证用户名密码登陆成功图5-1登陆流程图具体运行效果如图5-2所示。
管理员身份登陆成功:读者页面登陆成功:图5-2登陆页面5. 2 添加图书信息模块其代码关键程序代码如下所录:public static void addBook(String card, String name, String type, String autho, String press, int num) {Connection conn = DBUtil.getConnectDb();String sql = "insert into book(card,name,type,autho,press,num)values(?,?,?,?,?,?)";int rs = 0;PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setString(1, card);stm.setString(2, name);stm.setString(3, type);stm.setString(4, autho);stm.setString(5, press);stm.setInt(6, num);rs = stm.executeUpdate();} catch (SQLException e) {e.printStackTrace();}}public class AddBookServlet extends HttpServlet {private static final long serialVersionUID =1L;public AddBookServlet() {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");//获取数据String card=request.getParameter("card");String name=request.getParameter("name");String type=request.getParameter("type");String autho=request.getParameter("autho");String press=request.getParameter("press");int num=Integer.parseInt(request.getParameter("num"));BookDao bookDao=new BookDao();BookDao.addBook(card,name,type,autho,press,num);response.sendRedirect("/admin_book.jsp");}}实现页面:5. 3查看图书借阅记录模块管理者界面:读者界面:图5-4记录信息效果图其代码关键程序代码如下所录:public class borrowServlet extends HttpServlet {//自身idprivate static final long serialVersionUID = 1L;//构造器public borrowServlet() {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");BookDao bookDao = new BookDao();int tip = Integer.parseInt(request.getParameter("tip"));if(tip==2){int hid=Integer.parseInt(request.getParameter("hid"));int show=Integer.parseInt(request.getParameter("show"));bookDao.borrowBook2(hid);if(show==2){response.sendRedirect("/admin_borrow.jsp");}else{response.sendRedirect("/borrow.jsp");}}else {int bid=Integer.parseInt(request.getParameter("bid"));HttpSession session=request.getSession();String aid=(String)session.getAttribute("aid");AdminBean admin=new AdminBean();AdminDao adminDao=new AdminDao();admin= adminDao.get_AidInfo2(aid);bookDao.borrowBook(bid,admin);response.sendRedirect("/select.jsp");}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}}public void borrowBook(int bid, AdminBean admin) {BookBean bookBean = new BookBean();bookBean = this.get_BookInfo(bid);Calendar c = Calendar.getInstance();int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH);int day = c.get(Calendar.DATE);String begintime = "" + year + "-" + (month + 1) + "-" + day;String endtime = "" + year + "-" + (month + 1) + "-" + day;Connection conn = DBUtil.getConnectDb();String sql = "insert intohistory(aid,bid,card,bookname,adminname,username,begintime,endtime,status) values (?,?,?,?,?,?,?,?,?)";int rs = 0;PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setInt(1, admin.getAid());stm.setInt(2, bookBean.getBid());stm.setString(3, bookBean.getCard());stm.setString(4, bookBean.getName());stm.setString(5, admin.getUsername());stm.setString(6, admin.getName());stm.setString(7, begintime);stm.setString(8, endtime);stm.setInt(9, 1);rs=stm.executeUpdate();} catch (SQLException e) {e.printStackTrace();}}public void borrowBook2(int hid) {Calendar c = Calendar.getInstance();int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH);int day = c.get(Calendar.DATE);String endtime = "" + year + "-" + (month + 1) + "-" + day;Connection conn = DBUtil.getConnectDb();String sql = "update history set endtime=?,status=? where hid=?";PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setString(1, endtime);stm.setInt(2, 0);stm.setInt(3, hid);stm.executeUpdate();} catch (SQLException e) {e.printStackTrace();}}5. 4 删除读者信息模块实现界面:其代码关键程序代码如下所录:p ublic class deleteUserServlet extends HttpServlet { private static final long serialVersionUID = 1L;public deleteUserServlet() {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");int aid = Integer.parseInt(request.getParameter("aid"));BookDao bookDao = new BookDao();bookDao.deleteUser(aid);response.sendRedirect("/admin_user.jsp");}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}}public void deleteUser(int aid) {Connection conn = DBUtil.getConnectDb();String sql = "delete from admin where aid=?";PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setInt(1, aid);stm.executeUpdate();} catch (SQLException e) {e.printStackTrace();}}6、可行性研究可行性分析是针对在本次实习中所要求实现的目标与当前的技术能力的基础上进行分析的,对一个新系统的设计与研究需要从系统的技术需求、系统的资金投入、系统的后期维护代价和当使用者变多,需要扩展等方面进去全面的分析和研究,从技术上、经济上、社会上的可行性等角度出发,以确保新的系统能够顺利地开发和应用。