小分支可以利用函数继续完善(题目来源:尚硅谷)
/*
分支结构,循环结构综合运用(记账软件)
1.本金为10000
2.每次登记收入(菜单2)后,收入的金额应累加到基本金上,并记
录本次收入明细,以便后续的查询。
3.每次登记支出(菜单3)后,支出的金额应从基本金中扣除,并记
录本次支出明细,以便后续的查询。
4.查询收支明细( 菜单1)时,将显示所有的收入、支出名细列表
*/
import java.util.Scanner;
public class TallyBook {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double balance = 10000;//初始金额设置
boolean isFlag = true;//用于控制循环结束
String info = "";//用于记录收支情况
System.out.println("\t欢迎使用家庭收支记账软件");
while(isFlag)
{
switch(menu())
{
case 1:
System.out.println("----------当前收支明细记录----------");
System.out.println("收 支\t账户金额\t 收支金额\t 说 明");
System.out.println(info);
System.out.println("----------------------------------");
break;
case 2:
System.out.print("本次收入金额:");
double income = scan.nextDouble();
balance +=income;
System.out.print("本次收入说明:");
String str1 = scan.next();
info +="收入\t"+balance+"\t "+income+"\t "+str1+'\n';
System.out.println("登记成功");
break;
case 3:
System.out.print("本次支出金额:");
double disburse = scan.nextDouble();
balance -= disburse;
System.out.print("本次支出说明:");
String str2 = scan.next();
info +="收入\t"+balance+"\t "+disburse+"\t "+str2+'\n';
System.out.println("登记成功");
break;
case 4:
isFlag = false;
break;
default:
System.out.println("请输入正确的序号!");
break;
}
}
System.out.println("\t欢迎下次使用(^-^)");
}
//主菜单函数
public static int menu()
{
Scanner scan = new Scanner(System.in);
System.out.println("----------家庭收支记账软件----------");
System.out.println(" 1 收支明细");
System.out.println(" 2 登记收入");
System.out.println(" 3 登记支出");
System.out.println(" 4 退 出");
System.out.print("\n 请选择<1-4>:");
int chiose = scan.nextInt();
return chiose;
}
}