java课程设计小型图书管理系统
java课程设计图书管理系统
java课程设计 图书管理系统一、课程目标知识目标:1. 掌握Java面向对象编程的基本概念,包括类、对象、继承、封装和多态;2. 学会使用Java集合框架,如List、Set和Map,进行数据管理;3. 理解数据库的基本原理,能够运用SQLite数据库进行数据存储与查询;4. 了解Java GUI编程基础,能够使用Swing组件设计简单的用户界面。
技能目标:1. 能够设计并实现一个图书管理系统,实现图书的增删改查功能;2. 通过编写代码,培养学生解决问题的能力,提高逻辑思维能力;3. 学会运用所学知识,进行项目实践,培养团队协作和沟通能力。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习积极性;2. 培养学生勇于克服困难,面对挑战的精神,增强自信心;3. 培养学生的责任感,使其明白编程在现实生活中的应用和价值。
分析课程性质、学生特点和教学要求,本课程目标具体、可衡量,旨在帮助学生掌握Java编程基础知识,培养实际编程能力,同时注重培养学生的情感态度价值观,提高综合素质。
课程目标将分解为具体的学习成果,以便后续的教学设计和评估。
二、教学内容1. Java面向对象编程基础:- 类与对象- 继承与多态- 封装与抽象2. Java集合框架:- List、Set和Map接口及其实现类- 集合的遍历与操作3. 数据库原理与应用:- SQLite数据库的安装与使用- SQL语句基础:增删改查- Java数据库连接(JDBC)4. Java GUI编程:- Swing组件基础- 布局管理器- 事件处理机制5. 图书管理系统项目实践:- 系统需求分析- 数据库设计- 系统功能实现(增删改查等)- 用户界面设计教学内容根据课程目标制定,覆盖Java面向对象编程、集合框架、数据库原理、GUI编程及项目实践等方面。
教学大纲明确以下安排和进度:第一周:Java面向对象编程基础第二周:Java集合框架第三周:数据库原理与应用第四周:Java GUI编程第五周:图书管理系统项目实践(需求分析、数据库设计)第六周:图书管理系统项目实践(功能实现、用户界面设计)教学内容与教材章节紧密关联,确保科学性和系统性,为教学实施提供明确指导。
java图书管理系统课程设计
java图书管理系统课程设计一、教学目标本课程旨在通过学习Java图书管理系统,让学生掌握Java编程的基本语法和面向对象编程思想,学会使用Java开发一个简单的图书管理系统。
通过本课程的学习,学生将能够:1.掌握Java基本语法、数据类型、运算符、控制结构等基础知识。
2.理解面向对象编程的基本概念,如类、对象、封装、继承、多态等。
3.学会使用Java开发工具,如Eclipse、IntelliJ IDEA等。
4.熟练使用Java编写图书管理系统的各个模块,如图书添加、删除、查询、借还书等功能。
5.培养学生的编程思维和解决问题的能力。
二、教学内容本课程的教学内容主要包括Java基础知识、面向对象编程、Java开发工具的使用以及图书管理系统的开发。
具体安排如下:1.Java基础知识:第1-4周,学习Java基本语法、数据类型、运算符、控制结构等。
2.面向对象编程:第5-8周,学习类与对象、封装、继承、多态等概念及应用。
3.Java开发工具:第9-10周,学习Eclipse、IntelliJ IDEA等开发工具的使用。
4.图书管理系统开发:第11-16周,通过项目驱动的方式,分模块开发图书管理系统,包括图书添加、删除、查询、借还书等功能。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式,如讲授法、讨论法、案例分析法、实验法等。
具体如下:1.讲授法:用于讲解Java基本语法、数据类型、运算符、控制结构等基础知识。
2.讨论法:用于探讨面向对象编程的概念及应用,鼓励学生发表自己的见解。
3.案例分析法:通过分析实际案例,让学生学会使用Java开发图书管理系统。
4.实验法:让学生动手实践,实际编写代码,培养学生的编程能力。
四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《Java核心技术卷I 基础知识》2.参考书:《Java编程思想》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络环境5.在线编程平台:LeetCode、牛客网等,用于学生练习和测试编程能力。
java课程设计---简单高校图书管理系统
Java应用课程设计项目名称:简单高校图书管理系统目录一、前言-----------------------------二、系统流程图-------------------------三、功能需求分析-----------------------四、系统模块分析-----------------------五、主要源代码-------------------------六、总结-----------------------------七、参考文献---------------------------一、前言当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
图书管理系统就是为了管理好图书馆信息而设计的。
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。
根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
基于这些问题,有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
本系统是小型图书管理系统,专为个人设计。
本系统启动后需要登陆,然后进入主界在这个界面我们可以选择所需要的功能模块来完成所要执行的功能。
java实现简单的图书管理系统
java实现简单的图书管理系统本⽂实例为⼤家分享了java实现简单的图书管理系统的具体代码,供⼤家参考,具体内容如下⼀、项⽬分布Book类: 定义了书的⼀些属性(书名,作者,价格,分类,状态)并且写了属性的get、set⽅法Library类: 写了登录函数(1、普通⽤户,2、管理员,3、退出系统),Person类:定义的⼈的属性(姓名,性别,年龄)并且写了属性的get、set⽅法,定义了⼀些书。
operate接⼝:操作的接⼝,操作⽅法:查询/查阅,删除/借阅,增加/还书,显⽰书籍列表Root类:继承了Person类,实现operate(查阅,删除,增加,显⽰书籍列表)接⼝User类:继承了Person类,实现operate(查询,借阅,还书,显⽰书籍列表)接⼝Main类:Main中的主函数开启整个项⽬。
模型图:声明:本项⽬只是⼀个简单的⾯向对象⼊门⼩项⽬,有⼀些基础理论需要掌握,⽐如对象,类,抽象类,接⼝,继承,实现,数组及数组的操作,for循环,while循环,switch语句,if语句。
⼆、代码展⽰1.Book类public class Book {private String name; //书名private String author; //作者public double price; //价格private String category; //分类private boolean state; //状态 true-未借出 false-已借出//通过构造函数给定书的属性public Book(String name,String author,double price,String category,boolean state){this.author = author; = name;this.price = price;this.category = category;this.state = state;}public Book() { //默认10本书this(10);}public Book(int i) {Person.books = new Book[i];}//属性的获取和设置public String getName() {return name;}public void setName(String name) { = name;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public String getCategory() {return category;}public void setCategory(String category) {this.category = category;}public boolean getState() {return state;}public void setState(boolean state) {this.state = state;}}2.Library类import java.util.Scanner;public class Library {Scanner sc = new Scanner(System.in);//登录函数:显⽰登录界⾯进⾏选择登录public void login() {int count = 0;Person p = null;while (count < 2) {System.out.println("===============jewel图书管理系统===============");System.out.println("欢迎讨论指正! qq505791225"+"\n");System.out.println("请登录:1.普通⽤户 2.管理员登录 3.退出系统");int n = sc.nextInt();//通过输⼊的值进⾏登录判断if (n == 3) {return;}switch (n) {case 1:System.out.println("请输⼊姓名:");String Uname = sc.next();System.out.println("请输⼊性别:");String Usex = sc.next();System.out.println("请输⼊年龄:");int Uage = sc.nextInt();p = new User(Uname,Usex,Uage); //构造普通⽤户对象System.out.println("登录成功!");System.out.println("当前普通⽤户:"+"姓名:" + p.getName() + " "+"性别:" + p.getSex() + " "+"年龄"+ p.getAge()); //普通⽤户循环操作while (true) {System.out.println("请输⼊你的操作: 1.查询书籍 2.借阅书籍 3.归还书籍 4.显⽰书籍列表 5.退出");int i = sc.nextInt();if (i == 5) {System.out.println("您已成功退出!");break;}else {p.operate(); //调⽤普通⽤户的操作⽅法}}break;case 2:System.out.println("请输⼊管理员姓名:");String Rname = sc.next();System.out.println("请输⼊性别:");String Rsex = sc.next();System.out.println("请输⼊年龄:");int Rage = sc.nextInt();p = new Root(Rname,Rsex,Rage);//构造管理员对象System.out.println("登录成功!");System.out.println("当前管理员:"+"姓名:" + p.getName() + " "+"性别:" + p.getSex() + " "+"年龄" + p.getAge()); while (true) {System.out.println("请输⼊你的操作: 1.整理书籍 2.查阅书籍 3.增加书籍 4.删除书籍 5.显⽰书籍列表 6.退出");int j = sc.nextInt();if (j == 6) {System.out.println("您已成功退出!");break;}else{p.operate();//调⽤管理员的操作⽅法}} break;}}}}3.Person类(抽象类)abstract class Person {public String name;public String sex;public int age;/*** 默认定义10本书籍。
Java 图书馆管理系统(附全代码)_课程设计报告
《数据库系统概论》课程报告课题名称:小型图书管理系统课题负责人名(学号): best同组成员名单(角色):指导教师:评阅成绩:评阅意见:提交报告时间:2015年12月15日小型图书管理系统计算机科学与技术专业学生指导老师[摘要]随着计算机技术的飞速发展,利用计算机来获得和处理信息是当今信息管理的一大特点。
伴随计算机硬件的快速发展,有关信息管理的软件——数据库系统软件也在迅猛发展着。
图书馆是高等院校的重要组成部门,是教师和学生获取知识的重要场所。
由于图书馆主要从事大量的图书资料的储存和流通。
所以一直以来,计算机在图书馆的图书管理中得到了广泛的应用。
本系统实现图书信息管理的系统化,规范化和自动化,以最大程度提高操作人员的办公效率。
关键词:JAVA、JDBC、SQL Server、数据库、图书馆管理一、实验题目:小型图书管理系统二、实验的目的和要求:完成一个小型图书管理系统,功能要求如下:1)能够通过书籍基本信息(包括:书号、书名、出版社、出版日期、作者、内容摘要)单个或以AND方式组合多个条件查询书籍信息;2)对于每一种书籍,除可查看其基本信息之外还可查看其总数以及目前在馆数量3)可增添新的书籍4)可删除已有书籍(如有读者借了该书籍尚未归还,则不允许删除)5)可修改书籍的基本信息6)能够通过读者基本信息(包括:证号、姓名、性别、系名、年级)单个或以AND方式组合多个条件查询读者信息7)对于每位读者除可查看其基本信息之外,还可查看其已借的书籍列表、数量、借还日期8)可增添新的读者9)可删除已有读者(如该读者有尚未归还的借书,则不允许删除)10)可修改读者的基本信息11)可完成借还书籍的手续12)还书时如超期,应该显示超期天数13)借书时如果有超期的书没有还,则不允许借书14)可查询有哪些读者有超期的书没有还,列出这些读者的基本信息三、实验的环境:1、硬件环境:CPU: Intel(R) Core i5-3230 2.60GHzRAM: 8GB2、软件环境:操作系统:Windows 7 Ultimate SP1编译软件:Eclipse LunaMicrosoft SQL Server 2014四、系统ER图图书管理员管理读者借阅管理编号性别姓名系名年级编号书名作者出版社出版时间摘要总量现存量用户名密码应还时间拥有权限删除图书修改读者修改图书删除读者添加读者添加图书超期时间借阅时间五、表结构定义(使用表格说明)六、系统功能模块1)能够通过书籍基本信息单个或组合多个条件查询书籍信息;2)对于每一种书籍,除可查看其基本信息之外还可查看其总数以及目前在馆数量3)可增添新的书籍4)可删除已有书籍(如有读者借了该书籍尚未归还,则不允许删除)5)可修改书籍的基本信息6)能够通过读者基本信息单个或组合多个条件查询读者信息7)对于每位读者除可查看其基本信息之外,还可查看其已借的书籍列表、数量、借还日期8)可增添新的读者9)可删除已有读者(如该读者有尚未归还的借书,则不允许删除)10)可修改读者的基本信息11)可完成借还书籍的手续12)还书时如超期,应该显示超期天数13)借书时如果有超期的书没有还,则不允许借书14)可查询有哪些读者有超期的书没有还,列出这些读者的基本信息七、程序框架流程图九、程序运行结果八、核心代码AddBook.javaimport java.awt.BorderLayout; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.*; import java.util.ArrayList; import javax.swing.*;public class AddBook extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JLabel bookName = new JLabel("Book Name:");JLabel bookAuthor = new JLabel("Book Author:");JLabel press = new JLabel("Press:");JLabel pressTime = new JLabel("Press time:");JLabel bookAbstract = new JLabel("Abstract:");JLabel storage = new JLabel("Storage:");JLabel remain = new JLabel("Remain");JLabel remain1 = new JLabel("Update with Storage");JTextField numberField = new JTextField();JTextField nameField = new JTextField();JTextField authorField = new JTextField();JTextField pressField = new JTextField();JTextField pressTimeField = new JTextField();JTextField abstractField = new JTextField();JTextField storageField = new JTextField();JButton cancel = new JButton("Cancel");JButton confirm = new JButton("Confirm!!");public AddBook() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(9, 2, 20, 10));p1.add(bookNumber);p1.add(numberField);p1.add(bookName);p1.add(nameField);p1.add(bookAuthor);p1.add(authorField);p1.add(press);p1.add(pressField);p1.add(pressTime);p1.add(pressTimeField);p1.add(bookAbstract);p1.add(abstractField);p1.add(storage);p1.add(storageField);p1.add(remain);p1.add(remain1);p1.add(cancel);p1.add(confirm);cancel.addActionListener(this);confirm.addActionListener(this);}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == confirm) {this.dispose();BookInfo book= new BookInfo(numberField.getText(),nameField.getText(), authorField.getText(),pressField.getText(),pressTimeField.getText(),abstractField.getText(),Integer.parseInt(storageField.getText()),Integer.parseInt(storageField.getText()));ArrayList<String> strArray = newArrayList<String>();strArray = op.addBookJudgement();int n = 0;int replicate = 0;while (n < Integer.parseInt(strArray.get(0))) {n++;if(numberField.getText().equals(strArray.get(n))) {replicate++;}}if (replicate == 0) {op.saveBook(book);JOptionPane.showMessageDialog(null, "Add a booksuccessfully!","Information",RMATION_MESSAGE);} else {JOptionPane.showMessageDialog(null,"This book(number) has already existed!", "Warning",RMATION_MESSAGE);}}}}AddReader.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;public class AddReader extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel readerNumber = new JLabel("Reader Number:");精选文库JLabel readerName = new JLabel("Reader Name:");JLabel sex = new JLabel("Sex:");JLabel dpt = new JLabel("Department:");JLabel grade = new JLabel("Grade:");JTextField numberField = new JTextField();JTextField nameField = new JTextField();JTextField sexField = new JTextField();JTextField dptField = new JTextField();JTextField gradeField = new JTextField();JButton cancel = new JButton("Cancel");JButton confirm = new JButton("Confirm!!");public AddReader() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(6, 2, 20, 10));p1.add(readerNumber);p1.add(numberField);p1.add(readerName);p1.add(nameField);p1.add(sex);p1.add(sexField);p1.add(dpt);p1.add(dptField);p1.add(grade);p1.add(gradeField);p1.add(cancel);p1.add(confirm);cancel.addActionListener(this);confirm.addActionListener(this);}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == confirm) {this.dispose();ReaderInfo reader = new精选文库ReaderInfo(numberField.getText(),nameField.getText(), sexField.getText(),dptField.getText(),Integer.parseInt(gradeField.getText()));ArrayList<String> strArray = newArrayList<String>();strArray = op.addReaderJudgement();int n = 0;int replicate = 0;while (n < Integer.parseInt(strArray.get(0))) {n++;if(numberField.getText().equals(strArray.get(n))) {replicate++;}}if (replicate == 0) {if (!sexField.getText().equals("boy")&& !sexField.getText().equals("girl")) {JOptionPane.showMessageDialog(null,"In the Sex field, you can only input 'boy' or 'girl'!","Warning",RMATION_MESSAGE);} else {op.saveReader(reader);JOptionPane.showMessageDialog(null,"Add a reader successfully!", "Information",RMATION_MESSAGE);}} else {JOptionPane.showMessageDialog(null,"This reader(number) has alreadyexisted!", "Warning",RMATION_MESSAGE);}}精选文库}}BookDetails.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;import javax.swing.table.DefaultTableModel;public class BookDetails extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JLabel bookName = new JLabel("Book Name:");JLabel author = new JLabel("Author:");JLabel press = new JLabel("Press:");JLabel pressTime = new JLabel("Press time:");JLabel bookAbstract = new JLabel("Abstract:");JLabel storage = new JLabel("Storage:");JLabel remain = new JLabel("Remain:");JLabel numberField = new JLabel();JLabel nameField = new JLabel();JLabel authorField = new JLabel();JLabel pressField = new JLabel();精选文库JLabel pressTimeField = new JLabel();JLabel abstractField = new JLabel();JLabel storageField = new JLabel();JLabel remainField = new JLabel();JButton cancel = new JButton("Cancel");JLabel details= new JLabel("Borrow and reaturn details");Object[] s = { "Reader number", "Borrow time", "Deadline", "Over time" };Object[][] ob1 = new Object[7][4];JTable table = new JTable(ob1, s);JScrollPane scrollPane = new JScrollPane(table);public BookDetails(String number) {BookInfo book = new BookInfo(number);ob1 = op.borrowListForBook(number);for (int i = 0; i < 5; i++) {DefaultTableModel books= new DefaultTableModel(ob1, s);for (int n = 0; n < 7; n++) {for (int m = 0; m < 4; m++) {ob1[n][m] = this.ob1[n][m];}table.setModel(books);table.invalidate();}}ArrayList<String> strArray = new ArrayList<String>();strArray = op.outputBook(book);numberField.setText(number);nameField.setText(strArray.get(1));authorField.setText(strArray.get(2));pressField.setText(strArray.get(3));pressTimeField.setText(strArray.get(4));abstractField.setText(strArray.get(5));storageField.setText(strArray.get(6));remainField.setText(strArray.get(7));c.add(p1, BorderLayout.NORTH);c.add(p2, BorderLayout.CENTER);c.add(p3, BorderLayout.SOUTH);p1.setLayout(new GridLayout(9, 2, 20, 10));精选文库p1.add(bookNumber);p1.add(numberField);p1.add(bookName);p1.add(nameField);p1.add(author);p1.add(authorField);p1.add(press);p1.add(pressField);p1.add(pressTime);p1.add(pressTimeField);p1.add(bookAbstract);p1.add(abstractField);p1.add(storage);p1.add(storageField);p1.add(remain);p1.add(remainField);p1.add(details);scrollPane.setBounds(0, 0, 800, 300);p2.add(scrollPane);p3.add(cancel);table.setPreferredScrollableViewportSize(new Dimension(400, 100));cancel.addActionListener(this);}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}}}精选文库BookInfo.javapublic class BookInfo {private String number, name, author, press, pressTime, bookAbstract;private int total, remain;// default constructorpublic BookInfo() {}public BookInfo(String number) {this.number = number;}public BookInfo(String number, String name) {this.number = number; = name;}public BookInfo(String number, String name, String author, String press,String pressTime, String bookAbstract, int total, int remain) {this.number = number; = name;this.author = author;this.press = press;this.pressTime = pressTime;this.bookAbstract = bookAbstract;this.total = total;this.remain = remain;}public void setRemain(int i) {this.remain=i;}public String getNumber() {return number;}public String getName() {精选文库return name;}public String getAuthor() {return author;}public String getPress() {return press;}public String getPressTime() {return pressTime;}public String getBookAbstract() {return bookAbstract;}public int getTotal() {return total;}public int getRemain() {return remain;}}BookRetrieval.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;import javax.swing.table.DefaultTableModel;class BookRetrieval extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JPanel p4 = new JPanel();JPanel p5 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JLabel bookName = new JLabel("Book Name:");JTextField number = new JTextField();JTextField name = new JTextField();JButton back = new JButton("Back (Fresh)");JButton addBook = new JButton("Add a book");JButton deleteBook = new JButton("Delete a book");JButton editBook = new JButton("Edit a book");JButton search = new JButton("Search for details!");JButton borrowBook = new JButton("Borrow a book");JButton returnBook = new JButton("Return a book");Font font1 = new Font("00", Font.BOLD, 20);Object[] s = { "Number", "Name", "Author", "Press", "Press Time","Abstract", "Storage", "Remain" };Object[][] ob = new Object[40][8];JTable table = new JTable(ob, s);JScrollPane scrollPane = new JScrollPane(table);public BookRetrieval() {BookInfo book = new BookInfo();ob = op.allBook(book);for (int i = 0; i < 5; i++) {DefaultTableModel books= new DefaultTableModel(ob, s);for (int n = 0; n < 20; n++) {for (int m = 0; m < 8; m++) {ob[n][m] = this.ob[n][m];}table.setModel(books);table.invalidate();}}c.add(p4, BorderLayout.NORTH);c.add(p1, BorderLayout.CENTER);c.add(p5, BorderLayout.SOUTH);search.setFont(font1);p4.setLayout(new GridLayout(2, 4, 20, 10));p4.add(back);p4.add(addBook);p4.add(editBook);p4.add(deleteBook);p4.add(borrowBook);p4.add(returnBook);p1.setLayout(null);scrollPane.setBounds(0, 0, 800, 300);p1.add(scrollPane);p5.setLayout(new GridLayout(5, 1, 0, 0));p5.add(bookNumber);p5.add(number);p5.add(bookName);p5.add(name);p5.add(search);table.setPreferredScrollableViewportSize(new Dimension(400, 300));addBook.addActionListener(this);search.addActionListener(this);back.addActionListener(this);deleteBook.addActionListener(this);editBook.addActionListener(this);borrowBook.addActionListener(this);returnBook.addActionListener(this);}public void actionPerformed(ActionEvent e) { if (e.getSource() == search) {ArrayList<String> strArray = newArrayList<String>();strArray = op.addBookJudgement();String s1 = number.getText();String s2 = name.getText();int n = 0;int replicate = 0;while (n < Integer.parseInt(strArray.get(0))) {n++;if (s1.equals(strArray.get(n))) {replicate++;}}ArrayList<String> strArray1 = newArrayList<String>();strArray1 = op.addBookJudgement1();int n1 = 0;int replicate1 = 0;while (n1 < Integer.parseInt(strArray1.get(0))) { n1++;if (s2.equals(strArray1.get(n1))) {replicate1++;}}if (replicate == 0 && replicate1 == 0) {JOptionPane.showMessageDialog(null,"Please input a correct book number or name!","Warning",RMATION_MESSAGE);} else if (replicate != 0 || replicate1 != 0) {if (replicate == 0 && replicate1 != 0) {BookInfo book = new BookInfo(s1, s2);String s = op.searchBookByName(book);BookDetails f = new BookDetails(s);//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Book Details");f.setLocation(300, 200);f.setSize(480, 470);f.setVisible(true);} else if (replicate != 0) {BookDetails f = new BookDetails(s1);//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Book Details");f.setLocation(300, 200);f.setSize(480, 470);f.setVisible(true);}}}if (e.getSource() == back) {this.dispose();MyFrame f = new MyFrame();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Library Management System");f.setLocation(300, 200);f.setSize(580, 300);f.setVisible(true);}if (e.getSource() == addBook) {AddBook f = new AddBook();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Add a book");f.setLocation(300, 200);f.setSize(300, 400);f.setVisible(true);}if (e.getSource() == deleteBook) {DeleteBook f = new DeleteBook();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Delete a book");f.setLocation(300, 200);精选文库f.setSize(300, 200);f.setVisible(true);}if (e.getSource() == borrowBook) {BorrowBook f = new BorrowBook();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Borrow a book");f.setLocation(300, 200);f.setSize(300, 200);f.setVisible(true);}if (e.getSource() == returnBook) {ReturnBook f = new ReturnBook();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Return a book");f.setLocation(300, 200);f.setSize(300, 200);f.setVisible(true);}if (e.getSource() == editBook) {SelectEdit f = new SelectEdit();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Edit a book");f.setLocation(300, 200);f.setSize(300, 200);f.setVisible(true);}}}BorrowBook.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;public class BorrowBook extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JTextField numberField = new JTextField();JLabel readerNumber = new JLabel("Reader Number:");JTextField readerNumberField = new JTextField();JButton cancel = new JButton("Cancel");JButton borrow = new JButton("Borrow!!");public BorrowBook() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(3, 2, 20, 10));p1.add(bookNumber);p1.add(numberField);p1.add(readerNumber);p1.add(readerNumberField);p1.add(cancel);p1.add(borrow);cancel.addActionListener(this);borrow.addActionListener(this);}public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == borrow) {String bookNumber = numberField.getText();ArrayList<String> strArray = newArrayList<String>();strArray = op.addBookJudgement();int n = 0;int replicate = 0;while (n < Integer.parseInt(strArray.get(0))) {n++;if (bookNumber.equals(strArray.get(n))) {replicate++;}}String readerNumber = readerNumberField.getText();ArrayList<String> strArray1 = newArrayList<String>();strArray1 = op.addReaderJudgement();int n1 = 0;int replicate1 = 0;while (n1 < Integer.parseInt(strArray1.get(0))) { n1++;if (readerNumber.equals(strArray1.get(n1))) {replicate1++;}}if (replicate == 0 || replicate1 == 0) {JOptionPane.showMessageDialog(null,"Please input a correct book number and a reader number!","Warning",RMATION_MESSAGE);} else {BookInfo book = new BookInfo(bookNumber);ArrayList<String> s = new ArrayList<String>();s = op.outputBook(book);if (Integer.parseInt(s.get(7)) > 0) {int s1 =op.reBorrowCheck(numberField.getText(),readerNumberField.getText());if (s1 == 1) {JOptionPane.showMessageDialog(null,"You have borrowed this book, can not reborrow it!","Unsuccessful", RMATION_MESSAGE);} else {long currentTime =System.currentTimeMillis();if(op.deadLineCheck(readerNumberField.getText(),currentTime) != 0) {JOptionPane.showMessageDialog(null,"You have exceeded the deadline, please return these books first!","Unsuccessful", RMATION_MESSAGE);} else {BookInfo book1= new BookInfo(s.get(0), s.get(1),s.get(2), s.get(3), s.get(4), s.get(5),Integer.parseInt(s.get(6)),Integer.parseInt(s.get(7)) - 1);op.inputBook(book1);String borrowTime =Long.toString(System.currentTimeMillis());String deadline =Long.toString(System.currentTimeMillis() + 2592000000l);System.out.println(borrowTime);System.out.println(deadline);op.insertBorrow(numberField.getText(),readerNumberField.getText(), borrowTime,deadline);JOptionPane.showMessageDialog(null,"Borrowed this book successfully, you have 30 days to enjoy this book!","Successful", RMATION_MESSAGE);}}} else {JOptionPane.showMessageDialog(null,"This book has been borrowed!", "Unsuccessful",RMATION_MESSAGE);}}this.dispose();}}}BorrowList.Javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;import javax.swing.table.DefaultTableModel;public class BorrowList extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton back=new JButton("Back");Object[] s= { "Book number", "Reader number", "Borrow time", "Deadline","OverTime"};Object[][] ob = new Object[100][5];JTable table = new JTable(ob, s);JScrollPane scrollPane = new JScrollPane(table);public BorrowList() {// TODO Auto-generated constructor stubObject[][] ob1 = op.borrowList();for (int i = 0; i < 5; i++) {DefaultTableModel list = new DefaultTableModel(ob, s);for (int n = 0; n < 100; n++) {for (int m = 0; m < 5; m++) {ob[n][m] = ob1[n][m];}table.setModel(list);table.invalidate();}}c.add(p1, BorderLayout.CENTER);c.add(p2,BorderLayout.SOUTH);scrollPane.setBounds(0, 0, 800, 300);p1.add(scrollPane);p2.add(back);table.setPreferredScrollableViewportSize(new Dimension(400, 400));back.addActionListener(this);}public void actionPerformed(ActionEvent e) {if (e.getSource() == back) {this.dispose();MyFrame f = new MyFrame();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Library Management System");f.setLocation(300, 200);f.setSize(580, 300);f.setVisible(true);}// TODO Auto-generated method stub}}Date.javaimport java.text.DateFormat;import java.text.SimpleDateFormat;public class Date {public Date(){}static String borrowTimeInterface(long time) {SimpleDateFormat df = (SimpleDateFormat) DateFormat.getInstance();df.applyPattern("yyyy-MM-dd");String s = df.format(time);return s;}}精选文库DeleteBook.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import javax.swing.*;public class DeleteBook extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JTextField numberField = new JTextField();JButton cancel = new JButton("Cancel");JButton delete = new JButton("Delete!!");public DeleteBook() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(2, 2, 20, 10));p1.add(bookNumber);p1.add(numberField);p1.add(cancel);p1.add(delete);cancel.addActionListener(this);delete.addActionListener(this);}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == delete) {BookInfo book = newBookInfo(numberField.getText());this.dispose();if(op.deleteBookCheck(numberField.getText()) != 0) {JOptionPane.showMessageDialog(null,"Delete the book unsuccessfully. The book bas been borrowed!","Warning",RMATION_MESSAGE);} else {if (op.deleteBook(book) == 1) {JOptionPane.showMessageDialog(null,"Delete the book successfully!", "Information",RMATION_MESSAGE);} else {JOptionPane.showMessageDialog(null,"Delete the book unsuccessfully. The book does not exist!","Warning",RMATION_MESSAGE);}}}}}DeleteReader.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import javax.swing.*;public class DeleteReader extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel readerNumber = new JLabel("Reader Number:");JTextField numberField = new JTextField();JButton cancel = new JButton("Cancel");JButton delete = new JButton("Delete!!");public DeleteReader() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(2, 2, 20, 10));p1.add(readerNumber);p1.add(numberField);p1.add(cancel);p1.add(delete);cancel.addActionListener(this);delete.addActionListener(this);}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == delete) {ReaderInfo reader = newReaderInfo(numberField.getText());this.dispose();if (op.deleteReaderCheck(numberField.getText()) != 0) {JOptionPane.showMessageDialog(null,"Delete the reader unsuccessfully.Please return books first!","Warning",RMATION_MESSAGE);} else {if (op.deleteReader(reader) == 1) {JOptionPane.showMessageDialog(null,"Delete the reader successfully!", "Information",RMATION_MESSAGE);} else {JOptionPane.showMessageDialog(null,"Delete the reader unsuccessfully. The reader does not exist!","Warning",RMATION_MESSAGE);}}}}}EditBook.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;public class EditBook extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JLabel bookName = new JLabel("Book Name:");JLabel author = new JLabel("Book Author:");JLabel press = new JLabel("Press:");JLabel pressTime = new JLabel("Press time:");JLabel bookAbstract = new JLabel("Abstract:");JLabel storage = new JLabel("Storage:");JLabel remain = new JLabel("Remain:");JLabel remain1 = new JLabel("Update with storage"); JLabel numberField = new JLabel();JTextField nameField = new JTextField();JTextField authorField = new JTextField();JTextField pressField = new JTextField();JTextField pressTimeField = new JTextField();JTextField abstractField = new JTextField();JTextField storageField = new JTextField();JTextField temp1 = new JTextField();JTextField temp2 = new JTextField();JButton cancel = new JButton("Cancel");JButton save = new JButton("Save!!");public EditBook(String number) {BookInfo book = new BookInfo(number);ArrayList<String> strArray = new ArrayList<String>();strArray = op.outputBook(book);numberField.setText(number);nameField.setText(strArray.get(1));authorField.setText(strArray.get(2));pressField.setText(strArray.get(3));pressTimeField.setText(strArray.get(4));abstractField.setText(strArray.get(5));storageField.setText(strArray.get(6));temp1.setText(strArray.get(6));temp2.setText(strArray.get(7));c.add(p1, BorderLayout.NORTH);。
图书管理系统javaweb课程设计
图书管理系统javaweb课程设计一、教学目标本课程的目标是让学生掌握JavaWeb的基本知识,能够使用JavaWeb技术开发一个简单的图书管理系统。
具体的学习目标包括:1.知识目标:学生需要掌握JavaWeb的基本技术,包括JSP、Servlet、JavaBean等,理解图书管理系统的业务流程。
2.技能目标:学生能够独立开发一个简单的图书管理系统,具备一定的编程能力和问题解决能力。
3.情感态度价值观目标:学生能够理解团队协作的重要性,培养良好的编程习惯,具备一定的创新意识。
二、教学内容教学内容主要包括JavaWeb的基本技术,图书管理系统的业务流程,以及实际操作。
具体的教学大纲如下:1.第一周:介绍JavaWeb的基本概念,学习JSP技术,能够编写简单的JSP页面。
2.第二周:学习Servlet技术,理解图书管理系统的业务流程,编写图书管理的Servlet代码。
3.第三周:学习JavaBean技术,实现图书管理系统的业务逻辑,编写JavaBean代码。
4.第四周:学习如何部署和运行JavaWeb应用,完成图书管理系统的测试和调试。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等。
具体的使用方法如下:1.讲授法:用于讲解JavaWeb的基本概念和基本语法。
2.讨论法:用于讨论图书管理系统的业务流程和解决方案。
3.案例分析法:通过分析实际案例,让学生理解JavaWeb技术的应用。
4.实验法:通过实际操作,让学生掌握JavaWeb技术的使用。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《JavaWeb程序设计》。
2.参考书:《JavaWeb开发技术详解》。
3.多媒体资料:相关的教学视频和演示文稿。
4.实验设备:计算机和网络设备。
五、教学评估为了全面反映学生的学习成果,本课程将采用以下评估方式:1.平时表现:通过学生的课堂表现、参与讨论的情况等进行评估,占总成绩的20%。
图书信息管理系统java课程设计
图书信息管理系统java课程设计一、课程目标知识目标:1. 学生能理解图书信息管理系统的基本原理,掌握Java语言在系统开发中的应用。
2. 学生能掌握面向对象编程思想,运用类与对象的概念实现系统功能。
3. 学生能了解数据库的基本操作,通过Java实现对图书信息的管理。
技能目标:1. 学生能运用Java语言编写简单的图书信息管理系统,具备基本的编程能力。
2. 学生能通过本课程的学习,掌握分析问题、设计解决方案、编写代码和调试程序的能力。
3. 学生能通过小组合作,提高团队协作和沟通能力。
情感态度价值观目标:1. 学生对Java编程产生兴趣,培养主动学习和解决问题的积极性。
2. 学生在课程学习中,养成认真负责、严谨细致的学习态度。
3. 学生通过本课程的学习,认识到编程在现实生活中的应用价值,激发创新意识。
课程性质:本课程为实践性较强的课程,结合理论教学和实际操作,培养学生的编程能力和实际应用能力。
学生特点:学生处于高年级阶段,已具备一定的Java编程基础,对面向对象编程有一定了解,但实际操作能力有待提高。
教学要求:结合学生特点,注重理论与实践相结合,提高学生的实际操作能力。
将课程目标分解为具体的学习成果,以便在教学过程中进行有效评估。
二、教学内容1. 理论部分:- 图书信息管理系统概述:介绍系统基本功能、模块划分及Java语言在系统开发中的应用。
- 面向对象编程基础:回顾类、对象、继承、封装、多态等概念。
- 数据库基础知识:讲解数据库的基本操作,如创建表、插入数据、查询数据等。
2. 实践部分:- 系统需求分析:指导学生分析图书信息管理系统的功能需求,明确系统目标。
- 系统设计:教授学生如何设计系统架构,划分模块,编写类和接口。
- 编码实现:指导学生运用Java语言编写图书信息管理系统的各个功能模块。
- 系统测试与调试:教授学生如何进行单元测试、集成测试,查找并修复程序错误。
教材章节关联:1. 理论部分:参照教材第3章“Java面向对象编程”和第6章“数据库编程”。
java图书馆管理系统课程设计
Java图书馆管理系统课程设计摘要本文介绍了一个基于Java的图书馆管理系统的课程设计。
该系统旨在帮助图书馆有效地管理图书借阅、归还以及读者信息管理等功能。
系统采用Java语言编写,利用面向对象的思想进行设计与实现,实现了图书的分类管理、借阅记录的管理、读者信息的管理等功能。
通过该系统的设计与实现,方便图书馆管理员进行日常的图书信息管理工作,同时提高读者借阅图书和归还图书的便捷性。
1.引言图书馆作为一个重要的文化及知识传播机构,其管理任务日益复杂。
借助计算机技术的发展,图书馆管理系统帮助图书馆实现了自动化的图书信息管理、借阅管理和读者管理等功能,极大地提高了工作效率与准确性。
本文介绍的Java图书馆管理系统具有以下特点:•使用Java语言编写,具有良好的跨平台性;•采用面向对象的思想设计,具有良好的扩展性与可维护性;•实现了图书分类管理、借阅记录管理、读者信息管理等功能,并提供了相应的操作界面;•提高了图书管理员的工作效率,提供了读者便捷的查询借阅信息和操作的途径。
2.系统设计2.1 需求分析在开始系统设计之前,我们需要对图书馆管理系统的需求进行分析。
根据实际需求,我们确定了以下功能模块:•图书管理:包括图书的添加、删除、修改和查询;•读者管理:包括读者的添加、删除、修改和查询;•借阅管理:包括借阅记录的添加、删除、修改和查询;•统计分析:包括图书借阅量和读者借阅排行等统计分析功能。
2.2 系统架构系统采用三层架构进行设计,分为表示层、业务逻辑层和数据访问层。
•表示层:负责展示图书馆管理系统的界面,接受用户的操作输入,并将输入传递给业务逻辑层进行处理;•业务逻辑层:负责处理用户操作的业务逻辑,包括图书管理、读者管理、借阅管理等功能的实现;•数据访问层:负责与数据库进行数据交互,包括读取图书信息、读者信息、借阅记录信息等。
2.3 类设计在系统设计过程中,我们根据功能模块的需求,设计了以下类:•图书类(Book):表示一本书的信息,包括书名、作者、出版社等;•读者类(Reader):表示一个读者的信息,包括姓名、年龄、性别等;•借阅记录类(BorrowRecord):表示一条借阅记录的信息,包括图书、读者、借阅时间等;•图书管理类(BookManager):实现图书的添加、删除、修改和查询功能;•读者管理类(ReaderManager):实现读者的添加、删除、修改和查询功能;•借阅管理类(BorrowManager):实现借阅记录的添加、删除、修改和查询功能;•统计分析类(StatisticsManager):实现图书借阅量和读者借阅排行等统计分析功能。
java图书借阅管理系统课程设计
java图书借阅管理系统课程设计一、教学目标本课程旨在让学生了解和掌握Java编程语言及其应用,通过构建图书借阅管理系统,培养学生运用Java语言解决实际问题的能力。
具体教学目标如下:1.知识目标:(1)掌握Java语言的基本语法和编程规范;(2)了解Java集合框架、常用数据结构及其在图书借阅管理中的应用;(3)熟悉Java面向对象编程思想,理解封装、继承、多态等概念;(4)学习Java数据库连接技术,了解SQL语言基础。
2.技能目标:(1)能够运用Java语言独立完成图书借阅管理系统的开发;(2)培养学生分析问题、解决问题的能力,提高其编程技巧;(3)培养学生团队协作能力,学会与他人共同分析和解决问题;(4)培养学生文献查阅能力,能运用所学知识查阅相关资料。
3.情感态度价值观目标:(1)培养学生对编程语言的兴趣,提高其自主学习能力;(2)培养学生认真负责、勇于探索的精神,养成良好的编程习惯;(3)培养学生团队协作意识,增强集体荣誉感;(4)通过项目实践,使学生认识到计算机技术在现实生活中的重要作用,激发其为社会做贡献的责任感。
二、教学内容本课程的教学内容主要包括以下几个部分:1.Java语言基础:Java语法、数据类型、运算符、控制结构、数组、字符串等;2.Java面向对象编程:类与对象、封装、继承、多态、抽象类、接口等;3.Java集合框架:List、Set、Map等集合类及其应用;4.Java数据库连接技术:JDBC、SQL语言基础;5.图书借阅管理系统项目实践:系统需求分析、系统设计、模块划分、编码实现、系统测试等。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合,以提高学生的学习兴趣和主动性。
1.讲授法:用于讲解Java语言基础、面向对象编程、集合框架等理论知识;2.案例分析法:通过分析实际项目案例,使学生更好地理解和掌握知识点;3.实验法:让学生亲自动手实践,完成图书借阅管理系统的开发,提高其实际编程能力。
图书馆管理java课程设计
图书馆管理java课程设计一、教学目标本课程的学习目标包括以下三个方面:1.知识目标:学生需要掌握Java语言的基础语法、数据结构、控制流程、文件操作等知识,了解面向对象编程的基本概念和方法,并能够运用Java语言实现简单的图书馆管理系统。
2.技能目标:学生能够熟练使用Java开发工具和环境,具备基本的代码调试和运行能力,能够独立完成图书馆管理系统的开发和维护。
3.情感态度价值观目标:培养学生对编程语言的兴趣和热情,增强学生的自主学习和问题解决能力,培养学生团队合作和沟通协作的精神。
二、教学内容本课程的教学内容主要包括以下几个部分:1.Java语言基础:Java语法、数据类型、运算符、控制流程、数组、字符串等。
2.面向对象编程:类和对象、封装、继承、多态、接口等。
3.数据结构:列表、栈、队列、链表、树、图等。
4.文件操作:文件读写、文件管理等。
5.图书馆管理系统:用户管理、图书管理、借阅管理等功能模块的设计和实现。
三、教学方法本课程的教学方法包括以下几种:1.讲授法:教师通过讲解和演示的方式,向学生传授Java语言的基本语法和编程方法。
2.案例分析法:教师通过分析具体的案例,引导学生理解和掌握面向对象编程的思想和方法。
3.实验法:学生通过动手实践,完成图书馆管理系统的开发和维护,提高编程能力和问题解决能力。
4.讨论法:学生分组讨论和合作,共同解决问题,培养团队合作和沟通协作的能力。
四、教学资源本课程的教学资源包括以下几种:1.教材:《Java编程思想》、《Java核心技术》等。
2.参考书:《Effective Java》、《深入理解Java虚拟机》等。
3.多媒体资料:教学视频、PPT课件等。
4.实验设备:计算机、网络设备等。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:学生参与课堂讨论、提问、回答问题等活动的表现,以及课堂纪律和团队合作等情况。
2.作业:学生完成的练习题、编程作业和项目等,占总评的30%。
Java 图书馆管理系统(附全代码)_课程设计报告
作品编号:DG13485201600078972981创作者:玫霸*《数据库系统概论》课程报告课题名称:小型图书管理系统课题负责人名(学号): best同组成员名单(角色):指导教师:评阅成绩:评阅意见:提交报告时间:2015年12月15日小型图书管理系统计算机科学与技术专业学生指导老师[摘要]随着计算机技术的飞速发展,利用计算机来获得和处理信息是当今信息管理的一大特点。
伴随计算机硬件的快速发展,有关信息管理的软件——数据库系统软件也在迅猛发展着。
图书馆是高等院校的重要组成部门,是教师和学生获取知识的重要场所。
由于图书馆主要从事大量的图书资料的储存和流通。
所以一直以来,计算机在图书馆的图书管理中得到了广泛的应用。
本系统实现图书信息管理的系统化,规范化和自动化,以最大程度提高操作人员的办公效率。
关键词:JAVA、JDBC、SQL Server、数据库、图书馆管理一、实验题目:小型图书管理系统二、实验的目的和要求:完成一个小型图书管理系统,功能要求如下:1)能够通过书籍基本信息(包括:书号、书名、出版社、出版日期、作者、内容摘要)单个或以AND 方式组合多个条件查询书籍信息;2)对于每一种书籍,除可查看其基本信息之外还可查看其总数以及目前在馆数量3)可增添新的书籍4)可删除已有书籍(如有读者借了该书籍尚未归还,则不允许删除)5)可修改书籍的基本信息6)能够通过读者基本信息(包括:证号、姓名、性别、系名、年级)单个或以AND方式组合多个条件查询读者信息7)对于每位读者除可查看其基本信息之外,还可查看其已借的书籍列表、数量、借还日期8)可增添新的读者9)可删除已有读者(如该读者有尚未归还的借书,则不允许删除)10)可修改读者的基本信息11)可完成借还书籍的手续12)还书时如超期,应该显示超期天数13)借书时如果有超期的书没有还,则不允许借书14)可查询有哪些读者有超期的书没有还,列出这些读者的基本信息三、实验的环境:1、硬件环境:CPU: Intel(R) Core i5-3230 2.60GHz RAM: 8GB2、软件环境:操作系统:Windows 7 Ultimate SP1编译软件:Eclipse LunaMicrosoft SQL Server 2014 四、系统ER图图书管理员管理读者借阅管理编号性别姓名系名年级编号书名作者出版社出版时间摘要总量现存量用户名密码应还时间拥有权限删除图书修改读者修改图书删除读者添加读者添加图书超期时间借阅时间五、表结构定义(使用表格说明)六、系统功能模块1)能够通过书籍基本信息单个或组合多个条件查询书籍信息;2)对于每一种书籍,除可查看其基本信息之外还可查看其总数以及目前在馆数量3)可增添新的书籍4)可删除已有书籍(如有读者借了该书籍尚未归还,则不允许删除)5)可修改书籍的基本信息6)能够通过读者基本信息单个或组合多个条件查询读者信息7)对于每位读者除可查看其基本信息之外,还可查看其已借的书籍列表、数量、借还日期8)可增添新的读者9)可删除已有读者(如该读者有尚未归还的借书,则不允许删除)10)可修改读者的基本信息11)可完成借还书籍的手续12)还书时如超期,应该显示超期天数13)借书时如果有超期的书没有还,则不允许借书14)可查询有哪些读者有超期的书没有还,列出这些读者的基本信息七、程序框架流程图作品编号:DG13485201600078972981 创作者:玫霸*九、程序运行结果八、核心代码AddBook.javaimport java.awt.BorderLayout; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.*; import java.util.ArrayList; import javax.swing.*;public class AddBook extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JLabel bookName = new JLabel("Book Name:");JLabel bookAuthor = new JLabel("Book Author:");JLabel press = new JLabel("Press:");JLabel pressTime = new JLabel("Press time:");JLabel bookAbstract = new JLabel("Abstract:");JLabel storage = new JLabel("Storage:");JLabel remain = new JLabel("Remain");JLabel remain1 = new JLabel("Update with Storage");JTextField numberField = new JTextField();JTextField nameField = new JTextField();JTextField authorField = new JTextField();JTextField pressField = new JTextField();JTextField pressTimeField = new JTextField();JTextField abstractField = new JTextField();JTextField storageField = new JTextField();JButton cancel = new JButton("Cancel");JButton confirm = new JButton("Confirm!!");public AddBook() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(9, 2, 20, 10));p1.add(bookNumber);p1.add(numberField);p1.add(bookName);p1.add(nameField);p1.add(bookAuthor);p1.add(authorField);p1.add(press);p1.add(pressField);p1.add(pressTime);p1.add(pressTimeField);p1.add(bookAbstract);p1.add(abstractField);p1.add(storage);p1.add(storageField);p1.add(remain);p1.add(remain1);p1.add(cancel);p1.add(confirm);cancel.addActionListener(this);confirm.addActionListener(this);}public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == confirm) {this.dispose();BookInfo book = newBookInfo(numberField.getText(),nameField.getText(), authorField.getText(),pressField.getText(), pressTimeField.getText(),abstractField.getText(), Integer.parseInt(storageField.getText()),Integer.parseInt(storageField.getText()));ArrayList<String> strArray = new ArrayList<String>();strArray = op.addBookJudgement();int n = 0;作品编号:DG13485201600078972981创作者:玫霸*int replicate = 0;while (n <Integer.parseInt(strArray.get(0))) {n++;if(numberField.getText().equals(strArray.get(n))) {replicate++;}}if (replicate == 0) {op.saveBook(book);JOptionPane.showMessageDialog(null, "Add a book successfully!","Information",RMATION_MESSAGE);} else {JOptionPane.showMessageDialog(null,"This book(number) has already existed!", "Warning",RMATION_MESSAGE);}}}}AddReader.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;public class AddReader extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel readerNumber = new JLabel("Reader Number:");JLabel readerName = new JLabel("Reader Name:");JLabel sex = new JLabel("Sex:");JLabel dpt = new JLabel("Department:");JLabel grade = new JLabel("Grade:");JTextField numberField = new JTextField();JTextField nameField = new JTextField();JTextField sexField = new JTextField();JTextField dptField = new JTextField();JTextField gradeField = new JTextField();JButton cancel = new JButton("Cancel");JButton confirm = new JButton("Confirm!!");public AddReader() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(6, 2, 20, 10));p1.add(readerNumber);p1.add(numberField);p1.add(readerName);p1.add(nameField);p1.add(sex);p1.add(sexField);p1.add(dpt);p1.add(dptField);p1.add(grade);p1.add(gradeField);p1.add(cancel);p1.add(confirm);cancel.addActionListener(this);confirm.addActionListener(this);}public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == confirm) {this.dispose();ReaderInfo reader = newReaderInfo(numberField.getText(),nameField.getText(),sexField.getText(),dptField.getText(),Integer.parseInt(gradeField.getText()));ArrayList<String> strArray = new ArrayList<String>();strArray = op.addReaderJudgement();int n = 0;int replicate = 0;while (n <Integer.parseInt(strArray.get(0))) {n++;if(numberField.getText().equals(strArray.get(n))) {replicate++;}}if (replicate == 0) {if(!sexField.getText().equals("boy")&& !sexField.getText().equals("girl")) {JOptionPane.showMessageDialog(null,"In the Sex field, you can only input 'boy' or 'girl'!","Warning", RMATION_MESSAGE);作品编号:DG13485201600078972981创作者:玫霸*} else {op.saveReader(reader);JOptionPane.showMessageDialog(null,"Add a reader successfully!", "Information",RMATION_MESSAGE);}} else {JOptionPane.showMessageDialog(null,"This reader(number) has already existed!", "Warning",RMATION_MESSAGE);}}}}BookDetails.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;import javax.swing.table.DefaultTableModel;public class BookDetails extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JLabel bookName = new JLabel("Book Name:");JLabel author = new JLabel("Author:");JLabel press = new JLabel("Press:");JLabel pressTime = new JLabel("Press time:");JLabel bookAbstract = new JLabel("Abstract:");JLabel storage = new JLabel("Storage:");JLabel remain = new JLabel("Remain:");JLabel numberField = new JLabel();JLabel nameField = new JLabel();JLabel authorField = new JLabel();JLabel pressField = new JLabel();JLabel pressTimeField = new JLabel();JLabel abstractField = new JLabel();JLabel storageField = new JLabel();JLabel remainField = new JLabel();JButton cancel = new JButton("Cancel");JLabel details = new JLabel("Borrow and reaturn details");Object[] s = { "Reader number", "Borrow time", "Deadline", "Over time" };Object[][] ob1 = new Object[7][4];JTable table = new JTable(ob1, s);JScrollPane scrollPane= new JScrollPane(table);public BookDetails(String number) {BookInfo book = new BookInfo(number);ob1 = op.borrowListForBook(number);for (int i = 0; i < 5; i++) {DefaultTableModel books = new DefaultTableModel(ob1, s);for (int n = 0; n < 7; n++) {for (int m = 0; m < 4; m++) {ob1[n][m] = this.ob1[n][m];}table.setModel(books);table.invalidate();}}ArrayList<String> strArray = newArrayList<String>();strArray = op.outputBook(book);numberField.setText(number);nameField.setText(strArray.get(1));authorField.setText(strArray.get(2));pressField.setText(strArray.get(3));pressTimeField.setText(strArray.get(4));abstractField.setText(strArray.get(5));storageField.setText(strArray.get(6));remainField.setText(strArray.get(7));c.add(p1, BorderLayout.NORTH);c.add(p2, BorderLayout.CENTER);c.add(p3, BorderLayout.SOUTH);p1.setLayout(new GridLayout(9, 2, 20, 10));p1.add(bookNumber);p1.add(numberField);p1.add(bookName);p1.add(nameField);p1.add(author);p1.add(authorField);p1.add(press);p1.add(pressField);p1.add(pressTime);p1.add(pressTimeField);p1.add(bookAbstract);p1.add(abstractField);p1.add(storage);p1.add(storageField);作品编号:DG13485201600078972981创作者:玫霸*p1.add(remain);p1.add(remainField);p1.add(details);scrollPane.setBounds(0, 0, 800, 300);p2.add(scrollPane);p3.add(cancel);table.setPreferredScrollableViewportSize(new Dimension(400, 100));cancel.addActionListener(this);}public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}}}BookInfo.javapublic class BookInfo {private String number, name, author, press, pressTime, bookAbstract;private int total, remain;// default constructorpublic BookInfo() {}public BookInfo(String number) {this.number = number;}public BookInfo(String number, String name) { this.number = number; = name;}public BookInfo(String number, String name, String author, String press,String pressTime, String bookAbstract, int total, int remain) {this.number = number; = name;this.author = author;this.press = press;this.pressTime = pressTime;this.bookAbstract = bookAbstract;this.total = total;this.remain = remain;}public void setRemain(int i) {this.remain=i;}public String getNumber() {return number;}public String getName() {return name;}public String getAuthor() {return author;}public String getPress() {return press;}public String getPressTime() {return pressTime;}public String getBookAbstract() { return bookAbstract;}public int getTotal() {return total;}public int getRemain() {return remain;}}BookRetrieval.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;作品编号:DG13485201600078972981创作者:玫霸*import javax.swing.*;import javax.swing.table.DefaultTableModel;class BookRetrieval extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JPanel p4 = new JPanel();JPanel p5 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JLabel bookName = new JLabel("Book Name:");JTextField number = new JTextField();JTextField name = new JTextField();JButton back = new JButton("Back (Fresh)");JButton addBook = new JButton("Add a book");JButton deleteBook = new JButton("Delete a book");JButton editBook = new JButton("Edit a book");JButton search = new JButton("Search for details!");JButton borrowBook = new JButton("Borrow a book");JButton returnBook = new JButton("Return a book");Font font1 = new Font("00", Font.BOLD, 20);Object[] s = { "Number", "Name", "Author", "Press", "Press Time","Abstract", "Storage", "Remain" };Object[][] ob = new Object[40][8];JTable table = new JTable(ob, s);JScrollPane scrollPane= new JScrollPane(table);public BookRetrieval() {BookInfo book = new BookInfo();ob = op.allBook(book);for (int i = 0; i < 5; i++) {DefaultTableModel books = new DefaultTableModel(ob, s);for (int n = 0; n < 20; n++) {for (int m = 0; m < 8; m++) {ob[n][m] = this.ob[n][m];}table.setModel(books);table.invalidate();}}c.add(p4, BorderLayout.NORTH);c.add(p1, BorderLayout.CENTER);c.add(p5, BorderLayout.SOUTH);search.setFont(font1);p4.setLayout(new GridLayout(2, 4, 20, 10));p4.add(back);p4.add(addBook);p4.add(editBook);p4.add(deleteBook);p4.add(borrowBook);p4.add(returnBook);p1.setLayout(null);scrollPane.setBounds(0, 0, 800, 300);p1.add(scrollPane);p5.setLayout(new GridLayout(5, 1, 0, 0));p5.add(bookNumber);p5.add(number);p5.add(bookName);p5.add(name);p5.add(search);table.setPreferredScrollableViewportSize(new Dimension(400, 300));addBook.addActionListener(this);search.addActionListener(this);back.addActionListener(this);deleteBook.addActionListener(this);editBook.addActionListener(this);borrowBook.addActionListener(this);returnBook.addActionListener(this);}public void actionPerformed(ActionEvent e) { if (e.getSource() == search) {ArrayList<String> strArray = new ArrayList<String>();strArray = op.addBookJudgement();String s1 = number.getText();String s2 = name.getText();int n = 0;int replicate = 0;while (n <Integer.parseInt(strArray.get(0))) {n++;if (s1.equals(strArray.get(n))) {replicate++;}}ArrayList<String> strArray1 = new ArrayList<String>();strArray1 = op.addBookJudgement1();int n1 = 0;int replicate1 = 0;while (n1 <Integer.parseInt(strArray1.get(0))) {n1++;if (s2.equals(strArray1.get(n1))) {replicate1++;}}if (replicate == 0 && replicate1 == 0) {JOptionPane.showMessageDialog(null,"Please input a correct book number or name!","Warning",RMATION_MESSAGE);} else if(replicate!= 0 || replicate1!=0) {if(replicate== 0 && replicate1!= 0) {BookInfo book = new BookInfo(s1, s2);String s =op.searchBookByName(book);BookDetails f= new BookDetails(s);//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Book Details");f.setLocation(300, 200);f.setSize(480, 470);f.setVisible(true);作品编号:DG13485201600078972981创作者:玫霸*} else if (replicate != 0) {BookDetails f = newBookDetails(s1);//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Book Details");f.setLocation(300, 200);f.setSize(480, 470);f.setVisible(true);}}}if (e.getSource() == back) {this.dispose();MyFrame f = new MyFrame();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Library Management System");f.setLocation(300, 200);f.setSize(580, 300);f.setVisible(true);}if (e.getSource() == addBook) {AddBook f = new AddBook();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Add a book");f.setLocation(300, 200);f.setSize(300, 400);f.setVisible(true);}if (e.getSource() == deleteBook) {DeleteBook f = new DeleteBook();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Delete a book");f.setLocation(300, 200);f.setSize(300, 200);f.setVisible(true);}if (e.getSource() == borrowBook) {BorrowBook f = new BorrowBook();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Borrow a book");f.setLocation(300, 200);f.setSize(300, 200);f.setVisible(true);}if (e.getSource() == returnBook) {ReturnBook f = new ReturnBook();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Return a book");f.setLocation(300, 200);f.setSize(300, 200);f.setVisible(true);}if (e.getSource() == editBook) {SelectEdit f = new SelectEdit();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Edit a book");f.setLocation(300, 200);f.setSize(300, 200);f.setVisible(true);}}}BorrowBook.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;public class BorrowBook extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JTextField numberField = new JTextField();JLabel readerNumber = new JLabel("Reader Number:");JTextField readerNumberField= new JTextField();JButton cancel = new JButton("Cancel");JButton borrow = new JButton("Borrow!!");public BorrowBook() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(3, 2, 20, 10));p1.add(bookNumber);p1.add(numberField);p1.add(readerNumber);p1.add(readerNumberField);p1.add(cancel);p1.add(borrow);cancel.addActionListener(this);borrow.addActionListener(this);}public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == borrow) {String bookNumber =numberField.getText();ArrayList<String> strArray = new ArrayList<String>();strArray = op.addBookJudgement();int n = 0;int replicate = 0;作品编号:DG13485201600078972981创作者:玫霸*while (n <Integer.parseInt(strArray.get(0))) {n++;if(bookNumber.equals(strArray.get(n))) {replicate++;}}String readerNumber = readerNumberField.getText();ArrayList<String> strArray1 = new ArrayList<String>();strArray1 = op.addReaderJudgement();int n1 = 0;int replicate1 = 0;while (n1 <Integer.parseInt(strArray1.get(0))) {n1++;if(readerNumber.equals(strArray1.get(n1))) {replicate1++;}}if (replicate == 0 || replicate1 == 0) {JOptionPane.showMessageDialog(null,"Please input a correct book number and a reader number!","Warning", RMATION_MESSAGE);} else {BookInfo book = newBookInfo(bookNumber);ArrayList<String> s = newArrayList<String>();s = op.outputBook(book);if (Integer.parseInt(s.get(7)) > 0) {int s1 =op.reBorrowCheck(numberField.getText(),readerNumberField.getText());if (s1 == 1) {JOptionPane.showMessageDialog(null,"You haveborrowed this book, can not reborrow it!","Unsuccessful", RMATION_MESSAGE);} else {long currentTime =System.currentTimeMillis();if(op.deadLineCheck(readerNumberField.getText(),currentTime) != 0) {JOptionPane.showMessageDialog(null,"You have exceeded the deadline, please return these books first!","Unsuccessful",RMATION_MESSAGE);} else {BookInfo book1 = new BookInfo(s.get(0), s.get(1),s.get(2), s.get(3), s.get(4), s.get(5),Integer.parseInt(s.get(6)),Integer.parseInt(s.get(7)) - 1);op.inputBook(book1);String borrowTime =Long.toString(System.currentTimeMillis());String deadline =Long.toString(System.currentTimeMillis() + 2592000000l);System.out.println(borrowTime);System.out.println(deadline);op.insertBorrow(numberField.getText(),readerNumberField.getText(), borrowTime,deadline);JOptionPane.showMessageDialog(null,"Borrowedthis book successfully, you have 30 days to enjoy this book!","Successful", RMATION_MESSAGE);}}} else {JOptionPane.showMessageDialog(null,"This book has been borrowed!", "Unsuccessful",RMATION_MESSAGE);}}this.dispose();}}}BorrowList.Javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;import javax.swing.table.DefaultTableModel;public class BorrowList extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton back=new JButton("Back");Object[] s = { "Book number", "Reader number", "Borrow time", "Deadline","OverTime"};Object[][] ob = new Object[100][5];JTable table = new JTable(ob, s);JScrollPane scrollPane= new JScrollPane(table);public BorrowList() {// TODO Auto-generated constructor stubObject[][] ob1 = op.borrowList();作品编号:DG13485201600078972981创作者:玫霸*for (int i = 0; i < 5; i++) {DefaultTableModel list = new DefaultTableModel(ob, s);for (int n = 0; n < 100; n++) {for (int m = 0; m < 5; m++) {ob[n][m] = ob1[n][m];}table.setModel(list);table.invalidate();}}c.add(p1, BorderLayout.CENTER);c.add(p2,BorderLayout.SOUTH);scrollPane.setBounds(0, 0, 800, 300);p1.add(scrollPane);p2.add(back);table.setPreferredScrollableViewportSize(new Dimension(400, 400));back.addActionListener(this);}public void actionPerformed(ActionEvent e) { if (e.getSource() == back) {this.dispose();MyFrame f = new MyFrame();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);f.setTitle("Library Management System");f.setLocation(300, 200);f.setSize(580, 300);f.setVisible(true);}// TODO Auto-generated method stub}}Date.javaimport java.text.DateFormat;import java.text.SimpleDateFormat;public class Date {public Date(){}static String borrowTimeInterface(long time) { SimpleDateFormat df = (SimpleDateFormat) DateFormat.getInstance();df.applyPattern("yyyy-MM-dd");String s = df.format(time);return s;}}DeleteBook.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import javax.swing.*;public class DeleteBook extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JTextField numberField = new JTextField();JButton cancel = new JButton("Cancel");JButton delete = new JButton("Delete!!");public DeleteBook() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(2, 2, 20, 10));p1.add(bookNumber);p1.add(numberField);p1.add(cancel);p1.add(delete);cancel.addActionListener(this);delete.addActionListener(this);}public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == delete) {BookInfo book = newBookInfo(numberField.getText());this.dispose();if(op.deleteBookCheck(numberField.getText()) != 0) {JOptionPane.showMessageDialog(null,"Delete the book unsuccessfully. The book bas been borrowed!","Warning", RMATION_MESSAGE);} else {if (op.deleteBook(book) == 1) { JOptionPane.showMessageDialog(null,"Delete the book successfully!", "Information",RMATION_MESSAGE);} else {JOptionPane.showMessageDialog(null,"Delete the book unsuccessfully. The book does not exist!","Warning",RMATION_MESSAGE);}}}}作品编号:DG13485201600078972981创作者:玫霸*}DeleteReader.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import javax.swing.*;public class DeleteReader extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel readerNumber = new JLabel("Reader Number:");JTextField numberField = new JTextField();JButton cancel = new JButton("Cancel");JButton delete = new JButton("Delete!!");public DeleteReader() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(2, 2, 20, 10));p1.add(readerNumber);p1.add(numberField);p1.add(cancel);p1.add(delete);cancel.addActionListener(this);delete.addActionListener(this);}public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == delete) {ReaderInfo reader = newReaderInfo(numberField.getText());this.dispose();if(op.deleteReaderCheck(numberField.getText()) != 0) {JOptionPane.showMessageDialog(null,"Delete the reader unsuccessfully. Please return books first!","Warning", RMATION_MESSAGE);} else {if (op.deleteReader(reader) == 1) { JOptionPane.showMessageDialog(null,"Delete the reader successfully!", "Information",RMATION_MESSAGE);} else {JOptionPane.showMessageDialog(null,"Delete the reader unsuccessfully. The reader does not exist!","Warning", RMATION_MESSAGE);}}}}}EditBook.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;public class EditBook extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JLabel bookName = new JLabel("Book Name:");JLabel author = new JLabel("Book Author:");JLabel press = new JLabel("Press:");JLabel pressTime = new JLabel("Press time:");JLabel bookAbstract = new JLabel("Abstract:");JLabel storage = new JLabel("Storage:");JLabel remain = new JLabel("Remain:");JLabel remain1 = new JLabel("Update with storage");。
java课程设计图书馆管理系统代码
Java课程设计:图书馆管理系统代码介绍本文档是关于使用Java编写的图书馆管理系统代码的设计和实现。
图书馆管理系统是一种用于管理图书馆藏书、借还书籍和读者信息的应用程序。
它可以帮助图书馆提高管理效率和服务质量,并提供方便的读者查询和借还书的功能。
功能和需求1.用户管理:图书馆管理员可以添加、删除和编辑读者信息,包括姓名、联系方式和借书情况等。
2.图书管理:管理员可以添加、删除和编辑图书信息,包括书名、作者、出版日期和库存数量等。
3.借书和还书功能:读者可以借阅图书,管理员可以归还已借出的图书,并更新库存数量。
4.图书查询功能:读者可以根据图书名称、作者或出版日期等条件进行图书查询,以了解图书的详细信息和当前库存情况。
5.借阅记录查询:管理员可以查询读者的借阅记录,包括借阅时间、归还时间和借阅状态等。
系统设计数据模型系统设计采用面向对象的编程思想,主要包括以下几个类:图书馆类(Library)•属性:–读者列表(Reader[] readers)–图书列表(Book[] books)•方法:–添加读者(addReader)–删除读者(removeReader)–编辑读者信息(editReader)–添加图书(addBook)–删除图书(removeBook)–编辑图书信息(editBook)–借书(borrowBook)–还书(returnBook)–图书查询(searchBook)–借阅记录查询(searchRecords)读者类(Reader)•属性:–姓名(String name)–联系方式(String contact)–借阅记录列表(Record[] records)•方法:–借书(borrowBook)–还书(returnBook)图书类(Book)•属性:–书名(String title)–作者(String author)–出版日期(Date publicationDate)–库存数量(int quantity)•方法:–增加库存(increaseQuantity)–减少库存(decreaseQuantity)借阅记录类(Record)•属性:–图书(Book book)–读者(Reader reader)–借阅日期(Date borrowDate)–归还日期(Date returnDate)•方法:–设置归还日期(setReturnDate)系统流程图下图展示了图书馆管理系统的基本流程:graph LRA[开始] --> B[登录]B --> C{用户类型}C -->|管理员| E[管理图书馆]C -->|读者| F[查询图书]F --> G{查询类型}G -->|书名| H[查询结果]G -->|作者| H[查询结果]G -->|出版日期| H[查询结果]F --> I[返回主菜单]I --> FE --> J{操作类型}J -->|添加读者| K[输入读者信息]K --> L[保存读者信息]J -->|删除读者| M[输入读者ID]M --> N[删除读者信息]J -->|编辑读者| O[输入读者ID]O --> P[输入更新信息]P --> Q[更新读者信息]J -->|添加图书| R[输入图书信息]R --> S[保存图书信息]J -->|删除图书| T[输入图书ID]T --> U[删除图书信息]J -->|编辑图书| V[输入图书ID]V --> W[输入更新信息]W --> X[更新图书信息]J -->|借书| Y[输入读者ID和图书ID]Y --> Z[创建借阅记录]J -->|还书| A1[输入借阅记录ID]A1 --> B1[设置归还日期]B1 --> C1[更新借阅记录]J -->|查询借阅记录| D1[输入读者ID]D1 --> E1[查询借阅记录信息]代码实现以下是Java图书馆管理系统的代码实现:public class Library {private Reader[] readers;private Book[] books;public void addReader(Reader reader) {// 添加读者}public void removeReader(int readerId) {// 删除读者}public void editReader(int readerId, Reader reader) { // 编辑读者信息}public void addBook(Book book) {// 添加图书}public void removeBook(int bookId) {// 删除图书}public void editBook(int bookId, Book book) { // 编辑图书信息}public void borrowBook(int readerId, int bookId) { // 借书}public void returnBook(int recordId) {// 还书}public Book[] searchBook(String keyword) {// 图书查询}public Record[] searchRecords(int readerId) { // 借阅记录查询}}public class Reader {private String name;private String contact;private Record[] records;public void borrowBook(int bookId) {// 借书}public void returnBook(int recordId) {// 还书}}public class Book {private String title;private String author;private Date publicationDate;private int quantity;public void increaseQuantity(int amount) {// 增加库存}public void decreaseQuantity(int amount) {// 减少库存}}public class Record {private Book book;private Reader reader;private Date borrowDate;private Date returnDate;public void setReturnDate(Date returnDate) {// 设置归还日期}}快速开始编译和运行图书馆管理系统的示例代码,请按照以下步骤:1.准备Java开发环境。
JAVA图书管理系统课程设计报告书
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.ImageIcon;
import javax.swing.JButton;
jlPwd.setForeground(Color.BLACK);
jlPwd.setBounds(118, 100, 85, 30);
}
return jlPwd;
}
public JTextField getTxtUsername() {
if(txtUsername==null)
{
txtUsername=new JTextField(20);
JAVA环境;jre-8u25-windows-i586
三
E-R
功能结构图
图1 图书管理系统功能结构图
四
根据系统分析,设计图书信息管理系统的数据库(book)表有:
图2 SQL创建结果图
用户信息表(表1)、图书信息表(表2)。表结构如下:
表1:user
字段
说明
类型
长度
主键
备注
Id
用户名
varchar
10
no
Psw
密码
varchar
10
no
表2:book
字段
说明
类型
长度
主键
备注
bid
图书编号
varchar
10
yes
bname
书名
varchar
java图书借阅管理系统课程设计
java图书借阅管理系统课程设计一、课程目标知识目标:1. 掌握Java语言基础,包括数据类型、运算符、控制结构等;2. 学会使用Java集合框架,如List、Map等,进行数据处理;3. 了解面向对象编程思想,能够运用类和对象进行程序设计;4. 掌握Java异常处理、文件操作等基本技能;5. 了解Java数据库连接技术,如JDBC,实现数据存储。
技能目标:1. 能够设计并实现一个基于Java的图书借阅管理系统,包括图书信息管理、用户管理、借阅管理等模块;2. 能够运用所学知识解决实际编程问题,具备分析问题、设计解决方案的能力;3. 能够阅读和分析Java程序,具备一定的程序调试和优化能力。
情感态度价值观目标:1. 培养学生热爱编程,主动探索计算机科学技术的兴趣;2. 培养学生团队协作精神,学会与他人共同解决问题;3. 培养学生具备良好的编程习惯,关注程序的可读性和可维护性;4. 增强学生的信息意识,使其认识到信息管理在现实生活中的重要性。
课程性质:本课程为信息技术课程,旨在让学生掌握Java编程基础,通过实际项目案例,提高编程实践能力。
学生特点:学生具备一定的计算机操作基础,对编程有一定兴趣,但编程经验不足,需要通过实践操作来提高。
教学要求:结合实际项目案例,引导学生掌握Java编程基础,注重实践操作,培养学生编程思维和解决问题的能力。
将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。
二、教学内容1. Java语言基础:变量、数据类型、运算符、控制结构(选择、循环);2. 面向对象编程:类与对象、构造方法、封装、继承、多态;3. Java集合框架:List、Set、Map接口及其实现类的使用;4. Java异常处理:异常类型、try-catch语句、throw和throws关键字;5. Java文件操作:File类、文件读写、文件过滤器;6. Java数据库连接:JDBC概述、数据库连接、SQL语句执行、结果集处理;7. 图书借阅管理系统设计:需求分析、系统设计、模块划分、界面设计;8. 图书借阅管理系统实现:各模块功能实现、数据库设计、代码编写、调试优化。
Java 图书馆管理系统(附全代码)_课程设计报告
《数据库系统概论》课程报告课题名称:小型图书管理系统课题负责人名(学号): best同组成员名单(角色):指导教师:评阅成绩:评阅意见:提交报告时间:2015年12月15日小型图书管理系统计算机科学与技术专业学生指导老师[摘要]随着计算机技术的飞速发展,利用计算机来获得和处理信息是当今信息管理的一大特点。
伴随计算机硬件的快速发展,有关信息管理的软件——数据库系统软件也在迅猛发展着。
图书馆是高等院校的重要组成部门,是教师和学生获取知识的重要场所。
由于图书馆主要从事大量的图书资料的储存和流通。
所以一直以来,计算机在图书馆的图书管理中得到了广泛的应用。
本系统实现图书信息管理的系统化,规范化和自动化,以最大程度提高操作人员的办公效率。
关键词:JAVA、JDBC、SQL Server、数据库、图书馆管理一、实验题目:小型图书管理系统二、实验的目的和要求:完成一个小型图书管理系统,功能要求如下:1)能够通过书籍基本信息(包括:书号、书名、出版社、出版日期、作者、内容摘要)单个或以AND方式组合多个条件查询书籍信息;2)对于每一种书籍,除可查看其基本信息之外还可查看其总数以及目前在馆数量3)可增添新的书籍4)可删除已有书籍(如有读者借了该书籍尚未归还,则不允许删除)5)可修改书籍的基本信息6)能够通过读者基本信息(包括:证号、姓名、性别、系名、年级)单个或以AND方式组合多个条件查询读者信息7)对于每位读者除可查看其基本信息之外,还可查看其已借的书籍列表、数量、借还日期8)可增添新的读者9)可删除已有读者(如该读者有尚未归还的借书,则不允许删除)10)可修改读者的基本信息11)可完成借还书籍的手续12)还书时如超期,应该显示超期天数13)借书时如果有超期的书没有还,则不允许借书14)可查询有哪些读者有超期的书没有还,列出这些读者的基本信息三、实验的环境:1、硬件环境:CPU: Intel(R) Core i5-3230 2.60GHzRAM: 8GB2、软件环境:操作系统:Windows 7 Ultimate SP1编译软件:Eclipse LunaMicrosoft SQL Server 2014四、系统ER图图书管理员管理读者借阅管理编号性别姓名系名年级编号书名作者出版社出版时间摘要总量现存量用户名密码应还时间拥有权限删除图书修改读者修改图书删除读者添加读者添加图书超期时间借阅时间五、表结构定义(使用表格说明)六、系统功能模块1)能够通过书籍基本信息单个或组合多个条件查询书籍信息;2)对于每一种书籍,除可查看其基本信息之外还可查看其总数以及目前在馆数量3)可增添新的书籍4)可删除已有书籍(如有读者借了该书籍尚未归还,则不允许删除)5)可修改书籍的基本信息6)能够通过读者基本信息单个或组合多个条件查询读者信息7)对于每位读者除可查看其基本信息之外,还可查看其已借的书籍列表、数量、借还日期8)可增添新的读者9)可删除已有读者(如该读者有尚未归还的借书,则不允许删除)10)可修改读者的基本信息11)可完成借还书籍的手续12)还书时如超期,应该显示超期天数13)借书时如果有超期的书没有还,则不允许借书14)可查询有哪些读者有超期的书没有还,列出这些读者的基本信息七、程序框架流程图九、程序运行结果八、核心代码AddBook.javaimport java.awt.BorderLayout; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.*; import java.util.ArrayList; import javax.swing.*;public class AddBook extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JLabel bookName = new JLabel("Book Name:");JLabel bookAuthor = new JLabel("Book Author:");JLabel press = new JLabel("Press:");JLabel pressTime = new JLabel("Press time:");JLabel bookAbstract = new JLabel("Abstract:");JLabel storage = new JLabel("Storage:");JLabel remain = new JLabel("Remain");JLabel remain1 = new JLabel("Update with Storage");JTextField numberField = new JTextField();JTextField nameField = new JTextField();JTextField authorField = new JTextField();JTextField pressField = new JTextField();JTextField pressTimeField = new JTextField();JTextField abstractField = new JTextField();JTextField storageField = new JTextField();JButton cancel = new JButton("Cancel");JButton confirm = new JButton("Confirm!!");public AddBook() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(9, 2, 20, 10));p1.add(bookNumber);p1.add(numberField);p1.add(bookName);p1.add(nameField);p1.add(bookAuthor);p1.add(authorField);p1.add(press);p1.add(pressField);p1.add(pressTime);p1.add(pressTimeField);p1.add(bookAbstract);p1.add(abstractField);p1.add(storage);p1.add(storageField);p1.add(remain);p1.add(remain1);p1.add(cancel);p1.add(confirm);cancel.addActionListener(this);confirm.addActionListener(this);}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == confirm) {this.dispose();BookInfo book= new BookInfo(numberField.getText(),nameField.getText(), authorField.getText(),pressField.getText(),pressTimeField.getText(),abstractField.getText(),Integer.parseInt(storageField.getText()),Integer.parseInt(storageField.getText()));ArrayList<String> strArray = newArrayList<String>();strArray = op.addBookJudgement();int n = 0;int replicate = 0;while (n < Integer.parseInt(strArray.get(0))) {n++;if(numberField.getText().equals(strArray.get(n))) {replicate++;}}if (replicate == 0) {op.saveBook(book);JOptionPane.showMessageDialog(null, "Add a booksuccessfully!","Information",RMATION_MESSAGE);} else {JOptionPane.showMessageDialog(null,"This book(number) has already existed!", "Warning",RMATION_MESSAGE);}}}}AddReader.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;public class AddReader extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel readerNumber = new JLabel("Reader Number:");精选文库JLabel readerName = new JLabel("Reader Name:");JLabel sex = new JLabel("Sex:");JLabel dpt = new JLabel("Department:");JLabel grade = new JLabel("Grade:");JTextField numberField = new JTextField();JTextField nameField = new JTextField();JTextField sexField = new JTextField();JTextField dptField = new JTextField();JTextField gradeField = new JTextField();JButton cancel = new JButton("Cancel");JButton confirm = new JButton("Confirm!!");public AddReader() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(6, 2, 20, 10));p1.add(readerNumber);p1.add(numberField);p1.add(readerName);p1.add(nameField);p1.add(sex);p1.add(sexField);p1.add(dpt);p1.add(dptField);p1.add(grade);p1.add(gradeField);p1.add(cancel);p1.add(confirm);cancel.addActionListener(this);confirm.addActionListener(this);}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == confirm) {this.dispose();ReaderInfo reader = new精选文库ReaderInfo(numberField.getText(),nameField.getText(), sexField.getText(),dptField.getText(),Integer.parseInt(gradeField.getText()));ArrayList<String> strArray = newArrayList<String>();strArray = op.addReaderJudgement();int n = 0;int replicate = 0;while (n < Integer.parseInt(strArray.get(0))) {n++;if(numberField.getText().equals(strArray.get(n))) {replicate++;}}if (replicate == 0) {if (!sexField.getText().equals("boy")&& !sexField.getText().equals("girl")) {JOptionPane.showMessageDialog(null,"In the Sex field, you can only input 'boy' or 'girl'!","Warning",RMATION_MESSAGE);} else {op.saveReader(reader);JOptionPane.showMessageDialog(null,"Add a reader successfully!", "Information",RMATION_MESSAGE);}} else {JOptionPane.showMessageDialog(null,"This reader(number) has alreadyexisted!", "Warning",RMATION_MESSAGE);}}精选文库}}BookDetails.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;import javax.swing.table.DefaultTableModel;public class BookDetails extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JLabel bookName = new JLabel("Book Name:");JLabel author = new JLabel("Author:");JLabel press = new JLabel("Press:");JLabel pressTime = new JLabel("Press time:");JLabel bookAbstract = new JLabel("Abstract:");JLabel storage = new JLabel("Storage:");JLabel remain = new JLabel("Remain:");JLabel numberField = new JLabel();JLabel nameField = new JLabel();JLabel authorField = new JLabel();JLabel pressField = new JLabel();精选文库JLabel pressTimeField = new JLabel();JLabel abstractField = new JLabel();JLabel storageField = new JLabel();JLabel remainField = new JLabel();JButton cancel = new JButton("Cancel");JLabel details= new JLabel("Borrow and reaturn details");Object[] s = { "Reader number", "Borrow time", "Deadline", "Over time" };Object[][] ob1 = new Object[7][4];JTable table = new JTable(ob1, s);JScrollPane scrollPane = new JScrollPane(table);public BookDetails(String number) {BookInfo book = new BookInfo(number);ob1 = op.borrowListForBook(number);for (int i = 0; i < 5; i++) {DefaultTableModel books= new DefaultTableModel(ob1, s);for (int n = 0; n < 7; n++) {for (int m = 0; m < 4; m++) {ob1[n][m] = this.ob1[n][m];}table.setModel(books);table.invalidate();}}ArrayList<String> strArray = new ArrayList<String>();strArray = op.outputBook(book);numberField.setText(number);nameField.setText(strArray.get(1));authorField.setText(strArray.get(2));pressField.setText(strArray.get(3));pressTimeField.setText(strArray.get(4));abstractField.setText(strArray.get(5));storageField.setText(strArray.get(6));remainField.setText(strArray.get(7));c.add(p1, BorderLayout.NORTH);c.add(p2, BorderLayout.CENTER);c.add(p3, BorderLayout.SOUTH);p1.setLayout(new GridLayout(9, 2, 20, 10));精选文库p1.add(bookNumber);p1.add(numberField);p1.add(bookName);p1.add(nameField);p1.add(author);p1.add(authorField);p1.add(press);p1.add(pressField);p1.add(pressTime);p1.add(pressTimeField);p1.add(bookAbstract);p1.add(abstractField);p1.add(storage);p1.add(storageField);p1.add(remain);p1.add(remainField);p1.add(details);scrollPane.setBounds(0, 0, 800, 300);p2.add(scrollPane);p3.add(cancel);table.setPreferredScrollableViewportSize(new Dimension(400, 100));cancel.addActionListener(this);}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}}}精选文库BookInfo.javapublic class BookInfo {private String number, name, author, press, pressTime, bookAbstract;private int total, remain;// default constructorpublic BookInfo() {}public BookInfo(String number) {this.number = number;}public BookInfo(String number, String name) {this.number = number; = name;}public BookInfo(String number, String name, String author, String press,String pressTime, String bookAbstract, int total, int remain) {this.number = number; = name;this.author = author;this.press = press;this.pressTime = pressTime;this.bookAbstract = bookAbstract;this.total = total;this.remain = remain;}public void setRemain(int i) {this.remain=i;}public String getNumber() {return number;}public String getName() {精选文库return name;}public String getAuthor() {return author;}public String getPress() {return press;}public String getPressTime() {return pressTime;}public String getBookAbstract() {return bookAbstract;}public int getTotal() {return total;}public int getRemain() {return remain;}}BookRetrieval.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;import javax.swing.table.DefaultTableModel;class BookRetrieval extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JPanel p4 = new JPanel();JPanel p5 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JLabel bookName = new JLabel("Book Name:");JTextField number = new JTextField();JTextField name = new JTextField();JButton back = new JButton("Back (Fresh)");JButton addBook = new JButton("Add a book");JButton deleteBook = new JButton("Delete a book");JButton editBook = new JButton("Edit a book");JButton search = new JButton("Search for details!");JButton borrowBook = new JButton("Borrow a book");JButton returnBook = new JButton("Return a book");Font font1 = new Font("00", Font.BOLD, 20);Object[] s = { "Number", "Name", "Author", "Press", "Press Time","Abstract", "Storage", "Remain" };Object[][] ob = new Object[40][8];JTable table = new JTable(ob, s);JScrollPane scrollPane = new JScrollPane(table);public BookRetrieval() {BookInfo book = new BookInfo();ob = op.allBook(book);for (int i = 0; i < 5; i++) {DefaultTableModel books= new DefaultTableModel(ob, s);for (int n = 0; n < 20; n++) {for (int m = 0; m < 8; m++) {ob[n][m] = this.ob[n][m];}table.setModel(books);table.invalidate();}}c.add(p4, BorderLayout.NORTH);c.add(p1, BorderLayout.CENTER);c.add(p5, BorderLayout.SOUTH);search.setFont(font1);p4.setLayout(new GridLayout(2, 4, 20, 10));p4.add(back);p4.add(addBook);p4.add(editBook);p4.add(deleteBook);p4.add(borrowBook);p4.add(returnBook);p1.setLayout(null);scrollPane.setBounds(0, 0, 800, 300);p1.add(scrollPane);p5.setLayout(new GridLayout(5, 1, 0, 0));p5.add(bookNumber);p5.add(number);p5.add(bookName);p5.add(name);p5.add(search);table.setPreferredScrollableViewportSize(new Dimension(400, 300));addBook.addActionListener(this);search.addActionListener(this);back.addActionListener(this);deleteBook.addActionListener(this);editBook.addActionListener(this);borrowBook.addActionListener(this);returnBook.addActionListener(this);}public void actionPerformed(ActionEvent e) { if (e.getSource() == search) {ArrayList<String> strArray = newArrayList<String>();strArray = op.addBookJudgement();String s1 = number.getText();String s2 = name.getText();int n = 0;int replicate = 0;while (n < Integer.parseInt(strArray.get(0))) {n++;if (s1.equals(strArray.get(n))) {replicate++;}}ArrayList<String> strArray1 = newArrayList<String>();strArray1 = op.addBookJudgement1();int n1 = 0;int replicate1 = 0;while (n1 < Integer.parseInt(strArray1.get(0))) { n1++;if (s2.equals(strArray1.get(n1))) {replicate1++;}}if (replicate == 0 && replicate1 == 0) {JOptionPane.showMessageDialog(null,"Please input a correct book number or name!","Warning",RMATION_MESSAGE);} else if (replicate != 0 || replicate1 != 0) {if (replicate == 0 && replicate1 != 0) {BookInfo book = new BookInfo(s1, s2);String s = op.searchBookByName(book);BookDetails f = new BookDetails(s);//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Book Details");f.setLocation(300, 200);f.setSize(480, 470);f.setVisible(true);} else if (replicate != 0) {BookDetails f = new BookDetails(s1);//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Book Details");f.setLocation(300, 200);f.setSize(480, 470);f.setVisible(true);}}}if (e.getSource() == back) {this.dispose();MyFrame f = new MyFrame();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Library Management System");f.setLocation(300, 200);f.setSize(580, 300);f.setVisible(true);}if (e.getSource() == addBook) {AddBook f = new AddBook();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Add a book");f.setLocation(300, 200);f.setSize(300, 400);f.setVisible(true);}if (e.getSource() == deleteBook) {DeleteBook f = new DeleteBook();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Delete a book");f.setLocation(300, 200);精选文库f.setSize(300, 200);f.setVisible(true);}if (e.getSource() == borrowBook) {BorrowBook f = new BorrowBook();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Borrow a book");f.setLocation(300, 200);f.setSize(300, 200);f.setVisible(true);}if (e.getSource() == returnBook) {ReturnBook f = new ReturnBook();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Return a book");f.setLocation(300, 200);f.setSize(300, 200);f.setVisible(true);}if (e.getSource() == editBook) {SelectEdit f = new SelectEdit();//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Edit a book");f.setLocation(300, 200);f.setSize(300, 200);f.setVisible(true);}}}BorrowBook.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;public class BorrowBook extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JTextField numberField = new JTextField();JLabel readerNumber = new JLabel("Reader Number:");JTextField readerNumberField = new JTextField();JButton cancel = new JButton("Cancel");JButton borrow = new JButton("Borrow!!");public BorrowBook() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(3, 2, 20, 10));p1.add(bookNumber);p1.add(numberField);p1.add(readerNumber);p1.add(readerNumberField);p1.add(cancel);p1.add(borrow);cancel.addActionListener(this);borrow.addActionListener(this);}public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == borrow) {String bookNumber = numberField.getText();ArrayList<String> strArray = newArrayList<String>();strArray = op.addBookJudgement();int n = 0;int replicate = 0;while (n < Integer.parseInt(strArray.get(0))) {n++;if (bookNumber.equals(strArray.get(n))) {replicate++;}}String readerNumber = readerNumberField.getText();ArrayList<String> strArray1 = newArrayList<String>();strArray1 = op.addReaderJudgement();int n1 = 0;int replicate1 = 0;while (n1 < Integer.parseInt(strArray1.get(0))) { n1++;if (readerNumber.equals(strArray1.get(n1))) {replicate1++;}}if (replicate == 0 || replicate1 == 0) {JOptionPane.showMessageDialog(null,"Please input a correct book number and a reader number!","Warning",RMATION_MESSAGE);} else {BookInfo book = new BookInfo(bookNumber);ArrayList<String> s = new ArrayList<String>();s = op.outputBook(book);if (Integer.parseInt(s.get(7)) > 0) {int s1 =op.reBorrowCheck(numberField.getText(),readerNumberField.getText());if (s1 == 1) {JOptionPane.showMessageDialog(null,"You have borrowed this book, can not reborrow it!","Unsuccessful", RMATION_MESSAGE);} else {long currentTime =System.currentTimeMillis();if(op.deadLineCheck(readerNumberField.getText(),currentTime) != 0) {JOptionPane.showMessageDialog(null,"You have exceeded the deadline, please return these books first!","Unsuccessful", RMATION_MESSAGE);} else {BookInfo book1= new BookInfo(s.get(0), s.get(1),s.get(2), s.get(3), s.get(4), s.get(5),Integer.parseInt(s.get(6)),Integer.parseInt(s.get(7)) - 1);op.inputBook(book1);String borrowTime =Long.toString(System.currentTimeMillis());String deadline =Long.toString(System.currentTimeMillis() + 2592000000l);System.out.println(borrowTime);System.out.println(deadline);op.insertBorrow(numberField.getText(),readerNumberField.getText(), borrowTime,deadline);JOptionPane.showMessageDialog(null,"Borrowed this book successfully, you have 30 days to enjoy this book!","Successful", RMATION_MESSAGE);}}} else {JOptionPane.showMessageDialog(null,"This book has been borrowed!", "Unsuccessful",RMATION_MESSAGE);}}this.dispose();}}}BorrowList.Javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;import javax.swing.table.DefaultTableModel;public class BorrowList extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton back=new JButton("Back");Object[] s= { "Book number", "Reader number", "Borrow time", "Deadline","OverTime"};Object[][] ob = new Object[100][5];JTable table = new JTable(ob, s);JScrollPane scrollPane = new JScrollPane(table);public BorrowList() {// TODO Auto-generated constructor stubObject[][] ob1 = op.borrowList();for (int i = 0; i < 5; i++) {DefaultTableModel list = new DefaultTableModel(ob, s);for (int n = 0; n < 100; n++) {for (int m = 0; m < 5; m++) {ob[n][m] = ob1[n][m];}table.setModel(list);table.invalidate();}}c.add(p1, BorderLayout.CENTER);c.add(p2,BorderLayout.SOUTH);scrollPane.setBounds(0, 0, 800, 300);p1.add(scrollPane);p2.add(back);table.setPreferredScrollableViewportSize(new Dimension(400, 400));back.addActionListener(this);}public void actionPerformed(ActionEvent e) {if (e.getSource() == back) {this.dispose();MyFrame f = new MyFrame();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setTitle("Library Management System");f.setLocation(300, 200);f.setSize(580, 300);f.setVisible(true);}// TODO Auto-generated method stub}}Date.javaimport java.text.DateFormat;import java.text.SimpleDateFormat;public class Date {public Date(){}static String borrowTimeInterface(long time) {SimpleDateFormat df = (SimpleDateFormat) DateFormat.getInstance();df.applyPattern("yyyy-MM-dd");String s = df.format(time);return s;}}精选文库DeleteBook.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import javax.swing.*;public class DeleteBook extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JTextField numberField = new JTextField();JButton cancel = new JButton("Cancel");JButton delete = new JButton("Delete!!");public DeleteBook() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(2, 2, 20, 10));p1.add(bookNumber);p1.add(numberField);p1.add(cancel);p1.add(delete);cancel.addActionListener(this);delete.addActionListener(this);}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == delete) {BookInfo book = newBookInfo(numberField.getText());this.dispose();if(op.deleteBookCheck(numberField.getText()) != 0) {JOptionPane.showMessageDialog(null,"Delete the book unsuccessfully. The book bas been borrowed!","Warning",RMATION_MESSAGE);} else {if (op.deleteBook(book) == 1) {JOptionPane.showMessageDialog(null,"Delete the book successfully!", "Information",RMATION_MESSAGE);} else {JOptionPane.showMessageDialog(null,"Delete the book unsuccessfully. The book does not exist!","Warning",RMATION_MESSAGE);}}}}}DeleteReader.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import javax.swing.*;public class DeleteReader extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel readerNumber = new JLabel("Reader Number:");JTextField numberField = new JTextField();JButton cancel = new JButton("Cancel");JButton delete = new JButton("Delete!!");public DeleteReader() {c.add(p1, BorderLayout.NORTH);p1.setLayout(new GridLayout(2, 2, 20, 10));p1.add(readerNumber);p1.add(numberField);p1.add(cancel);p1.add(delete);cancel.addActionListener(this);delete.addActionListener(this);}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif (e.getSource() == cancel) {this.dispose();}if (e.getSource() == delete) {ReaderInfo reader = newReaderInfo(numberField.getText());this.dispose();if (op.deleteReaderCheck(numberField.getText()) != 0) {JOptionPane.showMessageDialog(null,"Delete the reader unsuccessfully.Please return books first!","Warning",RMATION_MESSAGE);} else {if (op.deleteReader(reader) == 1) {JOptionPane.showMessageDialog(null,"Delete the reader successfully!", "Information",RMATION_MESSAGE);} else {JOptionPane.showMessageDialog(null,"Delete the reader unsuccessfully. The reader does not exist!","Warning",RMATION_MESSAGE);}}}}}EditBook.javaimport java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import java.util.ArrayList;import javax.swing.*;public class EditBook extends JFrame implements ActionListener {SQLOperation op = new SQLOperation();Container c = getContentPane();JPanel p1 = new JPanel();JLabel bookNumber = new JLabel("Book Number:");JLabel bookName = new JLabel("Book Name:");JLabel author = new JLabel("Book Author:");JLabel press = new JLabel("Press:");JLabel pressTime = new JLabel("Press time:");JLabel bookAbstract = new JLabel("Abstract:");JLabel storage = new JLabel("Storage:");JLabel remain = new JLabel("Remain:");JLabel remain1 = new JLabel("Update with storage"); JLabel numberField = new JLabel();JTextField nameField = new JTextField();JTextField authorField = new JTextField();JTextField pressField = new JTextField();JTextField pressTimeField = new JTextField();JTextField abstractField = new JTextField();JTextField storageField = new JTextField();JTextField temp1 = new JTextField();JTextField temp2 = new JTextField();JButton cancel = new JButton("Cancel");JButton save = new JButton("Save!!");public EditBook(String number) {BookInfo book = new BookInfo(number);ArrayList<String> strArray = new ArrayList<String>();strArray = op.outputBook(book);numberField.setText(number);nameField.setText(strArray.get(1));authorField.setText(strArray.get(2));pressField.setText(strArray.get(3));pressTimeField.setText(strArray.get(4));abstractField.setText(strArray.get(5));storageField.setText(strArray.get(6));temp1.setText(strArray.get(6));temp2.setText(strArray.get(7));c.add(p1, BorderLayout.NORTH);。
javasql图书管理系统课程设计
javasql 图书管理系统课程设计一、课程目标知识目标:1. 理解数据库的基本原理,掌握SQL语句的编写和执行过程;2. 掌握Java语言访问数据库的基本方法,了解JDBC技术;3. 了解图书管理系统的业务需求,构建合理的数据库表结构;4. 学会使用Java和SQL实现图书管理系统的基本功能,如增删改查等。
技能目标:1. 能够运用所学知识设计并实现一个简单的图书管理系统;2. 熟练运用JDBC技术进行数据库连接、操作和关闭;3. 学会分析业务需求,设计合理的数据库表结构,并进行SQL语句编写;4. 提高问题解决能力,通过编写代码实现图书管理系统的功能。
情感态度价值观目标:1. 培养学生的团队合作意识,学会与他人共同完成项目;2. 增强学生的实际操作能力,使其体会编程解决实际问题的成就感;3. 激发学生对计算机技术的兴趣,培养主动学习和持续探究的精神;4. 引导学生关注社会需求,理解技术在实际应用中的价值。
课程性质:本课程为实践性较强的课程,结合实际项目需求,培养学生的编程能力和问题解决能力。
学生特点:学生已具备一定的Java编程基础和数据库知识,具有一定的逻辑思维能力和动手能力。
教学要求:教师需引导学生主动参与课堂讨论,注重理论与实践相结合,关注学生的个体差异,提供个性化指导。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. Java数据库连接技术(JDBC):- JDBC概述、原理及使用步骤;- 数据库连接、SQL语句执行、结果处理及关闭连接;- PreparedStatement对象的使用,防范SQL注入。
2. 数据库设计:- 图书管理系统需求分析;- 设计合理的数据库表结构;- 主外键、索引等数据库约束的使用。
3. SQL语句编写:- 基本的SELECT、INSERT、UPDATE、DELETE语句;- WHERE子句、排序、分组等查询操作;- 视图、存储过程和触发器的基本概念及应用。
基于java的小型图书治理系统设计与实现毕业设计
小型图书治理系统设计与实现目录一、引言 (2)选题 (2)开发打算 (2)开发工具与环境配置 (2)二、系统概述 (3)需求分析 (3)系统的架构 (3)3、详细设计 (5)功能结构图 (5)数据库设计 (5)页面的结构和关系图 (5)模块设计 (6)4. 系统实现 (13)5.终止语 (14)1、引言选题为了实现图书治理的自动化,现对其设计相应的系统。
与图书馆治理信息系统不同,本系统为小型图书治理系统,用于个人对所拥有的图书进行治理,具有治理员登录和图书的增删改查功能。
开发打算设计一个小型图书治理系统,该系统由登录模块和功能模块组成。
登录模块实现治理员登录,功能模块分为图书查询、图书入库、图书删除、图书修改四个部份。
开发工具与环境配置操作系统:Windows 7数据库效劳器:SQL server 2000(采纳ODBC数据源连接)Web效劳器:Tomcat开发工具:环境配置JDK安装途径:C:\jdkTomcat效劳器安装途径:D:\java软件\tomcat\apache-tomcat-7.0.37-windows-x86\环境变量设置JA V A_HOME=D:\jdk CLASSPATH=%JavaHome%\lib\;%JavaHome%\lib\PATH变量添加的部份:%JA V A_HOME%\bin2、系统概述需求分析2.1.1图书治理系统需求概述图书治理系统的开发要紧涉及到治理员登录和图书信息治理。
图书信息治理包括:添加新进图书、删除旧图书、修改图书信息、图书查询。
图书治理员能够阅读、查询、添加、删除、修改图书的大体信息。
2.1.2功能需求(1)治理员登录——只有治理员才能对图书信息进行操作(1)图书信息阅读——对入库的图书按编号进行阅读;(2)图书查询——依照书名对图书进行快速查询;(3)图书治理——对图书馆的书籍进行治理,添加、删除和修改信息;2.1.3 性能需求靠得住性和可用性需求:(1)系统中的软件能够天天利用24小时,每一年利用365天;(2)系统中的软件故障率小于等于5%。
【免费下载】java课程设计小型图书管理系统
删除学生 借书信息
失败 退出
增加学生 借书信息
后,用户要选择所需执行的功能,即通过鼠标点击相应项,来完成所需操作。
3、功能需求分析 (1)作为学生对图书管理系统的要求有:
1. 能按各种方式(比如书名、编号、作者)查询图书馆的藏 书情况。
2. 能够方便地借阅图书、续借图书、归还图书。 3. 能够查询自己的基本资料、借阅图书情况。 4. 能够熟悉图书管理系统的使用。 (2)作为图书管理员,他们对图书管理系统的要求有: 1. 能方便的对图书进行录入登记,注销陈旧的书籍。 2. 能够方便地对新生进行登记,或注销已经毕业的学生信息 (基本信息,借阅信息)。 3. 能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏 书情况、借情况息,以便各学院能够随时获知本院学生的一些借书 信息。 四、系统模块分析 1.首先是运行代码,出现登陆选择界面
基于这些问题,有必要建立一个图书管理系统,使图书管理工 作规范化,系统化,程序化,避免图书管理的随意性,提高信息处 理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
本系统是小型图书管理系统,专为个人设计。本系统启动后需 要登陆,然后进入主界 在这个界面我们可以选择所需要的功能模块来完成所要执行的功能。
4
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java应用课程设计项目名称:简单高校图书管理系统课程名称:Java应用姓名:袁瑾学号:专业:通信工程学校:兰州交通大学指导老师:周宁日期:2012年12月26日目录一、前言-----------------------------二、系统流程图-------------------------三、功能需求分析-----------------------四、系统模块分析-----------------------五、主要源代码-------------------------六、总结-----------------------------七、参考文献---------------------------一、前言当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
图书管理系统就是为了管理好图书馆信息而设计的。
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。
根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
基于这些问题,有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
本系统是小型图书管理系统,专为个人设计。
本系统启动后需要登陆,然后进入主界在这个界面我们可以选择所需要的功能模块来完成所要执行的功能。
系统支持一系列关于图书管理方面的简单操作,诸如查询、删除、添加、修改密码等。
二、系统流程图首先是输入判断,相当于在登陆模块,要求用户输入用户名和密码;然后判断,如果判断失败退出系统,否则进入图书管理系统的主界面。
进入主界面后,用户要选择所需执行的功能,即通过鼠标点击相应项,来完成所需操作。
三、功能需求分析(1)作为学生对图书管理系统的要求有:1.?? 能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。
2.?? 能够方便地借阅图书、续借图书、归还图书。
3.? 能够查询自己的基本资料、借阅图书情况。
4.? 能够熟悉图书管理系统的使用。
(2)作为图书管理员,他们对图书管理系统的要求有:1.?? 能方便的对图书进行录入登记,注销陈旧的书籍。
2. 能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。
3.?? 能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况息,以便各学院能够随时获知本院学生的一些借书信息。
四、系统模块分析1.首先是运行代码,出现登陆选择界面分为:学生登录和教职工登陆登录时,需要进行密码验证,正确输入密码,即可登陆图书管理系统。
2.登陆后,出现功能选择,分为七个选项,根据需求,进行选择。
在用本系统前,首先要录入已借书学生的基本信息,包括:姓名、学号、班级、借书数量、名称、归还日期等,本系统将自动存储这些信息,便于以后查询。
3、录入借书学生信息4、本系统的查询功能,可以根据学生学号进行查询5、根据功能选择,用户可以选择自己需要的功能,录入、查询、修改、删除等。
6、教职工可以用自己的工作证号进行登录,进入图书管理系统后,功能和学生用户功能一样。
五、主要代码import .*;public class Main {String[] N= new String[100];String[] I=new String[100];int[] A=new int[100];String[] S=new String[100];String[] Z=new String[100];int[] C=new int[100];String[] M=new String[100];String[] E=new String[100];int i;public class person{Scanner src=new Scanner;String[] name= new String[100];String[] id=new String[100];int[] age=new int[100];String[] sex=new String[100];}public void caidan(){"欢迎登陆图书馆用户管理系统");"1——录入学生基本信息");"2——查询学生借书信息");"3——修改学生借书信息");"4——删除学生借书信息");"5——增加学生借书信息");"6——查询某位学生信息");"7——退出");}public void luru(){xuesheng guanli1=new xuesheng();();}public void chaxun(){xuesheng guanli1=new xuesheng();();}public void zengjia(){xuesheng guanli1=new xuesheng();();}public void shanchu(){xuesheng guanli1=new xuesheng();();}public void xiugai(){xuesheng guanli1=new xuesheng();();}public void chaxun1(){xuesheng guanli1=new xuesheng();();}public void denglu(){Scanner src=new Scanner;int s;String q;"请先登录用户系统!");"1——在校学生登录 2——教师工登录");s=();if(s==1){"请输入密码:");q=();if("xuehao")){zhixing();}else{"请确认后重新登录登陆!!!");denglu();}}else{if(s==2){"请输入密码:");q=();if("gongzuozhenghao"))zhixing();}else{"请确认后重新登录登陆!!!");denglu();}}}}public void zhixing(){Scanner src=new Scanner;Main guanli=new Main();int m=0;int t=0;while(m!=4){switch(t){case 0:();"请输入相应编号完成操作:");t=();break;case 1:();();"请输入相应编号完成操作:");t=();break;case 2:();();"请输入相应编号完成操作:");t=();break;case 3:();();"请输入相应编号完成操作:");t=();break;case 4:();();"请输入相应编号完成操作:");t=();break;case 5:();();"请输入相应编号完成操作:");t=();break;case 6:();();"请输入相应编号完成操作:");t=();break;case 7:m=4;}}public class xuesheng extends person{private String[] zybj=new String[100];private int[] shuliang=new int[100];private String[] mingcheng=new String[100];private String[] riqi=new String[100]; public void luru(){int r;"请输入借书学生人数:");r=();i=r;for(int t=0 ;t<i;t++){"请输入学生姓名:");N[t]=name[t]=();"请输入学生学号:");I[t]=id[t]=();"请输入学生性别:");S[t]=sex[t]=();"请输入学生年龄:");A[t]=age[t]=();"请输入学生专业班级:");Z[t]=zybj[t]=();"借书数量:");C[t]=shuliang[t]=();"借书名称:");M[t]=mingcheng[t]=();"归还日期");E[t]=riqi[t]=();}}public void zengjia(){int f;i=i+1;f=i-1;"请输入学生姓名:");N[f]=name[f]=();"请输入学生学号:");I[f]=id[f]=();"请输入学生性别:");S[f]=sex[f]=();"请输入学生年龄:");A[f]=age[f]=();"请输入学生专业班级:");Z[f]=zybj[f]=();"借书数量:");C[f]=shuliang[f]=();"借书名称:");M[f]=mingcheng[f]=();"归还日期:");E[f]=riqi[f]=();}public void shanchu(){String m;int s;"请输入您要删除的学生的学号:");m=();for(s=0;s<i;s++){if(I[s])){for(;s<i;s++){N[s]=N[s+1];name[s]=name[s+1];I[s]=I[s+1];id[s]=id[s+1];S[s]=S[s+1];sex[s]=sex[s+1];A[s]=A[s+1];age[s]=age[s+1];Z[s]=Z[s+1];zybj[s]=zybj[s+1];C[s]=C[s+1];shuliang[s]=shuliang[s+1];M[s]=M[s+1];mingcheng[s]=mingcheng[s+1];E[s]=E[s+1];riqi[s]=riqi[s+1];}i=i-1;}}"操作成功!");}public void chaxun1(){String m;int s;"请输入您要查询的学生的学号:");m=();for(s=0;s<i;s++){if(I[s])){"学生姓名:"+N[s]);"学生学号:"+I[s]);"学生性别:"+S[s]);"学生年龄:"+A[s]);"学生专业班级:"+Z[s]);"借书数量:"+C[s]);"借书名称:"+M[s]);"归还日期:"+E[s]);"操作成功!");}}}public void xiugai(){String n;int s;"请输入您要修改的学生的学号:");n=();for(s=0;s<i;s++){if(I[s])){"请输入学生姓名:");N[s]=name[s]=();"请输入学生学号:");I[s]=id[s]=();"请输入学生性别:");S[s]=sex[s]=();"请输入学生年龄:");A[s]=age[s]=();"请输入学生专业班级:");Z[s]=zybj[s]=();"借书数量:");C[s]=shuliang[s]=();"借书名称:");M[s]=mingcheng[s]=();"归还日期:");E[s]=riqi[s]=();}}"操作成功!");}public void chaxun(){for(int y=0;y<i;y++){"学生姓名:"+N[y]);"学生学号:"+I[y]);"学生性别:"+S[y]);"学生年龄:"+A[y]);"学生专业班级:"+Z[y]);"借书数量:"+C[y]);"借书名称:"+M[y]);"归还日期:"+E[y]);}"操作成功!");}}public static void main(String[] args){Main guanli=new Main();();}}六、总结通过完成本次图书管理系统实践,使我系统的经历了一次JAVA软件开发的整个设计开发过程,把所学的知识综合的运用到这次实践中,重新复习了课本上讲到的知识,觉得有一种温故而知新的感觉,通过实践同时也收获了许多课本上没有的东西。