今天这个是一个Java小练习,一个图书借阅系统,需要实现的功能有:
判断用户是否需要进行借书 在用户选择借书时,展示出图书列表 图书列表包含 图书序号、图书名称、借阅价格、作者 用户选择借书数量、并选择对应图书、借阅天数 计算出用户需支付金额Book.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
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" + "租金" + " " + "\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<Book> bookList = new ArrayList<Book>(); 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 += ((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 <x.nextInt()) { int priceSpread = x.nextInt()-bookPrice ;//定义差价 System.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中,下面这段代码本想实现判断用户输入的金额是否和应付金额一致,不一致时给出不同的回复,但是自己试了好多种方法,都没有实现,还是自己懂得太少:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
while (bookPrice != x.nextInt()) { if (bookPrice > x.nextInt()) { int priceSpread = bookPrice - x.nextInt(); //定义差价 System.out.println( "------------" + "\n" + "您已付款" + x.nextInt() + "元,还需支付" + priceSpread + "元" ); }
if (bookPrice <x.nextInt()) { int priceSpread = x.nextInt()-bookPrice ; //定义差价 System.out.println( "------------" + "\n" + "您已付款" + x.nextInt() + "元,找您" + priceSpread + "元" ); } } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
原文链接:https://blog.csdn.net/weixin_41676971/article/details/81389989