要求:
模仿写一个微信零钱通信息,如下图所示:

输出这样的:

我们先通过面向过程来完成这样一个要求,后面在通过面向过程的方法去写面向对象的方法:
在整个过程中,我们应该通过化繁为简的思路去完成,其中已经有注释:

package com.xiaowang.smaalChange;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;/*** @Author wanghaiyang* id 201931101227* @date 2021/11/26 16:32*/
/*实现零钱通功能
1、先完成显示菜单界面,并且可以选择
* */
public class SmallChange {public static void main(String[] args) {//化繁为简://1、完成零钱通菜单//2、完成零钱通明细:选择(3)//3、完成收益入账//4、完成消费//5、完成退出//代码改进://1.用户输入4退出时。给出提示”你确定要退出吗:y/n“,必须输入正确的y/n,否则循环输入指令,直到输入y或n。//2.在收益和消费时,判断金额是否合理,并给出相应的提示//3.将面向过程的代码修改成面向对象的方法,编写SmallChangeSysOOP.java类,并使用SmallChangeSysApp.java完成测试。boolean loop = true;double money=0;//收益金额double balance =0;//余额Date date = null;//格式中需要引进日期,下面是日期格式SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");String reason ="";//消费原因String details = "---------------零钱通明细----------------";//1、先得显示一下零钱通菜单,当loop是true的时候输出零钱通菜单do {System.out.println("============零钱通菜单============");System.out.println("\t\t\t 1 零钱通明细");System.out.println("\t\t\t 2 收益入账");System.out.println("\t\t\t 3 消费");System.out.println("\t\t\t 4 退出");System.out.print("请选择(1-4)");Scanner scanner = new Scanner(System.in);//得输入所要选择的功能String key = scanner.next();//用key来保存所选择的功能//接下来就是输出对应的功能咯switch (key){//2 完成零钱通明细:选择(3):(1)可以把收益入账和消费存入数组 (2)可以使用对象 (3)直接使用String拼接case "1":System.out.println(details+"\n");//直接输出那句话,后面的功能直接拼接break;case "2"://3 完成收益入账功能,根据输出格式肯定要引进收益和余额两个变量//2.在收益和消费时,判断金额是否合理,并给出相应的提示System.out.println("请输入你的收益金额:");money = scanner.nextDouble();//建议去判断不正确的用例,不正确就直接退出,正确就继续往下面走,要是判断值正确的还得把后面代码包括进去并且最后还要判断不正确金额时if (money<=0){System.out.println("金额输入有误,应该大于0");break;}balance += money;date = new Date();//定义一个date日期//用字符串拼接收益信息details += "\n收益入账\t+"+ money + "\t"+ sdf.format(date)+"\t余额"+balance;break;case "3"://4 完成零钱通消费,按照格式,需要一个字符串接收消费原因,一个变量消费金额System.out.print("请输入消费原因");reason = scanner.next();System.out.print("请输入消费金额");money = scanner.nextDouble();//有一个范围校验if (money <=0 || money>balance){System.out.println("消费有误,消费金额应该在0-"+balance+"之间");break;}balance -= money;date = new Date();//用字符串拼接消费信息details += "\n\t"+reason+"\t-"+money+"\t"+sdf.format(date)+"\t余额"+balance;break;case "4"://1.用户输入4退出时。给出提示”你确定要退出吗:y/n“,必须输入正确的y/n,否则循环输入指令,直到输入y或n。String choice = "";//接收输入变量//先判断是否输入的是y或者n,建议一段代码一个功能,方便更复杂的操作while (true){System.out.println("你确定要退出吗:y/n");choice = scanner.next();if (choice.equals("y") || choice.equals("n")){break;}}//退出while后,当输入y时,退出零钱通if (choice.equals("y")){loop = false;}break;default:System.out.println("您的输入有误请重新选择");}}while (loop);System.out.println("=======退出零钱通=======");}
}

多次选择后的输出:

面向对象可参考我的另外一篇博客:零钱通-面向对象

零钱通案例---面向过程实现相关推荐

  1. Java学习笔记:模拟实现微信零钱通(面向过程和OOP两种方法)

    写在前面:本次一个小测验技术范围非常浅,非常适用于像我这样小白的人练习,并深刻体会面向过程和面向对象最直观的区别. 1.面向过程代码实现: package com.codetest.smallchan ...

  2. 微信怎样开通账户升级服务器,微信零钱通小范围公测,怎么升级或开通零钱通账户呢?...

