家庭记账程序
要求:
01.模拟实现一个基于文本界面的《家庭记账软件》
02.掌握初步的编程技巧和调试技巧
03.灵活运用基础知识
需求说明
该软件能够记录家庭的收入、支出,并能够打印收支明细表
项目采用分级菜单方式。主菜单如下:
-----------------家庭收支记账软件-----------------
1 收支明细
2 登记收入
3 登记支出
4 退 出
请选择(1-4):_
具体步骤如下:
1.假设家庭起始的生活基本金为10000元
2.每次登记收入(菜单2)后,收入的金额应累加到基本金上,并记录本次收入明细,以便后续的查询。
3.每次登记支出(菜单3)后,支出的金额应从基本金中扣除,并记录本次支出明细,以便后续的查询。
4.查询收支明细( 菜单1)时,将显示所有的收入、支出名细列表
代码
package N7;
public class FamilyAccount {
public static void main(String[] args) {
String[][] arr = new String[1][4];//不灵活的地方
int count=0;
int sumNum=10000;
while (true)
{
System.out.println("-------------------家庭收支记账软件---------------------\n");
System.out.println(" 1.收支明细");
System.out.println(" 2.登记收入");
System.out.println(" 3.登记支出");
System.out.println(" 4.退 出\n");
System.out.print("请选择(1-4):");
char c = Utility.readMenuSelection();
switch (c){
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\t" + arr[j][3]);
}
}
System.out.println("--------------------------------------------------------\n");
break;
case '2':
System.out.println("请输入本次收入的金额:");
int num = Utility.readNumber();
System.out.println("请输入本次收入的说明:");
String info = Utility.readString();
arr[count][0]="收入";
sumNum+=num;
arr[count][1]= String.valueOf(sumNum);
arr[count][2]= String.valueOf(num);
arr[count][3]=info;
count++;
if(count==arr.length){
arr=extend(arr);
}
System.out.println("添加成功!");
break;
case '3':
System.out.println("请输入本次支出的金额:");
int num1 = Utility.readNumber();
System.out.println("请输入本次支出的说明:");
String info1 = Utility.readString();
arr[count][0]="支出";
sumNum-=num1;
arr[count][1]= String.valueOf(sumNum);
arr[count][2]= String.valueOf(num1);
arr[count][3]=info1;
count++;
if(count==arr.length){
arr=extend(arr);
}
System.out.println("添加成功!");
break;
case '4':
System.out.println("确认是否退出(Y/N)?:");
char c1 = Utility.readConfirmSelection();
if (c1 == 'Y')
{
System.out.println("拜拜!退出成功!");
return;
}else {
break;
}
}
}
}
public static String[][] extend(String[][]arr){
String[][] arr1 = new String[arr.length*2][4];
for(int i = 0;i< arr.length;i++) {
for(int j =0;j<4;j++){
arr1[i][j]=arr[i][j];
}
}
return arr1;
}
}