需求分析
要求:该软件能够记录家庭的收入、支出,并能够打印收支明细表。

1.主界面示例

--------家庭收支记账软件--------

1 收支明细
2 登记收入
3 登记支出
4 退出

2.不同模块功能

(1)主界面——输入选项——判断选项,进行不同功能块

--------家庭收支记账软件--------

1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):

(2)收支明细展示界面——向用户展示已有的记录

--------家庭收支记账软件--------
1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):1
--------收入明细表--------
收支        账户总金额    收支金额        说明

(3)登记收入/登记支出界面——接收用户输入计算总计并添加数据记录

--------家庭收支记账软件--------
1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):2
请输入本次收入的说明:
搬砖
请输入本次收入的金额:
500
添加成功!
--------家庭收支记账软件--------
1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):1
--------收入明细表--------
收支        账户总金额    收支金额        说明
收入        10500        +500        搬砖
--------家庭收支记账软件--------
1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):3
请输入本次支出的说明:
吃烧烤
请输入本次支出的金额:
1000
添加成功!
--------家庭收支记账软件--------
1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):1
--------收入明细表--------
收支        账户总金额    收支金额        说明
收入        10500        +500        搬砖
支出        9500        -1000        吃烧烤

(4)退出界面——用于退出程序

--------家庭支记账软件--------

1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):4
退出成功!

3.实现该软件需要用到的方法(仅供参考)
1.定义一个main方法

(1)用输出语句完成主界面的编写

(2)用Scanner实现键盘录入数据

(3)用switch语句完成操作的选择

(4)用while(ture)死循环,完成后再次回到主界面

(5)完成操作的选择时,可以直接调用已经定义好的方法。[收支明细(detail),登记收入(registeredIncome),登记支出(expenditure)]

public static void main(String[] args) {//创建对象,用Scanner实现键盘录入数据Scanner sc = new Scanner(System.in);//接收数据String[] arr = new String[10];//定义账户初始金额int [] brr= {10000};int count = 0;//使用while死循环语句,完成后再次回到主界面while (true){//用输出语句完成主界面的编写System.out.println("--------家庭收支记账软件--------");System.out.println("1 收支明细");System.out.println("2 登记收入");System.out.println("3 登记支出");System.out.println("4 退出");System.out.print("请选择(1-4):");//判断是否选择了主界面已有的选项int num = sc.nextInt();if (num > 4 || num < 1) {System.out.println("请输入正确数字");} else {//用switch语句完成操作的选择switch (num) {case 1://显示表头信息//\t其实就是tab键的位置System.out.println("--------收入明细表--------");System.out.println("收支\t\t账户总金额\t收支金额\t\t说明");//直接调用已经定义好的方法。[收支明细(detail)]detail(arr);break;case 2://直接调用已经定义好的方法。[登记收入(registeredIncome)]arr[count] = registeredIncome(brr);count++;break;case 3://直接调用已经定义好的方法。[登记支出(expenditure)]arr[count] = expenditure(brr);count++;break;}if(num==4){System.out.println("退出成功!");break;}}}}

2.定义一个方法,用于查看收支明细

public static  void detail(String[]arr){for (int i = 0; i < arr.length; i++) {if (arr[i] != null){System.out.println(arr[i]);}}}

3.定义一个方法,用于登记收入

public static String registeredIncome(int []brr){//键盘录入信息,显示提示信息,提示要输入何种信息Scanner sc = new Scanner(System.in);System.out.println("请输入本次收入的说明:");String where = sc.nextLine();System.out.println("请输入本次收入的金额:");int quantity = sc.nextInt();System.out.println("添加成功!");brr[0] += quantity;String a =  "收入" + "\t\t" + brr[0]+"\t\t+"+quantity + "\t\t" + where;return a;}

4.定义一个方法,用于登记支出

public static String expenditure( int []brr) {//键盘录入信息,显示提示信息,提示要输入何种信息Scanner sc = new Scanner(System.in);System.out.println("请输入本次支出的说明:");String where = sc.nextLine();System.out.println("请输入本次支出的金额:");int quantity = sc.nextInt();System.out.println("添加成功!");brr[0]-=quantity;String a = "支出" + "\t\t" + brr[0]+"\t\t-"+quantity + "\t\t" + where;return a;}

4.总结编辑代码的感受

(1)在代码编写时加上自己的注释,方便自己与他人理解代码

(2)将不同功能块打包成方法能够减少代码量,提高编程效率

(3)在代码编程过程中,尽可能考虑到用户的体验感,注意细节(例如:在合适的位置使用\t)。

Java基础项目:家庭记录收支程序相关推荐

  1. 基础项目-家庭记录收支程序

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.目标 二.分析 二维数组 三.实现 try catch 错误处理 一.目标 模拟实现一个基于文本界面的<家庭记账软 ...

  2. 基本项目_家庭记录收支程序

    目的: 01.模拟实现一个基于文本界面的<家庭记账软件> 02.掌握初步的编程技巧和调试技巧 03.灵活运用基础知识 !!最后附代码 需求说明: 该软件能够记录家庭的收入.支出,并能够打印 ...

  3. 项目一(基础)家庭记录收支记账软件

    1.项目功能简介 该项目采用分级菜单方式,显示功能选择以及使用. 由收支明细,登记收入,登记支出,退出四个功能进行设计. 收支明细:查询收支明细( 菜单1)时, 将显示所有的收入.支出名细列表 登记收 ...

  4. JAVA——家庭记录收支程序

    程序需求 模拟实现一个基于文本界面的<家庭记账软件> 该软件能够记录家庭的收入.支出,并能够打印收支明细表 -----------------家庭收支记账软件--------------- ...

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

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

  6. Java基础项目——客户信息管理软件

    目录 前言 本项目目标 一.需求及软件设计结构说明 1.需求说明 1)主菜单 2)添加客户 3)修改客户 4)删除客户 5)客户列表 2.软件设计结构 1)Customer类的设计 2)Custome ...

  7. java基础项目-抽奖机-模拟双色球-大乐透

    java基础项目-抽奖机-模拟双色球-大乐透: 创建了很多的方法逐个编译的,做的很新手 不足之处希望多多交流.谢谢. 需求分析: 欢迎界面 欢迎使用超级幸运抽奖机 选彩种(1.双色球:2.超级大乐透) ...

  8. Java基础项目——基于文本家庭简易收支记账程序

    一.目标 1.模拟实现一个基于文本的家庭简易收支记账程序 2.掌握初步的编程技巧和调试程序 3.灵活使用基础知识 二.项目需求 模拟实现一个基于文本界面(程序控制台)的<家庭收支记录程序> ...

  9. 基于Java基础的家庭收支记账软件

    文章目录 前言 一.前期准备 二.整体功能 三.功能模块 四.功能浅谈 1. AccountInfo 类 2.收支明细 3.登记收入/支出 4. 查询账单 五.收获 六.总结 前言 学习完Java基础 ...

