Java基础项目一:家庭记账软件
项目需求:
模拟实现家庭收支记账功能
一、需要以下方面:
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基础项目一:家庭记账软件相关推荐
- Java阶段项目一 家庭记账软件
模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 项目采用分级菜单方式.主菜单如下: -----------------家庭收支记账软件-- ...
- 项目一. 家庭记账软件
要求: 项目一 家庭记账软件 目 标• 模拟实现一个基于文本界面的<家庭记账软件>• 掌握初步的编程技巧和调试技巧• 主要涉及以下知识点: 变量的定义 基本数据类型的使用 循环语句 ...
- 【Java小案例】家庭记账软件
一.概述 1.具体需求: 1.首页设有收支明细.登记收入.登记支出.退出四个选项 2.若用户输入不存在的选项数字,请用户重新输入 3.当用户输入一个选项对应的数字,打开该选项的界面,并再次打开首页界面 ...
- 小白自学笔记——JAVA基础 2.12 项目一 家庭记账软件
需求说明 模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 假设家庭起始的生活基本金为10000元. 每次登记收入(菜单2)后,收入的金额应 ...
- Java项目一 家庭记账软件
目录 概述 项目要求 代码 概述 项目来源:B站的尚硅谷java教程 这套视频总的来说还是很良心的,适合快速上手,但是要想深入了解原理的话,深度上还是差一点. 其实这套视频里涉及的练习也谈不上是项目, ...
- Java项目之家庭记账软件
项目要求 要求实现一个基于文本界面的记账软件,模拟实现一个基于文本界面的<家庭记账软件>,掌握初步的编程技巧和调试技巧. 主要涉及以下知识点: - 局部变量和基本数据类型 - 循环语句 - ...
- 项目一 家庭记账软件 (目标 + 需求说明 + 代码详解 + 基本金和收支明细记录 + 键盘访问的实现)
家庭记账软件 1. 目标 2. 需求说明 3. 代码详解 4. 基本金和收支明细的记录 5. 键盘访问的实现 1. 目标 模拟实现一个基于文本界面的<家庭记账软件> 掌握初步的编程技巧和调 ...
- 项目一 家庭记账软件
目录 方法一(使用Utility工具类): 实现效果: 菜单主页面 收支明细初始页面 登记收入 登记支出 退出软件 详细代码: Utility.java FamilyAccount02.java 方法 ...
- Java基础项目:家庭记录收支程序
需求分析 要求:该软件能够记录家庭的收入.支出,并能够打印收支明细表. 1.主界面示例 --------家庭收支记账软件-------- 1 收支明细 2 登记收入 3 登记支出 4 退出 2.不同模 ...
- Java 小项目 01 简单记账软件
1 功能介绍 1.1 功能介绍 查询账务 多条件查询 添加账务 编辑账务 删除账务 1.2 运行结果 2 环境搭建 1)开发工具:eclipse 2)第三方jar包 jar 包下载 commons-d ...
最新文章
- 活动报名丨悟道开放日:大模型最新研究进展、应用开发训练营、50+闪电演讲作者面对面...
- Blink Coordinate Spaces
- Android base64 上传图片
- oracle12c复制bdf,Oracle 备份与恢复学习笔记(12)
- 【Java】Java中的异常处理:何时抛出异常,何时捕获异常?
- jeecg标签属性exp 用法
- sql中数据类型的转换(自己写比较累哈,偷偷懒,转下别人的)
- java项目.gitignore文件过滤规则
- 计算机ppt教程 猫先生,漏斗式提问法.ppt
- css 使图片变清晰
- 东莞银行计算机笔试题,中国银行笔试考什么内容
- 如何做CRM系统的客户开发?
- Luogu P4147 玉蟾宫
- php自动化营销推广引流源码,PHP自动化售货发卡网源码
- 1197 山区建小学
- 浏览器及Windows常用快捷键汇总
- 1055: 兔子繁殖问题
- 重要极限一:x趋近于0,sinx/x的极限
- 【Matlab】系统的响应分析
- 使用硬盘从linux服务器上复制文件
热门文章
- 对话 Geoffrey Hinton Demis Hassabis :人工智能离我们有多远?
- c++11 std::enable_if在模板偏特化的妙用
- Flutter 瀑布流布局(根据图片高度展示)
- 海思telnetd修改root登录密码passwd
- labelme: 用于将黑红色mask标签图转为黑白的mask标签
- 前台Autoform 选择下拉框的值进行判断(js)
- Muduo - Reactor模式
- ZYNQ #0 petalinux的使用与工程建立
- PasteMask是助焊层? SolderMask是阻焊层?
- 职业生涯规划-技术还是管理