Java实例项目零钱通的实现流程

网友投稿 293 2022-08-23


Java实例项目零钱通的实现流程

目录老韩思路:一些说明SmallChangeSys用来写main方法代码如下具体说明各个方法的作用:publicvoidmenu()方法voiddetailed_()方法publicvoidinput()方法publicvoidoutput()方法SmallChangeSysOOP完整代码一些图片

注意:本项目来自B站韩顺平老师 点此跳转

完整代码请看这里:gitee

点击这里 github链接

如图:

老韩思路:

(1)可以把收益入账和消费,保存到数组中(但目前学到的数组是定长的)

(2)可以使用对象

(3)可以使用String拼接

完成收益入账,完成功能驱动程序员增加新的变化的代码

(1)要接收收益入账的金额,并更新余额

(2)拼接好字符串

(3)找到时间如何输出,并且修改其输出格式

我用的字符串拼接

**

一些说明

**:创建一个包 com.project.money.oop

然后创建两个类 SmallChangeSys和SmallChangeSysOOP

SmallChangeSys 用来写main方法代码如下

package com.project.money.oop;

public class SmallChangeSys {

public static void main(String[] args) {

SmallChangeSysOOP p=new SmallChangeSysOOP();

p.menu();

}

}

SmallChangeSysOOP用来实现具体功能

代码如下:

package com.project.money.oop;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Scanner;

public class SmallChangeSysOOP {

private double in_money=0;//当前流动的钱

private double balance=0;//余额

private String detailed="------------零钱通明细--------------";

private Date date = null;

//可以用于日期格式化的

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");

public void menu(){};

//1 零钱通明细

public void detailed_(){};

//2 收益入账"

public void input(){};

//3消费

public void output(){};

}

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

public void menu()方法

public void menu(){//菜单

boolean loop=true;

Scanner scanner = new Scanner(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){

case 1:detailed_();break;

case 2:input();break;

case 3:output();break;

case 4:System.out.println("\t\t程序已经退出");loop=false;break;

}

}

}

void detailed_()方法

public void detailed_(){

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

}

public void input()方法

public void input(){//收益入账

Scanner scanner = new Scanner(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 = new Date();

System.out.println("请输入备注:");

beizhu=scanner.next();

this.detailed+="\n收益入帐\t+" + this.in_money + "\t" + sdf.format(date) +

"\t余额:" + this.balance+ " 备注:" +beizhu;

}

**

public void output()方法

**

public void output(){

System.out.println("请输入金额:");

Scanner scanner = new Scanner(System.in);

in_money=scanner.nextDouble();

if(balance

System.out.println("余额不足,请充值");

return;

}

while(in_money<0){

System.out.println("输入错误,请重输");

in_money=scanner.nextDouble();

if(balance

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完整代码

package com.project.money.oop;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Scanner;

public class SmallChangeSysOOP {

private double in_money=0;//当前流动的钱

private double balance=0;//余额

private String detailed="------------零钱通明细--------------";

private Date date = null;

//可以用于日期格式化的

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");

public void menu(){//菜单

boolean loop=true;

Scanner scanner = new Scanner(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){

case 1:detailed_();break;

case 2:input();break;

case 3:output();break;

case 4:System.out.println("\t\t程序已经退出");loop=false;break;

}

}

}

//1 零钱通明细

public void detailed_(){

System.out.println(detailed);

}

//2 收益入账"

public void input(){//收益入账

Scanner scanner = new Scanner(System.in);

System.out.println("请输入金额:");

this.in_money=scanner.nhttp://extDouble();

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 = new Date();

System.out.println("请输入备注:");

beizhu=scanner.next();

this.detailed+="\n收益入帐\t+" + this.in_money + "\t" + sdf.format(date) +

"\t余额:" + this.balance+ " 备注:" +beizhu;

}

//3消费

public void output(){

System.out.println("请输入金额:");

Scanner scanner = new Scanner(System.in);

in_money=scanner.nextDouble();

if(balance

System.out.println("余额不足,请充值");

return;

}

while(in_money<0){

System.out.println("输入错误,请重输");

in_money=scanner.nextDouble();

if(balance

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;

}

}

一些图片

System.out.println("余额不足,请充值");

return;

}

while(in_money<0){

System.out.println("输入错误,请重输");

in_money=scanner.nextDouble();

if(balance

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完整代码

package com.project.money.oop;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Scanner;

public class SmallChangeSysOOP {

private double in_money=0;//当前流动的钱

private double balance=0;//余额

private String detailed="------------零钱通明细--------------";

private Date date = null;

//可以用于日期格式化的

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");

public void menu(){//菜单

boolean loop=true;

Scanner scanner = new Scanner(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){

case 1:detailed_();break;

case 2:input();break;

case 3:output();break;

case 4:System.out.println("\t\t程序已经退出");loop=false;break;

}

}

}

//1 零钱通明细

public void detailed_(){

System.out.println(detailed);

}

//2 收益入账"

public void input(){//收益入账

Scanner scanner = new Scanner(System.in);

System.out.println("请输入金额:");

this.in_money=scanner.nhttp://extDouble();

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 = new Date();

System.out.println("请输入备注:");

beizhu=scanner.next();

this.detailed+="\n收益入帐\t+" + this.in_money + "\t" + sdf.format(date) +

"\t余额:" + this.balance+ " 备注:" +beizhu;

}

//3消费

public void output(){

System.out.println("请输入金额:");

Scanner scanner = new Scanner(System.in);

in_money=scanner.nextDouble();

if(balance

System.out.println("余额不足,请充值");

return;

}

while(in_money<0){

System.out.println("输入错误,请重输");

in_money=scanner.nextDouble();

if(balance

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;

}

}

一些图片

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完整代码

package com.project.money.oop;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Scanner;

public class SmallChangeSysOOP {

private double in_money=0;//当前流动的钱

private double balance=0;//余额

private String detailed="------------零钱通明细--------------";

private Date date = null;

//可以用于日期格式化的

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");

public void menu(){//菜单

boolean loop=true;

Scanner scanner = new Scanner(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){

case 1:detailed_();break;

case 2:input();break;

case 3:output();break;

case 4:System.out.println("\t\t程序已经退出");loop=false;break;

}

}

}

//1 零钱通明细

public void detailed_(){

System.out.println(detailed);

}

//2 收益入账"

public void input(){//收益入账

Scanner scanner = new Scanner(System.in);

System.out.println("请输入金额:");

this.in_money=scanner.nhttp://extDouble();

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 = new Date();

System.out.println("请输入备注:");

beizhu=scanner.next();

this.detailed+="\n收益入帐\t+" + this.in_money + "\t" + sdf.format(date) +

"\t余额:" + this.balance+ " 备注:" +beizhu;

}

//3消费

public void output(){

System.out.println("请输入金额:");

Scanner scanner = new Scanner(System.in);

in_money=scanner.nextDouble();

if(balance

System.out.println("余额不足,请充值");

return;

}

while(in_money<0){

System.out.println("输入错误,请重输");

in_money=scanner.nextDouble();

if(balance

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;

}

}

一些图片

System.out.println("余额不足,请充值");

return;

}

while(in_money<0){

System.out.println("输入错误,请重输");

in_money=scanner.nextDouble();

if(balance

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;

}

}

一些图片

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;

}

}

一些图片


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:day08Python中的类成员
下一篇:day08_python中的属性(01)(python中day是什么意思)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~