需求:
在控制台实现家庭记账本的小功能,功能如下
参考代码如下:
import java.util.Scanner;
/**
* <p>家庭账本-综合案例</p>
*
* @author 波波老师(weixin : javabobo0513)
*/
public class Demo24 {
public static void main(String[] args) {
int inputNo = 0;//用户输入的编号
int count = 0;//用户记账次数
int[] szArray = new int[100];//存收入或支出的金额的数组
String[] szDescArray = new String[100];//存收入或支出的说明描述
int[] zArray = new int[100];//存每次记账完之后的总账户余额
boolean[] typeArray = new boolean[100];//存记账类型:支出或收入
int sum = 10;//账户初始余额
do{
System.out.println("-------------------家庭收支记账软件-------------------");
System.out.println("1、收支明细");
System.out.println("2、登记收入");
System.out.println("3、登记支出");
System.out.println("4、退出");
System.out.println("请选择1-4:");
Scanner sc = new Scanner(System.in);
inputNo = sc.nextInt();//用户输入的编号
switch (inputNo) {
case 1:
System.out.println("-----------------------------------当前收支明细记录-----------------------------------");
System.out.println("收支\t账户金额\t收支金额\t说明");
for(int i=0; i<count; i++){
System.out.println((typeArray[i] ? "收入" : "支出") + "\t" + zArray[i] + "\t\t" + szArray[i] + "\t\t" + szDescArray[i]);
}
break;
case 2:
System.out.println("登记收入:");
System.out.print("本次收入金额:");
int money = sc.nextInt();//用户输入金额
szArray[count] = money;
System.out.print("本次收入说明:");
szDescArray[count] = sc.next();//用户输入说明
typeArray[count] = true;//表示收入
sum = sum + money;
zArray[count] = sum;//总金额
count++;//记账次数+1
break;
case 3:
System.out.println("登记支出:");
System.out.print("本次支出金额:");
int money2 = sc.nextInt();//用户输入金额
szArray[count] = money2;
System.out.print("本次支出说明:");
szDescArray[count] = sc.next();//用户输入说明
typeArray[count] = false;//表示支出
sum = sum - money2;
zArray[count] = sum;//总金额
count++;//记账次数+1
break;
case 4:
System.out.println("谢谢使用,下次再见!");
break;
default:
System.out.println("请输入1-4:");
break;
}
}while(inputNo != 4);
}
}