一、项目目标

1.模拟实现一个基于文本界面的《家庭记账软件》

2.掌握初步的编程技巧和调试技巧

3.灵活运用基础知识

二、基本实现功能

1.首先启动层序之后有一个初始页面,它能展示出整个程序的子功能,其中包含了收支明细(打印收支报表);登记收入(添加自己的收入信息);登记支出(添加自己的消费信息)以及退出程序;

代码:

System.out.println("--------------家庭收支记账系统----------------");System.out.println("               1.收支明细");System.out.println("               2.登记收入");System.out.println("               3.登记支出");System.out.println("               4.退出");System.out.print("         请输入你的选择(1-4):");Scanner sc = new Scanner(System.in);xuanze(sc.nextInt(), ZD);}public static void xuanze(int a,String [][]ZD){switch (a){case 1:shouzhi(ZD);break;case 2:shouru(ZD);break;case 3:zhichu(ZD);break;case 4:tuichu();break;default:System.out.print("        您选择有误!请重新选择:");Scanner sc=new Scanner(System.in);xuanze(sc.nextInt(),ZD);}}

2.收支明细:

根据菜单页面(登录页面)选择输入功能模块1;进入功能模块1后可以根据自己的需求填写自己想要打印(几条)的账单信息,其中还能实现总金额的计算即可以根据你存入的收支状况计算出其最后的总金额;这里就需要定义一个全局变量的ZD数组记录收支信息和一个全局变量index记录收支信息条数。

初始时账单信息默认为null:

添加信息后就可以根据自己的需求打印账单信息了:

3.登记收入:

用户可以根据自己事实状况登记自己的收入信息;进入功能模块2之后用户可以更具自己的需求选择填入几条收入信息,然后系统就会根据用户输入选择分配空间进行信息存储,系统会提示用户每次输入是第几条信息,在用户输入信息完成后会提示用户收入存帐已成功,然后提示用户输入0返回上一级目录,如果输入其他数据会提示用户:您输入有误!请重新输入:;这样的信息提示。存入的信息可以在功能模块1中全部打印出来。

现已有两条收入信息,如果用户还有其他收入可以继续选择登记收入信息填入且不会覆盖之前存入的信息;

