项目零钱通
项目代码实现
面向过程方式代码 (边看边做)
package com.quange.smallchange; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class SmallChangeSys { // 化繁为简 // 1. 首先完成显示菜单,并可以选择菜单,给出对应的提示信息 // 2. 完成零钱通明细 // 思路:(1)可以把收益入账和消费,保存到数组 (2)可以使用对象 (3) 简单的话使用字符串拼接的方法。 // 3. 完成收益入账 // 思路:创建新的变量 入账金额,余额,当前日期时间 // 4. 完成 消费 // 思路: 常见新的变量,保存消费的原因 public static void main(String[] args) { // 定义相关的变量 boolean loop = true; Scanner scanner = new Scanner(System.in); String details = "----------------零钱通明细----------------"; // 收益的钱 double money = 0; // 余额 double balance = 0; // date 是 java.util.Date 类型 表示日期 Date date = null; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 可以用于日期格式化 String note = ""; do { 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.print("请选择菜单(1-4):"); String key = scanner.next(); // 使用switch 分支控制 switch (key) { case "1" : System.out.println(details); break; case "2" : System.out.print("收益入账金额:"); // 接收输入的入账金额 money = scanner.nextDouble(); // 对money值的范围进行校验 if (money <= 0){ System.out.println("输入的金额应大于0"); break; } // 把入账的金额加入到余额中 balance += money; date = new Date(); // 格式化日期 String date1 = sdf.format(date); // 拼接收益入账信息到 details details += "\n收益入账\t+" + money + "\t" + date1 + "\t" + balance; break; case "3": System.out.println("输入消费金额"); money = scanner.nextDouble(); // 对消费金额进行校验 if (money > balance || money <= 0){ System.out.println("消费金额应该在0" + balance + "元"); break; } System.out.println("请出入消费说明!"); note = scanner.next(); balance -= money; date = new Date(); // 格式化日期 String date2 = sdf.format(date); // 拼接消费信息到 details details += "\n" + note + "\n \t-" + money + "\t" + date2 + "\t" + balance; break; case "4": String choice = ""; // 判断是否输入的是y/n while (true){ System.out.print("请确认是否退出(y/n)"); choice = scanner.next(); if ("y".equals(choice) || "n".equals(choice)){ break; } } // 如果输入的是Y,则退出程序 if (choice.equals("y")){ loop = false; } break; default: System.out.println("菜单选择有误,请重新选择!!"); } }while (loop); System.out.println("已推出零钱通程序!!"); } }
----------------零钱通明细---------------- 收益入账 +100.0 2022-04-15 14:34:22 100.0 ================零钱通菜单================ 1: 零钱通明细 2: 收益入账 3: 消费 4: 退 出 请选择菜单(1-4):
面向对象编程方法 oop代码 (边看边做)
package com.quange.smallchange; /** * 调用对象,显示菜单 */ public class SmallChangeSysApp { public static void main(String[] args) { new SmallChangeSysOOP().mainMenu(); } }
package com.quange.smallchange; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; /** * 该类是完成零钱通各个功能的类,使用 oop面向对象编程 * 1、显示菜单 * 2、完成零钱通明细 * 3、完成收益入账 * 4、消费 * 5、推出 * 思路:将各个功能,对应一个方法 */ public class SmallChangeSysOOP { // 属性 // 定义相关的变量 boolean loop = true; Scanner scanner = new Scanner(System.in); String details = "----------------零钱通明细----------------"; // 收益的钱 double money = 0; // 余额 double balance = 0; // date 是 java.util.Date 类型 表示日期 Date date = null; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 可以用于日期格式化 String note = ""; // 显示菜单 public void mainMenu(){ do { 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.print("请选择菜单(1-4):"); String key = scanner.next(); // 使用switch 分支控制 switch (key) { case "1" : this.detail(); break; case "2" : this.income(); break; case "3": this.pay(); break; case "4": this.exit(); break; default: System.out.println("菜单选择有误,请重新选择!!"); } }while (loop); System.out.println("已推出零钱通程序!!"); } // 零钱通明细 public void detail(){ System.out.println(details); } // 零钱通收益入账 public void income(){ System.out.print("收益入账金额:"); // 接收输入的入账金额 money = scanner.nextDouble(); // 对money值的范围进行校验 if (money <= 0){ System.out.println("输入的金额应大于0"); return; // 推出方法,不在执行后面的语句代码 } // 把入账的金额加入到余额中 balance += money; date = new Date(); // 格式化日期 String date1 = sdf.format(date); // 拼接收益入账信息到 details details += "\n收益入账\t+" + money + "\t" + date1 + "\t" + balance; } // 消费 public void pay(){ System.out.println("输入消费金额"); money = scanner.nextDouble(); // 对消费金额进行校验 if (money > balance || money <= 0){ System.out.println("消费金额应该在0" + balance + "元"); return; } System.out.println("请出入消费说明!"); note = scanner.next(); balance -= money; date = new Date(); // 格式化日期 String date2 = sdf.format(date); // 拼接消费信息到 details details += "\n" + note + "\n \t-" + money + "\t" + date2 + "\t" + balance; } public void exit(){ String choice = ""; // 判断是否输入的是y/n while (true){ System.out.print("请确认是否退出(y/n)"); choice = scanner.next(); if ("y".equals(choice) || "n".equals(choice)){ break; } } // 如果输入的是Y,则退出程序 if (choice.equals("y")){ loop = false; } } }
================零钱通菜单================ 1: 零钱通明细 2: 收益入账 3: 消费 4: 退 出 请选择菜单(1-4):4 请确认是否退出(y/n)y 已推出零钱通程序!! 进程已结束,退出代码0
- THE END -
最后修改:2022年4月15日
版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的所有下载文件均为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,请编辑邮件并加以说明发送到站长邮箱。站长会进行审查之后,情况属实的会在三个工作日内为您删除。
如若转载,请注明出处:https://www.quange.cc/note/java/learn-java/787.html
quange博主
签到成功!签到时间:2022-04-15 15:00:51,每日打卡,生活更精彩哦~
quange博主
签到成功!签到时间:2022-04-15 00:08:13,每日打卡,生活更精彩哦~