Java家庭记账软件

目标

•模拟实现一个基于文本界面的《家庭记账软件》
•掌握初步的编程技巧和调试技巧
•主要涉及以下知识点:
-局部变量和基本数据类型
-循环语句
-分支语句
-方法调用和返回值的接收
-简单的屏幕输出格式控制

需求说明

•模拟实现基于文本界面的《家庭记账软件》。
•该软件能够记录家庭的收入、支出,并能够打印收支明细表。
•项目采用分级菜单方式。主菜单如下:
-----------------家庭收支记账软件-----------------
1收支明细
2登记收入
3登记支出
4退 出
请选择(1-4):_

•假设家庭起始的生活基本金为10000元。
•每次登记收入(菜单2)后,收入的金额应累加到基本金上,并记
录本次收入明细,以便后续的查询。
•每次登记支出(菜单3)后,支出的金额应从基本金中扣除,并记
录本次支出明细,以便后续的查询。
•查询收支明细( 菜单1)时,将显示所有的收入、支出名细列表

•“登记收入”的界面及操作过程如下所示:
-----------------家庭收支记账软件-----------------
1收支明细
2登记收入
3登记支出
4退 出
请选择(1-4):2
本次收入金额:1000 本次收入说明:劳务费_

•“登记支出”的界面及操作过程如下所示:
-----------------家庭收支记账软件-----------------
1收支明细
2登记收入
3登记支出
4退 出
请选择(1-4):3
本次支出金额:800
本次支出说明:物业费_

•“收支明细”的界面及操作过程如下所示:
-----------------家庭收支记账软件-----------------
1收支明细
2登记收入
3登记支出
4退 出
请选择(1-4):1
-----------------当前收支明细记录-----------------

•“退 出”的界面及操作过程如下所示:
-----------------家庭收支记账软件-----------------
1收支明细
2登记收入
3登记支出
4退 出
请选择(1-4):4 确认是否退出(Y/N):_

流程图(活动图) — 主流程

流程图(活动图) — 收入和支出处理流程

主代码部分

package familyaccount;
import java.util.Scanner;
public class FamilyAccount {public static void main(String[] args) {menu();}public static void menu(){int balance = 10000;String details = "收支\t账户金额\t收支金额\t说    明\n";while(true){System.out.println("-----------------家庭收支记账软件-----------------");System.out.println("\t\t1 收支明细");System.out.println("\t\t2 登记收入");System.out.println("\t\t3 登记支出");System.out.println("\t\t4 退    出");System.out.print("请选择(1-4):");char select  = Utility.readMenuSelection();switch(select){case '1'://打印收支明细System.out.println("-----------------当前收支明细记录-----------------");System.out.println(details);System.out.println("--------------------------------------------------");break;case '2'://登记收入功能的实现System.out.print("本次收入金额:");int money = Utility.readNumber();System.out.print("本次收入的说明:");String description = Utility.readString();balance +=money;//details +=本次收入的明细//收支\t账户金额\t收支金额\t说    明\ndetails += "收入"+"\t"+balance+"\t"+money+"\t"+ description+"\n";break;case '3'://登记支出功能的实现System.out.print("本次支出金额:");int spend = Utility.readNumber();System.out.print("本次支出的说明:");String description2 = Utility.readString();balance -=spend;//details +=本次收入的明细//收支\t账户金额\t收支金额\t说    明\ndetails += "支出"+"\t"+balance+"\t"+spend+"\t"+ description2+"\n";break;case '4':System.out.print("确认是否退出(Y/N):");char confirm = Utility.readConfirmSelection();if(confirm == 'Y'){return ;}break;}}}
}

工具类

package familyaccount;import java.util.*;
public class Utility {private static Scanner scanner = new Scanner(System.in);public static char readMenuSelection() {char c;for (; ; ) {String str = readKeyBoard(1);c = str.charAt(0);if (c != '1' && c != '2' && c != '3' && c != '4') {System.out.print("选择错误,请重新输入:");} else break;}return c;}public static int readNumber() {int n;for (; ; ) {String str = readKeyBoard(4);try {n = Integer.parseInt(str);break;} catch (NumberFormatException e) {System.out.print("数字输入错误,请重新输入:");}}return n;}public static String readString() {//String str = readKeyBoard(8);Scanner input=new Scanner(System.in);String str=input.next();//输入中文字符串return str;}public static char readConfirmSelection() {char c;for (; ; ) {String str = readKeyBoard(1).toUpperCase();c = str.charAt(0);if (c == 'Y' || c == 'N') {break;} else {System.out.print("选择错误,请重新输入:");}}return c;}private static String readKeyBoard(int limit) {String line = "";while (scanner.hasNext()) {line = scanner.nextLine();if (line.length() < 1 || line.length() > limit) {System.out.print("输入长度(不大于" + limit + ")错误,请重新输入:");continue;}break;}return line;}
}

执行效果



Java小项目——家庭记账软件相关推荐

