public class Storage {
private String sno ;
private String name ;
private double price;
private int number ;
private double money=0.00;
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
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 int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public double getMoney() {
money=price*number;
return money;
}
public Storage(String sno,String name, double price) {
this.sno=sno;
this.name = name;
this.price = price;
}
@Override
public String toString() {
return "" + name + "\t" + price + "\t*" + number + "\r\n(" +sno+ " )=\t"+getMoney() + "\t";
}
}
自己理解写的简易超市小票
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
public class Interface {
static int storageNum = 0;// 商品数量
static int allNumber = 0;// 总数:
static double allMoney = 0;// 总计
static double outPocket = 0;// 实付
static double changeNote = 0;// 找零
static int unit = 001;// 个位:
static int decade = 001;// 十位:
static int hundreds = 001;// 百位:
static ArrayList<Storage> storageGoods = null;
static Storage st = null;
static Scanner sc = null;
public static void init() {
storageNum = 0;
allNumber = 0;
allMoney = 0;
outPocket = 0;
changeNote = 0;
// String sno,String name, double price, int number
storageGoods = new ArrayList<>();
Storage st1 = new Storage("090115", "核桃酥", 15.50);
Storage st2 = new Storage("090128", "QQ糖", 16.00);
Storage st3 = new Storage("090127", "牡丹饼", 14.50);
storageGoods.add(st1);
storageGoods.add(st2);
storageGoods.add(st3);
}
public static void selectShoping() {
int shopNum = 0;
while (shopNum != 2) {
System.out.println("购买物品请输入1\r\n结束购物请输2");
shopNum = sc.nextInt();
switch (shopNum) {
case 1:
inputShopping();
break;
case 2:
System.out.println("结束购物!");
break;
default:
System.out.println("输入错误,请重新输入!");
break;
}
}
}
public static void inputShopping() {
String sno;
int index = 1;
System.out.println("请输入你要购买物品的编号:");
sno = sc.next();
for (int i = 0; i < storageGoods.size(); i++) {
if (storageGoods.get(i).getSno().equals(sno)) {
System.out.println("请输入你要购买的数量:");
int number = sc.nextInt();
number = number + storageGoods.get(i).getNumber();
storageGoods.get(i).setNumber(number);
index--;
}
}
if (index == 1) {
System.out.println("你输入的编号不存在!");
}
}
public static void statistics() {// 统计
for (int i = 0; i < storageGoods.size(); i++) {
if (storageGoods.get(i).getNumber() != 0)
allNumber = allNumber + storageGoods.get(i).getNumber();
allMoney = allMoney + storageGoods.get(i).getNumber() * storageGoods.get(i).getPrice();
}
System.out.println("你一共消费:" + allMoney + "\r\n请付款:");
outPocket = sc.nextDouble();
changeNote = outPocket - allMoney;
while (changeNote < 0) {
System.out.println("你还需要付款:" + ((-1) * changeNote));
double note = sc.nextDouble();
changeNote = changeNote + note;
outPocket = outPocket + note;
}
}
public static void printer() {
for (int i = 0; i < storageGoods.size(); i++) {
if (storageGoods.get(i).getNumber() != 0) {
storageNum++;//统计购买了多少项物品
System.out.println(storageGoods.get(i).toString());
}
}
if (storageNum == 0)
System.out.println("不好意思,你没有购买商品,不能打印小票!");
else {
statistics();
System.out.println("\t欢 迎 光 临\r\n品名\t售价\t数量\t金额\r\n------------------------");
for (int i = 0; i < storageGoods.size(); i++) {
if (storageGoods.get(i).getNumber() != 0) {
System.out.println(storageGoods.get(i).toString());
}
}
System.out.println("------------------------\r\n" + storageNum + "项商品\t共计:" + allNumber + "件");
System.out.println("总计:" + allMoney + "\r\n" + "实付:" + outPocket + "\t找零" + changeNote);
String sunit = unit + "";
String sdecade = decade + "";
String shundreds = hundreds + "";
for (int i = 0; i < 2; i++) {
if (sunit.length() < 3)
sunit = "0" + sunit;
if (sdecade.length() < 3)
sdecade = "0" + sdecade;
if (shundreds.length() < 3)
shundreds = "0" + shundreds;
}
cycleCounter();
Date date = new Date();
DateFormat df = DateFormat.getDateTimeInstance();
System.out.println(df.format(date) + "-" + shundreds + "-" + sdecade + "-" + sunit);
System.out.println("凭此小票换取发票!");
unit++;
}
}
public static void cycleCounter() {
if (unit == 1000) {
decade++;
unit = 001;
}
if (decade == 1000) {
hundreds++;
decade = 001;
}
if (hundreds == 1000) {
hundreds = 001;
}
}
public static void main(String[] args) {
sc = new Scanner(System.in);
int step = 0;
storageGoods =new ArrayList<>();
while (step != 3) {
System.out.println("请输入你需要的操作\r\n1.输入购买物品\r\n2.打印小票\r\n3.退出");
step = sc.nextInt();
switch (step) {
case 1:
init();
selectShoping();
break;
case 2:
printer();
break;
case 3:
System.out.println("谢谢使用");
break;
default:
System.out.println("操作输入错误,请重新输入!");
break;
}
}
}
}