java-零錢通介紹




java-零錢通選單



原始碼
package com.Start300.SmallChange;
import java.util.Scanner;
public class SmallChangeSys {
//化繁為簡
//1.先完成顯示選單 并可以選擇 給吃對應提示
public static void main(String[] args) {
//定義相應的變數
boolean loop = true;
Scanner scanner = new Scanner(System.in);
String key = “”;
do {//至少輸出一次
System.out.println(“零錢通選單==”);
System.out.println("\t\t\t1 零錢通明細");
System.out.println("\t\t\t2 收益入賬");
System.out.println("\t\t\t3 消費");
System.out.println("\t\t\t4 退 出");
System.out.println("請選擇(1-4)");
key = scanner.next();
//使用switch分支結構
switch (key) {
case "1"://輸入1 則顯示零錢通明細
System.out.println("1 零錢通明細");
break;
case "2"://輸入1 則顯示零錢通明細
System.out.println("2 收益入賬");
break;
case "3"://輸入1 則顯示零錢通明細
System.out.println("3 消費");
break;
case "4"://輸入1 則顯示零錢通明細
System.out.println("4 退 出");
loop = false;
break;
default:
System.out.println("選擇有誤 請重新選擇");
}
} while (loop);
System.out.println("———————————退出了零錢通————————————");
}
}
零錢通明細




零錢通收益


原始碼
package com.Start300.SmallChange;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SmallChangeSys {
//化繁為簡
//1.先完成顯示選單 并可以選擇 給吃對應提示
//2.完成零錢通明細
//3.完成收益入賬
public static void main(String[] args) {
//定義相應的變數
boolean loop = true;
Scanner scanner = new Scanner(System.in);
String key = “”;
//2.完成零錢通明細
//(1)可以把收益入賬和消費保存到陣列 (2)可以使用物件 (3)簡單的話可以使用String拼接
String details = “--------------零錢通明細----------------”;
//3.完成收益入賬 完成功能驅動程式員增加新的變數和代碼
//定義新的變數
double money = 0;
double balance = 0;//balance 余額
Date date = null;//date是java.util.Date型別,表示日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
//上面是用來日期格式化的 具體以后還會說到 這里只是了解即可
do {//至少輸出一次
System.out.println("\n==============零錢通選單================");
System.out.println("\t\t\t1 零錢通明細");
System.out.println("\t\t\t2 收益入賬");
System.out.println("\t\t\t3 消費");
System.out.println("\t\t\t4 退 出");
System.out.println("請選擇(1-4)");
key = scanner.next();
//使用switch分支結構
switch (key) {
case "1":
System.out.println(details);
break;
case "2":
System.out.print("收益入賬金額");
money = scanner.nextDouble();
//money 的值范圍應該效驗 一會在完善
balance += money;//這里因為是入賬 所以是+
//拼接收益入賬資訊到details
date = new Date();//獲取當前日期
//System.out.println(sdf.format(date));//用sdf格式化當前日期
details += "\n收益入賬\t+" + money + "\t" + sdf.format(date)
+ "\t" + "余額" + balance;
break;
case "3":
System.out.println("3 消費");
break;
case "4":
System.out.println("4 退 出");
loop = false;
break;
default:
System.out.println("選擇有誤 請重新選擇");
}
} while (loop);
System.out.println("———————————退出了零錢通————————————");
}
}
零錢通消費


