超市购物小票
步骤:
定义GoodsItem类(名称,货号,单价,数量,计价单位,金额)
成员位置定义集合,定义方法向集合中存储所有GoodsItem数据
实现主干逻辑
打印欢迎语句
使用for/while进行循环进行操作
使用switch给出操作选择:1输入购买数量2打印小票3退出
package javaadvacedday1.receipt;
/**
* @author :Andy
* @date :Created in 2019/6/15 16:00
* @description:定义GoodsItem类(名称,货号,单价,数量,计价单位,金额)
*/
public class GoodsItem {
private String name;
private String goodsNumber;
private double price;
private int num;
private String nuit;
private float money;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGoodsNumber() {
return goodsNumber;
}
public void setGoodsNumber(String goodsNumber) {
this.goodsNumber = goodsNumber;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getNuit() {
return nuit;
}
public void setNuit(String nuit) {
this.nuit = nuit;
}
public float getMoney() {
return money;
}
public void setMoney(float money) {
this.money = money;
}
@Override
public int hashCode() {
return super.hashCode();
}
@Override
public boolean equals(Object obj) {
return super.equals(obj);
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
@Override
public String toString() {
return super.toString();
}
@Override
protected void finalize() throws Throwable {
super.finalize();
}
public GoodsItem(String name, String goodsNumber, float price, int num, String nuit, float money) {
this.name = name;
this.goodsNumber = goodsNumber;
this.price = price;
this.num = num;
this.nuit = nuit;
this.money = money;
}
public GoodsItem(String 少林寺核桃, String goodsNumber, double v, int num, String 个, int money) {
super();
}
}
package javaadvacedday1.receipt;
import java.util.ArrayList;
import java.util.Map;
import java.util.Scanner;
/**
* @author :Andy
* @date :Created in 2019/6/15 16:04
* @description:添加商品属性
*/
public class ShoppingReceipt {
/**
* @Fields data : 成员位置定义集合,存储所有的商品项对象
*/
static ArrayList<GoodsItem> data = new ArrayList<GoodsItem>();
public static void main(String[] args) {
//为集合准备数据
initData();
//打印欢迎语句
System.out.println("欢迎使用超市管理系统!");
//使用死循环完成反复操作的逻辑
//for(;;) {}
while(true) {
//使用switch给出操作选择:1输入购买数量2打印小票3退出
//提示信息
System.out.println("请输入您要进行的操作:1输入购买数量 2打印小票 3退出");
//通过键盘录入得到数据
Scanner sc = new Scanner(System.in);
int optNumber = sc.nextInt();
//完成switch中三个case的逻辑
switch (optNumber) {
case 1:
//System.out.println("给所有数据量赋值");
//调用给所有数据的数量与金额赋值方法
enterNumber();
break;
case 2:
//System.out.println("打印购物小票");
//调用打印购物小票的方法
printReceipt();
break;
case 3:
System.out.println("欢迎下次光临");
//退出程序
System.exit(0);
default:
System.out.println("请输入正确的数字!");
break;
}
}
}
/**
* @Title: initData
* @Description: 定义方法,向成员位置的集合赋值
*/
public static void initData() {
//创建多个商品项对象
GoodsItem sls = new GoodsItem("少林寺核桃", "090115", 15.5, 0, "个", 0);
GoodsItem shk = new GoodsItem("尚康饼干", "090027", 14.5, 0, "个", 0);
//将多个商品项对象放入集合中
data.add(sls);
data.add(shk);
}
* @Title: enterNumber
* @Description: 为所有的数据赋值数量与金额
*/
public static void enterNumber() {
//集合的遍历
for (int i = 0; i <data.size(); i++) {
//依次获取到集合中每一个元素
GoodsItem thisGoods = data.get(i);
//提示用户,输入该商品项的数量
//获取该商品项名称
String thisGoodsName = thisGoods.getName();
System.out.println("请输入"+thisGoodsName+"的购买数量");
//键盘录入接受商品数量
Scanner sc = new Scanner(System.in);
int thisGoodsNumber = sc.nextInt();
//根据数量计算金额金额 = 单价 * 数量
double thisGoodsMoney = thisGoods.getPrice() * thisGoodsNumber;
//为该商品的数量与金额赋值
thisGoods.setNum(thisGoodsNumber);
thisGoods.setMoney((float) thisGoodsMoney);
}
}
* @Title: printReceipt
* @Description: 打印小票方法
*/
private static void printReceipt() {
//static ArrayList<GoodsItem> data = new ArrayList<GoodsItem>();
//票头
System.out.println(" 欢迎光临");
System.out.println("品名\t售价\t数量\t单位\t金额");
System.out.println("-------------------------------------------");
//票体
//定义变量,记录所有的商品数量
int totalNumber = 0;
//定义变量,记录所有的商品金额
double totalMoney = 0;
//遍历集合
for (int i = 0; i <data.size(); i++) {
//依次获取每一个商品项
GoodsItem g = data.get(i);
//打印商品项
System.out.println(g.getName()+g.getGoodsNumber()+"\t"+g.getPrice()+"\t"+g.getName()+" "+g.getNuit()+"\t"+g.getMoney());
//累加数量与金额
totalNumber += g.getNum();
totalMoney += g.getMoney();
}
System.out.println("-------------------------------------------");
//票脚
System.out.println("共"+data.size()+"项商品");
System.out.println("共"+totalNumber+"件商品");
System.out.println("共"+totalMoney+"元");
System.out.println();
}
}