Java之家庭收支记账系统
目录
一、思维导图
二、主程序(FamilyAccount)
1.系统首页显示
代码如下(示例):
System.out.println("\n-----------------家庭收支记账软件-----------------\n");
System.out.println(" 1 收支明细");
System.out.println(" 2 登记收入");
System.out.println(" 3 登记支出");
System.out.println(" 4 退 出\n");
System.out.print(" 请选择(1-4):");
2.收支明细
代码如下(示例):
System.out.println("-----------------当前收支明细记录-----------------");
System.out.println(details);
System.out.println("--------------------------------------------------");
3.登记收入及明细
代码如下(示例):
System.out.print("请输入本次收入金额:");
int addMoney=Utility.readNumber();
System.out.print("请输入本次收入说明:");
String desc=Utility.readString();
balance+=addMoney;
details+="收入\t" + balance + "\t\t" +addMoney + "\t\t" + desc + "\n";
System.out.println("---------------------登记完成---------------------");
4.登记支出及明细
代码如下(示例):
System.out.print("请输入本次支出金额:");
int outMoney=Utility.readNumber();
System.out.print("请输入本次支出说明:");
String desc1=Utility.readString();
if(balance>=outMoney) {
balance-=outMoney;
details+="支出\t" + balance + "\t\t" +outMoney + "\t\t" + desc1 + "\n";
}else {
System.out.println("支出超出账户额度,支付失败");
}
System.out.println("---------------------登记完成---------------------");
5.退出
代码如下(示例):
System.out.print("确认是否退出(Y/N):");
char isExit=Utility.readConfirmSelection();
if (isExit == 'Y') {
Flag=false;
}
二、工具类(Utility)
1.界面菜单的选择
代码如下(示例):
for(;;){
String str=readKeyBoard(1);
c=str.charAt(0);
if(c != '1' && c != '2' && c != '3' && c != '4'){
System.out.println("输入错误,请重新输入!");
}else break;
}
2.控制长度
代码如下(示例):
while (scanner.hasNext()){
line=scanner.nextLine();
if(line.length()<0||line.length()>limit){
System.out.println("输入长度(不大于" + limit + ")错误,请重新输入:");
//跳过本次循环
continue;
}
//通过break来结束循环
break;
}
3.收入支出金额的输入
代码如下(示例):
for(;;){
String str=readKeyBoard(4);
try {
//通过Integer类实现String类型转换为int类型
n=Integer.parseInt(str);
break;
}catch (NumberFormatException e){
System.out.println("数字输入错误,请重新输入:");
}
}
4.收入支出说明的输入
代码如下(示例):
public static String readString(){
String info;
info=readKeyBoard(8);
return info;
}
5.退出
代码如下(示例):
for(;;){
String str=readKeyBoard(1).toUpperCase();
c=str.charAt(0);
if(c=='Y'||c=='N'){
break;
}else {
System.out.println("选择错误,请重新输入:");
}
}
三、测试
1.主界面
2.收支明细
3.登记收入
4.登记支出
5.退出
四、总结
本项目只是一个简单的家庭收支记账系统,没有那么多复杂的操作,界面UI也不是很完美,没有数据库的操作,在接下来的学习中会不断更新完善。