package com.atguigu.project;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Domain {
//基本金
int balance = 10000;
//收支明细
String details = "时间ttt收支情况tt收支金额tt账户余额tt说 明n";
//记录登记时间
LocalDateTime localDateTime;
public void showMainMenu(){//显示菜单
System.out.println("-----------------家庭收支记账软件-----------------");
System.out.println();
System.out.println("1.收支明细");
System.out.println("2.登记收入");
System.out.println("3.登记支出");
System.out.println("4.直接退出");
System.out.println();
}
{
boolean flag = true; //判断是否结束循环,即退出菜单
while(flag){
showMainMenu();
//用户选择
System.out.print("请选择(1-4):");
char c = Utility.readMenuSelection(); //读取用户从键盘输入的数字:(1 - 4)
switch(c){
case '1':
System.out.println("--------------------当前收支明细记录--------------------");
System.out.println(details);
System.out.println("-----------------------------------------------------");
System.out.println();
System.out.println();
break;
case '2':
boolean isKeep = true;
while(isKeep){
System.out.print("本次收入金额:");
int inputAmount = Utility.readNumber(); //读取用户输入的金额
System.out.print("本次收入说明:");
String forUse = Utility.readString(); //读取用户输入的说明
balance += inputAmount; //基本金增加
//获取当前时间
localDateTime = LocalDateTime.now();
//时间格式化为时分秒
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm:ss");
String format = formatter.format(localDateTime); //转换为当前时间的字符串
//显示添加收入明细记录
details += format + "t" + "收入ttt" + inputAmount + "ttt" + balance + "tt" + forUse + 'n';
System.out.println("登记成功");
//判断是否继续操作
System.out.print("是否继续登记?(Y/N):");
char isContinue = Utility.readConfirmSelection();
if(isContinue == 'Y'){
continue;//继续登记
}else{
isKeep = false;
}
}
System.out.println();
System.out.println();
break;
case '3':
boolean isKeep2 = true;
while(isKeep2){
System.out.print("本次支出金额:");
int inputAmount = Utility.readNumber(); //读取用户输入的金额
System.out.print("本次支出说明:");
String forUse = Utility.readString(); //读取用户输入的说明
balance -= inputAmount; //基本金减去
//获取当前时间
localDateTime = LocalDateTime.now();
//时间格式化为时分秒
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm:ss");
String format = formatter.format(localDateTime); //转换为当前时间的字符串
//显示添加支出明细记录
details += format + "t" + "支出ttt" + inputAmount + "ttt" + balance + "tt" + forUse + 'n';
System.out.println("登记成功");
//判断是否继续操作
System.out.print("是否继续登记?(Y/N):");
char isContinue = Utility.readConfirmSelection();
if(isContinue == 'Y'){
continue;//继续登记
}else{
isKeep2 = false;
}
}
System.out.println();
System.out.println();
break;
case '4':
System.out.print("确认是否退出(Y/N):");
char isExit = Utility.readConfirmSelection(); //获取用户输入:(Y/N)
if(isExit == 'Y'){
flag = false; //结束循环
System.out.println("已退出!");
}
break;
}
}
}
public static void main(String[] args) {
Domain domain = new Domain(); //开始
}
}
控制台运行效果图如下:



