本篇是一个java初学者写的家庭收支账本,希望对大家有用。
明确要求:
1.在这里在第一个界面它需要四个选择功能。
收支明细
登记收入
登记支出
退 出
2.每次的支出或收入都要记录,以便后续能查找。
所以在这里我们首先要思考怎么才能将这些都能在控制台输出。
我们能想到以前学过的的数组,数组可以赋值。
所以第一步我们首先定义一个数组:
public static void main(String[] args) {
String[][] arr = new String[10][4];
//在这里定义一个二维引用数据类型数组
其次,需要接受用户的选择,我们用Scanner来输入数据。
Scanner sc = new Scanner(System.in);
//在这里接受用户数据
在其次我们定义本金
int ben = 10000; //本金为10000
int count = 0;
在这里我们需要编写这个账本的最顶部的文本,并进行一个死循环。为了应对错误数据(只是int类型)编写一个if判断。
while (true) {
System.out.println("--------家庭收支记账软件-------- \n 1 收支明细\n 2 登记收入\n 3 登记支出\n 4 退出\n请选择1~4:");
//用户选择
int a = sc.nextInt();
if(a !=1 && a !=2 && a != 3 && a != 4){
System.out.println("输入的选项错误,请重新输入:");
int b= sc.nextInt();
//替换
a=b;
//在这里是为了防止有错误数据,只要输入的不是1~4,就会报错,重新输入,新输入的值会代替a.
}
在这里当用户选择第一个选项的时候,就会输出这个收支明细表。因为String类型空值时会输出null,多以只有有数据是才会进行输出。
switch (a) {
case 1:
System.out.println("---------------收支明细记录表-------------------");
System.out.println("收支\t\t账户总金额\t\t收支金额\t\t说 明");
for (int j = 0; j < arr.length; j++) {
if (arr[j][0] != null) {
System.out.println(arr[j][0] + "\t\t " + arr[j][1] + "\t\t\t " + arr[j][2] + "\t\t " + arr[j][3]);
}
}
System.out.println("-----------------------------------------------\n");
break;
当用户选择第二个选项时,接受收入说明,收入金额,将收入的金额和本金相加,在这里赋值给总金额。因为定义的收入金额和本金为int类型所以这里强转。
case 2:
System.out.println("请输入本次收入的说明:");
String shou = sc.next();
System.out.println("请输入本次收入的金额:");
int num = sc.nextInt();
arr[count][0] = "收入";
ben += num;
arr[count][1] = String.valueOf(ben);
arr[count][2] = String.valueOf(num);
arr[count][3] = shou;
count++;
System.out.println("添加成功!");
break;
在这里和第二个选项相同,就是在总金额中减去支出金额。
case 3:
System.out.println("请输入本次支出的说明:");
String zhi = sc.next();
System.out.println("请输入本次支出的金额:");
int nu = sc.nextInt();
arr[count][0] = "支出";
ben -= nu;
arr[count][1] = String.valueOf(ben);
arr[count][2] = String.valueOf(nu);
arr[count][3] = zhi;
count++;
System.out.println("添加成功!");
break;
最后在这里就是编写退出程序了,return是结束当前所有程序,而break是跳出当前循环。
case 4:
System.out.println("是否退出?退出填1否则2");
int tui = sc.nextInt();
if(tui == 1) {
System.out.println("退出成功!");
return;
}else{
break;
}