- 设计一个 家庭收支记账软件
- 需求说明
- 模拟实现基于文本界面的《家庭记账软件》
- 该软件能够记录家庭的收入、支出,并能够打印收支明细表。
- 项目采用分级菜单方式。主菜单如下:
分析
- 需要使用Scanner输入语句,if-else判断语句,while、for循环;
- 使用ArraysList容器来存储支出或收入的说明和金额;
代码实现
目录
分析
代码实现
运行结果
package hw;
import java.util.ArrayList;
import java.util.List;
public class FamilyAccount {
private int sum;
private List sout = new ArrayList();
private List sin = new ArrayList();
private List iout = new ArrayList();
private List iin = new ArrayList();
public FamilyAccount() {
this.sum=10000;//默认基本金
}
public void PrintMainMenu(){//打印主菜单
System.out.println("-------------家庭收支记账软件---------------");
System.out.println(" 1.收支明细");
System.out.println(" 2.登记收入");
System.out.println(" 3.登记支出");
System.out.println(" 4.查询本基金");
System.out.println(" 5.退 出");
System.out.println("-----------------------------------------");
}
public void DetailOfIncomeAndExpenditure(){//收支明细
for(int i=0;i
package hw;
import java.util.Scanner;
public class hw5 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
FamilyAccount fa = new FamilyAccount();
System.out.println("欢迎来到家庭收支记账软件");
System.out.println("按任意键进入主菜单");
scan.nextInt();
fa.PrintMainMenu();
over: while (true) {
System.out.print("请选择(1-5):");
switch (scan.nextInt()) {
case 1:
fa.DetailOfIncomeAndExpenditure();
fa.GetGrossIncome();
break;
case 2:
while(true) {
System.out.print("本次收入金额:");
int income = scan.nextInt();
System.out.print("本次收入说明:");
String iexplain = scan.next();
fa.input(income, iexplain);
if(scan.nextInt()==1) break;
}
break;
case 3:
while(true) {
System.out.print("本次支出金额:");
int expend = scan.nextInt();
System.out.print("本次支出说明:");
String oexplain = scan.next();
fa.expend(expend, oexplain);
if(scan.nextInt()==1) break;
}
break;
case 4:
fa.GetGrossIncome();
System.out.print("按任意键返回主菜单:");
scan.nextInt();
fa.PrintMainMenu();
break;
case 5:
break over;//直接结束while外循环
}
}
System.out.println("已退出!");
}
}
运行结果



