0


Java小项目 零钱通

Java项目小练习零钱通

注意:本项目来自B站韩顺平老师 点此跳转
在这里插入图片描述

如图:

(学习)老韩思路:

(1)可以把收益入账和消费,保存到数组中(但目前学到的数组是定长的)
(2)可以使用对象
(3)可以使用String拼接
完成收益入账,完成功能驱动程序员增加新的变化的代码
(1)要接收收益入账的金额,并更新余额
(2)拼接好字符串
(3)找到时间如何输出,并且修改其输出格式
我用的字符串拼接
效果图
**

一些说明

**:创建一个包 com.project.money.oop
然后创建两个类 SmallChangeSys和SmallChangeSysOOP

SmallChangeSys 用来写main方法代码如下

package com.project.money.oop;publicclassSmallChangeSys{publicstaticvoidmain(String[] args){
        SmallChangeSysOOP p=newSmallChangeSysOOP();
        p.menu();}}

SmallChangeSysOOP用来实现具体功能
代码如下:

packagecom.project.money.oop;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Scanner;publicclassSmallChangeSysOOP{privatedouble in_money=0;//当前流动的钱privatedouble balance=0;//余额privateString detailed="------------零钱通明细--------------";privateDate date =null;//可以用于日期格式化的SimpleDateFormat sdf =newSimpleDateFormat("yyyy-MM-dd HH:mm");publicvoidmenu(){};//1 零钱通明细publicvoiddetailed_(){};//2 收益入账"publicvoidinput(){};//3消费publicvoidoutput(){};}

具体说明各个方法的作用:

public void menu()方法

publicvoidmenu(){//菜单boolean loop=true;Scanner scanner =newScanner(System.in);while(loop){//循环展示菜单System.out.println("\n============oop零钱通菜单==============");System.out.println("\t\t1 零钱通明细");System.out.println("\t\t2 收益入账");System.out.println("\t\t3 消费");System.out.println("\t\t4 退"+"\t"+"出");System.out.print("请选择1-4:");int key= scanner.nextInt();//选择;switch(key){case1:detailed_();break;case2:input();break;case3:output();break;case4:System.out.println("\t\t程序已经退出");loop=false;break;}}}

void detailed_()方法

publicvoiddetailed_(){System.out.println(detailed);//直接输出字符}

public void input()方法

publicvoidinput(){//收益入账Scanner scanner =newScanner(System.in);System.out.println("请输入金额:");this.in_money=scanner.nextDouble();while(in_money<0){System.out.println("======输入有误======");System.out.println("是否重新输入?Y(是)或 N(否) ");//可能点错了不是输入String in=scanner.next();//是否重新输入if(in.equals("n")||in.equals("N")){System.out.println("返回主页面中....");/*****************************************/try{Thread.sleep(1000);//暂停1秒提升用户感受}catch(Exception e){}/*******************************************/return;//退出输入}System.out.println("请输入金额:");this.in_money=scanner.nextDouble();}this.balance+=this.in_money;String beizhu="";
        date =newDate();System.out.println("请输入备注:");
        beizhu=scanner.next();this.detailed+="\n收益入帐\t+"+this.in_money +"\t"+ sdf.format(date)+"\t余额:"+this.balance+"  备注:"+beizhu;}

**

public void output()方法

**

publicvoidoutput(){System.out.println("请输入金额:");Scanner scanner =newScanner(System.in);
        in_money=scanner.nextDouble();if(balance<in_money){System.out.println("余额不足,请充值");return;}while(in_money<0){System.out.println("输入错误,请重输");
            in_money=scanner.nextDouble();if(balance<in_money){System.out.println("余额不足,请充值");return;}}this.balance-=in_money;System.out.println("请输入备注:");String beizhu=scanner.next();this.detailed+="\n余额支出\t-"+this.in_money +"\t"+ sdf.format(date)+"\t余额:"+this.balance+"  备注:"+beizhu;}

SmallChangeSysOOP完整代码

packagecom.project.money.oop;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Scanner;publicclassSmallChangeSysOOP{privatedouble in_money=0;//当前流动的钱privatedouble balance=0;//余额privateString detailed="------------零钱通明细--------------";privateDate date =null;//可以用于日期格式化的SimpleDateFormat sdf =newSimpleDateFormat("yyyy-MM-dd HH:mm");publicvoidmenu(){//菜单boolean loop=true;Scanner scanner =newScanner(System.in);while(loop){//循环展示菜单System.out.println("\n============oop零钱通菜单==============");System.out.println("\t\t1 零钱通明细");System.out.println("\t\t2 收益入账");System.out.println("\t\t3 消费");System.out.println("\t\t4 退"+"\t"+"出");System.out.print("请选择1-4:");int key= scanner.nextInt();//选择;switch(key){case1:detailed_();break;case2:input();break;case3:output();break;case4:System.out.println("\t\t程序已经退出");loop=false;break;}}}//1 零钱通明细publicvoiddetailed_(){System.out.println(detailed);}//2 收益入账"publicvoidinput(){//收益入账Scanner scanner =newScanner(System.in);System.out.println("请输入金额:");this.in_money=scanner.nextDouble();while(in_money<0){System.out.println("======输入有误======");System.out.println("是否重新输入?Y(是)或 N(否) ");//可能点错了不是输入String in=scanner.next();//是否重新输入if(in.equals("n")||in.equals("N")){System.out.println("返回主页面中....");/*****************************************/try{Thread.sleep(1000);//暂停1秒提升用户感受}catch(Exception e){}/*******************************************/return;//退出输入}System.out.println("请输入金额:");this.in_money=scanner.nextDouble();}this.balance+=this.in_money;String beizhu="";
        date =newDate();System.out.println("请输入备注:");
        beizhu=scanner.next();this.detailed+="\n收益入帐\t+"+this.in_money +"\t"+ sdf.format(date)+"\t余额:"+this.balance+"  备注:"+beizhu;}//3消费publicvoidoutput(){System.out.println("请输入金额:");Scanner scanner =newScanner(System.in);
        in_money=scanner.nextDouble();if(balance<in_money){System.out.println("余额不足,请充值");return;}while(in_money<0){System.out.println("输入错误,请重输");
            in_money=scanner.nextDouble();if(balance<in_money){System.out.println("余额不足,请充值");return;}}this.balance-=in_money;System.out.println("请输入备注:");String beizhu=scanner.next();this.detailed+="\n余额支出\t-"+this.in_money +"\t"+ sdf.format(date)+"\t余额:"+this.balance+"  备注:"+beizhu;}}

一些图片

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

还请大家一键三连 谢了老铁

👍点赞👍 + 👀关注👀 + 🤏收藏🤏


本文转载自: https://blog.csdn.net/weixin_52062043/article/details/122144669
版权归原作者 笑霸final 所有, 如有侵权,请联系我们删除。

“Java小项目 零钱通”的评论:

还没有评论