项目需求:
模拟实现家庭收支记账功能
一、需要以下方面:
1.家庭基金
2.存储收入的数据源:数组1
3.存储支出的数据源:数组2
4.退出软件
二、实现
1.数据源:

String[] day=new String[1000];//存储支出日期
String[] explain=new String[1000];//存储支出说明
double[] cost=new double[1000];//存储支出费用
String[] day2=new String[1000];//存储收入日期
String[] explain2=new String[1000];//存储收入说明
double[] income=new double[1000];//存储收入

2.页面显示:
3.代码实现:

do{isFlag=false;System.out.println("-------------------家庭收支记账软件----------------");System.out.println("                   1.收支明细                                            ");System.out.println("                   2.登记收入                                            ");System.out.println("                   3.登记支出                                            ");System.out.println("                   4.退       出                                            ");System.out.println("                   请选择(1-4):请按任意键继续...   ");z=scan.nextInt();if(z<1||z>4){System.out.println("输入错误编码,请重新输入!");isFlag=true;}
}while(isFlag);

代码说明
之所以用do…while()循环结构,是因为如果输入编码错误时,可以重新循环。
4.收支明细:

if(z==1){System.out.println("------------------1.收入明细---------------------------");System.out.println("日期\t说明\t收入");for(int i=0;i<1000;i++){if(income[i]==0){break;}System.out.println(day2[i]+"\t"+explain2[i]+"\t"+income[i]);}System.out.println("------------------1.支出明细---------------------------");System.out.println("日期\t说明\t支出");for(int i=0;i<1000;i++){if(cost[i]==0){break;}System.out.println(day[i]+"\t"+explain[i]+"\t"+cost[i]);}
}

5.登记收入

else if(z==2){String as="";do{as="n";System.out.println("------------------2.登记收入---------------------------");System.out.println("日期\t说明\t收入");for(int i=0;i<1000;i++){if(income[i]==0){System.out.print("输入收入日期:");day2[i]=scan.next();System.out.print("输入收入明细:");explain2[i]=scan.next();System.out.print("输入收入费用:");income[i]=scan.nextDouble();balance+=income[i];break;}}System.out.print("请问还要继续输入收入信息吗?(y/n)");as=scan.next();}while(as.equals("y"));}

6.登记支出

else if(z==3){String qw="";do {qw="n";System.out.println("------------------3.登记支出---------------------------");System.out.println("日期\t说明\t支出");for (int i = 0; i < 1000; i++) {if (cost[i] == 0) {System.out.print("输入支出日期:");day[i] = scan.next();System.out.print("输入支出明细:");explain[i] = scan.next();System.out.print("输入支出费用:");cost[i] = scan.nextDouble();balance-=cost[i];break;}}System.out.print("请问还要继续输入收入信息吗?(y/n)");aq = scan.next();}while(qw.equals("y"));}

