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;}}
一些图片
还请大家一键三连 谢了老铁
👍点赞👍 + 👀关注👀 + 🤏收藏🤏
版权归原作者 笑霸final 所有, 如有侵权,请联系我们删除。