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. IdentityServer4 系列文章01---密码授权模式

    IdentityServer4实现.Net Core API接口权限认证(快速入门)   什么是IdentityServer4 官方解释:IdentityServer4是基于ASP.NET Core实 ...

  2. Origin2017、Origin2018详细安装教程

    1.Origin2017安装 1.1 安装步骤: 解压安装包,打开"Origin2017"目录,双击"setup.exe"开始安装 安装步骤1,点击[下一步] ...

  3. 驱动开发:WinDBG 常用调试命令总结

    Windbg是Microsoft公司免费调试器调试集合中的GUI的调试器,支持Source和Assembly两种模式的调试.Windbg不仅可以调试应用程序,还可以进行Kernel Debug.结合M ...

  4. dropzone基本使用

    dropzone是一个实现拖拽上传文件的一个插件. 生成拖拽区域 1 <div style="width: 1078px;margin: 0 auto;border: 2px ligh ...

  5. Docker从认识到实践再到底层原理(六-1)|Docker容器基本介绍+命令详解

    前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 然后就是博主最近最花时间的一 ...

  6. webpack学习笔记(二)核心概念理解及基础配置

    上一篇文章 记录了 webpack 初次安装与基础使用,本篇则是记录一下如何使用webpack构建一个比较完整,基础的项目 1. webpack 的4个核心概念 入口(entry):选择项目构建的入口 ...

  7. mac os 解决Error: EMFILE: too many open files错误

    壹 ❀ 引 构建项目时终端反复出现Error: EMFILE: too many open files的错误,经排查是因为项目较大,发布过程中已经超过了mac默认的文件监听上限,错误如下: 解决方式也 ...

  8. sensitive-word-admin 敏感词控台 v1.2.0 版本开源

    开源目的 丰富 sensitive-word 的生态. 提供最基本的操作例子,便于在此基础上丰富实现自己的敏感词控台. 避免重复开发的成本,让更多的精力专注于业务. 拓展阅读 sensitive-wo ...

  9. STM32的串口通信UART/TTL

    常用的串口pin STM32的串口是基础通信方式, 每个型号都带多组串口, 一般都使用默认的组, 可以参考芯片的datasheet, 去看pinout and pin definitions, stm ...

  10. 两个数组的交集II

    两个数组的交集II 给定两个数组,编写一个函数来计算它们的交集. 示例 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 输入:nums1 = [4,9,5], ...