基于Java的家庭收支明细小项目

前言

大二学习过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) {
		
	}
}

结束语

感谢大佬们点看,后续还会出优化版,继续更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值