【无标题】

**


## 图书管理系统

在这里插入图片描述

**

在这里插入图片描述

一,bean包


package com.shan.open.exec0313.bean;

public class Book {
    private int id;
    private String name;
    private String writer;
    private String time;
    private double price;
    private static int cid=0;
    private int num ;
    private double sum;
    private int buynum;
    public int getId() {
        return id;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public Book() {
        this.id =cid++;
    }

    public Book(String name, String writer, String time, double price,int cid) {
        this();
        this.name = name;
        this.writer = writer;
        this.time = time;
        this.price = price;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public String getWriter() {
        return writer;
    }

    public void setWriter(String writer) {
        this.writer = writer;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    public double getPrice() {
        return price;
    }

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

    public double getSum() {
        return sum;
    }

    public void setSum(double sum) {
        this.sum = sum;
    }

    public int getBuynum() {
        return buynum;
    }

    public void setBuynum(int buynum) {
        this.buynum = buynum;
    }

    public Book(int id, String name, double sum, int buynum) {
        this.id = id;
        this.name = name;
        this.sum = sum;
        this.buynum = buynum;
    }
}


```java

```java
package com.shan.open.exec0313.bean;

public class Root {
    private String root;
    private String password;

    public String getRoot() {
        return root;
    }

    public void setRoot(String root) {
        this.root = root;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Root(String root, String password) {
        this.root = root;
        this.password = password;
    }
}

``

二、dao

接口

package com.shan.open.exec0313.dao;


import com.shan.open.exec0313.bean.Book;

import java.util.Collection;

public interface BookDao {
    public void addtype(Book book);

    public void addnum(int id, int num);

    public Book find(int id);

    public void delete(int id);

    public Collection<Book> getData();

    public boolean deleteById(int id);

    public void buy(int id, int num);

    public Collection<Book> checkout();
}
package com.shan.open.exec0313.dao;

import com.shan.open.exec0313.bean.Root;

public interface RootDao {

    public boolean mode(Root root);

    public boolean login(Root root);


}

impl包

package com.shan.open.exec0313.dao.impl;

import com.shan.exec02.bean.Student;
import com.shan.open.exec0313.bean.Book;
import com.shan.open.exec0313.dao.BookDao;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class BookDaoimpl implements BookDao {
    private static List<Book> list = new ArrayList<>();
    private static List<Book> checklist = new ArrayList<>();
    static {
        Book b1 = new Book("琅琊榜","海晏","2000-01-01",149.5,100);
        Book b2 = new Book("甄嬛传","流潋紫","2001-03-01",100.5,80);
        Book b3 = new Book("斗破苍穹","天蚕土豆","2000-01-01",120.5,100);
        list.add(b1);
        list.add(b2);
        list.add(b3);
    }
    @Override
    public void addtype(Book book) {
        list.add(book);
    }

    @Override
    public void addnum(int id, int num) {
        list.get(id).setNum(list.get(id).getNum()+num);

    }

    @Override
    public Book find(int id) {
        Book b = null;
        for (int i = 0; i < list.size(); i++) {
            Book b1 = list.get(i);
            if (b1.getId() == id) {
                b = b1;
            }
        }
        return b;
    }

    @Override
    public void delete(int id) {
        Book b = find(id);
        list.remove(b);

    }

    @Override
    public Collection<Book> getData() {
        return list;
    }

    @Override
    public boolean deleteById(int id) {
        if (find(id)!=null){
            delete(id);
            return true;
        }else {
            return false;
        }

    }

    @Override
    public void buy(int id, int num) {
        Book book = find(id);
        book.setNum(book.getNum()-num);
        double sum = book.getPrice()*num;
        Book book1 = new Book(id,book.getName(),sum,num);
        checklist.add(book1);

    }

    @Override
    public Collection<Book> checkout() {

        return checklist;

    }

}

package com.shan.open.exec0313.dao.impl;

import com.shan.open.exec0313.bean.Book;
import com.shan.open.exec0313.bean.Root;
import com.shan.open.exec0313.dao.RootDao;

import java.util.ArrayList;
import java.util.List;

public class RootDaoimpl implements RootDao {
    private static List<Root> list= new ArrayList<>();
    static {
        Root r1 = new Root("admin","12345");
        Root r2 = new Root("guest","54321");
        list.add(r1);
        list.add(r2);
    }

    @Override
    public boolean mode(Root root) {
        if ("guest".equals(root.getRoot())){
            return true;
        }else {
            return false;
        }

    }

    @Override
    public boolean login(Root root) {
        if (list.contains(root)){
            return true;
        }else {
            return false;
        }
    }

}

三 view包

package com.shan.open.exec0313.view;

import com.shan.open.exec0313.bean.Book;
import com.shan.open.exec0313.bean.Root;
import com.shan.open.exec0313.dao.BookDao;
import com.shan.open.exec0313.dao.RootDao;
import com.shan.open.exec0313.dao.impl.BookDaoimpl;
import com.shan.open.exec0313.dao.impl.RootDaoimpl;

import java.util.Collection;
import java.util.Scanner;

public class BookView {
    Scanner input = new Scanner(System.in);
    BookDao dao = new BookDaoimpl();
    RootDao rootDao = new RootDaoimpl();
    public  void run(){
        System.out.println("1、登录 2、退出");
        int choose = input.nextInt();

        switch (choose){
            case 1:
                System.out.println("请输入用户名:");
                String root = input.next();
                System.out.println("请输入密码:");
                String psd = input.next();
                Root root1 = new Root(root,psd);
                login(root1);
                break;
            case 2:
                System.out.println("谢谢使用!");
                break;
            default:
                System.out.println("您的选择错误,请重新选择");
                break;
        }
    }



    public  void  login( Root root){
        if (rootDao.mode(root)){
            System.out.println("1、查看 2、购买 3、结账 4、返回主菜单");
            int choose = input.nextInt();
            switch (choose){
                case 1:
                    show();
                    login(root);
                    break;
                case 2:
                    buy();
                    login(root);
                    break;
                case 3:
                    checkout();
                    login(root);
                    break;
                case 4:
                    run();
                    break;
                default:
                    System.out.println("您的选择错误的,请重新选择");
                    break;
            }
        }else {
            menu();
        }

    }


    public void menu(){
        System.out.println("1、查看\t2、删除\t3、进货\t4、新增\t0、主菜单");

        int choose  = input.nextInt();
        switch (choose) {
            case 1:
                show();
                menu();
                break;
            case 2:
                delete();
                menu();
                break;
            case 3:
                addnum();
                menu();
                break;
            case 4:
                addtype();
                menu();
                break;
            case 0:
                run();
                break;

            default:
                System.out.println("您的选择错误的,请重新选择");
                menu();
                break;
        }
    }
    public void show(){
        System.out.println("------------------------------查看书库-------------------------------");
        Collection<Book> books = dao.getData();
        for (Book book:books
             ) {
            System.out.println(book.getId()+"\t"+book.getName()+"\t"+book.getWriter()+"\t"+book.getTime()+"\t"+book.getPrice()+"\t"+book.getNum());

        }

    }
    public void delete(){
        System.out.println("请输入您要删除的编号:");
        int sid = input.nextInt();
        boolean f = dao.deleteById(sid);
        if (f){
            System.out.println("删除成功");
        }else {
            System.out.println("删除失败");
        }
    }
    public void addnum(){
        System.out.println("请输入您要添加的书籍编号:");
        int sid = input.nextInt();
        System.out.println("请输入您要进货的数量:");
        int num = input.nextInt();
        dao.addnum(sid,num);
    }
    public void addtype(){
        Book book = new Book();
        System.out.println("请输入新增的书名:");
        book.setName(input.next());
        System.out.println("请输入该书的作者:");
        book.setWriter(input.next());
        System.out.println("请输入出版时间:");
        book.setTime(input.next());
        System.out.println("请输入单价:");
        book.setPrice(input.nextDouble());
        System.out.println("请输入数量:");
        book.setNum(input.nextInt());
        dao.addtype(book);
        System.out.println("添加成功!");

    }
    public void buy(){
        System.out.println("请输入购买的编号:");
        int sid = input.nextInt();
        System.out.println("请输入购买的数量:");
        int num = input.nextInt();
        dao.buy(sid,num);

    }
    public void checkout(){
        System.out.println("------------------------------查看账单----------------------------------");
        Collection<Book> check = dao.checkout();
        int snum = 0;
        double ssum = 0;
        for (Book b:check){
            System.out.println(b.getId()+"\t"+b.getName()+"\t"+b.getBuynum()+"\t"+b.getSum());
            snum+=b.getBuynum();
            ssum+=b.getSum();
        }
        System.out.println("总计:"+snum);
        System.out.println("总金额:"+ssum);
        System.out.println("请输入付款金额:");
        double pay= input.nextDouble();
        double left = pay - ssum;
        if (left>=0){
            System.out.println("找零:"+left);
        }else {
            System.out.println("金额不足");
            checkout();
        }

    }
}

四 test包

package com.shan.open.exec0313.test;

import com.shan.open.exec0313.view.BookView;

public class BookTest {
    public static void main(String[] args) {
        BookView view = new BookView();
        view.run();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值