Java——简单图书管理系统


哈喽,大家好,我是无敌小恐龙。
写一个图书管理系统,可以回顾以前所学习是知识:数据类型,变量,if ,for,数组,方法,类和对象,封装,继承,多态,抽象类和接口。把这些知识串起来,不仅可以加深我们对知识的理解,还可以初步理解做一个系统是什么流程,资源包也上传了哦。

一、图书管理系统是什么样的?

请看如下动图:
在这里插入图片描述
在这里插入图片描述

程序一运行:开始先输入名字,在输入身份是否为管理员还是普通用户,最终就是一些操作了。这就是要做的简单图书管理系统了,心理暗自说:还是蛮简单的嘛,嘿嘿嘿。重点是学Java面向对象的开发思想哟!!!对象与对象之间的联系。

二、准备工作

分析有哪些对象?

用户: 管理员 普通用户
书:Book 书架
一些操作: 操作的是书架

画UML图

三大模块:用户模块,书架模块,管理操作模块
在这里插入图片描述

三、实现三大模块

用户模块

用户分为管理员和普通用户,可以抽象出一个公共的类:User(abstract) 其子类有Admin,NormalUser。放入一个包User中。
User

package User;

import Book.Bookshelf;
import Operation.IOOperation;

public abstract class User {
   
	//用户名
    protected String name;
    //用户的管理操作
    protected IOOperation[] operations;

    public User(String name) {
   
        this.name = name;
    }
	
	//抽象的菜单方法,应为不同的用户有不同的实现菜单方式,返回值为int 返回 你要选择那个?
    public abstract int menu();
	//不同的用户,不是也有不同的操作吗?
	//注意:操作的是书架
	//答:采用了多态
    public void doOperation(int option,Bookshelf bookshelf) {
   
        operations[option].work(bookshelf);
    }


}

Admin

package User;

import Operation.*;
import java.util.Scanner;
public class Admin extends User{
   

    public Admin(String name) {
   
        super(name);
        //不同的用户操作不同,直接在用户初始化时,就决定了有那些操作了--->直接赋值
        this.operations = new IOOperation[]{
   
                new ExitSystemOperate(),
                new FindBookOperate(),
                new AddBookOperate(),
                new DeleteBookOperate(),
                new ShowBookOperate(),
        };
    }
	
	//重写自己的菜单方法
    @Override
    public int menu() {
   

        System.out.println("******管理员菜单*******");
        System.out.println("1. 查找图书");
        System.out.println("2. 新增图书");
        System.out.println("3. 删除图书");
        System.out.println("4. 显示图书");
        System.out.println("0. 退出图书");
        System.out.println("********************");
        System.out.println("请输入选项:");
        
        Scanner s = new Scanner(System.in);
        int option = s.nextInt();
        return option;

    }

}

NormalUser:

package User;

import Operation.*;
import java.util.Scanner;

public class NormalUser extends User{
   

    public NormalUser(String name) {
   
        super(name);
        this.operations = new IOOperation[]{
   
                new ExitSystemOperate(),
                new FindBookOperate(),
                new BorrowBookOperate(),
                new BackBookOperate()
        };
    }
    public int menu() {
   
        System.out.println("******普通用户菜单*******");
        System.out.println("1. 查找图书");
        System.out.println("2. 借阅图书");
        System.out.println("3. 归还图书");
        System.out.println("0. 退出图书");
        System.out.println("********************");
        System.out.println("请输入选项:");

        Scanner s = new Scanner(System.in);
        int option = s.nextInt();
        return option;

    }


}


书架模块

书类:

package Book;

public class Book {
   
    private String name
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是无敌小恐龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值