学习记录】Java图书购买及管理系统(使用集合储存图书信息

此文用于记录在校Java课程学习】-实验报告2

此次实验要求如下:

以下为实验有的几个类

Test2部分代码:

package TestReport2;

import java.util.ArrayList;
import java.util.Scanner;

import ShoppingBook.Book;		//调用ShoppingBook包中的Book类
import BookMenager.ShoppingManager;		//调用BookMenager中的ShoppingManager类

public class Test2 {
	static ArrayList<Book> bklab = new ArrayList<>(); 	//先预先声明一个成员...集合?
	
	public static void main(String[] args) {
		//第一小问调用输出语句
		//Book.Bookinfo(114514,"Java Program Design",150,28.2);	//调用Bookinfo方法填入ID、书名、库存、价格(题目给定
		//第二问图书管理系统
		ShoppingManager.addBook(bklab); 	//调用addBook方法,参数中填写预先声明好的集合
		ShoppingManager.searchbook(bklab);	//调用searchbook方法,参数中填写预先声明好的集合
		//第三问收银系统
		AllUsers.BookPay();	//调用Bookpay方法 往正下方翻就是了
	}	
}

//第三问图书收银系统?
class AllUsers {
	public static void BookPay() {
		Scanner bp = new Scanner(System.in);
		System.out.println("\n请输入购买图书名称");
		String bkname = bp.nextLine();
		System.out.println("请输入购买数量");
		int bknum = bp.nextInt();
		System.out.println("请输入顾客已支付金额");
		double pymion = bp.nextDouble();
		
		for(int i = 0; i<Test2.bklab.size() ; i++) {
			Book bn = Test2.bklab.get(i);
		if( bn.getBookName().equals(bkname)) {
			System.out.println("图书ID\t\t图书名\t\t图书库存\t图书价格\t目前折扣价\t应付\t实付\t找零");
			Book bo = Test2.bklab.get(i);
			System.out.printf(bo.getBookId()+"\t"+bo.getBookName()
					+"\t"+bo.getBookStorage()+"\t"+ bo.getBookPrice()
					+"\t" +Book.getBookDiccount(bo.getBookStorage(),bo.getBookPrice())
					+"\t" +Book.getBookDiccount(bo.getBookStorage(),bo.getBookPrice())*bknum
					+"\t" + pymion 
					+"\t" + (pymion-(Book.getBookDiccount(bo.getBookStorage(),bo.getBookPrice())*bknum))
						); } else {System.out.println("查无此书"); 
			}
		}
	}
}

 Book类部分代码:

package ShoppingBook;

public class Book {
	//定义第一小问所需方法
	//定义Bookinfo与getBookDiccount之间的成员变量 
	private static int BKST;
	private static double BKPR;	
	//图书信息输出(为第一小问服务的方法
public static void Bookinfo(int BookId,String BookName,int BookStorage,double BookPrice)  {		
		BKST = BookStorage; BKPR = BookPrice ;
		System.out.printf("图书名: " +BookName +"\t图书ID: " +BookId 
				+"\t图书库存: " +BKST+"\t图书原价: " +BKPR+"\t图书折扣价: %.2f" 
				,getBookDiccount(BKST, BKPR));
	}
	//计算折扣方法
public static double getBookDiccount (int BookStorage,double BookPrice)  {		
	double dc; BKST = BookStorage; BKPR = BookPrice;
	if(BookStorage < 50 ) {		//使用if...else if...判断方法
		dc = BookPrice*0.5;
	}else if(BookStorage >= 50 && BookStorage < 100 ) {
		dc = BookPrice*0.6;
	}else if(BookStorage >=100 && BookStorage < 200 ) {
		dc = BookPrice*0.8;
	}else { dc = BookPrice; }
	return dc;
}
//以下为图书查询系统代码
//定义图书查询系统的成员变量
private String BookId;
private String BookName;
private int BookStorage;
private double BookPrice;
		//无参构造方法
public Book() {		
	super();
	// TODO Auto-generated constructor stub
}
		//带参构造方法
public Book(String bookId, String bookName, int bookStorage, double bookPrice) {
	super();
	this.BookId = bookId;
	this.BookName = bookName;
	this.BookStorage = bookStorage;
	this.BookPrice = bookPrice;
}
		//以下为get,set方法
public String getBookId() {		
return BookId;	}

public void setBookId(String bookId) {
BookId = bookId;	}

public String getBookName() {
return BookName;	}

public void setBookName(String bookName) {
BookName = bookName;	}

public int getBookStorage() {
return BookStorage;	}

public void setBookStorage(int bookStorage) {
BookStorage = bookStorage;	}

public double getBookPrice() {
return BookPrice;	}

public void setBookPrice(double bookPrice) {
BookPrice = bookPrice;	}
}

ShoppingManager类部分代码:

package BookMenager;

import java.util.ArrayList;
import java.util.Scanner;

import ShoppingBook.Book;

public class ShoppingManager {
	public static void addBook (ArrayList <Book> booklab) {	//无参创建集合对象
		Scanner bk = new Scanner(System.in);	//键盘录入所需数据
		System.out.println("请输入图书名: ");
		String bname = bk.nextLine();
		System.out.println("请输入图书ID: ");
		String bid = bk.nextLine();
		System.out.println("请输入图书库存: ");
		int bstorage = bk.nextInt(); 
		System.out.println("请输入图书原价: ");
		double bprice = bk.nextDouble();
		
		Book b = new Book();//调用ShoppingBook类中的Book方法对b进行实例化,并把键盘录入的数据赋值给b对象的成员变量
		b.setBookId(bid);
		b.setBookName(bname);
		b.setBookStorage(bstorage);
		b.setBookPrice(bprice);
		
		booklab.add(b);	//往集合中添加b的对象
		
		System.out.println("添加图书成功!");
	}
	
	public static void searchbook(ArrayList <Book> booklab) {	//遍历数组
		
		System.out.println("图书ID\t\t图书名\t\t图书库存\t图书价格\t目前折扣价");
		
		for(int i=0; i<booklab.size();i++) {	//使用booklab.size的长度 控制循环次数
			Book bo = booklab.get(i);		//将集合中的元素按原顺序赋值回新Book对象的成员变量后输出
			System.out.printf(bo.getBookId()+"\t"+bo.getBookName()
						+"\t"+bo.getBookStorage()+"\t"+ bo.getBookPrice()
						+"\t%.2f",Book.getBookDiccount(bo.getBookStorage(),bo.getBookPrice()) );
		}	
	}
}


版权声明:本文为qq_44957695原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。