如圖:
想法:
(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(); } }
#
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(){//菜单 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 );//暂停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(){
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;
}
}
}
//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;
}
}
具體說明各個方法的作用:public void menu()方法rrreee
void detailed_ ()方法rrreee
public void input()方法rrreee
public void output()方法rrreeeSmallChangeSysOOP完整程式碼
一些圖片
以上是Java如何實現零錢通的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能