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. 基于OpenIM 实现聊天机器人功能

    ### 简要描述 使用 OpenIM 中的 Webhook 机制实现聊天机器人功能.发送文本消息或图片消息给聊天机器人后,机器人会返回相同的消息.开发者可以替换此逻辑,在LangChain框架上调用L ...

  2. 从零开始配置vim(32)——最后再说两句

    很抱歉我决定结束这个系列的内容了.原本我打算介绍markdown.orgmode相关的配置,甚至还打算介绍如何在vim 中使用 emacs 的 org-agenda 来进行日常的任务管理.但是出于一些 ...

  3. vim 从嫌弃到依赖(19)——替换

    之前讨论了关于在vim中使用正则表达式的相关知识能方便的进行搜索,现在在之前的基础之上继续来讨论如何进行替换操作. substitute 简介 substitute 允许我们先查找一段文本并用新的文本 ...

  4. springboot项目导入外部jar包的bean的几种方式

    背景 公司封装了基础包和日志包,将公共的配置抽取出来,供所有项目使用,因此就需要考虑,怎么引入外部jar包的Bean实例: 思考 因为公司的jar包就是普通的jar,不支持springboot的自动配 ...

  5. 11.1 C++ STL 应用字典与列表

    C++ STL 标准模板库提供了丰富的容器和算法,这些模板可以灵活组合使用,以满足不同场景下的需求.本章内容将对前面学习的知识进行总结,并重点讲解如何灵活使用STL中的vector和map容器,以及如 ...

  6. 201871010111-刘佳华 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    实验三 软件工程结对项目 ========== 时间:2021-4-1 项目 内容 课程班级博客链接 课程链接 这个作业要求链接 作业要求 我的课程学习目标 1.了解软件工程过程中结对项目的开发流程 ...

  7. (C语言)关于printf的新发现: 可以用字符串变量替代第一个字符串参数

    char a[] = "hello%d\n%dworld"; printf(a, 2, 3); //输出: //hello2 //2world 事情的起因是使用printf(&qu ...

  8. Exadata健康检查工具EXAchk

    本文根据MOS文章:Oracle Exadata Database Machine EXAchk (Doc ID 1070954.1)整理关键步骤. 注:通常都会要求使用当前最新可用的EXAchk版本 ...

  9. PCIE详解

    老男孩读PCIe之一:从PCIe速度说起 从今天开始,老男孩要开始讲PCIe了.对我来说,这是个很大的挑战:首先,我自己本身,对PCIe并没有做到胸有成竹,我的PCIe知识也只是停留在理论阶段,我并没 ...

  10. 【Unity3D】广告牌特效

    1 前言 ​ 广告牌特效是指:空间中的一个 2D 对象始终(或尽可能)面向相机,使得用户能够尽可能看清楚该 2D 物体.广告牌特效一共有以下 3 种: 正视广告牌:广告牌始终以正视图姿态面向相机,即广 ...