原始碼
package com.Start300.SmallChange;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SmallChangeSys {
//化繁為簡
//1.先完成顯示選單 并可以選擇 給吃對應提示
//2.完成零錢通明細
//3.完成收益入賬
//4.消費
public static void main(String[] args) {
//定義相應的變數
boolean loop = true;
Scanner scanner = new Scanner(System.in);
String key = “”;
//2.完成零錢通明細
//(1)可以把收益入賬和消費保存到陣列 (2)可以使用物件 (3)簡單的話可以使用String拼接
String details = “--------------零錢通明細----------------”;
//3.完成收益入賬 完成功能驅動程式員增加新的變數和代碼
//定義新的變數
double money = 0;
double balance = 0;//balance 余額
Date date = null;//date是java.util.Date型別,表示日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
//上面是用來日期格式化的 具體以后還會說到 這里只是了解即可
//4.消費
//定義新變數 保存消費的原因
String note = "";
do {//至少輸出一次
System.out.println("\n==============零錢通選單================");
System.out.println("\t\t\t1 零錢通明細");
System.out.println("\t\t\t2 收益入賬");
System.out.println("\t\t\t3 消費");
System.out.println("\t\t\t4 退 出");
System.out.println("請選擇(1-4)");
key = scanner.next();
//使用switch分支結構
switch (key) {
case "1":
System.out.println(details);
break;
case "2":
System.out.print("收益入賬金額");
money = scanner.nextDouble();
//money 的值范圍應該效驗 一會在完善
balance += money;//這里因為是入賬 所以是+
//拼接收益入賬資訊到details
date = new Date();//獲取當前日期
//System.out.println(sdf.format(date));//用sdf格式化當前日期
details += "\n收益入賬\t+" + money + "\t" + sdf.format(date)
+ "\t" + "余額" + balance;
break;
case "3":
System.out.print("消費金額");
money = scanner.nextDouble();
//money 的值范圍應該效驗余額只有100 消費200肯定是不行的 一會在改善
System.out.print("消費說明:");
note = scanner.next();
balance -= money;
//拼接消費資訊到details
date = new Date();//獲取當前日期
details += "\n" + note + "\t-" + money + "\t" +
sdf.format(date) + "\t" + "余額" + balance;
break;
case "4":
System.out.println("4 退 出");
loop = false;
break;
default:
System.out.println("選擇有誤 請重新選擇");
}
} while (loop);
System.out.println("———————————退出了零錢通————————————");
}
}
零錢通退出確認



原始碼
package com.Start300.SmallChange;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SmallChangeSys {
//化繁為簡
//1.先完成顯示選單 并可以選擇 給吃對應提示
//2.完成零錢通明細
//3.完成收益入賬
//4.消費
//5.退出
//6.用戶輸入4退出時 給出提示y/n
public static void main(String[] args) {
//定義相應的變數
boolean loop = true;
Scanner scanner = new Scanner(System.in);
String key = “”;
//2.完成零錢通明細
//(1)可以把收益入賬和消費保存到陣列 (2)可以使用物件 (3)簡單的話可以使用String拼接
String details = “--------------零錢通明細----------------”;
//3.完成收益入賬 完成功能驅動程式員增加新的變數和代碼
//定義新的變數
double money = 0;
double balance = 0;//balance 余額
Date date = null;//date是java.util.Date型別,表示日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
//上面是用來日期格式化的 具體以后還會說到 這里只是了解即可
//4.消費
//定義新變數 保存消費的原因
String note = "";
do {//至少輸出一次
System.out.println("\n==============零錢通選單================");
System.out.println("\t\t\t1 零錢通明細");
System.out.println("\t\t\t2 收益入賬");
System.out.println("\t\t\t3 消費");
System.out.println("\t\t\t4 退 出");
System.out.println("請選擇(1-4)");
key = scanner.next();
//使用switch分支結構
switch (key) {
case "1":
System.out.println(details);
break;
case "2":
System.out.print("收益入賬金額");
money = scanner.nextDouble();
//money 的值范圍應該效驗 一會在完善
balance += money;//這里因為是入賬 所以是+
//拼接收益入賬資訊到details
date = new Date();//獲取當前日期
//System.out.println(sdf.format(date));//用sdf格式化當前日期
details += "\n收益入賬\t+" + money + "\t" + sdf.format(date)
+ "\t" + "余額" + balance;
break;
case "3":
System.out.print("消費金額");
money = scanner.nextDouble();
//money 的值范圍應該效驗 如果余額只有100 消費200肯定是不行的
System.out.print("消費說明:");
note = scanner.next();
balance -= money;
//拼接消費資訊到details
date = new Date();//獲取當前日期
details += "\n" + note + "\t-" + money + "\t" +
sdf.format(date) + "\t" + "余額" + balance;
break;
case "4":
//用戶輸入4退出時 給出提示"你確定要退出嗎?y/n" 必須輸入正確的y/n
//否則回圈輸入指令 知道輸入y或者n
//思路分析
//(1)定義一個變數choice 接收用戶的輸入
//(2)使用while+break,來處理接收到的輸入時y或者n
//(3)退出while后 在判斷while是y還是n 就可以決定是否退出
//(4)建議一段代碼 完成一個小功能 盡量不要混在一起
String choice = "";
while (true){//要求用戶必須輸入y/n 否則就一直回圈
System.out.println("你確定要退出嗎y/n");
choice = scanner.next();
if ("y".equals(choice)||"n".equals(choice)){
break;
}
}
//當用戶退出while后 進行判斷
if (choice.equals("y")){
loop = false;
}
break;
default:
System.out.println("選擇有誤 請重新選擇");
}
} while (loop);
System.out.println("———————————退出了零錢通————————————");
}
}
零錢通金額效驗

