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. webservice--WSDL文件生成本地的代理类

    我们在对应第三方接口时常用:项目上右键---->服务引用---->WCF Web Service,如下图的页面----->填好url后---->转到,就可以发现服务,生成代理类 ...

  2. 升级到win11 22h2的体验

    win11 22h2更稳定了 在win11 22h2发布后没多久,我就升级到了这个版本,截止目前已经使用半个月了,谈谈我的使用感受. 总体要比之前的版本更稳定,表现为笔记本风扇不会突然响,突然卡顿,不 ...

  3. 微信小程序-应用程序生命周期方法

    官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html // app.js App({ onLau ...

  4. Pytorch分布式训练,其他GPU进程占用GPU0的原因

    问题 最近跑师兄21年的论文代码,代码里使用了Pytorch分布式训练,在单机8卡的情况下,运行代码,出现如下问题. 也就是说GPU(1..7)上的进程占用了GPU0,这导致GPU0占的显存太多,以至 ...

  5. 强化学习从基础到进阶-案例与实践[4.2]:深度Q网络DQN-Cart pole游戏展示

    强化学习从基础到进阶-案例与实践[4.2]:深度Q网络DQN-Cart pole游戏展示 强化学习(Reinforcement learning,简称RL)是机器学习中的一个领域,区别与监督学习和无监 ...

  6. batch size设置技巧

    1.什么是BatchSize Batch一般被翻译为批量,设置batch_size的目的让模型在训练过程中每次选择批量的数据来进行处理.Batch Size的直观理解就是一次训练所选取的样本数. Ba ...

  7. MySQL 之基础命令(精简笔记)

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...

  8. 时间工具类-Java

    1.根据传入时间获取该时间所在季度的第一天 /** * 根据传入时间获取传入日期所在季度的第一天的日期 * * @param startDate * @return */ public static ...

  9. cs50ai3

    cs50ai3-------Optimization cs50ai3-------Optimization 基础知识 课后题目 代码实践 学习链接 总结 基础知识 这节课主要讲了一些优化问题对应的算法 ...

  10. P9993 [Ynoi Easy Round 2024] TEST_133 题解

    题目链接: [Ynoi Easy Round 2024] TEST_133 首先历史最大加,吉司机跑不掉了,维护历史最大加标记以及历史最大,那么根据吉司机标记思想更新操作应该为 \[new \Left ...