本文主要是介绍JAVA实现收支记账项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
初学java两周,现在实现一个基于文本的家庭记账系统。适合初学者
目 标
- 模拟实现一个基于文本界面的《家庭记账软件》
- 掌握初步的编程技巧和调试技巧
- 灵活运用基础知识
需求说明
- 该软件能够记录家庭的收入、支出,并能够打印收支明细表
- 查询收支明细(模块1)时,
将显示所有的收入、支出名细列表 - 每次登记收入(模块2)后,
收入的金额应累加到基本金上,并记录本次收入明细,
以便后续的查询。。 - 每次登记支出(模块3)后,
支出的金额应从基本金中扣除,并记
录本次支出明细,以便后续的查询。 - 退出模块(模块4)
运用return结束循环。 - 家庭起始的生活基本金为用户输入
注意事项
- 输入有可能输入金额的时候输错,输成字符串类型,会导致整个项目直接报错,不友好,需要克服此问题。
- 项目输入收支条数需要多条,注意上限定义大一点。
项目流程
流程图、
模拟实现基于文本界面的《家庭记账软件》
项目采用分级菜单方式。
用户定义定义初始家庭的金额
System.out.println("小金库里面还有多少钱?");int principal=sc.nextInt();//principal本金
主菜单如下:
相关代码:
private static void use() {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):");}
模块1----收支明细
初始为空的,要过滤掉空行,不如会直接输出全部的空行。
输入的时候也要注意输入是否为数值。不然会报红,基于此写入一个判断方法
public static int readMenuSelection() {char c;for (; ; ) {//死循环,不对就一直输入String str = readKeyBoard(1);//readKeyBoard(1)为后续定义的一个输入方法,判断输入字符是否符合条件c = str.charAt(0);if (c != '1' && c != '2' && c != '3' && c != '4') {System.out.print("选择错误,请重新输入:");} else break;}int n;//定义一个整数n = (char)c;//强制类型转化return n-48;//n=c,c的Ascll码为49 转化为10进制1。返回n-48}
行数也要设置高一点,已免出现BUG。
运用for循环遍历输出
for (int j = 0; j <arr.length ; j++) {if (arr[j][0]!=null){System.out.println(arr[j][0]+"\t\t"+arr[j][1]+"\t\t\t"+arr[j][2]+"\t\t\t"+arr[j][3]);}}
模块2-----收入登记
在用户输入有可能输入金额的时候输错,输成字符串类型,会导致整个项目直接报错,结束项目,导致前面记录直接全部消失,客服此问题我们就写入方法readKeyBoard(int limit)
private static String readKeyBoard(int limit) {String line = "";Scanner scanner = new Scanner(System.in);scanner.hasNext(
这篇关于JAVA实现收支记账项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!