Java基础-day05-超市收银系统案例题

Java基础-day05-超市收银系统案例题

案例描述

将超市购物小票案例中,键盘录入部分封装为方法。

将switch语句完成的三个分支代码逻辑封装为3个方法

当用户输入1时,让用户输入所要购买的商品数量

当用户输入2时,给用户打印出对应的购物小票

当用户输入3时,退出系统

eclipse展示

具体实现代码

package StudentJavaSEday05;
import java.util.Date;
import java.util.Scanner;
/**
 * 将超市购物小票案例中,键盘录入部分封装为方法。 将switch语句完成的三个分支代码逻辑封装为3个方法 当用户输入1时,让用户输入所要购买的商品数量
 * 当用户输入2时,给用户打印出对应的购物小票 当用户输入3时,退出系统
 * @author 奋斗蒙
 */
public class FangFashopping {
 // 1.初始化系统
 // 定义商品
 static String nmName = "内蒙古牛肉干";// 商品名称
 static String nmID = "(088881)"; // 商品id
 static double nmPrice = 25.50; // 商品单价
 static int nmNumber = 0; // 商品数量
 static double nmMoney = 0; // 商品金额
 static String xjName = "新疆羊肉串";
 static String xjID = "(088882)";
 static double xjPrice = 16.00;
 static int xjNumber = 0;
 static double xjMoney = 0;
 static String hnName = "海南椰果";
 static String hnID = "(088883)";
 static double hnPrice = 14.50;
 static int hnNumber = 0;
 static double hnMoney = 0;
 public static void main(String[] args) {
 // while循环,系统不退出一直运行
 while (true) {
 // 2.展示系统功能
 System.out.println("-------------欢迎访问Java帮帮-超市购物收银系统---------------");
 System.out.println("选择系统功能:1.输入购买商品数量。         2.打印购物小票             3.退出系统");
 System.out.println("请输入功能编号进入功能:");
 // 3.获取用户键盘输入数据
 int gn = getScanner();
 // 4.根据用户输入选择具体操作的功能
 switch (gn) {
 case 1:
 buy();
 break;
 case 2:
 print();
 break;
 case 3:
 exit();
 break;
 default:
 break;
 }
 }
 }
 /**
  * 获取键盘输入数字方法(选择功能) 返回值类型:int 方法名:getScanner 参数列表:空
  * 
  * @return
  */
 private static int getScanner() {
 Scanner sc = new Scanner(System.in);
 int scanner = sc.nextInt();
 return scanner;
 }
 /**
  * 获取购买商品数量与计算价格 返回值类型:void 方法名:buy 参数列表:空
  * 
  */
 private static void buy() {
 System.out.println("请输入您购买" + nmName + "的数量");
 nmNumber = getScanner();
 System.out.println("请输入您购买" + xjName + "的数量");
 xjNumber = getScanner();
 System.out.println("请输入您购买" + hnName + "的数量");
 hnNumber = getScanner();
 // 计算每种商品的购买金额
 nmMoney = nmPrice * nmNumber;
 xjMoney = xjPrice * xjNumber;
 hnMoney = hnPrice * hnNumber;
 }
 /**
  * 打印小票方法 返回值类型:void 方法名:print 参数列表:空
  */
 private static void print() {
 // 商品种类
 int goodsItem = 3;
 // 商品数量
 int goodsNumber = nmNumber + xjNumber + hnNumber;
 // 商品金额
 double goodsMoney = nmMoney + xjMoney + hnMoney;
 // 打印小票
 // 票头
 System.out.println("----------------欢迎光临--------------");
 System.out.println("商品名称 商品ID 单价 数量 金额");
 System.out.println("--------------------------------------");
 // 票体
 System.out.println(
 nmName + " " + nmID + " " + nmPrice + " " + nmNumber + " " + nmMoney);
 System.out.println(
 xjName + " " + xjID + " " + xjPrice + " " + xjNumber + " " + xjMoney);
 System.out.println(
 hnName + " " + hnID + " " + hnPrice + " " + hnNumber + " " + hnMoney);
 System.out.println("---------------------------------------");
 // 票脚
 System.out.println("共消费了  " + goodsItem + "种商品   共计" + goodsNumber + "件");
 System.out.println("总共消费金额: " + goodsMoney);
 System.out.println("--------请凭小票到服务台换取发票----------");
 System.out.println("-----------------------------------------");
 System.out.println(new Date());//当前时间
 }
 /**
  * 退出系统方法 返回值类型:void 方法名:exit 参数列表:空
  */
 private static void exit() {
 System.out.println("程序结束,期待下次为您服务!");
 // 退出方法,结束正在运行的虚拟机,0表示正常退出
 System.exit(0);
 }
}

运行结果

原文发布于微信公众号 - Java帮帮(javahelp)

原文发表时间:2017-05-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Crossin的编程教室

【Python 第59课】 正则表达式(5)

听说有人已经开始国庆假期了,甚至还有人中秋之后就请了年假一休到底,表示羡慕嫉妒恨!今天发完这课,我也要进入休假状态,谁也别拦着我。 来说上次的习题: (021...

3278
来自专栏斑斓

代码诊所的第二次诊断

几年前,我有机会负责一个项目的咨询。团队很小,目标是对旧有系统的后端用Java改写,而团队的开发人员全为C程序员。我的工作职责是负责项目设计、开发,以及担任项目...

3555
来自专栏java工会

深度思考编程的艺术

1758
来自专栏java一日一条

Java函数式开发——优雅的Optional空指针处理

空闲时会抽空学习同在jvm上运行的Groovy和Scala,发现他们对null的处理比早期版本Java慎重很多。在Java8中,Optional为函数式编程的n...

1541
来自专栏Java技术栈

跟我学 Java 8 新特性之 Stream 流(四)并行流

在开始讨论并行流之前,我先引发一下大家的思考,就你看到这篇文章的时间,你们是不是经常听到,Intel i7 CPU什么8核16线程,什么Android手机8核4...

902
来自专栏程序员互动联盟

【答疑释惑】最小存储单元是什么?

学习编程,要从基础学起,bit和byte有很大区别,最主要别搞混。 ? bit是位,byte是字节。 有问题就问题,不要害羞,不要怕被笑话,最重要的搞清楚自己要...

3519
来自专栏阿杜的世界

《重构》阅读笔记-代码的坏味道

开发者必须通过实践培养自己的经验和直觉,培养出自己的判断力:学会判断一个类内有多少个实例变量算是太大、学会判断一个函数内有多少行代码才算太长。

732
来自专栏take time, save time

你所能用到的数据结构(六)

八、数据结构不一定很枯燥   正如我现在实习的公司的一个同事说的那样,数据结构是一本催眠的书,我想对于大多数人应该是这样的,当然对我也是,看着一大堆的算法,结...

3345
来自专栏编程

浅谈Java学习方法和后期面试技巧 含学习笔记

下面简单列举一下大家学习java的一个系统知识点的一些介绍: 一、java基础部分:java基础的时候,有些知识点是非常重要的,比如循环系列。For,while...

2008
来自专栏后台全栈之路

在 C++ 中实现 super 关键字

Objective-C 里面有一个 super 关键字,可以用来调用该类的父类,但是 C++ 里没有。

3224

扫码关注云+社区

领取腾讯云代金券