• Java 菜单 顾客 订单


    现在有一份菜单给客人察看,并要计算他们的消费。
    要求:客人菜时要打印出菜单,而且只需输入菜号即点菜,并要打印出客人所点的菜,最后计算客人应付的菜钱。
    编号 菜名 价钱
    01 扬州炒饭 5.0
    02 辣子鸡丁 9.0
    03 羊肉串 5.0
    04 鸡汤 15.0
    各位高手帮帮忙吧~~~~~能做得了全部最好,谢谢!!!问题补充:

    程序是要输入菜号就能知道菜名、菜价,我就是不会这点。。。
    如果可以,希望能用一维数组做出来。我是初学者!!!!!
    答得好能加分哦,谢谢!!
    麻烦各位了,请多包涵!

    菜单类

    package ddd;
    
    public class Dish {
    private String name;
    private String id;
    private double unit;
    private int number;
    private String text;
    public Dish(String id,String name,double unit,int number){
     this.id=id;
     this.name=name;
     this.unit=unit;
        this.number=number;
    }
    public Dish(){
     
    }
    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 getUnit() {
     return unit;
    }
    public void setUnit(double unit) {
     this.unit = unit;
    }
    
    public int getNumber() {
     return number;
    }
    public void setNumber(int number) {
     this.number = number;
    }
    public String getText() {
     return text;
    }
    public void setText(String text) {
     this.text = text;
    }
    public Dish clone(){
     Dish d=new Dish();
     d.setId(id);
     d.setName(name);
     d.setUnit(unit);
     d.setNumber(number);
     return d;
    }
    }
    

      订单类

    package ddd;
    
    import java.sql.Date;
    import java.text.SimpleDateFormat;
    import java.util.LinkedList;
    import java.util.List;
    
    public class Order {
     
     private String user;
    public List<Dish> list;
    private double sumMoney;
    private String date;
    public Order(String user){
     this.user=user;
     SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
     Date date=new Date(System.currentTimeMillis());
     this.date=format.format(date);
     list=new LinkedList<Dish>();
    }
    public List<Dish> getList() {
     return list;
    }
    public void setList(List<Dish> list) {
     this.list = list;
    }
    public double getSumMoney() {
     return sumMoney;
    }
    public void setSumMoney(double sumMoney) {
     this.sumMoney = sumMoney;
    }
    public String getDate() {
     return date;
    }
    public void setDate(String date) {
     this.date = date;
    }
    public String getUser() {
     return user;
    }
    public void setUser(String user) {
     this.user = user;
    }
     public void printOrder(){
      System.out.println("--------------------------------------------------------------");
      System.out.println("+用户名:"+user+"+");
      System.out.println("+消费日期:"+date+"+");
      System.out.println("--------------------------------------------------------------");
      System.out.println("编号      \t      名称      \t 价格(元) \t数量     \t 合计(元)");
      for(Dish dish:list){
          System.out.printf("%-5s \t  %-12s  \t %-5s \t        %-2s    \t    %-5s\n",dish.getId(),dish.getName(),dish.getUnit(),dish.getNumber(),dish.getUnit()*dish.getNumber());
      }
      System.out.println("--------------------------------------------------------------");
      System.out.println("+消费合计:"+sumMoney+"+");
     }
    }
    

      测试类

    package ddd;
    
    import java.io.IOException;
    import java.util.LinkedHashMap;
    import java.util.Map;
    import java.util.Scanner;
    
    public class Main {
    private Map<String,Dish> map;
    private Order order;
    public Main(String username){
     map=new LinkedHashMap<String,Dish>();
     map.put("01",new Dish("01","扬州炒饭",5.0,10));
     map.put("02",new Dish("02","辣子鸡丁",9.0,10));
     map.put("03",new Dish("03","羊肉串 ",5.0,10));
     map.put("04",new Dish("04","鸡汤 ",15.0,10));
     map.put("05",new Dish("05","红烧排骨",25.0,10));
     map.put("06",new Dish("06","清蒸鲤鱼 ",35.0,10));
     map.put("07",new Dish("07","杂酱面 ",8.0,10));
     map.put("08",new Dish("08","绿豆粥 ",2.0,10));
     
     order=new Order(username);
    
    }
    public void printDishList(){
     System.out.println("-------------------菜    谱-------------------");
     System.out.println("编号      \t      名称      \t 价格(元) \t数量");
     System.out.println("--------------------------------------------");
     for(Dish dish:map.values()){
      System.out.printf("%-5s \t  %-12s  \t %-5s \t        %-2s\n",dish.getId(),dish.getName(),dish.getUnit(),dish.getNumber());
     }
     System.out.println("--------------------------------------------");
    }
    public static void main(String[] str) throws IOException{
     Main main=new Main("佚名");
     Scanner s=new Scanner(System.in);
     main.printDishList();
     while(true){
      String id="";
      
      System.out.print("请输入菜单编号:");
      id=s.nextLine();
      
      if(!main.map.containsKey(id)) {System.out.println("没有该菜名编号!");continue;}
      Dish dish=main.map.get(id).clone();
      System.out.println(dish.getName());
      System.out.print("请输入所要菜名【"+dish.getName()+"】的数量(0表示全部都要;必须小于等于"+dish.getNumber()+"):");
      int number=Integer.parseInt(s.nextLine());
      if(number<0 || number>dish.getNumber()){System.out.println("数量输入错误!");continue;}
      else if(number==0) ;
      else dish.setNumber(number);
      main.order.setSumMoney(main.order.getSumMoney()+dish.getNumber()*dish.getUnit());
      main.order.list.add(dish);
      System.out.println("一种菜品添加成功!继续直接any key;结束输入exit并回车");
      String tag=s.nextLine();
      if("exit".equalsIgnoreCase(tag)) break;
      
     }
     main.order.printOrder();
    }
    }
    

      

  • 相关阅读:
    Java Lambda 表达式 对 Map 对象排序
    比较两个list对象是否相同
    ubuntu redis 自启动配置文件(关机有密码)
    spring中订阅redis键值过期消息通知
    网站架构之性能优化(转)
    Json转Java Bean
    spring mvc 4 校验
    java @ResponseBody返回值中去掉NULL字段
    合并两个java bean对象非空属性(泛型)
    spring mvc 删除返回字符串中值为null的字段
  • 原文地址:https://www.cnblogs.com/ncepu/p/16203072.html
Copyright © 2020-2023  润新知