某个学校为了激励学生踊跃参加一些社会实践活动,会对参与者给予一些校园积分,学生们获得校园积分后可以使用校园积分在指定的老师那兑换一些学习用具,当前可兑换的物品和对应的积分数量如下:

铅笔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 + "分积分。");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90840.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90840.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/90840.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

函数指针示例

使用函数指针来调用 printf。下面是对代码的详细解释&#xff1a;&#x1f4c4; 源代码解析#include <stdio.h>int main() {int (*myshow)(const char *, ...); // 声明一个函数指针&#xff0c;指向可变参数函数printf("hello world!\n");myshow printf; /…

不坑盒子突然不见了怎么办?

如果你安装后之前一切正常&#xff0c;突然某天在Office的功能区看不到不坑盒子了&#xff0c;这种是插件被禁用了&#xff0c;重装安装插件、Office都是不能解决的&#xff0c;必须按下面的方法解决。WPS中1.随便打开一个文档&#xff0c;点击文件-选项-信任中心&#xff0c;最…

Java面试全栈通关:从微服务到AI的技术深度解析

Java面试全栈通关&#xff1a;从微服务到AI的技术深度解析 面试现场&#xff1a;大厂技术终面室 面试官&#xff1a;谢飞机同学&#xff0c;今天我们将从基础到架构&#xff0c;全面考察你的Java技术栈掌握程度。请真实展示你的技术水平。 谢飞机&#xff1a;&#xff08;挺胸抬…

《Java 程序设计》第 7 章 - 继承与多态

引言在 Java 面向对象编程中&#xff0c;继承与多态是两大核心特性&#xff0c;它们共同支撑了代码的复用性、扩展性和灵活性。本章将从继承的基本实现开始&#xff0c;逐步深入到方法覆盖、访问控制、抽象类等概念&#xff0c;最终揭示多态的本质与应用。通过大量可运行的代码…

ksql连接数据库免输入密码交互

ksql连接数据库免输入密码交互1. 使用 .pgpass 文件&#xff08;推荐&#xff09;2. 使用环境变量3. 使用连接字符串4. 修改 ksql 的别名&#xff08;简化命令&#xff09;5. 注意事项6. 密码含特殊字符转义在 Kingbase 中使用 ksql 连接数据库时&#xff0c;如果希望避免每次手…

UniApp H5 适配 PC 端新姿势:打造跨设备一致体验

在移动互联网蓬勃发展的今天&#xff0c;很多开发者会选择使用 UniApp 来开发多端应用&#xff0c;尤其是 H5 端&#xff0c;因其无需下载安装即可访问的特性&#xff0c;深受用户喜爱。但 UniApp H5 应用在 PC 端直接打开时&#xff0c;往往会因为屏幕尺寸的巨大差异&#xff…

【MySQL#4】函数 复合查询 内外连接

&#x1f4c3;个人主页&#xff1a;island1314 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&#x1f3fd;留言 &#x1f60d;收藏 &#x1f49e; &#x1f49e; &#x1f49e; 生活总是不会一帆风顺&#xff0c;前进的道路也不会永远一马平川&#xff0c;如何面…

C++常见面试题之一

一、语言基础与内存管理const与constexpr的区别&#xff1f;应用场景&#xff1f; const&#xff1a;运行时常量&#xff0c;修饰变量/函数不可修改。constexpr&#xff1a;编译期常量&#xff08;C11&#xff09;&#xff0c;用于优化计算&#xff08;如数组大小&#xff09;。…

Golang 语言中的指针介绍

介绍&#xff1a;指针式一种数据类型&#xff0c;用来存储值的内存地址&#xff0c;为了便于理解&#xff0c;我们也可以把指针未内存地址&#xff0c;指针类型只占用内存4个或 8 个字节&#xff0c;在Golang 语言中&#xff0c;类型名称加 * 表示改类型的指针类型。指针类型变…

Flink 状态管理设计详解:StateBackend、State、RocksDB和Namespace

为什么需要 StateBackend&#xff1f;—— 职责分离原则我们可以用一个银行的例子来类比&#xff1a;State (如 ValueState, ListState) 就像是你的银行卡。AbstractKeyedStateBackend 就像是银行的整个后台系统&#xff08;包括总服务器、数据库、风控系统、会计系统等&#x…

