Java實例項目零錢通的實現(xiàn)流程
完整代碼請看這里:gitee
點擊這里 GitHub鏈接

如圖:
老韓思路:
(1)可以把收益入賬和消費,保存到數(shù)組中(但目前學到的數(shù)組是定長的)
(2)可以使用對象
(3)可以使用String拼接
完成收益入賬,完成功能驅(qū)動程序員增加新的變化的代碼
(1)要接收收益入賬的金額,并更新余額
(2)拼接好字符串
(3)找到時間如何輸出,并且修改其輸出格式
我用的字符串拼接

**
一些說明
**:創(chuàng)建一個包 com.project.money.oop
然后創(chuàng)建兩個類 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用來實現(xiàn)具體功能
代碼如下:
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){//循環(huán)展示菜單
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程序已經(jīng)退出");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<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){//循環(huán)展示菜單
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程序已經(jīng)退出");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.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;
}
//3消費
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;
}
}
一些圖片




到此這篇關(guān)于Java實例項目零錢通的實現(xiàn)流程的文章就介紹到這了,更多相關(guān)Java 零錢通內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java Tree結(jié)構(gòu)數(shù)據(jù)中查找匹配節(jié)點方式
這篇文章主要介紹了Java Tree結(jié)構(gòu)數(shù)據(jù)中查找匹配節(jié)點方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
SpringBoot兩種方式接入DeepSeek的實現(xiàn)
本文主要介紹了SpringBoot兩種方式接入DeepSeek的實現(xiàn),包括HttpClient方式和基于spring-ai-openai的方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-03-03
使用Spring實現(xiàn)@Value注入靜態(tài)字段
這篇文章主要介紹了使用Spring實現(xiàn)@Value注入靜態(tài)字段方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
剖析Java中HashMap數(shù)據(jù)結(jié)構(gòu)的源碼及其性能優(yōu)化
這篇文章主要介紹了Java中HashMap數(shù)據(jù)結(jié)構(gòu)的源碼及其性能優(yōu)化,文中以Java 8后HashMap的性能提升來討論了HashMap的一些優(yōu)化點,需要的朋友可以參考下2016-05-05
Mybatis plus實現(xiàn)Distinct去重功能
這篇文章主要介紹了Mybatis plus實現(xiàn)Distinct去重功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12
成功解決IDEA2020 Plugins 連不上、打不開的方法
這篇文章主要介紹了成功解決IDEA2020 Plugins 連不上、打不開的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06
Spring的@Value如何從Nacos配置中心獲取值并自動刷新
這篇文章主要介紹了Spring的@Value如何從Nacos配置中心獲取值并自動刷新,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