public static void shouru(String [][]ZD){Scanner sc=new Scanner(System.in);int a=0;System.out.println();System.out.print("请输入你想要存入几条收入信息:");int t=sc.nextInt();int step = 0;while (step  < t){for(int j=0;j<ZD[index].length;j++){System.out.println();if(j==0) {//System.out.print("请输入收支类型:");//ZD[i][j] =sc.next();ZD[index][j] ="收入";}else if(j==1){System.out.print("请输入第"+(step+1)+"条收支金额:");a=sc.nextInt();ZD[index][j] =Integer.toString(a);}else if(j==2){if(ZD[index][j]==null){ZD[index][j] = "0";}if(index==0){ZD[index][j] = Integer.toString(Integer.parseInt(ZD[index][j]) + a);}else {ZD[index][j] = Integer.toString(Integer.parseInt(ZD[index - 1][j]) + a);}}else{System.out.print("请输入收支说明:");ZD[index][j] =sc.next();}}index++;step++;}System.out.println("收入存帐已成功!");System.out.println();System.out.print("          输入0返回上一级:");int b=sc.nextInt();do {if (b == 0) {System.out.println();System.out.println("--------------家庭收支记账系统----------------");System.out.println("               1.收支明细");System.out.println("               2.登记收入");System.out.println("               3.登记支出");System.out.println("               4.退出");System.out.print("         请输入你的选择(1-4):");xuanze(sc.nextInt(),ZD);break;} else {System.out.println();System.out.print("        您选择有误!请重新选择:");b = sc.nextInt();}}while (true);}

4.登记支出

其功能与登记收入功能相似,用户可以根据自己的支出状况填写支出信息,用户填入自己的支出信息后,也可以通过功能模块一进行打印出来,且不会覆盖原本已存入的收入登记信息;

 public static void zhichu(String [][]ZD){Scanner sc=new Scanner(System.in);int a=0,c=0;System.out.println();System.out.print("请输入你想要存入几条支出信息:");int t=sc.nextInt();for(int i=index;i<index+t;i++){c++;for(int j=0;j<ZD[i].length;j++){System.out.println();if(j==0) {//System.out.print("请输入收支类型:");//ZD[i][j] =sc.next();ZD[i][j] ="支出";}else if(j==1){System.out.print("请输入第"+c+"条支出金额:");a=sc.nextInt();ZD[i][j] =Integer.toString(a);}else if(j==2){if(ZD[i][j]==null){ZD[i][j] = "0";}if(i==0){ZD[i][j] = Integer.toString(Integer.parseInt(ZD[i][j]) - a);}else {ZD[i][j] = Integer.toString(Integer.parseInt(ZD[i - 1][j]) - a);}}else{System.out.print("请输入收支说明:");ZD[i][j] =sc.next();}}}index+=c;System.out.println("支出存帐已成功!");System.out.println();System.out.print("          输入0返回上一级:");int b=sc.nextInt();do {if (b == 0) {System.out.println();System.out.println("--------------家庭收支记账系统----------------");System.out.println("               1.收支明细");System.out.println("               2.登记收入");System.out.println("               3.登记支出");System.out.println("               4.退出");System.out.print("         请输入你的选择(1-4):");xuanze(sc.nextInt(),  ZD);break;} else {System.out.print("        您选择有误!请重新选择:");b = sc.nextInt();}}while (true);}

5.退出

退出就是用户登记信息完毕之后选择退出本程序的功能,当用户退出成功之后会提示用户已退出成功。

6.程序源码:

package guanqiaqi;import java.util.Arrays;
import java.util.Scanner;public class shouzhichengxu {static String[][] ZD = new String[100][4];static int index = 0;public static void main(String[] args) {System.out.println("--------------家庭收支记账系统----------------");System.out.println("               1.收支明细");System.out.println("               2.登记收入");System.out.println("               3.登记支出");System.out.println("               4.退出");System.out.print("         请输入你的选择(1-4):");Scanner sc = new Scanner(System.in);xuanze( sc.nextInt(), ZD);//xuanze( Utility.readMenuSelection(sc.nextInt()), ZD);}public static void xuanze(int a,String [][]ZD){switch (a){case 1:shouzhi(ZD);break;case 2:shouru(ZD);break;case 3:zhichu(ZD);break;case 4:tuichu();break;default:System.out.print("        您选择有误!请重新选择:");Scanner sc=new Scanner(System.in);xuanze(sc.nextInt(),ZD);}}public static void shouzhi(String [][]ZD){Scanner sc=new Scanner(System.in);System.out.println();System.out.print("请输入你想要打印几条收支明细:");int t=sc.nextInt();System.out.println();System.out.println("---------收支明细----------");System.out.println(" 收支 收支金额 总金额 说明");for(int i=0;i<t;i++) {System.out.println(Arrays.toString(ZD[i]));}System.out.println("---------------------------");System.out.print("         输入0返回上一级:");int b=sc.nextInt();do {if (b == 0) {System.out.println();System.out.println("--------------家庭收支记账系统----------------");System.out.println("               1.收支明细");System.out.println("               2.登记收入");System.out.println("               3.登记支出");System.out.println("               4.退出");System.out.print("         请输入你的选择(1-4):");xuanze(sc.nextInt(), ZD);break;} else {System.out.println();System.out.print("        您选择有误!请重新选择:");b=sc.nextInt();}}while (true);}public static void shouru(String [][]ZD){Scanner sc=new Scanner(System.in);int a=0;System.out.println();System.out.print("请输入你想要存入几条收入信息:");int t=sc.nextInt();int step = 0;while (step  < t){for(int j=0;j<ZD[index].length;j++){System.out.println();if(j==0) {//System.out.print("请输入收支类型:");//ZD[i][j] =sc.next();ZD[index][j] ="收入";}else if(j==1){System.out.print("请输入第"+(step+1)+"条收支金额:");a=sc.nextInt();ZD[index][j] =Integer.toString(a);}else if(j==2){if(ZD[index][j]==null){ZD[index][j] = "0";}if(index==0){ZD[index][j] = Integer.toString(Integer.parseInt(ZD[index][j]) + a);}else {ZD[index][j] = Integer.toString(Integer.parseInt(ZD[index - 1][j]) + a);}}else{System.out.print("请输入收支说明:");ZD[index][j] =sc.next();}}index++;step++;}System.out.println("收入存帐已成功!");System.out.println();System.out.print("          输入0返回上一级:");int b=sc.nextInt();do {if (b == 0) {System.out.println();System.out.println("--------------家庭收支记账系统----------------");System.out.println("               1.收支明细");System.out.println("               2.登记收入");System.out.println("               3.登记支出");System.out.println("               4.退出");System.out.print("         请输入你的选择(1-4):");xuanze(sc.nextInt(),ZD);break;} else {System.out.println();System.out.print("        您选择有误!请重新选择:");b = sc.nextInt();}}while (true);}public static void zhichu(String [][]ZD){Scanner sc=new Scanner(System.in);int a=0,c=0;System.out.println();System.out.print("请输入你想要存入几条支出信息:");int t=sc.nextInt();for(int i=index;i<index+t;i++){c++;for(int j=0;j<ZD[i].length;j++){System.out.println();if(j==0) {//System.out.print("请输入收支类型:");//ZD[i][j] =sc.next();ZD[i][j] ="支出";}else if(j==1){System.out.print("请输入第"+c+"条支出金额:");a=sc.nextInt();ZD[i][j] =Integer.toString(a);}else if(j==2){if(ZD[i][j]==null){ZD[i][j] = "0";}if(i==0){ZD[i][j] = Integer.toString(Integer.parseInt(ZD[i][j]) - a);}else {ZD[i][j] = Integer.toString(Integer.parseInt(ZD[i - 1][j]) - a);}}else{System.out.print("请输入收支说明:");ZD[i][j] =sc.next();}}}index+=c;System.out.println("支出存帐已成功!");System.out.println();System.out.print("          输入0返回上一级:");int b=sc.nextInt();do {if (b == 0) {System.out.println();System.out.println("--------------家庭收支记账系统----------------");System.out.println("               1.收支明细");System.out.println("               2.登记收入");System.out.println("               3.登记支出");System.out.println("               4.退出");System.out.print("         请输入你的选择(1-4):");xuanze(sc.nextInt(),  ZD);break;} else {System.out.print("        您选择有误!请重新选择:");b = sc.nextInt();}}while (true);}public static void tuichu(){System.out.println("         退出成功!欢迎下次光临!");}
}

Java:家庭收支系统相关推荐

  1. java编写家庭收支记录,Java家庭收支记账小项目(java基础)

    Java家庭收支记账小项目(java基础) Java家庭收支记账小项目(java基础) 需求说明: 模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支 ...

  2. eclipse编写的Java家庭收支记账软件

    eclipse编写的Java家庭收支记账软件 界面及操作过程如下所示: -----------------家庭收支记账软件----------------- 1 收支明细 2 登记收入 3 登记支出 ...

  3. java 家庭收支账户

    代码1 package lesson.project.p1_familyAccount;import java.util.Scanner;public class FamilyAccount {pub ...

  4. java家庭收支记账软件-day01

    import java.util.Scanner; public class itemfamily {public static void main(String[] args) {Scanner s ...

  5. (4)小程序 - 家庭收支系统

    运行式例: 代码: package cn.sg.a01; class FamilyAccount{     public static void main(String[] args){        ...

  6. java家庭收支记账软件

    说明: 这篇文章主要运用了一些java基础知识的一个综合运用 主要涉及以下知识点:  变量的定义  基本数据类型的使用  循环语句  分支语句  方法声明.调用和返回值的接收  简单的屏幕 ...

  7. Java家庭收支明细代码

    package begin;public class Main { //视频目前位置215public static void main(String[] args) {// write your c ...

  8. java家庭理财系统ssm框架

    本系统是一个家庭通用型理财软件,系统目标是把适合家庭化管理的各种理财手段及家庭日常收支管理实现计算机化管理,使对家庭及家庭成员的收支活动更好地进行记录并加以统计分析成为可能,也使家庭理财变得方便,快捷 ...

  9. 家庭收支管理系统(java)

    家庭收支管理系统 一.系统需要的类 二.系统所需类的具体代码 三.总结 一.系统需要的类 1.FamilyAccount 包含主函数,系统运行的开始 public static void main(S ...

最新文章

  1. 对话AI大师Bengio:AI不应变成军备竞赛
  2. 2020年春季学期信号与系统课程作业参考答案-第十五次作业
  3. 1002: A+B for Input-Output Practice (II)
  4. Java 设计模式 之 中介者模式(Mediator)
  5. 【图像处理】直方图均衡化
  6. 下载安装tomcat6.0
  7. mysql服务自动关闭的解决
  8. 使用主成分分析进行人脸识别
  9. 腾讯悄悄发布 Linux QQ,版本 2.0 Beta
  10. 潘多拉路由器php,Padavan潘多拉固件ap模式openwrt固件应该如何设置有线AP模式
  11. 霍尼韦尔:物联网“起跑线”上的巨头转型之路
  12. ssh连接远程服务器
  13. 机房合作—SVN skipped remains conflicted
  14. html display none取消,将displaynone取消
  15. 学数学——林群讲的东西
  16. 酒浓码浓 - ios进入页面自动弹出键盘
  17. Pid控制算法-专家PID与模糊PID的C++实现
  18. jekenis+tomcat部署更新war失败【踩坑日记】
  19. 精选案例集 | 实现网安人才培养,保障网络强国战略—赛宁实训靶场
  20. GMT绘制子图、指北针、图例、比例尺

热门文章

  1. html背景颜色特别淡的那种,(HTML or CSS)白色背景颜色比我的代码的最后一部分要低...
  2. 纯JavaScript实现钢琴块
  3. 软件外包远离“寒冬”
  4. 3306. 有钱人买钻石
  5. 服务器dbc文件目录,云服务器安装不了dbc
  6. PotPlayer 1.4 简体中文安装版 (云眼娱乐开发)
  7. 加快使用Google的CDN网站访问速度
  8. 光谱异常样本检测分析
  9. 2017年什么命_2017年出生的鸡宝宝是什么命-百度经验
  10. python诞生的时间地点人物事件_教程|计算任意视频中各人物的出镜时间(附Python实现)...