某個學校為了激勵學生踴躍參加一些社會實踐活動,會對參與者給予一些校園積分,學生們獲得校園積分后可以使用校園積分在指定的老師那兌換一些學習用具,當前可兌換的物品和對應的積分數量如下:
鉛筆1分
橡皮2分
作業本3分
文具盒5分
為了方便學生進行兌換,現在需要實現一個積分兌換小程序,輸入所兌換的用具編號進行兌換,并且兌換后可以選擇繼續兌換,控制臺輸出可以繼續兌換的用具個數和剩余積分。假設小明現有20分可以兌換些什么?
解法一:
package lianxi1;import java.util.Scanner;public class exchange {public static void main(String[] args) {int points = 20; // 初始積分Scanner scanner = new Scanner(System.in);System.out.println("---------------積分兌換小程序-------------------");// 打印鉛筆所需積分System.out.println("1. 鉛筆所需積分為:1分");// 打印橡皮所需積分System.out.println("2. 橡皮所需積分為:2分");// 打印作業本所需積分System.out.println("3. 作業本所需積分為:3分");// 打印文具盒所需積分System.out.println("4. 文具盒所需積分為:5分");System.out.println("您的初始積分為:" + points+"分");System.out.println("每次兌換后剩余積分會累計,您可以選擇繼續兌換或退出。");System.out.println("------------------------------------------------");while (true) {// 如果積分不足,提示并退出if (points < 1) {System.out.println("剩余積分不足,無法繼續兌換。");break;}System.out.print("請輸入需要兌換的物品編號(或輸入0退出):");int itemId = scanner.nextInt();if (itemId == 0) {System.out.println("退出積分兌換小程序。");break;}// 兌換前檢查積分是否足夠switch (itemId) {case 1: // 鉛筆if (points >= 1) {points -= 1;System.out.println("成功兌換鉛筆,剩余積分:" + points+"分");int pencil = points / 1;int pencilPoints = points % 1;System.out.println("當前積分:" + points + "分,還可以兌換鉛筆" + pencil + "個,剩余積分:" + pencilPoints+"分");} else {System.out.println("積分不足,無法兌換鉛筆!");}break;case 2: // 橡皮if (points >= 2) {points -= 2;System.out.println("成功兌換橡皮,剩余積分:" + points+"分");int eraser = points / 2;int eraserPoints = points % 2;System.out.println("當前積分:" + points + "分,還可以兌換橡皮" + eraser + "個,剩余積分:" + eraserPoints+"分");} else {System.out.println("積分不足,無法兌換橡皮!");}break;case 3: // 作業本if (points >= 3) {points -= 3;System.out.println("成功兌換作業本,剩余積分:" + points+"分");// 輸出當前積分和可兌換的作業本數量int notebooks = points / 3;int remainingPoints = points % 3;System.out.println("當前積分:" + points + "分,還可以兌換作業本" + notebooks + "個,剩余積分:" + remainingPoints+"分");} else {System.out.println("積分不足,無法兌換作業本!");}break;case 4: // 文具盒if (points >= 5) {points -= 5;System.out.println("成功兌換文具盒,剩余積分:" + points+"分");int writingcase= points / 5;int writingPoints = points % 5;System.out.println("當前積分:" + points + "分,還可以兌換文具盒" + writingcase + "個,剩余積分:" +writingPoints+"分");} else {System.out.println("積分不足,無法兌換文具盒!");}break;default:System.out.println("無效的物品編號!");}// 詢問是否還繼續兌換System.out.println("您還想繼續兌換嗎?(是輸入1,否輸入0):");int continueOption = scanner.nextInt();if (continueOption == 0) {System.out.println("感謝使用,再見!");break;} }scanner.close();}
}
解法二:
package lianxi1;import java.util.Scanner;public class exchange {public static void main(String[] args) {int points = 20; // 初始積分Scanner scanner = new Scanner(System.in);System.out.println("---------------積分兌換小程序-------------------");// 打印鉛筆所需積分System.out.println("1. 鉛筆所需積分為:1分");// 打印橡皮所需積分System.out.println("2. 橡皮所需積分為:2分");// 打印作業本所需積分System.out.println("3. 作業本所需積分為:3分");// 打印文具盒所需積分System.out.println("4. 文具盒所需積分為:5分");System.out.println("您的初始積分為:" + points+"分");System.out.println("每次兌換后剩余積分會累計,您可以選擇繼續兌換或退出。");System.out.println("------------------------------------------------");while (true) {// 如果積分不足,提示并退出if (points < 1) {System.out.println("積分不足,無法繼續兌換。");break;}System.out.print("請輸入需要兌換的物品編號(或輸入0退出):");int itemId = scanner.nextInt();if (itemId == 0) {System.out.println("退出積分兌換小程序。");break;}switch (itemId) {case 1: // 鉛筆if (points >= 1) {points -= 1;System.out.println("成功兌換鉛筆,剩余積分:" + points);displayRemaining(points, 1);} else {System.out.println("積分不足,無法兌換鉛筆!");}break;case 2: // 橡皮if (points >= 2) {points -= 2;System.out.println("成功兌換橡皮,剩余積分:" + points);displayRemaining(points, 2);} else {System.out.println("積分不足,無法兌換橡皮!");}break;case 3: // 作業本if (points >= 3) {points -= 3;System.out.println("成功兌換作業本,剩余積分:" + points);displayRemaining(points, 3);} else {System.out.println("積分不足,無法兌換作業本!");}break;case 4: // 文具盒if (points >= 5) {points -= 5;System.out.println("成功兌換文具盒,剩余積分:" + points);displayRemaining(points, 5);} else {System.out.println("積分不足,無法兌換文具盒!");}break;default:System.out.println("無效的物品編號!");}System.out.println("您還想繼續兌換嗎?(是輸入1,否輸入0):");int continueOption = scanner.nextInt();if (continueOption == 0) {System.out.println("感謝使用,再見!");break;}}scanner.close();}// 方法:顯示還能兌換多少個對應商品和剩余積分private static void displayRemaining(int points, int cost) {int maxCount = points / cost;int remainingPoints = points % cost;System.out.println("還可以用剩余積分兌換" + maxCount + "個商品,還剩" + remainingPoints + "分積分。");}
}