栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

快来看看你学校的图书管理系统的底层代码吧

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

快来看看你学校的图书管理系统的底层代码吧

目录

1.知识结合

2.系统使用效果 

2.1管理员系统

 2.2普通用户使用系统

3.图书存储类

4.创建用户相关的类

4.1在user包里面先创建一个User 类,这是一个抽象类

4.2创建管理员类 AdmiUser,是User 的子类

5.创建操作相关的类

5.1各个类的接口 IOperation

5.2新增图书类AddOperation

5.3借阅图书类BorrowOperation

5.4删除图书类DelOperation

5.5打印图书类DisplayOperation

5.6查找图书类FindOperation

5.7归还图书类ReturnOperation

5.8退出系统类ExitOperation

6.Main 类和main 方法


1.知识结合

知识点:类,抽象类,封装,继承,多态,接口等。

熟悉类与类之间的关系

掌握抽象类,接口,继承,封装等知识点的应用 下图为用到的包和类

2.系统使用效果 

2.1管理员系统

查找图书

 新增图书和显示图书

 2.2普通用户使用系统

查找图书

 借阅图书的归还图书

3.图书存储类

1.创建一个book包,用来表示存储书的文件

在book包里创建Book类,作为一本书

package book;

public class Book {
    private String name;//书名
    private String author;//作者
    private double price;//价格
    private String type;//类型
    private boolean isBorrowed;//是否借出

