1 public class FamliyAccount
2 {
3
4 public static void main(String[] args)
5 {
6 // TODO Auto-generated method stub
7
8 boolean isFlag = true;
9 //用于记录用户的收入和支出的详情
10 String details = "收支\t账户金额\t\t收支金额\t\t说 明\n";
11 //初始金额
12 int balance = 10000;
13 while(isFlag)
14 {
15 System.out.println("-----------------家庭收支记账本-----------------\n");
16 System.out.println(" 1-收支明细");
17 System.out.println(" 2-登记收入");
18 System.out.println(" 3-登记支出");
19 System.out.println(" 4-退 出\n");
20 System.out.print(" 请选择(1--4): ");
21
22
23
24
25 Scanner sanner = new Scanner(System.in);
26 String keyBoard = sanner.next();
27 char c= keyBoard.charAt(0);
28
29 switch(c)
30 {
31 case '1':
32 System.out.println("1-收支明细");
33 System.out.println("------------------当前收支明细记录------------------");
34
35 System.out.println(details);
36
37 System.out.println("---------------------------------------------------");
38
39
40
41 break;
42
43 case '2':
44 System.out.println("2-登记收入");
45 System.out.print("本次收入金额:");
46 int money = sanner.nextInt();
47
48 System.out.print("本次收入说明:");
49 String info = sanner.next();
50
51
52
53 //处理balance
54 balance += money;
55
56 //处理details
57 details +=("收入\t"+ balance +"\t\t" + money +"\t\t"+info+"\n");
58 System.out.println("---------------------登记完成----------------------");
59
60 61
62 break;
63 case '3':
64 System.out.println("3-登记支出");
65 System.out.print("本次支出金额:");
66
67 int moneyZc = sanner.nextInt();
68
69 System.out.print("本次支出说明:");
70 String infoZc = sanner.next();
71
72 //处理balance
73 if(balance >= moneyZc)
74 {
75 balance -= moneyZc;
76 //处理details
77 details +=("支出\t"+ balance +"\t\t" + moneyZc +"\t\t"+infoZc+"\n");
78 }
79 else
80 {
81 System.out.println("支出超出额度,支付失败!!!");
82 }
83
84 System.out.println("---------------------登记完成----------------------");
85
86
87 break;
88 case '4':
89 System.out.print("确认是否退出?(Y/N):");
90 for(;;)
91 {
92
93 String str = sanner.next();
94 char exit = str.charAt(0);
95 if(exit == 'Y'||exit =='y')
96 {
97
98 System.out.println("已退出");
99 break;
100 }
101 else if(exit == 'N'|| exit =='n')
102 {
103 System.out.println("已取消退出");
104 }
105 else
106 {
107 System.out.println("输入有误,请重新输入:");
108 // break;
109 }
110 }
111
112
113 }
114
115
116
117
118
119
120
121 }
122
123 }
124
125 }

