0
点赞
收藏
分享

微信扫一扫

【Muduo】网络库框架模型和各模块简介

草原小黄河 2024-05-25 阅读 7

目录

全部代码 

Main类 

User类 

BookList类 

Book类 

NormalUser类 


 

全部代码 

/*一共有三个包*/

//User包
//User.java
package user;
import Book.BookList;
import Operation.IOparetion;

public abstract class User {
    protected String name;
    protected IOparetion[] iOparetions;

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

    public abstract int menu();

    public void doIOparetion(int chioce, BookList bookList){
        this.iOparetions[chioce].work(bookList);
    }
}







//User包
//NormalUser.java
package user;
import Operation.*;
import java.util.Scanner;

public class NormalUser extends User{
    public NormalUser(String name) {
        super(name);
        this.iOparetions= new IOparetion[] {
                new ExitOparetion(),
                new FindOparetion(),
                new BorrowedOparetion(),
                new ReturnOparetion()
    };
    }
    @Override
    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 scanner=new Scanner(System.in);
        int choice= scanner.nextInt();
        return choice;
    }
}






//User包
//Administrators.java
package user;
import Operation.*;
import java.util.Scanner;

public class Administrators extends User {
    public Administrators(String name) {
        super(name);
        this.iOparetions = new IOparetion[]{
                new ExitOparetion(),
                new FindOparetion(),
                new AddOparetion(),
                new DelOparetion(),
                new ShowOparetion()
        };
    }
    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 scanner = new Scanner(System.in);
        int choice = scanner.nextInt();
        return choice;
    }
}





//Book包
//Book.java
package Book;

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

    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 isLend() {
        return isLend;
    }

    public void setLend(boolean lend) {
        isLend = lend;
    }

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





//Book包
//BookList.java
package Book;

public class BookList {
    private Book[] book=new Book[10];
    private int usedSize;

    public Book getBook(int pos) {
        return book[pos];
    }

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

    public int getUsedSize() {
        return usedSize;
    }

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

    public BookList() {
        book[0]=new Book("西游记","吴承恩",19,"小说");
        book[1]=new Book("三国演义","罗贯中",36,"小说");
        book[2]=new Book("红楼梦","曹雪芹",13,"小说");
        this.usedSize=3;
    }
    public boolean isFull(){
        if(usedSize==book.length){
            return true;
        }return false;
    }
}





//Oparetion包
//Ioparetion.java
package Operation;

import Book.BookList;

public interface IOparetion {
    void work(BookList bookList);
}





//Oparetion包
//AddOparetion.java
package Operation;

import Book.Book;
import Book.BookList;
import java.util.Scanner;

public class AddOparetion implements IOparetion {
    @Override
    public void work(BookList bookList) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入你要添加的书籍名字");
        String name=scanner.nextLine();
        System.out.println("请输入作者的名字");
        String author=scanner.nextLine();
        System.out.println("请输入书的种类");
        String type=scanner.nextLine();
        System.out.println("请输入书的价格");
        int price=scanner.nextInt();
        Book book=new Book(name,author,price,type);
        if(bookList.isFull()){
            System.out.println("书架满了,借阅失败");
            return;
        }
        bookList.setBook(bookList.getUsedSize(), book);
        bookList.setUsedSize(bookList.getUsedSize()+1);
        System.out.println("添加成功");
    }
}




//Oparetion包
//BorrowedOparetion.java
package Operation;

import Book.BookList;
import java.util.Scanner;

public class BorrowedOparetion implements IOparetion{
    @Override
    public void work(BookList bookList) {
        System.out.println("请输入你要找的书名");
        Scanner scanner=new Scanner(System.in);
        String name=scanner.nextLine();
        for(int i=0;i<bookList.getUsedSize();i++){
            if(name.equals(bookList.getBook(i).getName())){
                bookList.getBook(i).setLend(true);
                System.out.println("借阅成功");
                return;
            }
        }
        System.out.println("借阅失败");
    }
    }




//Oparetion包
//DelOparetion.java
package Operation;

import Book.BookList;
import java.util.Scanner;

public class DelOparetion implements IOparetion{
    @Override
    public void work(BookList bookList) {
        System.out.println("请输入你要删除的书籍名字");
        Scanner scanner=new Scanner(System.in);
        String s=scanner.nextLine();
        int pos=-1;
        int i=0;
        for (;i<bookList.getUsedSize();i++){
            if(s.equals(bookList.getBook(i))){
                pos=i;
            }
            if(i>=bookList.getUsedSize()){
                System.out.println("没有你要找的书");
                return;
            }
        }for(int j=i;i<bookList.getUsedSize()-1;i++){
            bookList.setBook(j,bookList.getBook(j+1));

        }
        bookList.setBook(bookList.getUsedSize(), null);
        bookList.setUsedSize(bookList.getUsedSize()-1);
        System.out.println("删除成功");
    }
}





