基于基础的Java知识实现了一个简单的记账软件。
首页如图所示,含收支明细,登记收入,登记支出和退出等功能。
选择功能进行收入的记录
选择功能进行支出的记录
最后调用账本查看
只是进行简单的记录,并没有连接数据库或写入文件进行记录,所以每次运行都会重置。
扫描二维码关注公众号,回复:
16369469 查看本文章
附上源码(含两个类文件)
文件构成如图所示,在同一个文件夹下可以直接调用类
/**
* 一个记账软件(主页面)
*/
public class LsAccount {
public static void main(String[] args) {
//初始金额
int moneyAll = 10000;
//菜单显示信息
String info = "";
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 = getIn.readMenuSelection();
switch (c){
case '1':
System.out.println("-----------当前收支明细记录----------");
System.out.println("收支\t账户金额\t收支金额\t说明");
System.out.print(info);
System.out.println("----------------------------------");
break;
case '2':
System.out.print("本次收入金额:");
int moneyIn = getIn.readNumber();
if(moneyIn>0) moneyAll+=moneyIn;
System.out.print("本次收入说明:");
String explainIn = getIn.readString();
//使用换行显示信息的分条
info += "收入\t"+moneyAll+"\t"+moneyIn+"\t\t"+explainIn+"\n";
System.out.println("-----------登记完成----------");
break;
case '3':
System.out.print("本次支出金额:");
int moneyOut = getIn.readNumber();
if(moneyOut>0) moneyAll-=moneyOut;
System.out.print("本次收入说明:");
String explainOut = getIn.readString();
info += "支出\t"+moneyAll+"\t"+moneyOut+"\t\t"+explainOut+"\n";
System.out.println("-----------登记完成----------");
break;
case '4':
System.out.print("\n确认是否退出(Y/N):");
if(getIn.readExitSelection()=='Y') return;
break;
}
}
}
}
import java.util.Locale;
import java.util.Scanner;
/**
* 各项输入
*/
public class getIn {
private static Scanner scanner = new Scanner(System.in);
//获取数据方法
private static String r() {
String line="";
line = scanner.next();
return line;
}
//获取用户菜单输入
public static char readMenuSelection(){
char c;
for(;;){
String str = r();
c = str.charAt(0);
if(c != '1' && c!='2' && c!='3' && c!='4') System.out.print("选择错误,请重新输入:");
else break;
}
return c;
}
//获取退出输入
public static char readExitSelection(){
char c;
for(;;){
String str = r().toUpperCase();
c = str.charAt(0);
if(c=='Y' || c=='N') break;
else System.out.println("选择错误,请重新输入:");
}
return c;
}
//获取金额输入
public static int readNumber() {
int n;
for(;;){
String str = r();
try{
n = Integer.parseInt(str);
break;
}catch (NumberFormatException e){
System.out.print("数字输入错误,请重新输入:");
}
}
return n;
}
//获取说明输入
public static String readString() {
String str = r();
return str;
}
}