题目来自于尚硅谷基础项目1,其中没有使用项目提供的现成的方法
测试类
package test;
import face.MainInterFace;
import code.*;
public class MainInterFace_Test {
public static void main(String[] args) {
MainInterFace testMain = new MainInterFace();
testMain.face();
Scanf scanf = new Scanf();
scanf.scan();
}
}
主界面
package face;
public class MainInterFace {
public void face(){
System.out.println("-----------------家庭收支记账软件-----------------");
System.out.println();
System.out.println(" 1 收支明细");
System.out.println(" 2 登记收入");
System.out.println(" 3 登记支出");
System.out.println(" 4 退 出");
System.out.println();
System.out.println(" 请选择(1-4):");
}
}
核心方法
package code;
import test.*;
import face.*;
import code.*;
import java.util.Scanner;
public class MainControl{
int balance = 10000;
String []inOrPut = new String[99];
int []nowBalance = new int[99];
int []bills = new int[99];
String []details = new String[99];
int i = 0;
Scanner scanner = new Scanner(System.in);
public void detail(){
System.out.println("-----------------当前收支明细记录-----------------");
System.out.println("收支 账户金额 收支金额 说 明");
for(int j = 0;j < i;j++){
System.out.println(inOrPut[j]+"\t"+nowBalance[j]+"\t"+bills[j]+"\t "+details[j]);
}
}
public void inCome(){
System.out.println("请输入收入金额:");
int money = scanner.nextInt();
System.out.println("请输入收入明细:");
String note = scanner.next();
balance = balance + money;
inOrPut[i] = "收入";
nowBalance[i] = balance;
bills[i] = money;
details[i] = note;
i++;
System.out.println("本次收入金额:"+money);
System.out.println("本次收入说明:"+note);
}
public void cost(){
System.out.println("请输入支出金额:");
int money = scanner.nextInt();
System.out.println("请输入支出明细:");
String note = scanner.next();
balance = balance - money;
inOrPut[i] = "支出";
nowBalance[i] = balance;
bills[i] = money;
details[i] = note;
i++;
System.out.println("本次支出金额:"+money);
System.out.println("本次支出说明:"+note);
}
MainInterFace scanface = new MainInterFace();
public void exit(){
Scanf SC = new Scanf();
System.out.println("确认是否退出(Y/N):");
String x = scanner.next();
switch (x){
case "y":return;
case "Y":return;
default:{
scanface.face();
SC.scan();
}
}
}
}
流程控制
package code;
import java.util.Scanner;
import code.*;
import face.*;
import test.MainInterFace_Test;
public class Scanf {
Scanner scanner = new Scanner(System.in);
MainInterFace scanface = new MainInterFace();
MainControl con = new MainControl();
public void scan(){
String number = scanner.next();
switch(number){
case "1": con.detail();{scanface.face();scan();};
case "2": con.inCome();{scanface.face();scan();};
case "3": con.cost();{scanface.face();scan();};
case "4": con.exit();break;
default:{
System.out.println("输入错误,请重新输入");
scan();
}
}
}
}
测试页面
-----------------家庭收支记账软件-----------------
1 收支明细
2 登记收入
3 登记支出
4 退 出
请选择(1-4):
2
请输入收入金额:
200
请输入收入明细:
搬砖
本次收入金额:200
本次收入说明:搬砖
-----------------家庭收支记账软件-----------------
1 收支明细
2 登记收入
3 登记支出
4 退 出
请选择(1-4):
3
请输入支出金额:
5
请输入支出明细:
买红薯
本次支出金额:5
本次支出说明:买红薯
-----------------家庭收支记账软件-----------------
1 收支明细
2 登记收入
3 登记支出
4 退 出
请选择(1-4):
1
-----------------当前收支明细记录-----------------
收支 账户金额 收支金额 说 明
收入 10200 200 搬砖
支出 10195 5 买红薯