java实现简单的收银员系统

package v2_3;

public class Item implements Comparable<Item>
{
	private String number;  //编号
	private String name;
	private double price;
	private double quantity;
	
	public Item(String number, String name, double price, double quantity) {
		super();
		this.number = number;
		this.name = name;
		this.price = price;
		this.quantity = quantity;
	}

	public String getNumber() {
		return number;
	}

	public void setNumber(String number) {
		this.number = number;
	}

	public String getName() {
		return name;
	}

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

	public double getPrice() {
		return price;
	}

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

	public double getQuantity() {
		return quantity;
	}

	public void setQuantity(double quantity) {
		this.quantity = quantity;
	}
	
	public double getAmount() //计算小计金额
	{
		return price*quantity;
	}
	
	public String getDescription()
	{
		return "";
	}

	@Override
	public int compareTo(Item other) {
		if(price!=other.price)
		{
			return (int) (price - other.price);
		}
		return 0;
	}

}

父类

package v2_3;

public class ClothItem extends Item 
{
	private String size;
	public ClothItem(String number, String name, double price, double quantity,String size) 
	{
		super(number, name, price, quantity);
		this.size = size;
	}
	public String getSize() {
		return size;
	}
	public void setSize(String size) {
		this.size = size;
	}
	public String getDescription()
	{
		return "尺码:"+size;
	}
}

package v2_3;

public class FruitItem extends Item 
{
	private String origin;  //产地
	public FruitItem(String number, String name, double price, double quantity, String origin)
	{
		super(number, name, price, quantity);
		this.origin = origin;
	}
	public String getOrigin() {
		return origin;
	}
	public void setOrigin(String origin) {
		this.origin = origin;
	}
	public String getDescription()
	{
		return "产地:"+origin;
	}
}

package v2_3;

import java.util.ArrayList;
import java.util.Arrays;

public class Receipt 
{
	public static int nextId = 1; 
	private int id; 
	private ArrayList<Item> itemList;		
	private String status;
	//constructor
	public Receipt() 
	{
		id = nextId;
		nextId++;
		itemList = new ArrayList<Item>();
		status = "unexcecuted";
	}
	public void addItem(Item it)
	{
		itemList.add(it);
	}	
	public void removeItem(int n)
	{
		int i;
		if(n>itemList.size() || n<=0)
			System.out.println("Input error!");
		else
			itemList.remove(n-1);
	}
	private double calTotalAmount()
	{
		int i;
		double amount = 0;
		for(i=0;i<itemList.size();i++)
			amount += itemList.get(i).getAmount();
		return amount;
	}
	public void printReceipt()
	{
		int i;
		Item[] list = new Item[itemList.size()];
		itemList.toArray(list);
		Arrays.sort(list);
		System.out.println("Receipt No. "+id);
		System.out.println("编号    名称    单价(元)   数量(公斤)   小计金额(元)   描述");
		for(i=0;i<list.length;i++)
			System.out.println(list[i].getNumber()+"  "+list[i].getName()+"  "+list[i].getPrice()+"  "+list[i].getQuantity()
					+"  "+list[i].getAmount()+"   "+list[i].getDescription());
		System.out.println("Total amount: " + calTotalAmount());
		System.out.println();
	}
}

package v2_3;
import java.util.Scanner;

public class ReceiptTest 
{
	private static Item[] productInfo = new Item[5];
	public static void main(String[] args)
	{			
		productInfo[0] = new FruitItem("1","Apple",6.7,1,"天水");
		productInfo[1]=  new ClothItem("2","Tshirt",80,1,"XL");
		productInfo[2] = new FruitItem("3","Orange",8, 1,"海南");
		productInfo[3]= new FruitItem("4","Pear",10, 1,"陕西");		
		productInfo[4] = new ClothItem("5","skirt",150,1,"L");
	
		Receipt myReceipt;
		Scanner in = new Scanner(System.in);
		String barCode;
		String judge;		
		do
		{
			myReceipt = new Receipt();
			System.out.println("请扫描商品添加至购物列表:");
			barCode = in.next();
			while(barCode.equals("E")==false)
			{
				for(int i=0;i<5;i++)
				{
					if(barCode.equals(productInfo[i].getNumber()))
					{						
						myReceipt.addItem(productInfo[i]);
						System.out.println("商品成功添加!");
						break;
					}
				}
				barCode = in.next();
			}
			myReceipt.printReceipt();
			System.out.println();
			System.out.println("继续购物吗?Y/N:");
			judge = in.next();
		}while(judge.equals("Y")==true);
		System.out.println("购物体验结束,谢谢参与!");
		in.close();
	}
}

结束

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pyyself.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值