JAVA实现收支记账项目

2023-10-31 14:40
文章标签 java 实现 项目 记账 收支

本文主要是介绍JAVA实现收支记账项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

初学java两周,现在实现一个基于文本的家庭记账系统。适合初学者

目 标

  1. 模拟实现一个基于文本界面的《家庭记账软件》
  2. 掌握初步的编程技巧和调试技巧
  3. 灵活运用基础知识

需求说明

  1. 该软件能够记录家庭的收入、支出,并能够打印收支明细表
  2. 查询收支明细(模块1)时,
    将显示所有的收入、支出名细列表
  3. 每次登记收入(模块2)后,
    收入的金额应累加到基本金上,并记录本次收入明细,
    以便后续的查询。。
  4. 每次登记支出(模块3)后,
    支出的金额应从基本金中扣除,并记
    录本次支出明细,以便后续的查询。
  5. 退出模块(模块4)
    运用return结束循环。
  6. 家庭起始的生活基本金为用户输入

注意事项

  1. 输入有可能输入金额的时候输错,输成字符串类型,会导致整个项目直接报错,不友好,需要克服此问题。
  2. 项目输入收支条数需要多条,注意上限定义大一点。

项目流程

流程图、

在这里插入图片描述
模拟实现基于文本界面的《家庭记账软件》
项目采用分级菜单方式。

用户定义定义初始家庭的金额

在这里插入图片描述

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实现收支记账项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/316066

相关文章

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都

Spring定时任务之fixedRateString的实现示例

《Spring定时任务之fixedRateString的实现示例》本文主要介绍了Spring定时任务之fixedRateString的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录从毫秒到 Duration:为何要改变?核心:Java.time.Duration.parse

Java 中 Optional 的用法及最佳实践

《Java中Optional的用法及最佳实践》在Java开发中,空指针异常(NullPointerException)是开发者最常遇到的问题之一,本篇文章将详细讲解Optional的用法、常用方... 目录前言1. 什么是 Optional?主要特性:2. Optional 的基本用法2.1 创建 Opti

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Java中实现对象的拷贝案例讲解

《Java中实现对象的拷贝案例讲解》Java对象拷贝分为浅拷贝(复制值及引用地址)和深拷贝(递归复制所有引用对象),常用方法包括Object.clone()、序列化及JSON转换,需处理循环引用问题,... 目录对象的拷贝简介浅拷贝和深拷贝浅拷贝深拷贝深拷贝和循环引用总结对象的拷贝简介对象的拷贝,把一个

Java 字符串操作之contains 和 substring 方法最佳实践与常见问题

《Java字符串操作之contains和substring方法最佳实践与常见问题》本文给大家详细介绍Java字符串操作之contains和substring方法最佳实践与常见问题,本文结合实例... 目录一、contains 方法详解1. 方法定义与语法2. 底层实现原理3. 使用示例4. 注意事项二、su

Spring Boot中获取IOC容器的多种方式

《SpringBoot中获取IOC容器的多种方式》本文主要介绍了SpringBoot中获取IOC容器的多种方式,包括直接注入、实现ApplicationContextAware接口、通过Spring... 目录1. 直接注入ApplicationContext2. 实现ApplicationContextA

详解Spring中REQUIRED事务的回滚机制详解

《详解Spring中REQUIRED事务的回滚机制详解》在Spring的事务管理中,REQUIRED是最常用也是默认的事务传播属性,本文就来详细的介绍一下Spring中REQUIRED事务的回滚机制,... 目录1. REQUIRED 的定义2. REQUIRED 下的回滚机制2.1 异常触发回滚2.2 回

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF