黑马程序员技术交流社区
标题:
分享: 一道题
[打印本页]
作者:
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