注意:本项目来自B站韩顺平老师 点此跳转
如图:
(学习)老韩思路:
(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(){};
public void detailed_(){};
public void input(){};
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 );
} 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<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完整代码
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;
}
}
}
public void detailed_(){
System.out.println(detailed);
}
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 );
} 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(){
System.out.println("请输入金额:");
Scanner scanner = new Scanner(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;
}
}
一些图片
还请大家一键三连 谢了老铁
👍点赞👍 + 👀关注👀 + 🤏收藏🤏
|