橱柜铰链的革命:炬森精密如何以创新科技重塑家居体验

在现代化家居设计中&#xff0c;橱柜不仅是存储空间的核心&#xff0c;更是生活品质的象征。而作为橱柜的“关节”&#xff0c;橱柜铰链的性能直接影响着日常使用的便捷性、安全性和耐久性。然而&#xff0c;许多消费者在橱柜使用中常遭遇噪音干扰、频繁松动或早期损坏等痛点&a…

医疗系统国产化实录:SQL Server国产替代,乙方保命指南

医疗行业的SQL Server替代&#xff0c;和普通业务系统完全不是一个量级——医嘱逻辑嵌套几十层存储过程、收费结算小数点错位能引发医患纠纷、电子病历查询慢一秒医生直接拍桌子。作为被按在手术台上的乙方PM&#xff0c;实测四款主流国产库后&#xff0c;掏心窝子说句实话&…

WAIC 2025 盛大启幕,深思考邀您解锁端侧 AI 新可能​!

2025 世界人工智能大会今日正式启幕&#xff0c;深思考人工智能&#xff08;iDeepWise&#xff09;携端侧多模态大模型技术成果登陆展会&#xff0c;与行业伙伴共探端侧 AI 发展新机遇。作为专注于类端侧多模态大模型领域的创新力量&#xff0c;深思考此次重点展示了 iDeepWise…

MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)

目录1.表结构的操作&#xff08;1&#xff09;增加表&#xff08;2&#xff09;查看库中所有的表&#xff08;3&#xff09;查看表每个列的约束&#xff08;4&#xff09;删除整张表&#xff08;5&#xff09;删除某个具体的列&#xff08;6&#xff09;增加某个具体的列&#…

1. Qt多线程开发

目录方法1.继承QThread使用案例总结方法2.将qobject对象moveToThread&#xff08;官方推荐&#xff09;使用案例总结方法3.QRunnable QThreadPool使用案例总结方法4.快速线程QtConcurrentQFutureWatcher使用案例总结代码下载方法1.继承QThread 需要实现QThread的抽象函数run …

ARM入门学习方法分享

首先认识什么是ARM?ARM公司简介ARM是Advanced RISC Machines的缩写&#xff0c;它是一家微处理器行业的知名企业&#xff0c;该企业设计了大量高性能、廉价、耗能低的RISC &#xff08;精简指令集&#xff09;处理器。 1985年第一个ARM原型在英国剑桥诞生。公司的特点是只设计…

基于springboot的在线数码商城/在线电子产品商品销售系统的设计与实现

用户&#xff1a;数码产品&#xff0c;限时秒杀&#xff0c;种草分享&#xff0c;新品资讯&#xff0c;留言板&#xff0c;订单管理&#xff0c;在线客服&#xff0c;购物车&#xff0c;个人中心管理员&#xff1a;个人中心&#xff0c;用户管理&#xff0c;数码分类管理&#…

Zookeeper学习专栏(十):核心流程剖析之服务启动、请求处理与选举协议

文章目录前言一、服务端启动流程1.1 启动入口类&#xff1a;QuorumPeerMain1.2 集群模式启动核心&#xff1a;runFromConfig1.3 QuorumPeer线程核心逻辑&#xff1a;run()1.4 关键子流程&#xff1a;数据恢复1.5 关键设计要点二、请求处理链&#xff08;责任链模式&#xff09;…

网络基础19--OSPF路由业务多区域

一、OSPF多区域必要性单区域问题&#xff1a;LSDB庞大 → 内存占用高&#xff0c;SPF计算开销大LSA洪泛范围广 → 拓扑变化影响全域无法路由汇总 → 路由表膨胀&#xff0c;查找效率低2. 多区域优势&#xff1a;1. 划分区域&#xff1a;独立LSDB&#xff0c;缩小数据库规模2. 限…

MFC扩展库BCGControlBar Pro v36.2新版亮点:图形管理器等全新升级

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 BCGControlBar专业版 v36.2已全新发布了&#xff0c;在这个版本中添加了一个新的扩展器控件、改进了网格和报表…