Java 家庭记账本的更多相关文章

  1. 进度1_家庭记账本App

    今天完成了昨天的初步构想,详细介绍见上一篇博客,具体项目结构和案例如下: MainActivity.java: package com.example.familybooks; import andr ...

  2. 进度5_家庭记账本App_数据库的添加和查看

    今天继续在昨天的基础上完成了家庭记账单的在数据库中的添加和查看功能 在之前的基础上舍弃了Fragment,重新在百度上找到了学习资料,并且自我完成了实践 首先在之前的基础上创建CostListAdap ...

  3. 家庭记账本web开发

    这个系统的整体结构: GitHub:https://github.com/lq1998lq/Test.git com.action包: package com.action; import java. ...

  4. GitHub上传家庭记账本

    GitHub的使用参考之前的博客GitHub的初步了解和使用,并完成了相关的android个人家庭记账本的上传

  5. 进度4_家庭记账本App

    在上一个博客中,我学习了用Fragment进行数据的传值,但是出现了好多问题,我通过百度查阅资料发现fregment在进行数值传输的时候有的语法不能使用,并且不方便的进行数据库的使用,所以我在原来的家 ...

  6. 进度3_家庭记账本App_Fragment使用SQLite实现简单存储及查询

    AddFragment.java: package com.example.familybooks; import android.content.ContentValues; import andr ...

  7. 家庭记账本app实现登录注册界面以及仿微信操作界面(共4个实现一个)遇到了麻烦

    今天学习了数据的创建,以及关于数据库的相关操作. 今天主要是实现了对于数据库的增加和查找. 具体的代码如下: 首先是数据库的创建: DBOpenMessage.java package com.exa ...

  8. 家庭记账本app进度之android中AlertDialog的相关应用以及对日期时间的相关操作(应用alertdialog使用的谈话框)

    对于AlertDialog的相关知识: 1.创建构造器AlertDialog.Builder的对象:    2.通过构造器对象调用setTitle.setMessage.setIcon等方法构造对话框 ...

  9. 家庭记账本app进度之对于登录和注册两个界面点击按钮的相互跳转

    这次主要完成了两个两个android页面之间的跳转.从登录页面点击注册就会跳转到注册页面.在注册页面点击返回登录,这样就可以返回到登录界面.主要是这样的操作.其中遇到了一个困难主要是当点击按钮的时候, ...

  10. 家庭记账本app进度之下拉框和数字转轮的相关应用

    这次主要是悬系的下拉框Spinner和数字转轮NumberPicker的使用.先分析相关的用到的知识点. 在Android中,用string-array是一种简单的提取XML资源文件数据的方法. 例子 ...

随机推荐

  1. go中异常处理流程

    在 Go 语言中,panic.recover 和 defer 是用于处理异常情况的关键字.它们通常一起使用来实现对程序错误的处理和恢复. 1. defer 语句 defer 用于在函数返回之前执行一段 ...

  2. DES加密和base64加密

    DES简介:参考知乎 https://www.zhihu.com/question/36767829 和博客https://www.cnblogs.com/idreamo/p/9333753.html ...

  3. 【druid切换hikari连接池】通过源码分析遇到的问题

    一.前言说明 如果不会配置druid连接池的话,可以参考我这篇博文:springboot整合druid: springboot整合所有的starter方法基本都差不多,添加依赖,开启注解,编写配置,增 ...

  4. C/C++ 文件与指针操作笔记

    创建临时文件 #include <stdio.h> int main(int argc, char *argv[]) { FILE *temp; char c; if ((temp = t ...

  5. 手写 Spring,写到简历上被怼?

    作者:小傅哥 博客:https://bugstack.cn 图书:https://u.jd.com/4LapTH4 沉淀.分享.成长,让自己和他人都能有所收获! 一直都有一个非常好的硬核项目在你我身边 ...

  6. 官方实锤!AMD真的已经有了大小核:不搞Intel那一套

    Intel 12代酷睿开始引入大小核混合架构,多核跑分提升立竿见影,在游戏.渲染等场景中也有很好的辅助作用,但因为大核心.小核心基于完全不同的架构,需要复杂的系统.软件调度配合,也直接导致失去了AVX ...

  7. Spring自带的这11个工具类,真香!

    前言 最近有些小伙伴,希望我分享一些好用的工具类,帮他们提升开发效率. 今天这篇文章专门跟大家一起总结一下,Spring框架本身自带的一些好用的工具类,希望对你会有所帮助. 1 Assert 很多时候 ...

  8. 知乎利用 JuiceFS 给 Flink 容器启动加速实践

    本文作者胡梦宇,知乎大数据架构开发工程师,主要负责知乎内部大数据组件的二次开发和数据平台建设. 背景 Flink 因为其可靠性和易用性,已经成为当前最流行的流处理框架之一,在流计算领域占据了主导地位. ...

  9. NC204871 求和

    题目链接 题目 题目描述 已知有 \(n\) 个节点,有 \(n-1\) 条边,形成一个树的结构. 给定一个根节点 \(k\) ,每个节点都有一个权值,节点i的权值为 \(v_i\) . 给 \(m\ ...

  10. [WPF] MediaElement播放HDR视频泛黄、颜色显示不正确应该如何解决?

    当我们在使用MediaElement控件播放HDR视频时会遇到颜色发灰.泛黄的情况,难道是因为控件做的有问题? 其实并不是程序问题,只是我们普通的应用程序工作在8bit色深的环境中,而HDR色深为10 ...