最新文章

  1. html怎样添加日历控件,向日历控件中添加自定义内容
  2. oracle ORA-14452错误处理
  3. 树莓派AI视觉云台——8、WiringPi库函数
  4. 51nod 1258 序列求和 V4
  5. mysql运维机制_《MySQL运维内参》节选 | InnoDB日志管理机制(一)
  6. sql按时间取去重最近_Sqlserver如何单独对某列去重
  7. NLP基础—2.文本预处理
  8. leapmotion 控制面板的启动
  9. 基于微信小程序的物流仓储系统
  10. 【安卓开发 身份录入系统 APP】
  11. 创新Sound Blaster Tactic3D Alpha耳机驱动v1.0官方版
  12. mysql dbms是什么_数据库管理系统(DBMS)是用来做什么的?
  13. 电磁兼容工程(Electromagnetic compatibility engineering Herry Ott )读书笔记-- 章11 数字电路电源分布
  14. Zephyr 3.2 弃用devicetree 中node 里的label property
  15. (java版)删除重复值阿伟学长在开发一款游戏, 他希望玩家已经获得的道具会降低爆率, 避免玩家获得太多重复的道具但玩家背包中道具是乱序且不确定的, 为了减小判断的运算量, 需要先对数据进行去重.
  16. 多层快速多极子源代码
  17. vue3 中使用腾讯地图
  18. 永不停息地向前奔跑/工作
  19. php平台cdn搭建,国内免费CDN LayerLocalCDN下载 下载轻巧的PHPCDN程序搭建免费CDN
  20. Apriori算法(矩阵)

热门文章

  1. 张小龙演讲干货:微信的未来在哪?这里有7个答案
  2. 实践:腾讯云IM搭建应用内类微信社交聊天模块
  3. DappNode Host:打破普通人接触PHA的壁垒
  4. 射箭走进陆家嘴,学校、社区、商圈全覆盖!
  5. swit - 毛玻璃效果
  6. mysql自动补充缺失日期
  7. 科普向:数字货币期货的玩法规则了解一下
  8. Qt——QLineEdit使用总结
  9. transformer 各个部分主要内容
  10. mysql longtext 默认_mysql+longtext+默认值