//Oparetion包
//ExitOparetion.java
package Operation;
import Book.BookList;

public class ExitOparetion implements IOparetion {
    @Override
    public void work(BookList bookList) {
        System.out.println("退出系统中....");
        for(int i=0;i<bookList.getUsedSize()-1;i++){
            bookList.setBook(i,null);
        }
        System.exit(0);
    }
}




//Oparetion包
//FindOparetion.java
package Operation;

import Book.BookList;
import java.util.Scanner;

public class FindOparetion implements IOparetion{
    @Override
    public void work(BookList bookList) {
        System.out.println("请输入你要找的书名");
        Scanner scanner=new Scanner(System.in);
        String name=scanner.nextLine();
        for(int i=0;i<bookList.getUsedSize();i++){
            if(name.equals(bookList.getBook(i).getName())){
                System.out.println("找到了,下标为:"+i);
                System.out.println(bookList.getBook(i));
                return;
            }
        }
        System.out.println("没找到");
    }
}




//Oparetion包
//ReturnOparetion.java
package Operation;

import Book.BookList;
import java.util.Scanner;

public class ReturnOparetion implements IOparetion{
    @Override
    public void work(BookList bookList) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入你要归还的书名");
        String s=scanner.nextLine();
        for (int i = 0; i < bookList.getUsedSize()-1; i++) {
            if(s.equals(bookList.getBook(i).getName())){
                bookList.getBook(i).setLend(false);
                System.out.println("归还成功");
                return;
            }
        }
        System.out.println("归还失败,没有你要归还的书");
    }
}




//Oparetion包
//ShowOparetion.java
package Operation;
import Book.BookList;

public class ShowOparetion implements IOparetion{
    @Override
    public void work(BookList bookList) {
        for(int i=0;i<bookList.getUsedSize();i++){
            System.out.println(bookList.getBook(i));
        }
    }
    }

 

Main类 

public class Main {
    public static User login(){
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入你的名字");
        String name=scanner.nextLine();
        System.out.println("请输入你的身份:1.普通用户  2.管理员用户");
        int choice =scanner.nextInt();
        if(choice==1){
            NormalUser normalUser=new NormalUser(name);
            return normalUser;
        }else{
            Administrators administrators=new Administrators(name);
            return administrators;
        }
    }
    public static void main(String[] args) {
        BookList bookList=new BookList();
        User user=login();
        while (true){
            int ret=user.menu();
            user.doIOparetion(ret,bookList);
        }
    }
}

User类 

package user;
import Book.BookList;
import Operation.IOparetion;

public abstract class User {
    protected String name;
    protected IOparetion[] iOparetions;

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

    public abstract int menu();

    public void doIOparetion(int chioce, BookList bookList){
        this.iOparetions[chioce].work(bookList);
    }
}

BookList类 

package Book;

public class BookList {
    private Book[] book=new Book[10];
    private int usedSize;

    public Book getBook(int pos) {
        return book[pos];
    }

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

    public int getUsedSize() {
        return usedSize;
    }

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

    public BookList() {
        book[0]=new Book("西游记","吴承恩",19,"小说");
        book[1]=new Book("三国演义","罗贯中",36,"小说");
        book[2]=new Book("红楼梦","曹雪芹",13,"小说");
        this.usedSize=3;
    }
    public boolean isFull(){
        if(usedSize==book.length){
            return true;
        }return false;
    }
}

Book类 

package Book;

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

    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 isLend() {
        return isLend;
    }

    public void setLend(boolean lend) {
        isLend = lend;
    }
    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                ", type='" + type + '\'' +
                (isLend==true?"已借出":"未借出")+
                '}';
    }
}

NormalUser类 

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

public class NormalUser extends User{
    public NormalUser(String name) {
        super(name);
        this.iOparetions= new IOparetion[] {
                new ExitOparetion(),
                new FindOparetion(),
                new BorrowedOparetion(),
                new ReturnOparetion()
    };
    }
    @Override
    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 scanner=new Scanner(System.in);
        int choice= scanner.nextInt();
        return choice;
    }
}
举报

相关推荐

0 条评论