数据结构课设本来是用c来做的,但实在是对c不太熟悉,就用java做了一个(前端代码用netBeans拖拽形成的)
问题描述
设计一个系统,对图书信息进行管理,信息描述:
有关该系统基本信息的描述,如:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。
设计思路
首先这个系统有三个类,Book.BorrProce.Person三个类,也就是说要有三个链表来存储这些数据,java中有继承的特性,所以便想抽象出一个类来,这时候Things类就出来了,Things是上面三个类的父类. Node类,类中有数据域和指针域,数据域是Things类型,指针域是Node类型.
SingleLinkList类,链表都是由一个一个的节点构成的,但是链表的头结点只有指针域没有数据域(数据域为空).这个类里面都是定义对链表的操作(增删改查).增删节点他们三个类是可以共同使用一个方法的,但涉及到具体数据的话就需要强制类型转换了.然后就使用SingleLinkList类中的方法来实现对数据的操作.
需求分析
要求
- 1、新进图书基本信息的输入,图书基本信息保存在数据文件中。
- 2、图书基本信息的查询。
- 3、对撤消图书信息的删除。
- 4、为借书人办理注册。
- 5、办理借书手续(非注册会员不能借书)。
- 6、办理还书手续。
- 7、统计图书库存、已借出图书数量。
详细功能
- A.添加图书:系统提示用户添加书籍,添加的具体内容是书名,ID,价格,作者,总添加量(默认为10),借出量(默认为0)。
- B.查询图书:系统设置了模糊查询的方法,通过关键字既可以查到相应的书籍。
- C.删除图书:用户通过输入书的名称来删除某一种书。
- D.借阅图书:用户首先需要登录,否则不可以借阅,通过输入书的名字,来实现借阅图书,借阅成功书的总数会减1,书的借出量会加1。
- E.归还图书:用户首先需要登录,否则不可以还书,通过输入借书人的名字,来实现归还图书,归还成功后书的总数会加1,书的借出量会减1。
- F.查询所有图书:系统设置查询所有图书的功能.
- G.通过用户名和账号登录图书管理系统,如果没有账号,可以注册.
概要设计
如图所示:
程序源代码
下面的代码结合起来放到一个java文件中是可以运行的,整个项目的代码会在最后打包.
可以看到图片上有两个包improve是后台代码包,view是前端代码包 下面是两个包中类的介绍
每个类下面都有隐藏的源代码点击▼查看
引入的包1
2
3
4
5
6
7
8import javax.swing.*;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.*;
import java.io.*;
import javax.annotation.processing.Filer;
import java.text.SimpleDateFormat;
import java.util.Date;
Book类
1 | class Book extends Things{ |
Person类
1 | class Person extends Things{ |
BorrProce类
1 | class BorrProce extends Things { |
Things类
1 | class Things { |
Node类
1 | class Node { |
SingleLinkList类
1 | class SingleLinkList { |
UtilClass类
1 | class UtilClass { |
NewJFrame类
1 | class NewJFrame extends javax.swing.JFrame { |
JTextFieldHintListener类
1 | class JTextFieldHintListener implements FocusListener { |
MainFrame类
1 | public class MainFrame extends javax.swing.JFrame { |
测试结果
放几个测试结果