Java小项目——家庭记账软件
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小项目——家庭记账软件相关推荐
- java小项目家庭记账程序
文章目录 java小项目家庭记账程序 **1.项目目标:** 2.项目需求: 3.具体思路: 4.具体代码: 1.页面: 2.Option_1类: 3.Option_2类: 4.Option_3类: ...
- Java小项目——家庭记账项目
学习Java已经过了半个月左右了,所学的知识已经能够写一些小程序或者小项目,虽然它可能没有那么高级,但是也能检验你之前所学的全部内容.所以今天就与大家分享一下我的小项目经验. 一.需求说明 该软件能够 ...
- Java 编写一个家庭记账软件 -25天 学习笔记
练习 package com.xin.base; import java.util.Scanner;public class Part {public static void main (String ...
- Java项目----家庭记账软件(基于文本界面)
一.涉及要点: ①变量的定义 ②基本数据类的使用 ③循环语句 ④分支语句 ⑤方法声明.调用和返回值的接收 ⑥简单屏幕输出格式控制 二.需求说明 ①能够记录家庭的收入.支出,并能够打印收支明细表 ②采用 ...
- 小项目——家庭收支软件(1)
简单冗杂代码篇: #include<stdio.h> #include<stdlib.h> #include<string.h> int main(){char k ...
- Java小项目—客户信息管理软件(二)
CustomerView类的设计 CustomerView为主模块,负责菜单的显示和处理用户操作. 本类封装以下信息: 创建最大包含10个客户对象的CustomerList对象,供以下各成员方法使用. ...
- JAVA毕设项目家庭记账系统(java+VUE+Mybatis+Maven+Mysql)
项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- Java写家庭记账软件
java 家庭记账软件 Miraitowa 本内容介绍的是有关java制作一个家庭记账软件的相关知识.但是由于我也是初学,所以希望大家多多指教. 以下就是我们这次的题: 需求说明 •模拟实现基于文本界 ...
- 我的第一个Java项目实训--家庭记账软件!
这是我刚学完流程控制的时候照着敲得一个小项目! class familyAccount{public static void main(String[] args){boolean isFlag=tr ...
- Java项目之家庭记账软件
项目要求 要求实现一个基于文本界面的记账软件,模拟实现一个基于文本界面的<家庭记账软件>,掌握初步的编程技巧和调试技巧. 主要涉及以下知识点: - 局部变量和基本数据类型 - 循环语句 - ...
最新文章
- LinkedHashMap源码分析
- Access restriction: The type Unsafe is not accessible due to restriction on required library
- C#——语言基础 之 运算符!
- 在 Lotus Notes 中设置邮件定时发送的方法及代理功能介绍
- VS2019中配置opencv4.3.0(亲测有效)
- 2019年四月计算机语言排名,2019编程语言排行榜_编程语言排行榜2019年4月 TIOBE编程语言排行榜2019年最...
- Linux_Shell符号及各种解释对照表
- node.js安装以及git 的使用说明
- 【原创】flv文件的三种下载方法
- Agv、Rgv 车辆控制调度系统开发第七篇-选车算法
- 海康威视摄像头的多通道rtsp地址格式
- 科研日常中,有用的拼图软件
- IDEA编辑页面html jsp js java无法即时生效
- 《第六堂棒球课》:MLB棒球创造营·棒球名人堂
- 【Vue知识点- No7.】路由、vant组件库的使用
- ioswebview混编_iOS 原生和H5混合开发总结
- 工业RFID低频读卡器|AGV车载地标识读器L8820配套标签与配件选型注意事项
- 【职业】致迷茫的大学生们
- 全球及中国视频会议系统市场应用状况与趋势展望分析报告2022版
- Java中枚举类型Enum的一种使用方式