Java如何实现零钱通
导读:本文共4265字符,通常情况下阅读需要14分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 如图:思路:(1)可以把收益入账和消费,保存到数组中(但目前学到的数组是定长的)(2)可以使用对象(3)可以使用String拼接完成收益入账,完成功能驱动程序员增加新的变化的代码(1)要接收收益入账的金额,并更新余额(2)拼接好字符串(3)找到时间如何输出,并且修改其输出格式我用的字符串拼接一些说明创建一个包 com.project.money.oop然后创建两... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。如图:
思路:
(1)可以把收益入账和消费,保存到数组中(但目前学到的数组是定长的)
(2)可以使用对象
(3)可以使用String拼接
完成收益入账,完成功能驱动程序员增加新的变化的代码
(1)要接收收益入账的金额,并更新余额
(2)拼接好字符串
(3)找到时间如何输出,并且修改其输出格式
我用的字符串拼接
一些说明
创建一个包 com.project.money.oop
然后创建两个类 SmallChangeSys和SmallChangeSysOOP
SmallChangeSys 用来写main方法代码如下
packagecom.project.money.oop;publicclassSmallChangeSys{publicstaticvoidmain(String[]args){SmallChangeSysOOPp=newSmallChangeSysOOP();p.menu();}}
SmallChangeSysOOP用来实现具体功能
代码如下:
packagecom.project.money.oop;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Scanner;publicclassSmallChangeSysOOP{privatedoublein_money=0;//当前流动的钱privatedoublebalance=0;//余额privateStringdetailed="------------零钱通明细--------------";privateDatedate=null;//可以用于日期格式化的SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm");publicvoidmenu(){};//1零钱通明细publicvoiddetailed_(){};//2收益入账"publicvoidinput(){};//3消费publicvoidoutput(){};}
具体说明各个方法的作用:
public void menu()方法
publicvoidmenu(){//菜单booleanloop=true;Scannerscanner=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:");intkey=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(){//收益入账Scannerscanner=newScanner(System.in);System.out.println("请输入金额:");this.in_money=scanner.nextDouble();while(in_money<0){System.out.println("======输入有误======");System.out.println("是否重新输入?Y(是)或N(否)");//可能点错了不是输入Stringin=scanner.next();//是否重新输入if(in.equals("n")||in.equals("N")){System.out.println("返回主页面中....");/*****************************************/try{Thread.sleep(1000);//暂停1秒提升用户感受}catch(Exceptione){}/*******************************************/return;//退出输入}System.out.println("请输入金额:");this.in_money=scanner.nextDouble();}this.balance+=this.in_money;Stringbeizhu="";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("请输入金额:");Scannerscanner=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("请输入备注:");Stringbeizhu=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{privatedoublein_money=0;//当前流动的钱privatedoublebalance=0;//余额privateStringdetailed="------------零钱通明细--------------";privateDatedate=null;//可以用于日期格式化的SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm");publicvoidmenu(){//菜单booleanloop=true;Scannerscanner=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:");intkey=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(){//收益入账Scannerscanner=newScanner(System.in);System.out.println("请输入金额:");this.in_money=scanner.nextDouble();while(in_money<0){System.out.println("======输入有误======");System.out.println("是否重新输入?Y(是)或N(否)");//可能点错了不是输入Stringin=scanner.next();//是否重新输入if(in.equals("n")||in.equals("N")){System.out.println("返回主页面中....");/*****************************************/try{Thread.sleep(1000);//暂停1秒提升用户感受}catch(Exceptione){}/*******************************************/return;//退出输入}System.out.println("请输入金额:");this.in_money=scanner.nextDouble();}this.balance+=this.in_money;Stringbeizhu="";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("请输入金额:");Scannerscanner=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("请输入备注:");Stringbeizhu=scanner.next();this.detailed+="\n余额支出\t-"+this.in_money+"\t"+sdf.format(date)+"\t余额:"+this.balance+"备注:"+beizhu;}}
一些图片
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
Java如何实现零钱通的详细内容,希望对您有所帮助,信息来源于网络。