  1. java小项目家庭记账程序

    文章目录 java小项目家庭记账程序 **1.项目目标:** 2.项目需求: 3.具体思路: 4.具体代码: 1.页面: 2.Option_1类: 3.Option_2类: 4.Option_3类: ...

  2. Java小项目——家庭记账项目

    学习Java已经过了半个月左右了,所学的知识已经能够写一些小程序或者小项目,虽然它可能没有那么高级,但是也能检验你之前所学的全部内容.所以今天就与大家分享一下我的小项目经验. 一.需求说明 该软件能够 ...

  3. Java 编写一个家庭记账软件 -25天 学习笔记

    练习 package com.xin.base; import java.util.Scanner;public class Part {public static void main (String ...

  4. Java项目----家庭记账软件(基于文本界面)

    一.涉及要点: ①变量的定义 ②基本数据类的使用 ③循环语句 ④分支语句 ⑤方法声明.调用和返回值的接收 ⑥简单屏幕输出格式控制 二.需求说明 ①能够记录家庭的收入.支出,并能够打印收支明细表 ②采用 ...

  5. 小项目——家庭收支软件(1)

    简单冗杂代码篇: #include<stdio.h> #include<stdlib.h> #include<string.h> int main(){char k ...

  6. Java小项目—客户信息管理软件(二)

    CustomerView类的设计 CustomerView为主模块,负责菜单的显示和处理用户操作. 本类封装以下信息: 创建最大包含10个客户对象的CustomerList对象,供以下各成员方法使用. ...

  7. JAVA毕设项目家庭记账系统(java+VUE+Mybatis+Maven+Mysql)

    项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  8. Java写家庭记账软件

    java 家庭记账软件 Miraitowa 本内容介绍的是有关java制作一个家庭记账软件的相关知识.但是由于我也是初学,所以希望大家多多指教. 以下就是我们这次的题: 需求说明 •模拟实现基于文本界 ...

  9. 我的第一个Java项目实训--家庭记账软件!

    这是我刚学完流程控制的时候照着敲得一个小项目! class familyAccount{public static void main(String[] args){boolean isFlag=tr ...

  10. Java项目之家庭记账软件

    项目要求 要求实现一个基于文本界面的记账软件,模拟实现一个基于文本界面的<家庭记账软件>,掌握初步的编程技巧和调试技巧. 主要涉及以下知识点: - 局部变量和基本数据类型 - 循环语句 - ...

最新文章

  1. LinkedHashMap源码分析
  2. Access restriction: The type Unsafe is not accessible due to restriction on required library
  3. C#——语言基础 之 运算符!
  4. 在 Lotus Notes 中设置邮件定时发送的方法及代理功能介绍
  5. VS2019中配置opencv4.3.0(亲测有效)
  6. 2019年四月计算机语言排名,2019编程语言排行榜_编程语言排行榜2019年4月 TIOBE编程语言排行榜2019年最...
  7. Linux_Shell符号及各种解释对照表
  8. node.js安装以及git 的使用说明
  9. 【原创】flv文件的三种下载方法
  10. Agv、Rgv 车辆控制调度系统开发第七篇-选车算法
  11. 海康威视摄像头的多通道rtsp地址格式
  12. 科研日常中,有用的拼图软件
  13. IDEA编辑页面html jsp js java无法即时生效
  14. 《第六堂棒球课》:MLB棒球创造营·棒球名人堂
  15. 【Vue知识点- No7.】路由、vant组件库的使用
  16. ioswebview混编_iOS 原生和H5混合开发总结
  17. 工业RFID低频读卡器|AGV车载地标识读器L8820配套标签与配件选型注意事项
  18. 【职业】致迷茫的大学生们
  19. 全球及中国视频会议系统市场应用状况与趋势展望分析报告2022版
  20. Java中枚举类型Enum的一种使用方式

热门文章

  1. 理论力学---约束及其分类
  2. 设计模式——代理模式详解(Java版)
  3. python爬虫自动更换ip_python爬虫:自动投票代码(自动爬取代理IP)
  4. Go中的SSRF攻防战
  5. 啥是甘特图?用思维导图制作甘特图的方法
  6. 快速了解微信小程序的使用,一个根据小程序的框架开发的 todos app
  7. 前端学习——静态网页制作
  8. java 全局快捷键_java全局快捷键--jintellitype
  9. MMO手游地图同步方案总结
  10. 服务器主机自建的私有云盘,360路由器搭建私有云主机(360路由器加硬盘自建nas)...