前言
大二学习过Java后来学习了python就一直在用python,最近考虑到就业性重新捡起来,这个小项目是第一个小练手,100行代码很简单,很适合新手练习,也没有图形化界面,仅供参考!
项目介绍
家庭收支明细的主要功能为记账,记录详细的账单,收入与支出,只有四个功能——收支详细,收入,支出,退出系统。
功能实现
(1)初始化设定账户余额
(2)收入记录
(3)支出记录
(4)详细账单
(5)退出系统
附上源码
菜单类
package studyproject;
public class FamilyAccount {
public static void main(String[] args) {
int balance = 0;
String details="";
while(true) {
System.out.print("-----------家庭记账账单-------\n");
System.out.print(" 1.初始化账单 -------\n");
System.out.print(" 2.登记收入 -------\n");
System.out.print(" 3.登记支出 -------\n");
System.out.print(" 4.收支明细 -------\n");
System.out.print(" 5.退 出 -------\n");
System.out.print(" 请选择(1-5)");
char MenuSelection=Utility.readMenuSelection();
switch(MenuSelection) {
case '1':
System.out.print(" 1.初始化账单 -------\n");
System.out.print("请输入初始账户余额:");
balance=Utility.readNumber();
System.out.println("初始化成功!");
break;
case '2':
System.out.print(" 2.登记收入 -------\n");
System.out.print("本次收入金额:");
int incomeMoney=Utility.readNumber();
System.out.println("本次收入说明:");
String incomeInfo =Utility.readString();
System.out.println("---------- -登记完成---------");
balance+=incomeMoney;
details+=("收入\t\t"+balance+"\t\t"+incomeMoney+"\t\t"+incomeInfo+"\n");
break;
case '3':
System.out.print(" 3.登记支出 -------\n");
System.out.print("本次支出金额:");
int payMoney=Utility.readNumber();
if (payMoney>balance) {
System.out.print("余额不足,请重新输入:");
payMoney=Utility.readNumber();
}else {
System.out.println("本次支出说明:");
String payInfo =Utility.readString();
System.out.println("---------- -登记完成---------");
balance-=payMoney;
details+=("支出\t\t"+balance+"\t\t"+payMoney+"\t\t"+payInfo+"\n");
}
break;
case '4':
System.out.print(" 1.收支明细 -------\n");
System.out.println("-----------当前收支明细----------");
System.out.println("收支\t\t账户金额\t\t收支金额\t\t说 明");
System.out.println(details);
System.out.println("--------------------------------");
break;
case '5':
System.out.print(" 5.退 出 -------\n");
System.out.print("请确认是否退出('y'/'n')");
char isExit=Utility.readConfirmSelsetion();
if(isExit=='y' || isExit=='Y') {
System.exit(0);
}else {
continue;
}
}
}
}
}
功能类
package studyproject;
import java.util.Scanner;
//封装的类 供其他类调用使用
public class Utility {
private static Scanner scanner=new Scanner(System.in);
//用于菜单类中读取用户输入的需求
public static char readMenuSelection() {
char c;
for (;;) {
String str;
str=scanner.next();
c=str.charAt(0);
if (c!='1' && c!='2' && c!='3' && c!='4' &&c!='5') {
System.out.print("输入有误,请重新输入!");
}else break;
}
return c;
}
//用于收入和支出类中收入与支出类的数量
public static int readNumber() {
int number;
for (;;) {
String str=scanner.next();
try {
number=Integer.parseInt(str);
break;
}catch(NumberFormatException e) {
System.out.println("数字输入有误,请重新输入!");
}
}
return number;
}
//
public static String readString() {
String str=scanner.next();
return str;
}
//从键盘读取确认选择
public static char readConfirmSelsetion() {
char c;
for (;;) {
String str=scanner.next();
c=str.charAt(0);
if (c=='y' || c=='n' || c=='Y' || c=='N') {
break;
}else {
System.out.print("选择错误,请从新输入");
}
}
return c;
}
public static void main(String[] args) {
}
}
结束语
感谢大佬们点看,后续还会出优化版,继续更新。