黑马程序员技术交流社区
标题:
水果超市管理系统,怎么在小票票脚打印时间呢?
[打印本页]
作者:
黑马一号
时间:
2016-6-14 23:03
标题:
水果超市管理系统,怎么在小票票脚打印时间呢?
import java.util.Scanner;
public class Supermarket {
public static void main(String[] args) {
/*
商品报价单中的项目
*/
String slsName = "少林寺酥饼核桃"; //名称
String slsID = "090115"; //编号
double slsPrice = 15.5; //单价
String slsUnit = "个"; //单位
int slsNumber = 0; //数量
double slsMoney = 0; //金额
String skName = "皇家特供尚康杂粮牡丹饼(复合营养型)";
String skID = "090027";
double skPrice = 14.5;
String skUnit = "个";
int skNumber = 0;
double skMoney = 0;
Scanner sc = new Scanner(System.in);
//将用户的一次操作放到循环中循环执行
while(true) {
System.out.println();
System.out.println("欢迎光临!");
System.out.println("请选择您的操作:1代表开始购物、2代表结账(打印小票)、3直接退出");
int choose = sc.nextInt();//用户选择的操作
/*
1代表开始购物 (用户输入数量的过程)
2代表结账(打印小票) (打印小票 票头,票体,票脚)
3代表不想买了,直接退出 (break跳出选择)
*/
switch(choose) {
case 1:
/*
打印商品报价单,并且让用户输入购买的数量
*/
System.out.println(" 欢迎光临");
System.out.println();
System.out.println("商品编号 商品名称 商品单价 商品计价单位");
System.out.println(slsID+" "+slsName+" "+slsPrice+" "+slsUnit);
System.out.println(skID+" "+skName+" "+skPrice+" "+skUnit);
System.out.println();
System.out.println("请输入您要购买的"+slsName+"数量:");
slsNumber = sc.nextInt(); // 获取用户 购买 "少林寺酥饼核桃" 的数量
slsMoney = slsPrice * slsNumber; // 计算用户 购买 "少林寺酥饼核桃" 的总金额
System.out.println("请输入您要购买的"+skName+"数量:");
skNumber = sc.nextInt(); // 获取用户 购买 "皇家特供尚康杂粮牡丹饼(复合营养型)" 的数量
skMoney = skPrice * skNumber; // 计算用户 购买 "皇家特供尚康杂粮牡丹饼(复合营养型)" 的总金额
break;
case 2://代表结账(打印小票) (打印小票 票头,票体,票脚)
/*
票头
*/
System.out.println(" 欢 迎 光 临 ");
System.out.println(" 品名 售价 数量 金额");
System.out.println("-------------------------------------------------------");
/*
票体
如果商品名称超过7个字,就截取前7个字+...
使用if替换掉三元运算符的实现
*/
if(slsName.length() > 7) {
slsName = slsName.substring(0,7) + "...";
}
if(skName.length() > 7) {
skName = skName.substring(0,7) + "...";
}
System.out.println(slsName+"("+slsID+") "+slsPrice+" * "+slsNumber+" = "+slsMoney);
System.out.println(skName+"("+skID+") "+skPrice+" * "+skNumber+" = "+skMoney);
System.out.println("-------------------------------------------------------");
/*
票脚
1、汇总:一共购买了几种,一共购买了几件商品,一共购买了多少钱的商品
2、判断总金额和少林寺两种数据是否满足打折条件,满足就打折
*/
int totalItemsNumber = 2; //一共购买的商品种类数
int totalNumber = slsNumber+skNumber; //一共购买的商品件数
double totalMoney = slsMoney+skMoney; //一共花费的商品总金额
/*
判断总金额和少林寺两种数据是否满足打折条件,满足就打折
如果商品总价超过300元,打95折
如果商品总价超过600元,打9折
如果商品总价超过1000元,总价打8折
如果商品总价超过1000元,并且少林寺酥饼核桃购买超过30份, 则总价打8折后,立减20
*/
double afterTotalMoney = totalMoney;//打折后需要付款总额
if(totalMoney>=300&&totalMoney<600) {
afterTotalMoney = totalMoney*0.95;
}else if(totalMoney>=600&&totalMoney<1000) {//满600打9折
afterTotalMoney = totalMoney*0.9;
}else if(totalMoney>=1000) {//满1000打8折
afterTotalMoney = totalMoney*0.8;
}
//满1000且少林寺超过30,打8折再立减20,修改此处代码
if(totalMoney>=1000&&slsNumber>=30) {
afterTotalMoney = totalMoney*0.8-20;
}
System.out.println(totalItemsNumber+"项商品 共计:"+totalNumber+"件");
//在打印总金额时,超市显示四舍五入后的整数,不包含小数点,需要用到Math类四舍五入方法,及强制类型转换
afterTotalMoney = Math.round(afterTotalMoney);
System.out.println("总计:"+(int)afterTotalMoney+"元");
System.out.println("您真的太幸运了,本次打折活动为您节省了"+(totalMoney-(int)afterTotalMoney));
System.out.println("凭此小票换取发票");
//每次结账后,将数据重置
slsNumber = 0;
slsMoney = 0;
skNumber = 0;
skMoney = 0;
break;
case 3:
System.out.println("欢迎下次带着钱来光临!");
//每次退出后,将数据重置
slsNumber = 0;
slsMoney = 0;
skNumber = 0;
skMoney = 0;
break;
default:
System.out.println("您输入的选择有误,请重新输入");
}
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2