    原标题:微信零钱通小范围公测,怎么升级或开通零钱通账户呢? 我们都知道余额宝的好处是:既可以收益又可以直接用于支付,消费时不用再转回余额,所以才有了一大批拥护者.而微信的零钱理财想要消费支付的时候,必 ...

  3. 零钱通项目(面向过程)1

    写一个零钱通项目,如图: 自己尝试了一下: package com.hspedu.smallchange;import java.util.Scanner;public class SmallChan ...

  4. java编写的控制台版微信零钱明细系统,1.面向过程版,2.面向对象版

    1.面向过程版 import java.text.SimpleDateFormat; import java.util.*;/*** @version 1.0* function:* author:阿 ...

  5. python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...

    P82-递归函数-阶乘计算案例 #使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=facto ...

  6. js_高级_表格排序案例---分别用面向过程和面向对象实现

    点击表单每列的title可以实现排序功能(从大到小,从小到大) 1.面向过程方式   2.面向对象实现 以命令者的角度去考虑自己要这个类有什么功能,封装在类里面后自己可以直接调用 然后再去写功能的具体 ...

  7. “围剿”余额宝!微信零钱通能否逆袭成功?| 畅言

    微信零钱通VS支付宝的余额宝,谁会是最后的赢家? 作者 | 小谦 责编 | 郭芮 经过一年多酝酿后,全面开启公测的微信零钱通最近引发了热议.不可否认的是,在当下的互联网市场中,作为一款对标余额宝的产品 ...

  8. 零钱通项目 - 韩老师

    零钱通项目 项目开发流程说明 项目需求说明 使用java开通零钱通项目,可以完成收益入账,消费,查看明细,退出系统等功能 项目的界面 – 化繁为简 --------------------零钱通菜单- ...

  9. 零钱通项目(两个版本)含思路详解

    ========= 零钱通项目 ======== 前言:从七月中旬开始算是系统地学java编程,到现在也有一个月了(不算中间休息的一段时间) 总算能写一个小小的项目了(啥也不是),但是还是挺开心的.因 ...

最新文章

  1. 使用Xpath+多进程爬取诗词名句网的史书典籍类所有文章。update~
  2. quartz mysql索引_分布式系统中的定时任务全解(二)
  3. java的注释、关键字、标识符、变量常量、数据类型、运算符、流程控制等
  4. pb 怎么判断是 小数_考试90分以上的孩子是怎么学数学的?听听老师怎么说?
  5. 【C++探索之旅】第二部分第一课:面向对象初探,string的惊天内幕
  6. asp ado 连接测试_ASP.NET Core 简介
  7. git push解决办法: ! [remote rejected] master -> master (pre-receive hook declined)
  8. 苹果手机使用计算机网络,苹果安卓手机使用usb共享网络给win10电脑的操作方法...
  9. FAN73893MX 350mA-650mA 高压600V 用于高压、高速驱动 MOSFET和IGBT 三相半桥栅极驱动 IC
  10. 学信网的头像下载下来太小的处理方法
  11. 猪皮做成眼角膜为盲人恢复视力,不用等人捐献了
  12. anki server 错误与解决
  13. 2.SpringBoot学习(二)——Spring Boot ConfigurationProperties
  14. iomanip部分函数功能,流操作的控制
  15. 单片机显示原理(LCD1602)
  16. C#调用sql存储过程
  17. hdu 逃生_从办公室逃生(Python简介)
  18. 手动编写SpringIOC框架
  19. 正则表达式篇之——电影净化器
  20. Multisim 14.3 安装教程

热门文章

  1. 微博HTML5草稿箱在哪,新版手机微博草稿箱在哪
  2. tx text control winforms for 30.0
  3. 数字中国城市巡礼之丽江:旅游产业蝶变!
  4. web获取照片EXIF信息(例如:拍照方向、相机设备型号、拍摄时间、ISO 感光度、GPS 地理位置等数据)
  5. 有了微信微公交 在广州乘车不用怕坐过头了
  6. 摘:JAVA JXL API的详细使用
  7. 一块40克的砝码,摔成4块,利用天平,刚好可以称出1~40g所有整数克,问:这4块分别是多少克...
  8. IT30:IT男出差备忘录(又当爹又当妈)
  9. 零基础学员必看的python课程大纲
  10. python冒泡排序算法思路_Python学习笔记(9)冒泡排序算法