java每日一题——用面向对象编程(oop)和ArrayList语句编写商品录入程序

发布时间:2024年01月10日

前言:

最近学完了oop基本语句和ArrayList常用用法,为了更好的熟悉知识与代码,写个小程序来巩固知识。打好基础,daydayup!

题目:模仿外卖系统中的商家系统?

要求:完成菜品的上架、以及菜品信息浏览功能

思路分析:1,创建一个实体类(用于存放相关数据);2创建一个操作类用于实现上架菜品,菜品信息浏览功能;3,结合两个类,检测实验是否成功

1,创建实体类

创建三个变量名字(name),价格(price),描述(desc)设置成隐藏成员变量,并提供get/set方法,创建无参构造器。

public class Food {
    private String name;
    private double price;
    private String desc;

    public String getName() {
        return name;
    }

    public Food() {
    }

    public Food(String name, double price, String desc) {
        this.name = name;
        this.price = price;
        this.desc = desc;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }
}

2,创建操作类

?创建的功能有三个,1,创建菜品;2,浏览菜品;3,功能界面

1,创建菜品:

因为不清楚具体数值,所以创建ArrayList(合集),方便可以随时添加数据。通过实体类赋值数据,最后导入合集里。注:实体类的引用需要放进for循环里,因为合集里存的是实体类的引用地址,如果创建新数据时,实体类的引用地址不改变,会导致新数组替换老数据的现象。所以每次生成新数据时,都要重新创建实体类的引用。

public class FoodOperator {
   private  ArrayList<Food> q = new ArrayList();


   public void Foodadd(){

       Scanner sc = new Scanner(System.in);
       while (true) {
           System.out.println("要录几个菜,一次最多可以录9个菜");
           System.out.println("请输入1-9之间的数字");
           int n =sc.nextInt();
           if(n>0 &&n <9){
          for (int i = 0; i < n;i++) {
              Food f = new Food();
              System.out.println("请输入菜品名");
              String name =sc.next();
              f.setName(name);
              System.out.println("请输入菜价格");
              double price=sc.nextDouble();
              f.setPrice(price);
              System.out.println("请输入菜介绍");
              String desc = sc.next();
              f.setDesc(desc);
              q.add(f);
              System.out.println("上架成功");
          }return;
           }else{
               System.out.println("输入的数字有误,请重新输入");

           }
       }}
2,?浏览菜品

直接遍历数据即可,但要注意,如果事先没存放数据,需要提醒输入数据。

 public void Foodcheck(){

       if (q.size()== 0){
           System.out.println("你还没有输入数据");
       }else {
           System.out.println("信息如下:");
           for (int i = 0; i < q.size(); i++) {

               Food e =q.get(i);
               System.out.println(e.getName());
               System.out.println(e.getPrice());
               System.out.println(e.getDesc());


               System.out.println("--------------------");
           }
       }
   }
3,功能界面

功能有三个:1,进入添加模式,2,进入查看模式,3,退出

public void Operator(){
    Scanner sc = new Scanner(System.in);
    while (true) {
        System.out.println("欢迎来到商家系统");
        System.out.println("输入1进入添加模式");
        System.out.println("输入2进入查看模式");
        System.out.println("输入3退出");
        int id = sc.nextInt();
        switch (id){
            case 1:
                Foodadd();
                break;
            case 2:
                Foodcheck();
                break;
            case 3:
                return;
            default :
                System.out.println("请重新输入");
        }
    }
}

最后把三个功能放在一起即可

import java.util.ArrayList;
import java.util.Scanner;

public class FoodOperator {
   private  ArrayList<Food> q = new ArrayList();


   public void Foodadd(){

       Scanner sc = new Scanner(System.in);
       while (true) {
           System.out.println("要录几个菜,一次最多可以录9个菜");
           System.out.println("请输入1-9之间的数字");
           int n =sc.nextInt();
           if(n>0 &&n <9){
          for (int i = 0; i < n;i++) {
              Food f = new Food();
              System.out.println("请输入菜品名");
              String name =sc.next();
              f.setName(name);
              System.out.println("请输入菜价格");
              double price=sc.nextDouble();
              f.setPrice(price);
              System.out.println("请输入菜介绍");
              String desc = sc.next();
              f.setDesc(desc);
              q.add(f);
              System.out.println("上架成功");
          }return;
           }else{
               System.out.println("输入的数字有误,请重新输入");

           }
       }


   }


   public void Foodcheck(){

       if (q.size()== 0){
           System.out.println("你还没有输入数据");
       }else {
           System.out.println("信息如下:");
           for (int i = 0; i < q.size(); i++) {

               Food e =q.get(i);
               System.out.println(e.getName());
               System.out.println(e.getPrice());
               System.out.println(e.getDesc());


               System.out.println("--------------------");
           }
       }
   }
public void Operator(){
    Scanner sc = new Scanner(System.in);
    while (true) {
        System.out.println("欢迎来到商家系统");
        System.out.println("输入1进入添加模式");
        System.out.println("输入2进入查看模式");
        System.out.println("输入3退出");
        int id = sc.nextInt();
        switch (id){
            case 1:
                Foodadd();
                break;
            case 2:
                Foodcheck();
                break;
            case 3:
                return;
            default :
                System.out.println("请重新输入");
        }
    }
}

}

实验测试:

创建一个demo测试,点击运行

public class FoodDemo {
    public static void main(String[] args) {

        FoodOperator l = new FoodOperator();
        l.Operator();


    }
}

添加功能成功

浏览功能成功

退出功能成功

实验成功撒花!!!!!

文章来源:https://blog.csdn.net/l822099133/article/details/135512068
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。