P335_0334韩顺平Java_零钱通介绍

目录

  • P335_0334韩顺平Java_零钱通介绍
  • 代码
    • 过程编程
    • OOP(Object-Oriented Project)
  • 参考资料

P335_0334韩顺平Java_零钱通介绍

  1. 先完成显示菜单,并可以选择。
  2. 完成零钱通明细。
  3. 完成收益入账。
  4. 消费。
  5. 退出。

PS:判断时尽量用不正确的条件去过滤,用正确条件过滤太繁琐

在这里插入图片描述

代码

过程编程

package smallchange;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;public class SmallChange {public static void main(String[] args) {boolean loop = true;Scanner scanner = new Scanner(System.in);String key = ""; // enter stringString details = "----------- Details -----------";String exit = new String();double money = 0;double balance = 0;Date date = null;SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm");String note = "";do {System.out.println("\n\n\n=========== Menu ===========");System.out.println("\t\t# 1 Details.");System.out.println("\t\t# 2 Income.");System.out.println("\t\t# 3 Consume.");System.out.println("\t\t# 4 Exit.");System.out.print("# Please enter your selection(1~4):");key = scanner.next();switch (key) {case "1":System.out.println(details);break;case "2":while (true) {System.out.print("# The account of income is:");money = scanner.nextDouble();if (money <= 0) {System.out.println("# Error, The account of income need greater than 0!");} else {break;}}balance += money;date = new Date();details += "\nIncome: +" + money + "\tTime:" + sdf.format(date) + "\tBalance:" + balance;break;case "3":while (true) {System.out.print("# The account of consume is:");money = scanner.nextDouble();if (money <= 0 || money > balance) {System.out.println("# Error, The account of consume need greater than 0 and less than " + balance);} else {break;}}balance -= money;System.out.print("# The description of consume is:");note = scanner.next();details += "\nConsume: -" + money + "\tTime:" + sdf.format(date) + "\tBalance:" + balance + "\tNote:" + note;break;case "4":
//                    enter inwhile (true) {System.out.println("# Are sure you want exit?(y\\n)");exit = scanner.next();if (exit.equals("y") || exit.equals("n")) {break;} else {System.out.println("# Error, please enter again!");}}
//                    exit or notif (exit.equals("y")) {loop = false;System.out.println("=========== Exit ===========");} else if (exit.equals("n")) {continue;}break;default:System.out.println("# Error, please enter your selection again!");}} while (loop);}}

OOP(Object-Oriented Project)

package smallchange;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;public class SmallChangeOOP {private boolean loop = true;private final Scanner scanner = new Scanner(System.in);private String key = ""; // enter string to select function.private String details = "----------- Details -----------";private String exit = "";// enter y\n to exitprivate double money = 0;private double balance = 0;private Date date = null;private SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm");private String note = "";public void mainMenu() {do {System.out.println("\n=========== Menu ===========");System.out.println("\t\t# 1 Details.");System.out.println("\t\t# 2 Income.");System.out.println("\t\t# 3 Consume.");System.out.println("\t\t# 4 Exit.");System.out.print("# Please enter your selection(1~4):");key = scanner.next();switch (key) {case "1":this.details();break;case "2":this.income();break;case "3":this.consume();break;case "4":this.exit();break;default:System.out.println("# Error, please enter your selection again!");}} while (loop);}public void details() {System.out.println(details);}public void income() {while (true) {System.out.print("# The account of income is:");money = scanner.nextDouble();if (money <= 0) {System.out.println("# Error, The account of income need greater than 0!");} else {break;}}balance += money;date = new Date();details += "\nIncome: +" + money + "\tTime:" + sdf.format(date) + "\tBalance:" + balance;}public void consume() {while (true) {System.out.print("# The account of consume is:");money = scanner.nextDouble();if (money <= 0 || money > balance) {System.out.println("# Error, The account of consume need greater than 0 and less than " + balance);} else {break;}}balance -= money;System.out.print("# The description of consume is:");note = scanner.next();details += "\nConsume: -" + money + "\tTime:" + sdf.format(date) + "\tBalance:" + balance + "\tNote:" + note;}public void exit() {//                    enter inwhile (true) {System.out.println("# Are sure you want exit?(y\\n)");exit = scanner.next();if (exit.equals("y") || exit.equals("n")) {break;} else {System.out.println("# Error, please enter again!");}}
//                    exit or notif (exit.equals("y")) {loop = false;System.out.println("=========== Exit ===========");}}
}
package smallchange;public class Test {public static void main(String[] args) {SmallChangeOOP smallChangeOOP = new SmallChangeOOP();smallChangeOOP.mainMenu();}
}

参考资料

[1] 【零基础 快速学Java】韩顺平 零基础30天学会Java
[2]
[3]

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

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

相关文章

甘蔗茎节检测系统源码分享

甘蔗茎节检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

【小程序】微信小程序课程 -2 快速上手

目录 1、快速上手基本概念 1.1 小程序常用组件 1.2 tabbar配置 1.3 尺寸单位 1.4 样式 1.4.1 全局样式 app.wxss 1.4.2 局部样式 xx.wxss 2、首页案例 2.1 button组件使用 2.2 swiper swiper-item 2.3 tips效果 2.4 引入矢量图 2.5 flex&#xff08;布局&#…

LeetCode: 1971. 寻找图中是否存在路径

寻找图中是否存在路径 原题 有一个具有 n 个顶点的 双向 图&#xff0c;其中每个顶点标记从 0 到 n - 1&#xff08;包含 0 和 n - 1&#xff09;。图中的边用一个二维整数数组 edges 表示&#xff0c;其中 edges[i] [ui, vi] 表示顶点 ui 和顶点 vi 之间的双向边。 每个顶点…

『功能项目』按钮的打开关闭功能【73】

本章项目成果展示 我们打开上一篇72QFrameWork制作背包界面UGUI的项目&#xff0c; 本章要做的事情是制作打开背包与修改器的打开关闭按钮 首先打开UGUICanvas复制button按钮 重命名为ReviseBtn 修改脚本&#xff1a;UIManager.cs 将修改器UI在UGUICanvas预制体中设置为隐藏 运…

Python--操作列表

1.for循环 1.1 for循环的基本语法 for variable in iterable: # 执行循环体 # 这里可以是任何有效的Python代码块这里的variable是一个变量名&#xff0c;用于在每次循环迭代时临时存储iterable中的下一个元素。 iterable是一个可迭代对象&#xff0c;比如列表&#xff08;…

YOLOv8+注意力机制+PyQt5玉米病害检测系统完整资源集合

资源包含可视化的玉米病害检测系统&#xff0c;基于最新的YOLOv8注意力机制训练的玉米病害检测模型&#xff0c;和基于PyQt5制作的可视玉米病害系统&#xff0c;包含登陆页面和检测页面&#xff0c;该系统可自动检测和识别图片或视频当中出现的七类玉米病害&#xff1a;矮花叶病…

Maya没有Arnold材质球

MAYA 没有Arnold材质球_哔哩哔哩_bilibili

软件测试基础篇

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 “尽早的介入测试&#xff0c;遇到问题的解决成本就越低” 随着软件测试技术的发展&#xff0c;测试工作由原来单一的寻找缺陷逐渐发展成为预防缺陷&#xff0c;…

2024.9.26 作业 +思维导图

一、作业 1、什么是虚函数&#xff1f;什么是纯虚函数 虚函数&#xff1a;函数前加关键字virtual&#xff0c;就定义为虚函数&#xff0c;虚函数能够被子类中相同函数名的函数重写 纯虚函数&#xff1a;把虚函数的函数体去掉然后加0&#xff1b;就能定义出一个纯虚函数。 2、基…

前端——实现时钟 附带小例子

创建日期对象 toLocaleDateString() 获取日期 console.log(date.toLocaleDateString()) toLocaleTimeString() 获取时间 console.log(date.toLocaleTimeString()) toLocaleString() 获取日期和时间 console.log(date.toLocaleString()) date.getDay() 获取星期几 周日为…

软件无线电3-微相E316和HackRF实现FM调制解调

前面介绍了基于Matlab、矢量信号器和HackRF One实现射频下的FM调制解调&#xff0c;今天分享的内容是用微相E316替代矢量信号器完成发射工作。注意本文仅用于科研和学习&#xff0c;私自搭建电台属于违法行为。 1.概述 微相E316和HackRF One实现FM调制解调测试框图如1所示&am…

【后端开发】JavaEE初阶—线程的理解和编程实现

前言&#xff1a; &#x1f31f;&#x1f31f;本期讲解多线程的知识哟~~~&#xff0c;希望能帮到屏幕前的你。 &#x1f308;上期博客在这里&#xff1a;【后端开发】JavaEE初阶——计算机是如何工作的&#xff1f;&#xff1f;&#xff1f;-CSDN博客 &#x1f308;感兴趣的小伙…

哈希表(一)

一、基础知识 哈希表的优点&#xff1a; 查找key的时间效率是O&#xff08;1&#xff09; 什么时候要用到哈希表&#xff1a; 查询元素的出现问题&#xff08;是否出现过&#xff0c;是否在集合里&#xff0c;出现次数等&#xff09; 哈希表的三种数据结构&#xff1a; 数组…

4--苍穹外码-SpringBoot项目中分类管理 详解

目录 新增分类 分类分页查询 启用禁用分类 根据类型查询 修改分类 本文介绍SpringBoot项目中的分类管理&#xff0c;操作类似员工管理模块&#xff0c;具体详解可见以下博客&#xff0c;此处给出各部分代码 2--SpringBoot项目中员工管理 详解&#xff08;一&#xff09;-C…

Web端云剪辑解决方案,BS架构私有化部署,安全可控

传统视频制作流程繁琐、耗时&#xff0c;且对专业设备和软件的高度依赖&#xff0c;常常让企业望而却步&#xff0c;美摄科技凭借其强大的技术实力和创新能力&#xff0c;推出了面向企业用户的Web端云剪辑解决方案&#xff0c;为企业提供一站式、高效、便捷的视频生产平台。 B…

[WMCTF2020]Make PHP Great Again 2.01

又是php代码审计,开始吧. 这不用审吧&#xff0c;啊喂. 意思就是我们要利用require_once()函数和传入的file的value去读取flag的内容.&#xff0c;貌似呢require_once()已经被用过一次了&#xff0c;直接读取还不行&#xff0c;看一下下面的知识点. require_once() require…

【C++位图】构建灵活的空间效率工具

目录 位图位图的基本概念如何用位图表示数据位图的基本操作setresettest 封装位图的设计 总结 在计算机科学中&#xff0c;位图&#xff08;Bitmap&#xff09;是一种高效的空间管理数据结构&#xff0c;广泛应用于各种场景&#xff0c;如集合操作、图像处理和资源管理。与传统…

【Docker】基于docker compose部署artifactory-cpp-ce服务

基于docker compose部署artifactory-cpp-ce服务 1 环境准备2 必要文件创建与编写3 拉取镜像-创建容器并后台运行4 访问JFog Artifactory 服务 1 环境准备 docker 以及其插件docker compose &#xff0c;我使用的版本如下图所示&#xff1a; postgresql 的jdbc驱动, 我使用的是…

Qt优秀开源项目之二十三:QSimpleUpdater

QSimpleUpdater是开源的自动升级模块&#xff0c;用于检测、下载和安装更新。 github地址&#xff1a;https://github.com/alex-spataru/QSimpleUpdater QSimpleUpdater目前Star不多&#xff08;911个&#xff09;&#xff0c;但已在很多开源项目看到其身影&#xff0c;比如Not…

Scikit-LearnTensorFlow机器学习实用指南(三):一个完整的机器学习项目【下】

机器学习实用指南(三)&#xff1a;一个完整的机器学习项目【下】 作者&#xff1a;LeonG 本文参考自&#xff1a;《Hands-On Machine Learning with Scikit-Learn & TensorFlow 机器学习实用指南》&#xff0c;感谢中文AI社区ApacheCN提供翻译。 本文全部代码和数据集保存在…