A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© Xander 中级黑马   /  2017-3-1 18:12  /  1969 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

a.在项目根目录下手动创建food.txt文件(某饭店菜单),

菜名-价格-折扣(比如:0.8是8折,1代表没有折扣)文件内容如下:

     京酱肉丝-28-0.8

     锅包肉-48-0.6

     皮蛋豆腐-12-0.9

     烧茄子-15-1

     水煮肉片-38-0.5

     拍黄瓜-10-1

    大盘鸡-56-0.9

b.自定义Food类,属性:菜名(String),价格(int),折扣(double),生成对应的set/get方法,满参构造

c.创建Test测试类在main方法中利用流读取food.txt文件中的内容,并且生成对应的Food对象,存放到任意集合中

d.提示用户输入菜名,直到用户输入“已点完”(可以重复点同一道菜),输出应付的餐费(单个菜品价格=原价*折扣)

PS:如果用户输入不存在的菜名则提示用户重新输入;

示例:

控制台提示:        请输入菜名:
用户输入:        大盘鸡
控制台提示:        请输入菜名:
用户输入:        皮
控制台提示:        本店没有这道菜,请重新输入
用户输入:        皮蛋豆腐
控制台提示:        请输入菜名
用户输入:        已点完
控制台提示:        您点了【大盘鸡,皮蛋豆腐】一共消费:61.20元

4 个回复

正序浏览
回复 使用道具 举报
[Java] 纯文本查看 复制代码
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.Scanner;

/**
 * 
 * a.在项目根目录下手动创建food.txt文件(某饭店菜单),
 * 
 * 菜名-价格-折扣(比如:0.8是8折,1代表没有折扣)文件内容如下:
 * 
 * 京酱肉丝-28-0.8
 * 
 * 锅包肉-48-0.6
 * 
 * 皮蛋豆腐-12-0.9
 * 
 * 烧茄子-15-1
 * 
 * 水煮肉片-38-0.5
 * 
 * 拍黄瓜-10-1
 * 
 * 大盘鸡-56-0.9
 * 
 * b.自定义Food类,属性:菜名(String),价格(int),折扣(double),生成对应的set/get方法,满参构造
 * 
 * c.创建Test测试类在main方法中利用流读取food.txt文件中的内容,并且生成对应的Food对象,存放到任意集合中
 * 
 * d.提示用户输入菜名,直到用户输入“已点完”(可以重复点同一道菜),输出应付的餐费(单个菜品价格=原价*折扣)
 * 
 * PS:如果用户输入不存在的菜名则提示用户重新输入;
 * 
 * 示例:
 * 
 * 控制台提示: 请输入菜名: 用户输入: 大盘鸡 控制台提示: 请输入菜名: 用户输入: 皮 控制台提示: 本店没有这道菜,请重新输入 用户输入: 皮蛋豆腐
 * 控制台提示: 请输入菜名 用户输入: 已点完 控制台提示: 您点了【大盘鸡,皮蛋豆腐】一共消费:61.20元
 *
 */
public class Demo {

    public static void main(String[] args) throws IOException {

        LinkedHashMap<String, Food> linkedHashMap = new LinkedHashMap<String, Food>();
        FileReader fileReader = new FileReader("food.txt");
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        for (String readLine = null; (readLine = bufferedReader.readLine()) != null;) {
            String[] split = readLine.split("-");
            Food food = new Food(split[0], Integer.parseInt(split[1]), Double.parseDouble(split[2]));
            linkedHashMap.put(split[0], food);
        }
        bufferedReader.close();
        ArrayList<Food> orderDishes = new ArrayList<Food>();
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("请输入菜名");
            String line = scanner.nextLine();
            if ("已点完".equals(line)) {
                break;
            } else {
                if (linkedHashMap.containsKey(line)) {
                    orderDishes.add(linkedHashMap.get(line));
                } else {
                    System.out.println("本店没有这道菜,请重新输入菜名");
                }
            }
        }
        scanner.close();
        
        /* 控制台提示: 您点了【大盘鸡,皮蛋豆腐】一共消费:61.20元 */
        System.out.print("您点了【");
        double sum = 0;
        for (int i = 0; i < orderDishes.size(); i++) {
            Food food = orderDishes.get(i);
            String name = food.getName();
            sum += food.getPrice() * food.getDiscount();
            if (i == orderDishes.size() - 1) {
                System.out.printf("%s】一共消费:%.2f元\n", name,sum);
            } else {
                System.out.print(name + ",");
            }
        }
    }
}

class Food {

    private String name;
    private int price;
    private double discount;

    public Food(String name, int price, double discount) {
        super();
        this.name = name;
        this.price = price;
        this.discount = discount;
    }

    public String getName() {

        return name;
    }

    public void setName(String name) {

        this.name = name;
    }

    public int getPrice() {

        return price;
    }

    public void setPrice(int price) {

        this.price = price;
    }

    public double getDiscount() {

        return discount;
    }

    public void setDiscount(double discount) {

        this.discount = discount;
    }

    @Override
    public String toString() {

        return "Food [name=" + name + ", price=" + price + ", discount=" + discount + "]";
    }
}
回复 使用道具 举报
回复 使用道具 举报
各位新老司机好,老司机带带我
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马