1.1  超市购物购物小票需求分析

用户循环进行三个操作:

1、输入购买数量,代表为所购买货物的数量赋值,从而计算每项商品金额

2、打印小票,将已有数据打印

3、退出系统(因为该程序为循环操作,无法终止,如果不想再进行操作,则退出系统)

1.1.1 案例代码一

public class GoodsItem {
                     //成员变量
                     private String name;   //名称
                     private String id;     //编号
                     private double price;  //单价
                     private int num;       //数量
                     private String unit;   //计价单位
                     private double money;  //金额
 
 //有参构造方法
 public GoodsItem(String name, String id, double price, int num, String unit, double money) {
            super();
            this.name = name;
            this.id = id;
            this.price = price;
            this.num = num;
            this.unit = unit;
            this.money = money;
 }
 //无参构造方法
 public GoodsItem() {
  super();
  // TODO Auto-generated constructor stub
 }
 
 //取值(get)和赋值(set)方法
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getId() {
  return id;
 }
 public void setId(String id) {
  this.id = id;
 }
 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 getUnit() {
  return unit;
 }
 public void setUnit(String unit) {
  this.unit = unit;
 }
 public double getMoney() {
  return money;
 }
 public void setMoney(double money) {
  this.money = money;
 }
            }
 
1.2  打印超市购物小票
import java.util.ArrayList;
import java.util.Scanner;
public class supermaket {
/**
*@Fields data :成员位置定义集合,存储所有的商品项对象
*/                    
          static ArrayList<GoodsItem> data=new ArrayList<GoodsItem>();
                       public static void main(String[] args) {
                       //为集合准备数据  
                       initData();
                       //打印欢迎语句
                       System.out.println("欢迎进入超市购物系统!");
  
while(true) {
                 //使用switch给出操作选择
                 System.out.println("请输入你要进行的操作:1输入购物数量 2打印小票 3退出");
                 //通过键盘录入得到数据
                 Scanner sc=new Scanner(System.in);
                 int optNumber=sc.nextInt();
  
          switch(optNumber) {
          case 1:   //给所有数据量赋值,调用给所有数据的数量与金额赋值方法
                        enterNumber();
                        break;
          case 2:  //打印购物小票,调用打印购物小票的方法
                        printReceipt();
                        break;
          case 3:
                      System.out.println("谢谢您的使用");
                      //退出程序         
                     System.exit(0);
         default:
                    System.out.println("请输入正确的数字!");
                    break;
               }
         }
}
//定义方法,向成员位置的集合赋值
 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);
 }
 
//为所有的数据赋值数量和金额
  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(thisGoodsMoney);
                   }
  }
 
//打印小票的方法
 private static void printReceipt() {
                       //票头
                       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.getId()+"\t"+g.getPrice()+"\t"+g.getNum()+"\t"+g.getUnit()+"\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();
       }
}

学习更多基础Java教程可以在这个网站学习:http://how2j.cn/p/2099

Java-超市购物小票案例-详细介绍的更多相关文章

  1. Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  2. Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  3. Java 集合系列 06 Stack详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  4. Java 集合系列 05 Vector详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  5. Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  6. Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  7. 微服务架构学习与思考(11):开源 API 网关02-以 Java 为基础的 API 网关详细介绍

    微服务架构学习与思考(11):开源 API 网关02-以 Java 为基础的 API 网关详细介绍 上一篇关于网关的文章: 微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Ngi ...

  8. java超市购物管理系统

    一.概述 1.鹏哥前面有写过java项目超市管理系统项目,传送门 2.收到很多朋友私信给我,也很感谢老铁们的反馈和交流,前面这个项目只是对java基础知识和面向对象的思想练习,但是没有涉及到java如 ...

  9. Java 并发专题 : Executor详细介绍 打造基于Executor的Web服务器

    转载标明出处:http://blog.csdn.net/lmj623565791/article/details/26938985 继续并发,貌似并发的文章很少有人看啊~哈~ 今天准备详细介绍java ...

随机推荐

  1. C++ std::tr1::shared_ptr使用说明

    1. 介绍 shared_ptr 是通过指针保持某个对象的共享拥有权的智能指针. 若干个 shared_ptr 对象能够拥有同一个对象:最后一个指向该对象的 shared_ptr 被销毁或重置时.该对 ...

  2. 使用 Vagrant 构建开发环境

    使用 Vagrant 构建开发环境 摘要:本文描述了如使用 Vagrant 构建统一的开发环境. 问题 作为开发人员,我们通常面临的问题有: 开发环境需要手工安装配置,这包括操作系统(CentOS.U ...

  3. adb端口被占用情况下如何杀掉进程

    1.CMD命令窗口输入:adb nodaemon server .然后就会提示你哪个端口被占用了. 2.输入netstat -ano | findstr "5037" .然后会弹出 ...

  4. make的特殊之处

    1 规则的先后顺序问题 规则的先后顺序只会影响默认的目标,没有其它的影响. 2 make对具有相同目标的规则的处理方式 2.1 如果是单冒号 只能有一个规则是有命令的,然后对它们进行合并,即依赖合并. ...

  5. win10复制粘贴 失效

    win10复制粘贴 DISM.exe /Online /Cleanup-image /Restorehealth https://social.technet.microsoft.com/Forums ...

  6. 创建javaScript 对象

    创建新实例person 并向其添加四个属性: person=new Object(); person.firstname="Bill"; person.lastname=" ...

  7. mongodb07---用户权限

    用户管理: 注意: 添加用户后,我们再次退出并登陆,发现依然可以直接读数据库? 原因: mongodb服务器启动时, 默认不是需要认证的. 要让用户生效, 需要启动服务器时,就指定 --auth 选项 ...

  8. bzoj1934: [Shoi2007]Vote 善意的投票&&bzoj2768:[JLOI2010]冠军调查

    get到新姿势,最小割=最大流,来个大佬的PPT 这道题的做法是将st和1的xpy连,0的xpy和ed连,xpy之间jy连双向边,然后呢答案就是最小割. #include<cstdio> ...

  9. AngularJS 指令(Directives)实践指南

    指令(Directives)是所有AngularJS应用最重要的部分.尽管AngularJS已经提供了非常丰富的指令,但还是经常需要创建应用特定的指令.这篇教程会为你讲述如何自定义指令,以及介绍如何在 ...

  10. html5--项目实战-仿360囧图

    html5--项目实战-仿360囧图 实例: 代码 <!doctype html> <html> <head> <meta charset="utf ...