黑马程序员技术交流社区

标题: 分享: 一道题 [打印本页]

作者: Fate_stay    时间: 2016-9-25 22:44
标题: 分享: 一道题
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;

/**
* 一. 现有4本书可以购买,书本的信息如下:
* 编号:1,书名:"平凡的世界,价格:88;
* 编号:2,书名:"穆斯林的葬礼",价格:77;
* 编号:3,书名:"许三观卖血记",价格:66;
* 编号:4,书名:"在细雨中呼喊",价格:55;
* 二.
* 程序运行时提示:"请输入你要买的书的编号,按0结束:",
* 要求如输入1-4可以一直购买书,输入0结束购买;
* 结束购买时需要将之前买的所有书打印输出,并将购买书的总价打印输出,
* 打印格式如下:
* 平凡的世界:88 穆斯林的葬礼:77 消费总金额:165
* 要求:程序中不定义书类来存储书的信息
*
*/
public class Prictice4 {
        public static void main(String[] args) {
               
                Scanner sc = new Scanner(System.in);
               
                HashMap<String, Integer> map = new HashMap<>();
               
                while(true) {
                       
                        System.out.println("请输入你要买的书的编号,按0结束:");
                       
                        int num = sc.nextInt();
                       
                        switch(num) {
                        case 0:
                                System.out.println("结束购买");
                                // 调用方法,打印购买的书名以及总价
                                printBooks(map);
                                // 系统退出
                                System.exit(0);
                        case 1:
                                map.put("平凡的世界", 88);
                                break;
                        case 2:
                                map.put("穆斯林的葬礼", 77);
                                break;
                        case 3:
                                map.put("许三观卖血记", 66);
                                break;
                        case 4:
                                map.put("在细雨中呼喊", 55);
                                break;
                        default:
                                System.out.println("没有这个编号,请重新输入:");
                                // 结束这次循环,开始下一次循环
                                continue;
                        }
                       
                }
               
        }
        // 定义打印书的方法
        private static void printBooks(HashMap<String, Integer> map) {
                // 定义总价
                int sum = 0;
                if(map.isEmpty()) {
                        System.out.println("你没有买任何一本书!");
                } else {
                        // 使用entrySet方法,遍历map集合,更方便取得  键 和 值
                        Set<Entry<String, Integer>> set = map.entrySet();
                        for (Entry<String, Integer> entry : set) {
                                // 得到价格
                                int price = entry.getValue();
                                // 计算总价
                                sum += price;
                                System.out.print(entry.getKey()+":"+entry.getValue()+" ");
                        }
                        System.out.println("消费总金额:"+sum);
                }
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2