7.退出

 else if(z==4){System.out.print("请问确定退出吗?(y/n)");yt="y";//存储是否使用了该功能isFlag2=scan.next();}

三、完整代码:

package myaccount;
import java.util.Scanner;
public class My {public static void main(String[] args) {Scanner scan=new Scanner(System.in);boolean isFlag=false;String isFlag2="";String yt="s";String aq="";int z=0;double balance=10000;String[] day=new String[1000];String[] explain=new String[1000];double[] cost=new double[1000];String[] day2=new String[1000];String[] explain2=new String[1000];double[] income=new double[1000];do{aq="n";yt="s";do{isFlag2="y";do{isFlag=false;System.out.println("-------------------家庭收支记账软件----------------");System.out.println("                   1.收支明细                                            ");System.out.println("                   2.登记收入                                            ");System.out.println("                   3.登记支出                                            ");System.out.println("                   4.退       出                                            ");System.out.println("                   请选择(1-4):请按任意键继续...   ");z=scan.nextInt();if(z<1||z>4){System.out.println("输入错误编码,请重新输入!");isFlag=true;}}while(isFlag);if(z==1){System.out.println("------------------1.收入明细---------------------------");System.out.println("日期\t说明\t收入");for(int i=0;i<1000;i++){if(income[i]==0){break;}System.out.println(day2[i]+"\t"+explain2[i]+"\t"+income[i]);}System.out.println("------------------1.支出明细---------------------------");System.out.println("日期\t说明\t支出");for(int i=0;i<1000;i++){if(cost[i]==0){break;}System.out.println(day[i]+"\t"+explain[i]+"\t"+cost[i]);}}else if(z==2){String as="";do{as="n";System.out.println("------------------2.登记收入---------------------------");System.out.println("日期\t说明\t收入");for(int i=0;i<1000;i++){if(income[i]==0){System.out.print("输入收入日期:");day2[i]=scan.next();System.out.print("输入收入明细:");explain2[i]=scan.next();System.out.print("输入收入费用:");income[i]=scan.nextDouble();balance+=income[i];break;}}System.out.print("请问还要继续输入收入信息吗?(y/n)");as=scan.next();}while(as.equals("y"));}else if(z==3){String qw="";do {qw="n";System.out.println("------------------3.登记支出---------------------------");System.out.println("日期\t说明\t支出");for (int i = 0; i < 1000; i++) {if (cost[i] == 0) {System.out.print("输入支出日期:");day[i] = scan.next();System.out.print("输入支出明细:");explain[i] = scan.next();System.out.print("输入支出费用:");cost[i] = scan.nextDouble();balance-=cost[i];break;}}System.out.print("请问还要继续输入收入信息吗?(y/n)");aq = scan.next();}while(qw.equals("y"));}else if(z==4){System.out.print("请问确定退出吗?(y/n)");yt="y";isFlag2=scan.next();}}while(isFlag2.equals("n"));if(yt.equals("s")) {System.out.print("请问还要继续使用其他功能吗?(y/n)");aq = scan.next();}}while(aq.equals("y"));}}

四、运行结果

Java基础项目一:家庭记账软件相关推荐

  1. Java阶段项目一 家庭记账软件

    模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 项目采用分级菜单方式.主菜单如下: -----------------家庭收支记账软件-- ...

  2. 项目一. 家庭记账软件

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

  3. 【Java小案例】家庭记账软件

    一.概述 1.具体需求: 1.首页设有收支明细.登记收入.登记支出.退出四个选项 2.若用户输入不存在的选项数字,请用户重新输入 3.当用户输入一个选项对应的数字,打开该选项的界面,并再次打开首页界面 ...

  4. 小白自学笔记——JAVA基础 2.12 项目一 家庭记账软件

    需求说明 模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 假设家庭起始的生活基本金为10000元. 每次登记收入(菜单2)后,收入的金额应 ...

  5. Java项目一 家庭记账软件

    目录 概述 项目要求 代码 概述 项目来源:B站的尚硅谷java教程 这套视频总的来说还是很良心的,适合快速上手,但是要想深入了解原理的话,深度上还是差一点. 其实这套视频里涉及的练习也谈不上是项目, ...

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

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

  7. 项目一 家庭记账软件 (目标 + 需求说明 + 代码详解 + 基本金和收支明细记录 + 键盘访问的实现)

    家庭记账软件 1. 目标 2. 需求说明 3. 代码详解 4. 基本金和收支明细的记录 5. 键盘访问的实现 1. 目标 模拟实现一个基于文本界面的<家庭记账软件> 掌握初步的编程技巧和调 ...

  8. 项目一 家庭记账软件

    目录 方法一(使用Utility工具类): 实现效果: 菜单主页面 收支明细初始页面 登记收入 登记支出 退出软件 详细代码: Utility.java FamilyAccount02.java 方法 ...

  9. Java基础项目:家庭记录收支程序

    需求分析 要求:该软件能够记录家庭的收入.支出,并能够打印收支明细表. 1.主界面示例 --------家庭收支记账软件-------- 1 收支明细 2 登记收入 3 登记支出 4 退出 2.不同模 ...

  10. Java 小项目 01 简单记账软件

    1 功能介绍 1.1 功能介绍 查询账务 多条件查询 添加账务 编辑账务 删除账务 1.2 运行结果 2 环境搭建 1)开发工具:eclipse 2)第三方jar包 jar 包下载 commons-d ...

最新文章

  1. 活动报名丨悟道开放日:大模型最新研究进展、应用开发训练营、50+闪电演讲作者面对面...
  2. Blink Coordinate Spaces
  3. Android base64 上传图片
  4. oracle12c复制bdf,Oracle 备份与恢复学习笔记(12)
  5. 【Java】Java中的异常处理:何时抛出异常,何时捕获异常?
  6. jeecg标签属性exp 用法
  7. sql中数据类型的转换(自己写比较累哈,偷偷懒,转下别人的)
  8. java项目.gitignore文件过滤规则
  9. 计算机ppt教程 猫先生,漏斗式提问法.ppt
  10. css 使图片变清晰
  11. 东莞银行计算机笔试题,中国银行笔试考什么内容
  12. 如何做CRM系统的客户开发?
  13. Luogu P4147 玉蟾宫
  14. php自动化营销推广引流源码,PHP自动化售货发卡网源码
  15. 1197 山区建小学
  16. 浏览器及Windows常用快捷键汇总
  17. 1055: 兔子繁殖问题
  18. 重要极限一:x趋近于0,sinx/x的极限
  19. 【Matlab】系统的响应分析
  20. 使用硬盘从linux服务器上复制文件

热门文章

  1. 对话 Geoffrey Hinton Demis Hassabis :人工智能离我们有多远?
  2. c++11 std::enable_if在模板偏特化的妙用
  3. Flutter 瀑布流布局(根据图片高度展示)
  4. 海思telnetd修改root登录密码passwd
  5. labelme: 用于将黑红色mask标签图转为黑白的mask标签
  6. 前台Autoform 选择下拉框的值进行判断(js)
  7. Muduo - Reactor模式
  8. ZYNQ #0 petalinux的使用与工程建立
  9. PasteMask是助焊层? SolderMask是阻焊层?
  10. 职业生涯规划-技术还是管理