    public Book(String name, String author, double 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 double getPrice() {
        return price;
    }

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

    public String getType() {
        return type;
    }

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

    public boolean isBorrowed() {
        return isBorrowed;
    }

    public void setBorrowed(boolean borrowed) {
        isBorrowed = borrowed;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + ''' +
                ", author='" + author + ''' +
                ", price=" + price +
                ", type='" + type + ''' +
                ((isBorrowed == true) ? " 已经被借出 " : " 未被借出 ")+
                '}';
    }
}

在book包里创建BookList 类,用来存储书

package book;

public class BookList {
    private Book[] books = new Book[10];
    private int usedSize;
    public BookList() {
        books[0] = new Book("平凡的世界","路遥",34.0,"小说");
        books[1] = new Book("百万英镑","马克.吐温",20.0,"小说");
        books[2] = new Book("追风筝的人","胡塞尼",30.0,"小说");
        this.usedSize = 3;
    }

    public int getUsedSize() {
        return usedSize;
    }

    public void setUsedSize(int usedSize) {
        this.usedSize = usedSize;
    }

    

    public Book getPos(int pos) {
        return this.books[pos];
    }

    

    public void setBooks(int pos,Book book) {
        this.books[pos] = book;
    }

}

4.创建用户相关的类

创建一个user包

4.1在user包里面先创建一个User 类,这是一个抽象类
package user;

import book.BookList;
import operation.IOperation;

public abstract class User {
    protected String name;

    protected IOperation[] iOperations;

    public User(String name) {
        this.name = name;
    }

    public abstract int menu();
    public void doWork(int choice, BookList bookList) {
        iOperations[choice].work(bookList);
    }

}

4.2创建管理员类 AdmiUser,是User 的子类
package user;

import operation.*;

import java.util.Scanner;

public class AdminUser extends User{
    public AdminUser(String name) {
        super(name);
        this.iOperations = new IOperation[] {
                new ExitOperation(),
                new FindOperation(),
                new AddOperation(),
                new DelOperation(),
                new DisplayOperation(),

        };
    }
    public int menu() {
        System.out.println("-----------------管理员菜单-----------------");
        System.out.println("hello "+ this.name +" 欢迎来到图书管理系统");
        System.out.println("1.查找图书");
        System.out.println("2.新增图书");
        System.out.println("3.删除图书");
        System.out.println("4.显示图书");
        System.out.println("0.退出系统");
        System.out.println("------------------------------------------");

        Scanner scanner = new Scanner(System.in);
        int choice = scanner.nextInt();
        return choice;
    }
}

4.3创建普通用户使用类 NormalUser ,是User 的子类

package user;

import operation.*;

import java.util.Scanner;

public class NormalUser extends User{

    public NormalUser(String name) {
        super(name);
        this.iOperations = new IOperation[] {
                new ExitOperation(),
                new FindOperation(),
                new BorrowOperation(),
                new ReturnOperation(),
        };
    }

    public int menu() {
        System.out.println("-----------------普通用户菜单-----------------");
        System.out.println("hello "+ this.name +" 欢迎来到图书使用系统");
        System.out.println("1.查找图书");
        System.out.println("2.借阅图书");
        System.out.println("3.归还图书");
        System.out.println("0.退出系统");
        System.out.println("------------------------------------------");

        Scanner scanner = new Scanner(System.in);
        int choice = scanner.nextInt();
        return choice;
    }
}

5.创建操作相关的类

先创建一个operation包,然后在包里面创建操作类

5.1各个类的接口 IOperation
package operation;

import book.BookList;

import java.util.Scanner;

public interface IOperation {

    Scanner scanner = new Scanner(System.in);
    void work(BookList bookList);
}

5.2新增图书类AddOperation
package operation;

import book.Book;
import book.BookList;

public class AddOperation implements IOperation{

    public void work(BookList bookList) {
        System.out.println("新增图书!");
        System.out.println("请输入图书的名字: ");
        String name = scanner.nextLine();
        System.out.println("请输入图书的作者:");
        String author = scanner.nextLine();
        System.out.println("请输入图书的类型:");
        String type = scanner.nextLine();
        System.out.println("请输入图书的价格:");
        double price = scanner.nextDouble();

        Book book = new Book(name,author,price,type);
        int size = bookList.getUsedSize();
        bookList.setBooks(size,book);
        bookList.setUsedSize(size+1);
        System.out.println("新增图书成功");

    }

}

5.3借阅图书类BorrowOperation
package operation;

import book.Book;
import book.BookList;

public class BorrowOperation implements IOperation{

    public void work(BookList bookList) {

        System.out.println("借阅图书");
        System.out.println("请输入你要借阅的图书名:");
        String name = scanner.nextLine();
        int size = bookList.getUsedSize();
        for (int i = 0; i < size; i++) {
            Book book = bookList.getPos(i);
            if (name.equals(book.getName())) {
                book.setBorrowed(true);
                System.out.println("借阅成功");
                System.out.println(book);
                return;
            }
        }
        System.out.println("查无此书,请重新查找");
    }

}

5.4删除图书类DelOperation
package operation;

import book.Book;
import book.BookList;

public class DelOperation implements IOperation{

    public void work(BookList bookList) {
        System.out.println("删除图书!");
        //根据书名找到书的位置 index
        System.out.println("请输入你要删除的图书名");
        String name = scanner.nextLine();
        int currentSize = bookList.getUsedSize();
        int index = 0;//存储找到的下标
        int i = 0;
         for (;i < currentSize; i++) {
             Book book = bookList.getPos(i);
             if (book.getName().equals(name)) {
                 index = i;
                 break;
             }
         }
         if (i >= currentSize) {
             System.out.println("没有你要删除的书");
             return;
         }
         //2.进行删除
        for (int j = index; j < currentSize - 1; j++) {
            Book book = bookList.getPos(j+1);
            bookList.setBooks(j,book);//把书往前移一步
        }
        bookList.setBooks(currentSize,null);
        bookList.setUsedSize(currentSize-1);
        System.out.println("删除成功!");

    }
}

5.5打印图书类DisplayOperation
package operation;

import book.Book;
import book.BookList;

public class DisplayOperation implements IOperation{

    public void work(BookList bookList) {
        System.out.println("打印图书!");
        int size = bookList.getUsedSize();
        for (int i = 0; i < size; i++) {
            Book book = bookList.getPos(i);
            System.out.println(book);
        }

    }

}

5.6查找图书类FindOperation
package operation;

import book.Book;
import book.BookList;
import com.sun.media.jfxmediaimpl.HostUtils;

public class FindOperation implements IOperation{

    public void work(BookList bookList) {
        System.out.println("查找图书!");
        System.out.println("请输入你要查找的书名");
        String name = scanner.nextLine();
        int size = bookList.getUsedSize();
        for (int i = 0; i < size; i++) {
            Book book = bookList.getPos(i);
            if (book.getName().equals(name)) {
                System.out.println("找到的书信息如下");
                System.out.println(book);
                return;
            }
        }
        System.out.println("查无此书");

    }
}

5.7归还图书类ReturnOperation
package operation;

import book.Book;
import book.BookList;

public class ReturnOperation implements IOperation{

    public void work(BookList bookList) {
        System.out.println("归还图书!");
        System.out.println("请输入你要归还的图书名:");
        String name = scanner.nextLine();
        int size = bookList.getUsedSize();
        for (int i = 0; i < size; i++) {
            Book book = bookList.getPos(i);
            if (name.equals(book.getName())) {
                book.setBorrowed(false);
                System.out.println("归还成功!");
                System.out.println(book);
                return;
            }
        }
        System.out.println("你要归还的图书不属于改系统");

    }
}

5.8退出系统类ExitOperation
package operation;

import book.BookList;

public class ExitOperation implements IOperation{

    public void work(BookList bookList) {
        System.out.println("退出系统!");
        System.exit(0);

    }
}

6.Main 类和main 方法
import book.BookList;
import user.AdminUser;
import user.NormalUser;
import user.User;

import java.util.Scanner;


public class Main {

    public static User login() {
        System.out.println("请输入你的姓名");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        System.out.println("请输入你的身份:1.管理员    0.普通用户");
        int choice = scanner.nextInt();
        if(choice == 1) {
            return new AdminUser(name);
        }else {
            return new NormalUser(name);
        }

    }

    public static void main(String[] args) {
        BookList bookList = new BookList();
        User user = login();//向上转型

        while (true) {
            int choice = user.menu();//发生了动态绑定--多态
            user.doWork(choice,bookList);

        }

    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983833.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号