在case “2”:和case “3”:里面加了些代碼



原始碼
package com.Start300.SmallChange;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SmallChangeSys {
//化繁為簡
//1.先完成顯示選單 并可以選擇 給吃對應提示
//2.完成零錢通明細
//3.完成收益入賬
//4.消費
//5.退出
//6.用戶輸入4退出時 給出提示y/n
public static void main(String[] args) {
//定義相應的變數
boolean loop = true;
Scanner scanner = new Scanner(System.in);
String key = “”;
//2.完成零錢通明細
//(1)可以把收益入賬和消費保存到陣列 (2)可以使用物件 (3)簡單的話可以使用String拼接
String details = “--------------零錢通明細----------------”;
//3.完成收益入賬 完成功能驅動程式員增加新的變數和代碼
//定義新的變數
double money = 0;
double balance = 0;//balance 余額
Date date = null;//date是java.util.Date型別,表示日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
//上面是用來日期格式化的 具體以后還會說到 這里只是了解即可
//4.消費
//定義新變數 保存消費的原因
String note = "";
do {//至少輸出一次
System.out.println("\n==============零錢通選單================");
System.out.println("\t\t\t1 零錢通明細");
System.out.println("\t\t\t2 收益入賬");
System.out.println("\t\t\t3 消費");
System.out.println("\t\t\t4 退 出");
System.out.println("請選擇(1-4)");
key = scanner.next();
//使用switch分支結構
switch (key) {
case "1":
System.out.println(details);
break;
case "2":
System.out.print("收益入賬金額");
money = scanner.nextDouble();
//money 的值范圍應該效驗 一會在完善
//編程思想 找出不正確的金額條件 然后給出提示 就直接break
if (money <= 0){
System.out.println("收益入賬金額需要大于0");
break;
}
balance += money;//這里因為是入賬 所以是+
//拼接收益入賬資訊到details
date = new Date();//獲取當前日期
//System.out.println(sdf.format(date));//用sdf格式化當前日期
details += "\n收益入賬\t+" + money + "\t" + sdf.format(date)
+ "\t" + "余額" + balance;
break;
case "3":
System.out.print("消費金額");
money = scanner.nextDouble();
//money 的值范圍應該效驗 如果余額只有100 消費200肯定是不行的
if (money <= 0 ||money > balance){
System.out.println("你的消費金額應該在0-"+balance);
break;
}
System.out.print("消費說明:");
note = scanner.next();
balance -= money;
//拼接消費資訊到details
date = new Date();//獲取當前日期
details += "\n" + note + "\t-" + money + "\t" +
sdf.format(date) + "\t" + "余額" + balance;
break;
case "4":
//用戶輸入4退出時 給出提示"你確定要退出嗎?y/n" 必須輸入正確的y/n
//否則回圈輸入指令 知道輸入y或者n
//思路分析
//(1)定義一個變數choice 接收用戶的輸入
//(2)使用while+break,來處理接收到的輸入時y或者n
//(3)退出while后 在判斷while是y還是n 就可以決定是否退出
//(4)建議一段代碼 完成一個小功能 盡量不要混在一起
String choice = "";
while (true){//要求用戶必須輸入y/n 否則就一直回圈
System.out.println("你確定要退出嗎y/n");
choice = scanner.next();
if ("y".equals(choice)||"n".equals(choice)){
break;
}
}
//當用戶退出while后 進行判斷
if (choice.equals("y")){
loop = false;
}
break;
default:
System.out.println("選擇有誤 請重新選擇");
}
} while (loop);
System.out.println("———————————退出了零錢通————————————");
}
}
零錢通OOP版




