一、明确需求: 该软件能够记录家庭的收入、支出,并能够打印收支明细表
项目采用分级菜单方式。主菜单如下:
-----------------家庭收支记账软件-----------------
1 收支明细
2 登记收入
3 登记支出
4 退 出 请选择(1-4):
二、思路:
1.要使用户录入的数据存储,那么就需要定义一个二维数组进行存储。
2.此界面要通过选择退出程序 才会结束运行,所以界面的展示应该写在一个死循环里面。
3.因为编写此小程序使用字符串等,我用的String类型定义二维数组。
4.需要执行的操作,用switch语句来实现。
三、 步骤:
1. 假设家庭起始的生活基本金为10000元。
2. 查询收支明细(菜单1)时,将显示所有的收入、支出名细列表。
3. 每次登记收入(菜单2)后,收入的金额应累加到基本金上,并记录本次收入明细,以便后续的查询。
4. 每次登记支出(菜单3)后,支出的金额应从基本金中扣除,并记录本次支出明细,以便后续的查询。
5. 点击退出(菜单4)后,确认该操作后即可退出程序。
四、小菜鸡的代码演示图
import java.util.Scanner;
public class familyAccount {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[][] arr = new String[10][4];
int count = 0;
int sumNum = 10000;
while (true) {
System.out.println("----------------家庭收支记账软件----------------");
System.out.println(" 1.收支明细");
System.out.println(" 2.登记收入");
System.out.println(" 3.登记支出");
System.out.println(" 4.退 出\n");
System.out.println("请选择(1-4):");
int choose = sc.nextInt();
switch (choose) {
case 1:
System.out.println("----------------收支明细----------------");
System.out.println("收支\t\t账户总金额\t收支金额\t\t说明");
for(int i=0; i<arr.length; i++) {
if(arr[i][0] != null) {
System.out.println(arr[i][0]+"\t\t"+arr[i][1]+"\t\t"+arr[i][2]+"\t\t"+arr[i][3]);
}
}
break;
case 2:
System.out.println("请输入本次收入的金额:");
int income = sc.nextInt();
System.out.println("请输入本次收入的说明:");
String explainX = sc.next();
arr[count][0] = "收入";
sumNum += income;
arr[count][1] = sumNum + "";
arr[count][2] = income + "";
arr[count][3] = explainX + "";
count++;
System.out.println("添加成功");
break;
case 3:
System.out.println("请输入本次支出的金额:");
int pay = sc.nextInt();
System.out.println("请输入本次支出的说明:");
String explainY = sc.next();
arr[count][0] = "支出";
sumNum -= pay;
arr[count][1] =sumNum + "";
arr[count][2] = pay + "";
arr[count][3] = explainY + "";
count++;
System.out.println("添加成功");
break;
case 4:
System.out.println("确认是否退出(y/n)");
String t = sc.next();
char c = t.charAt(0);
if((c == 'y' || c=='Y') && t.length()==1 ){
System.out.println("退出成功!");
return;
}else {
System.out.println("已取消退出!");
}
}
}
}
}