Java设计模式之外观模式示例详解
310
2022-08-21
Java实现图书借阅系统
今天这个是一个java小练习,一个图书借阅系统,需要实现的功能有:
Book.java
package com.imooc;
/**
* 图书类 包含图书序号 名称 价格
* */
public class Book {
private int id;
private String name;
private double price;
private String author;
public Book(int id, String name, double price, String author) {
// TODO Auto-generated constructor stub
this.id = id;
this.setName(name);
this.price = price;
this.author = author;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setPrice(double price) {
this.price = price;
}
public double getPrice() {
return price;
}
public void setAuthor(String author) {
this.author = author;
}
public String getAuthor() {
return author;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
BorrowBooks.java
package com.imooc;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class BorrowBooks {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("~~~~~~~欢迎使用图书借阅系统~~~~~~~~ ");
System.out.println("您是否要借书:1.是 >> 点击其他键退出");
BorrowBooks test = new BorrowBooks();
while (test.test1()) {
System.out.println(">>>您可选择图书及其价目表:");
System.out.println("-------------------------------------------");
Book[] books = { new Book(0, "红楼梦", 12, "曹雪芹"),
new Book(1, "西游记", 12, "吴承恩"),
new Book(2, "汉乡", 12, "孑与2"),
new Book(3, "大魏宫廷", 12, "贱宗首席"),
new Book(4, "三国演义", 12, "罗贯中"),
new Book(5, "水浒传", 12, "施耐庵") };
System.out.println("序号" + " " + "\t" + "书名" + " " + "\t"
for (Book book : books) {
if (book.getClass().equals(Book.class)) {
System.out.println(book.getId() + "\t" + "\t"
+ book.getName() + "\t" + "\t" + book.getPrice()
+ "/天" + "\t" + "\t" + book.getAuthor() + "/著");
}
}
System.out.println("-------------------------------------------");
System.out.println("-->请输入你要借书的数量:");
Scanner zScanner = new Scanner(System.in);
int BookNum = zScanner.nextInt();
if (BookNum > 0) {
List
int add = 0;
int bookPrice = 0;
for (int i = 0; i < BookNum; i++) {
System.out.println(">>请输入第" + (i + 1) + "本书的序号:");
int num = zScanner.nextInt();
try {
bookList.add(books[num]);
System.out.println("----成功添加:"
+ bookList.get(add).getName());
if (books[num].getClass().equals(Book.class)) {
bookPrice += http://((Book) bookList.get(add)).getPrice();
}
add++;
} catch (Exception e) {
// TODO: handle exception
System.out.println("您输入的图书序号不正确");
i = i - 1;
BookNum = BookNum;
}
}
System.out.println("->请输入借阅的天数:");
Scanner g = new Scanner(System.in);
int bookDay = g.nextInt();
bookPrice = bookPrice * bookDay;
System.out.println("------------借阅选书完成------------" + "\n"
+ "下面开始统计数据..........");
System.out.print("您借阅的图书" + BookNum + "本:" + " ");
for (Book book : bookList) {
System.out.println(book.getName() + " " + "\n");
}
System.out.println();
System.out.println("共租用:" + bookDay + " 天");
System.out.println("需要付款:" + bookPrice + " 元");
System.out.println("->请输入付款金额:");
System.out.println("------------");
Scanner x = new Scanner(System.in);
int priceSpread = bookPrice - x.nextInt();//定义差价
while (bookPrice != x.nextInt())
System.out.println("------------" + "\n" + "输入错误,请重新输入金额!");
/*
while (bookPrice != x.nextInt())
{
if (bookPrice > x.nextInt()) {
int priceSpread = bookPrice - x.nextInt();//定义差价
System.out.println("------------" + "\n" + "您已付款"
+ x.nextInt() + "元,还需支付" + priceSpread + "元");
}
if (bookPrice int priceSpread = x.nextInt()-bookPrice ;//定义差价 Syshttp://tem.out.println("------------" + "\n" + "您已付款" + x.nextInt() + "元,找您" + priceSpread + "元"); } */ System.out.println("------------"); System.out.println(" 交易成功!"); System.out.println(); System.out.println("------------感谢您的使用--------------"); System.out.println("………………继续借书请按1,退出请按其他键………………"); } else { System.out.println("您输入的借书数量为“0”,自动为您退出系统"); System.exit(0); } } } private static Object bookPrice(int nextInt) { // TODO Auto-generated method stub return null; } // 捕获输入参数不正确异常 public boolean test1() { try { Scanner z = new Scanner(System.in); if (z.nextInt() == 1) { return true; } else { return false; } } catch (Exception e1) { return false; } } } 运行效果图 存在问题 在BorrowBooks.java这个Class中,下面这段代码本想实现判断用户输入的金额是否和应付金额一致,不一致时给出不同的回复,但是自己试了好多种方法,都没有实现,还是自己懂得太少: while (bookPrice != x.nextInt()) { if (bookPrice > x.nextInt()) { int priceSpread = bookPrice - x.nextInt();//定义差价 System.out.println("------------" + "\n" + "您已付款" + x.nextInt() + "元,还需支付" + priceSpread + "元"); } if (bookPrice int priceSpread = x.nextInt()-bookPrice ;//定义差价 System.out.println("------------" + "\n" + "您已付款" + x.nextInt() + "元,找您" + priceSpread + "元"); } }
int priceSpread = x.nextInt()-bookPrice ;//定义差价
Syshttp://tem.out.println("------------" + "\n" + "您已付款"
+ x.nextInt() + "元,找您" + priceSpread + "元");
}
*/
System.out.println("------------");
System.out.println(" 交易成功!");
System.out.println();
System.out.println("------------感谢您的使用--------------");
System.out.println("………………继续借书请按1,退出请按其他键………………");
} else {
System.out.println("您输入的借书数量为“0”,自动为您退出系统");
System.exit(0);
}
}
}
private static Object bookPrice(int nextInt) {
// TODO Auto-generated method stub
return null;
}
// 捕获输入参数不正确异常
public boolean test1() {
try {
Scanner z = new Scanner(System.in);
if (z.nextInt() == 1) {
return true;
} else {
return false;
}
} catch (Exception e1) {
return false;
}
}
}
运行效果图
存在问题
在BorrowBooks.java这个Class中,下面这段代码本想实现判断用户输入的金额是否和应付金额一致,不一致时给出不同的回复,但是自己试了好多种方法,都没有实现,还是自己懂得太少:
while (bookPrice != x.nextInt())
{
if (bookPrice > x.nextInt()) {
int priceSpread = bookPrice - x.nextInt();//定义差价
System.out.println("------------" + "\n" + "您已付款"
+ x.nextInt() + "元,还需支付" + priceSpread + "元");
}
if (bookPrice int priceSpread = x.nextInt()-bookPrice ;//定义差价 System.out.println("------------" + "\n" + "您已付款" + x.nextInt() + "元,找您" + priceSpread + "元"); } }
int priceSpread = x.nextInt()-bookPrice ;//定义差价
System.out.println("------------" + "\n" + "您已付款"
+ x.nextInt() + "元,找您" + priceSpread + "元");
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~