图书管理系统(面向对象编程+文件)

本文将展示如何使用面向对象编程思想设计一个简单的图书管理系统,包括Book、User、Operation等类的设计,以及文件操作功能,重点在于理解类的定义、继承和接口的使用。
摘要由CSDN通过智能技术生成

大家先看看图片吧,虽然很简陋,但是我们这次主要是体现面向对象编程的思想

这个是管理员登录

在这里插入图片描述

这个是普通用户登录

在这里插入图片描述

现在这是存储的文件信息

在这里插入图片描述

现在给大家我的分析:

我们要做一个图书管理系统(带文件)

分析:
A:有哪些类?
1.Book、BookLinkedList 这是书和链表实现的图书系统
2.AddOperation、BorrowOperation、DelOperation
DisplayOperation、ExitOperation、FindOperation
IOperation、ReturnOperation 这些就是图书系统的功能
3.AdminUser、NormalUser、User 这就是两种用户1.管理员 2.普通用户
4.Demo

B:每个类啥东西呢?见名知意

C:每个类之间的关系?
IOperation是个接口(后面待Operation的都实现这个接口),
User是个抽象类,NormalUser、User继承User类
Demo类是测试类,里面有主方法,还有读文件和存文件,还有登录方法

现在为大家献上我的代码

book包:
package book;

public class Book {
   
    private String name;
    private String author;
    private int price;
    private String type;
    private boolean isBorrow;
    private Book next;

    public Book(String name, String author, int price, String type) {
   
        this.name = name;
        this.author = author;
        this.price = price;
        this.type = type;
    }

    public String getName() {
   
        return name;
    }

    public void setName(String name) {
   
        this.name = name;
    }

    public String getAuthor() {
   
        return author;
    }

    public void setAuthor(String author) {
   
        this.author = author;
    }

    public int getPrice() {
   
        return price;
    }

    public void setPrice(int price) {
   
        this.price = price;
    }

    public String getType() {
   
        return type;
    }

    public void setType(String type) {
   
        this.type = type;
    }

    public boolean isBorrow() {
   
        return isBorrow;
    }

    public void setBorrow(boolean borrow) {
   
        isBorrow = borrow;
    }

    public Book getNext() {
   
        return next;
    }

    public void setNext(Book next) {
   
        this.next = next;
    }

    @Override
    public String toString() {
   
        return "Book{" +
                "书名='" + name + '\'' +
                ", 作者='" + author + '\'' +
                ", 价钱=" + price +
                ", 类型='" + type + '\'' +
                ", 是否被借出=" + isBorrow +
                '}';
    }
}


package book;

public class BookLinkedList {
   
    private Book head;  //链表第一个有效元素
    private Book tail;  //链表最后一个有效元素

    public BookLinkedList(){
   
        //一开始就读取文件里面存储的图书吧
    }

    //判断图书管理系统里面是否没有书
    public Boolean isEmpty(){
   
        return head==null;
    }

    public Book getHead(){
   
        return head;
    }

    public void setHead(Book head){
   
        this.head=head;
    }

    public Book getTail() {
   
        return tail;
    }

    public void setTail(Book tail) {
   
        this.tail = tail;
    }
}

operation包下
package operation;

import book.Book;
import book.BookLinkedList;

import java.util.Scanner;

public class AddOperation implements IOperation {
   
    @Override
    public void work(BookLinkedList bookLinkedList) {
   
        Scanner sc = new Scanner(System.in);
        //System.out.println("添加图书");
        System.out.println("请输入书名:");
        String name = sc.next();
        System.out.println("请输入作者:");
        String author = sc.next();
        System.out.println("请输入价钱:");
        int price = sc.nextInt</
系统功能与特色: (1)图书别信息管理:作为一个学校的图书馆,涉及到的图书是很多的,这就有必要对图书进行分门别,这样有利于对图书的查询和管理。不同的图书别可以借阅的天数也是不一样的,管理员登陆系统后可以对图书别进行添加,更新和删除操作。 (2)图书信息管理:当管理员对图书别信息添加完成后,就可以开始进行图书信息的录入了,只有将图书馆拥有的图书录入系统,读者朋友在登陆系统后才可以查询到自己喜欢的该图书。 (3)读者别管理:为了方便图书馆的管理,系统对读者的别进行了分别,不同的读者别可以借阅图书的数目是不一样的。管理员在登陆系统后可以这个读者别信息进行管理,包括添加读者别信息,修改读者别,删除读者别,特别是执行删除操作时需要保持数据库表数据之间的一致性。 (4)读者信息管理:当管理员把读者别信息编辑好完成后,就可以办理读者信息了,管理员可以添加新的读者信息,修改已经存在的读者信息,删除读者信息。 (5)图书借阅管理:读者可以登陆系统查询自己喜欢的图书,然后到图书馆进行图书借书的登记操作,当读者看完了书或需要归还时,需要拿着自己的图书到图书馆进行归还,此时有管理员办理图书归还业务。当然,如果读者借阅了图书因某种原因忘记了归还,管理员还可以对这些信息进行统计,同时,管理员还可以对已经出借的图书进行续借的办理。 (6)系统设置: 管理员登陆系统后可以修改图书馆的信息,可以修改管理其他操作员的信息,可以管理书架信息。 (7)口令更改:无论是管理员或读者身份登陆系统后,都可以对自己的登陆密码进行修改操作,这样保证了系统的安全性。 (8)系统特点:采用MVC设计模式,完全采用面向对象的设计思想,使用了开源框架Struts。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值