当前位置: 首页 > ds >正文

【Java学习笔记】【第一阶段项目实践】零钱通(面向过程版本)

零钱通(面向过程版本)

需求分析

1. 需要实现的功能

2. 代码优化部分

代码示例

import java.util.Date;
import java.util.Scanner;
import java.text.SimpleDateFormat;public class basic {public static void main(String[] args) {double money = 0; // 初始化零钱boolean loop = true;  // 用于记录是否退出循环String details = "---------------零钱通明细---------------";Date date = null;SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");//日期的格式化while (loop) {// 每次循环提示菜单,提高用户使用的便捷性System.out.println();System.out.println("---------------零钱通菜单---------------");System.out.println("\t\t\t1.零钱通明细");System.out.println("\t\t\t2.收益入账");System.out.println("\t\t\t3.消费");System.out.println("\t\t\t4.退出");System.out.println("----------------------------------------");System.out.print("\n请选择功能:");Scanner input = new Scanner(System.in);//使用String类型是为了输入不合法字符时避免因类型不兼容报错,简化了处理步骤String choice = input.next();switch (choice) {case "1":System.out.println(details);break;case "2":System.out.print("输入入账金额:");double income = input.nextDouble();if (income <= 0) {System.out.println("入账金额需要大于0");break;}money += income;date = new Date();details += "\n收益入账\t" + "+" + income + "\t" + sdf.format(date) + "\t" + "余额:" + money;break;case "3":System.out.print("消费去向:");String info = input.next();System.out.print("消费金额:");double span = input.nextDouble();if (span < 0 || span > money) {System.out.println("消费金额需要在 0 ~ " + money + "之间");break;}if(money == 0){System.out.println("你的钱花光了,请等待下一笔入账之后再消费~~");break;}money -= span;date = new Date();details += "\n" + info + "\t" + "-" + span + "\t" + sdf.format(date) + "\t" + "余额:" + money;break;case "4":String choice1 = "";  // 初始化位空字符,否则值为nullwhile (true) {System.out.println("\n确认退出吗?y/n");System.out.print("请输入选择:");choice1 = input.next();// 编程习惯;一段代码实现一个功能,分开写提高代码的可读性// 1.首先判断输入的字符是否合理if (choice1.equals("y") || choice1.equals("n")) {break;}}// 2. 在字符输入合理的前提下判断是否退出if (choice1.equals("y")) {loop = false;System.out.println("------------退出了零钱通系统-------------");}break;default:System.out.println("请输入(1 - 4) 选择功能");break;}}}
}

说明

日期格式化部分(到面向对象中级阶段会详解,现在只是了解)

import java.text.SimpleDateFormat;
import java.util.Date;public class date{public static void mian(String[] args){Date date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");//日期的格式化System.out.println(sdf.format(date)); //调用`SimpleDateFormat`类的`format`方法}
}

编程习惯说明一段代码写一个功能,提高代码的可读性

http://www.xdnf.cn/news/6570.html

相关文章:

  • Vue3学习(组合式API——生命周期函数基础)
  • 分类预测 | Matlab实现ABC-Transformer人工蜂群算法优化编码器多特征分类预测/故障诊断Matlab实现
  • 抢购Python代码示例与技术解析
  • 1C:ENTERPRISE 8.3 实用开发者指南-示例和标准技术(Session1-Session3)
  • 《模版初阶》
  • matlab多项式
  • 【unity游戏开发——编辑器扩展】EditorGUIUtility提供一些 EditorGUI 相关的其他辅助API
  • 车载诊断架构 ---车载总线对于功能寻址的处理策略
  • 北京孙河傲云源墅:限量典藏的主城墅居臻品
  • 3.3 掌握RDD分区
  • 密码学刷题小记录
  • 一物一码赋能智能制造:MES如何实现生产全流程数字化追溯
  • JAVA单元测试、反射
  • 在ubuntu系统中将vue3的打包文件dist 部署nginx 并且配置ssl证书 以https方式访问
  • 2025年5月15日
  • 广度和深度优先搜索(BFS和DFS)
  • Ubuntu20.04下如何源码编译Carla,使用UE4源码开跑,踩坑集合
  • Secs/Gem第七讲(基于secs4net项目的ChatGpt介绍)
  • 驱动-Linux定时-timer_list
  • ollama 重命名模型
  • 每日一道leetcode(新学数据结构版)
  • CISA 备考通关经验及回忆题分享
  • 1:OpenCV—图像基础
  • python打卡day26
  • 【开源Agent框架】OWL:面向现实任务自动化的多智能体协作框架深度解析
  • 从代码学习深度学习 - 风格迁移 PyTorch版
  • 中国科学院计算所:从 NFS 到 JuiceFS,大模型训推平台存储演进之路
  • 【知识点】大模型面试题汇总(持续更新)
  • SQLPub:一个提供AI助手的免费MySQL数据库服务
  • 智慧化系统安全分析报告