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. 关于Js debounce(防抖)函数和throttle(节流)小结

    闭包的实际运用防抖 防抖:当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次, 如果设定的时间到来之前,又一次触发了事件,就重新开始 延时. (如果在一段时间内,又触发了该事件:就 ...

  2. ClickHouse(06)ClickHouse建表语句DDL详细解析

    目录 当前服务器上创建表(单节点) 语法形式 使用显式架构 从相同结构的表复制创建 从表函数创建 从选择查询创建 分布式集群创建表 临时表 分区表 创建表语句关键字解析 空值或非空修饰符 默认值表达式 ...

  3. dump分析器winbdg

    工具: winbdg WinDBG不是专门用于调试.Net程序的工具,它更偏向于底层,可用于内核和驱动调试.进行普通的.Net程序调试还是使用微软专为.Net开发的调试工具MDBG更方便一些.但是Wi ...

  4. nodejs的npm改为国内源和参数

    npm源改为国内 此方法不需要安装cnpm也可以使用淘宝镜像,提高国内访问速度 由于 Node 的官方模块仓库网速太慢,模块仓库需要切换到阿里的源. npm config set registry h ...

  5. .NET MAUI 简介

    欢迎使用.NET 多平台应用程序 UI.此版本标志着我们在统一 .NET 平台的多年旅程中的新里程碑.现在,您和超过 500 万其他 .NET 开发人员拥有面向 Android.iOS.macOS 和 ...

  6. 2.6 Windows驱动开发:使用IO与DPC定时器

    本章将继续探索驱动开发中的基础部分,定时器在内核中同样很常用,在内核中定时器可以使用两种,即IO定时器,以及DPC定时器,一般来说IO定时器是DDK中提供的一种,该定时器可以为间隔为N秒做定时,但如果 ...

  7. 19.3 Boost Asio 多线程通信

    多线程服务依赖于两个通用函数,首先boost::bind提供了一个高效的.简单的方法来创建函数对象和函数对象适配器,它的主要功能是提供了一种将函数和它的参数绑定到一起的方法,这种方法可以将具有参数的成 ...

  8. Apache Typecho框架启用地址重写

    地址重写有利于SEO优化,开启地址重写可以去掉Typecho框架中的index.php后缀,该后缀如下. 第一步,进到apache配置文件目录下cat /etc/httpd/conf/httpd.co ...

  9. 从嘉手札<2024-1-29>

    补一下以前的几篇日记 2018-4-6 当一个人不在纠结没有什么 而是开始珍视他所拥有的一切的时候 才算得上真正的成熟 个人的意志 不能因受到社会的压力而软弱 也不能受到自然的压力而萎缩 而应当如冬日 ...

  10. Python中os.walk函数说明

    这个函数对于文件方面的遍历等其他方面的操作来说功能很强大,比如批量修改文件名.批量移动文件.将所有不在一个文件夹下的文件移动到同一个文件夹下等等. 这个其实很简单的,用一个示例就能明白这个函数的具体用 ...