Java编写选购图书项目

public class Books {
    private String book_no;
    private String book_name;
    private String book_author;
    private String release_time;
    private double price;
    private int stock;

    public Books() {
        super();
    }

    public Books(String book_no, String book_name, String book_author,
            String release_time, double price, int stock) {
        super();
        this.book_no = book_no;
        this.book_name = book_name;
        this.book_author = book_author;
        this.release_time = release_time;
        this.price = price;
        this.stock = stock;
    }

    public int getStock() {
        return stock;
    }

    public void setStock(int stock) {
        this.stock = stock;
    }

    public String getBook_no() {
        return book_no;
    }

    public void setBook_no(String book_no) {
        this.book_no = book_no;
    }

    public String getBook_name() {
        return book_name;
    }

    public void setBook_name(String book_name) {
        this.book_name = book_name;
    }

    public String getBook_author() {
        return book_author;
    }

    public void setBook_author(String book_author) {
        this.book_author = book_author;
    }

    public String getRelease_time() {
        return release_time;
    }

    public void setRelease_time(String release_time) {
        this.release_time = release_time;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
public class BookManager {
    private Books[] books;
    private int ID = 10000;
    private double summoney;
    public BookManager() {
        super();
        books = new Books[30];
    }

    // 图书入库
    public void addBooks(String ID, int stock) {
        for (Books b : books) {
            if (b.getBook_no().equals(ID)) {
                b.setStock(b.getStock() + stock);
                break;
            }
        }
    }

    // 图书出库
    public void delivery(String ID, int stock) {
        for (Books b : books) {
            if (b.getBook_no().equals(ID)) {
                if (b.getStock() > stock) {
                    b.setStock(b.getStock() - stock);
                    break;
                }
            }
        }
    }

    // 查询全部图书
    public void showBooks() {
        if (books != null) {
            for (Books books2 : books) {
                if (books2 != null) {
                    System.out.println(books2.getBook_no() + "\t"
                            + books2.getBook_name() + "\t"
                            + books2.getBook_author() + "\t"
                            + books2.getRelease_time() + "\t"
                            + books2.getPrice() + "\t" + books2.getStock());
                }
            }
        } else {
            System.err.print("暂无库存!");
        }
    }

    // 新增图书
    public void increaseBook(Books books) {
        for (int i = 0; i < this.books.length; i++) {
            if (this.books[i] == null) {
                this.books[i] = books;
                break;
            }
        }
    }

    //自动添加图书编号
    public String returnNo() {
        if (books != null) {
            ID += 1;
            return String.valueOf(ID);
        } else {
            return "";
        }

    }

    // 结账
        public void account(String ID, int num) {
            for (Books books2 : books) {
                if (books2.getBook
public class Test {

    public static void main(String[] args) {
        System.out.println("***********欢迎使用图书书店**********");
        System.out.print("请输入用户名:");
        Scanner input = new Scanner(System.in);
        String name = input.next();
        System.out.println("请输入密码");
        String pwd = input.next();
        Admin admin = new Admin(name, pwd);
        boolean flag1 = admin.identity();
        User user = new User(name, pwd);
        boolean flag2 = user.identity();
        BookManager bookManager = new BookManager();
        if (flag1) {
            System.out.println("登录成功!");
            System.out.println();
            boolean flag = true;
            System.out.println("********欢迎登录库存管理系统*********");
            do {
                System.out
                        .println("请选择进行的操作:1.图书入库 2.图书出库 3.查询全部图书 4.新增图书 5.退出");
                int num = input.nextInt();
                switch (num) {
                case 1:
                    System.out.print("请输入图书ID:");
                    String bookID = input.next();
                    System.out.print("请输入入库的数量");
                    int stock = input.nextInt();
                    bookManager.addBooks(bookID, stock);
                    System.out.print("书号\t书名\t作者\t发布时间\t价格\t库存\n");
                    bookManager.showBooks();
                    break;
                case 2:
                    System.out.print("请输入图书ID:");
                    String bookID1 = input.next();
                    System.out.print("请输入出库的数量");
                    int stock1 = input.nextInt();
                    bookManager.delivery(bookID1, stock1);
                    System.out.print("书号\t书名\t作者\t发布时间\t价格\t库存\n");
                    bookManager.showBooks();
                    break;
                case 3:
                    System.out.print("书号\t书名\t作者\t发布时间\t价格\t库存\n");
                    bookManager.showBooks();
                    break;
                case 4:
                    System.out.print("请输入书名:");
                    String authorName = input.next();
                    System.out.print("请输入作者名:");
                    String author = input.next();
                    System.out.print("请输入发布时间:");
                    String time = input.next();
                    System.out.print("请输入价格:");
                    double price = input.nextDouble();
                    System.out.println("请输入数量:");
                    int stock2 = input.nextInt();
                    Books book = new Books(bookManager.returnNo(), authorName,
                            author, time, price, stock2);
                    bookManager.increaseBook(book);
                    System.out.print("书号\t书名\t作者\t发布时间\t价格\t库存\n");
                    bookManager.showBooks();
                    break;
                default:
                    flag = false;
                    break;
                }

            } while (flag);
        }
        if (flag2) {
            System.out.println("登录成功!");
            Books books2 = new Books("10001", "鬼吹灯", "天下霸唱", "2008-7-1", 23, 87);
            Books books = new Books("10002", "魔戒1", "莫尔斯", "2005-3-14", 54, 13);
            bookManager.increaseBook(books);
            bookManager.increaseBook(books2);
            boolean flag = true;
            System.out.println("********欢迎光临图书馆系统*********");
            do {
                System.out.println("请选择进行的操作:1.查看图书 2.结账 3.退出");
                int num = input.nextInt();
                switch (num) {
                case 1:
                    System.out.print("书号\t书名\t作者\t发布时间\t价格\t库存\n");
                    bookManager.showBooks();
                    break;
                case 2:
                    System.out.print("请输入图书ID:");
                    String bookID1 = input.next();
                    System.out.print("请输入购买数量");
                    int buy_num = input.nextInt();
                    bookManager.account(bookID1, buy_num);
                    break;

                default:
                    flag = false;
                    break;
                }

            } while (flag);

        }

    }

}

_no().equals(ID)) {
                    summoney = books2.getPrice() * num;
                    System.out.print(books2.getBook_no()+":"+books2.getPrice()+"\n"+
                    "数量:"+num+"\n小记:"+summoney);
                    break;
                }
            }
        }
public class Admin {
    private String admin_name;
    private String admin_pwd;

    public Admin() {
        super();
    }

    public Admin(String admin_name, String admin_pwd) {
        super();
        this.admin_name = admin_name;
        this.admin_pwd = admin_pwd;
    }

    // 身份认证
        public boolean identity() {
            if (getAdmin_name().equals("admin") && getAdmin_pwd().equals("admin")) {
                return true;
            } else {
                return false;
            }
        }

    public String getAdmin_name() {
        return admin_name;
    }

    public void setAdmin_name(String admin_name) {
        this.admin_name = admin_name;
    }

    public String getAdmin_pwd() {
        return admin_pwd;
    }

    public void setAdmin_pwd(String admin_pwd) {
        this.admin_pwd = admin_pwd;
    }

}
public class User {
    private String user_name;
    private String user_pwd;

    Admin admin = new Admin();
    public User() {
        super();
    }

    public User(String user_name, String user_pwd) {
        super();
        this.user_name = user_name;
        this.user_pwd = user_pwd;
    }

    // 身份认证
    public boolean identity() {
        if (getUser_name().equals("user") && getUser_pwd().equals("user")) {
            return true;
        } else {
            return false;
        }
    }

    public String getUser_name() {
        return user_name;
    }

    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }

    public String getUser_pwd() {
        return user_pwd;
    }

    public void setUser_pwd(String user_pwd) {
        this.user_pwd = user_pwd;
    }

}
时间: 2024-08-07 00:10:50

Java编写选购图书项目的相关文章

Java编写的C语言词法分析器

这是java编写的C语言词法分析器,我也是参考很多代码,然后核心代码整理起来,放在QQ空间和博客上,目的是互相学习借鉴,希望可以得到高手改进.这个词法分析器实现的功能有打开文件.保存文件.打开帮助文档.文本域内容的剪切和复制和黏贴.进行词法分析 程序的项目结构如图,Word类和Unidentifiable类是两个JavaBean类,存放的参数有两个row(整型).word(String),row用于获取行数,word用于获取标识符,LexerFrame是词法分析器的界面类,Analyze封装了进

【JavaService】使用Java编写部署windows服务

如果你玩windows系统,你对服务这个东西并不会陌生,服务可以帮我们做很多事情,在不影响用户正常工作的情况下,可以完成很多我们需要的需求. 众所周知,微软的visio studio内置的Service类可以编写windows服务,对于一个Java开发人员来说,想要编写一个windows服务部署到服务器里面, 还要在自己的开发环境装一个visio studio,那太麻烦了. 那么问题来了,我想用java编写一个windows服务,这个想法可行吗?答案是肯定的,可行! 开源的JavaService

Java编写基于netty的RPC框架

一 简单概念 RPC: ( Remote Procedure Call),远程调用过程,是通过网络调用远程计算机的进程中某个方法,从而获取到想要的数据,过程如同调用本地的方法一样. 阻塞IO :当阻塞I/O在调用InputStream.read()方法是阻塞的,一直等到数据到来时才返回,同样ServerSocket.accept()方法时,也是阻塞,直到有客户端连接才返回,I/O通信模式如下: 图片描述(最多50字) 缺点:当客户端多时,会创建大量的处理线程,并且为每一个线程分配一定的资源;阻塞

Java基础14:离开IDE,使用java和javac构建项目

Java基础14:离开IDE,使用java和javac构建项目 javac命令初窥 注:以下红色标记的参数在下文中有所讲解. 本部分参考https://www.cnblogs.com/xiazdong/p/3216220.html 用法: javac 其中, 可能的选项包括: -g 生成所有调试信息 -g:none 不生成任何调试信息 -g:{lines,vars,source} 只生成某些调试信息 -nowarn 不生成任何警告 -verbose 输出有关编译器正在执行的操作的消息 -depr

java编写jmeter压测脚本

目前项目中接触的比较多的是接口测试,功能测个差不多后会对部分接口进行压测,采用的是java编写脚本,导入jmeter进行压测. 使用到的jmeter的相关包 写一个测试类,继承AbstractJavaSamplerClient 设置请求参数,这些参数在导入进jmeter之后会在java请求页面显示出来 具体的请求方法可以写在test方法里,获取请求的结果resultData,然后对resultData里的内容解析,判断接口调用成功or失败 将项目导出成jar包,导入到jmeter中,在jmete

Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式

Java企业级电商项目架构演进之路  Tomcat集群与Redis分布式 Redisson介绍Redisson是架设在Redis基础上的一个java驻内存数据网格.Redisson在基于NIO的Netty框架上,充分的利用了Redis键值数据库提供的一系列优势.在java使用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类.使得原本作为协调单机多线程并发程序的工具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度.同时结合各富特色的分布

java编写Base64密码器

Base64加密算法,应用广泛,尤其是在电子邮件传输上,有很大的用途 用JAVA编写的程序代码如下 import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.JFrame; import javax.s

java枚举在android项目应用

今天修复一个公司很早以前的android应用功能,里面的代码逻辑已经完全错乱,然后发现返回的数据完全不对了.然后修复了整整两天.然后我重新整理了一遍,重构就算不上了.然后就用上了枚举. 什么是枚举?我以前也不懂,当时我看见公司的项目中使用了枚举当做项目一个控制,比如修改已经写好的app然后为一些手机厂商做定制版.可能要去掉广告,还有跳转到商店url都不同,特别是国内基本都没有google play.我们为了避免以后的修改,就会写个枚举来控制它. public enum Market { Defa

java web 手动部署项目步骤

java Web 手动部署项目步骤 1 在tomcat下面的webapps下面建立需要部署的文件夹(eg:demo);2 在demo下建立 WEB-INF WETA-INF src 文件夹;3 在src下建立新的servlet.java文件4 在WEB-INF下面建立classes和web.xml文件 5通过命令“javac -d 目录地址 文件名” 编译servlet,前提是必须把tomcat目录下的lib里面的servlet-api.jar拷贝到当前的servlet源文件目录下. 在配置环境