SmallChangeSysOOP類原始碼
package com.Start300.SmallChange.oop;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/**
-
該類是完成零錢通的各個功能的類
-
使用OOP(面向物件編程)
-
將各個功能對應一個方法
*/
public class SmallChangeSysOOP {//屬性
//定義相應的變數
boolean loop = true;
Scanner scanner = new Scanner(System.in);
String key = “”;//2.完成零錢通明細
//(1)可以把收益入賬和消費保存到陣列 (2)可以使用物件 (3)簡單的話可以使用String拼接
String details = “--------------零錢通明細----------------”;//3.完成收益入賬 完成功能驅動程式員增加新的變數和代碼
//定義新的變數
double money = 0;
double balance = 0;//balance 余額
Date date = null;//date是java.util.Date型別,表示日期
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm”);
//上面是用來日期格式化的 具體以后還會說到 這里只是了解即可//4.消費
//定義新變數 保存消費的原因
String note = “”;//先完成顯示選單 并可以選擇
public void mainMenu() {
do {//至少輸出一次
System.out.println("\n零錢通選單(OOP)=");
System.out.println("\t\t\t1 零錢通明細");
System.out.println("\t\t\t2 收益入賬");
System.out.println("\t\t\t3 消費");
System.out.println("\t\t\t4 退 出");System.out.println("請選擇(1-4)"); key = scanner.next(); //使用switch分支結構 switch (key) { case "1": this.detail(); break; case "2": this.income(); break; case "3": this.pay(); break; case "4": this.exit(); break; default: System.out.println("選擇有誤 請重新選擇"); } } while (loop); System.out.println("您退出了零錢通");}
//完成零錢通明細
public void detail() {
System.out.println(details);
}//完成收益入賬
public void income() {
System.out.print(“收益入賬金額”);
money = scanner.nextDouble();
//money 的值范圍應該效驗 一會在完善
//編程思想 找出不正確的金額條件 然后給出提示 就直接return
if (money <= 0) {
System.out.println(“收益入賬金額需要大于0”);
return;//退出方法 不在執行后面的代碼
}
balance += money;//這里因為是入賬 所以是+
//拼接收益入賬資訊到details
date = new Date();//獲取當前日期
//System.out.println(sdf.format(date));//用sdf格式化當前日期
details += “\n收益入賬\t+” + money + “\t” + sdf.format(date)
+ “\t” + “余額” + balance;
}
//消費
public void pay() {
System.out.print(“消費金額”);
money = scanner.nextDouble();
//money 的值范圍應該效驗 如果余額只有100 消費200肯定是不行的
if (money <= 0 || money > balance) {
System.out.println(“你的消費金額應該在0-” + balance);
return;
}
System.out.print(“消費說明:”);
note = scanner.next();
balance -= money;
//拼接消費資訊到details
date = new Date();//獲取當前日期
details += “\n” + note + “\t-” + money + “\t” +
sdf.format(date) + “\t” + “余額” + balance;
}
//退出
public void exit() {
String choice = “”;
while (true) {//要求用戶必須輸入y/n 否則就一直回圈
System.out.println(“你確定要退出嗎y/n”);
choice = scanner.next();
if (“y”.equals(choice) || “n”.equals(choice)) {
break;
}
}
//當用戶退出while后 進行判斷
if (choice.equals(“y”)) {
loop = false;
}
}
}
SmallChangeSysApp類原始碼
package com.Start300.SmallChange.oop;
/**
*這里我們直接呼叫SmallChangeSysOOP物件 顯示主選單即可
*/
public class SmallChangeSysApp {
public static void main(String[] args) {
new SmallChangeSysOOP().mainMenu();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/290074.html
標籤:java
