基于Java小案例家庭收入支出记录

跟着视频来写的,不喜勿喷,谢谢

package JavaText;public class FamilyAccount {public static void main(String[] args) {// TODO Auto-generated method stubboolean isFlag =true;String details = "收支\t账户金额\t\t收支金额\t\t说明\n";//初始余额int balance = 10000;while(isFlag) {System.out.println("--------家庭收支记账软件----------");System.out.println("   1 收支明细");System.out.println(" 2 登记收入");System.out.println(" 3 登记支出");System.out.println(" 4 退       出\n");System.out.println("  请输出(1-4):");//获取用户的选择:1-4char selection = Utility.readMenuSelection();switch(selection) {case'1'://System.out.println("1.收支明细");System.out.println("-------当前收支明细记录-------");System.out.println(details);System.out.println("-----------------------------");break;case'2'://System.out.println("2.登录收入");System.out.println("本次收入金额");int addmoney = Utility.readNumber();System.out.println("本次收入说明");String addinfo = Utility.readString();//处理balancebalance += addmoney;//处理detailsdetails += ("收入\t" + balance + "\t\t" + addmoney + "\t\t" + addinfo + "\n");System.out.println("-------登记完成-------");break;case'3'://System.out.println("3.登记支出");System.out.println("本次支出金额");int  minusmoney = Utility.readNumber();System.out.println("本次支出说明" );String  minusinfo = Utility.readString();//处理balanceif(balance >= minusmoney) {balance -=  minusmoney;//处理deailsdetails += ("收入\t" + balance + "\t\t" +  minusmoney + "\t\t" +  minusinfo + "\n");}else {System.out.println("支出超出账户余额,支付失败");}System.out.println("-------登记完成-------");break;case'4':System.out.println("确认是否退出(Y/N):");char exit = Utility.readConfirmSelection();if(exit == 'Y') {isFlag = false;}break;}}while(isFlag);}}
package JavaText;import java.util.Scanner;
/**
Utility工具类:
将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节。
*/
public class Utility {private static Scanner scanner = new Scanner(System.in);/**用于界面菜单的选择。该方法读取键盘,如果用户键入’1’-’4’中的任意字符,则方法返回。返回值为用户键入字符。*/public static char readMenuSelection() {char c;for (; ; ) {String str = readKeyBoard(1);c = str.charAt(0);if (c != '1' && c != '2' && c != '3' && c != '4') {System.out.print("选择错误,请重新输入:");} else break;}return c;}/**用于收入和支出金额的输入。该方法从键盘读取一个不超过4位长度的整数,并将其作为方法的返回值。*/public static int readNumber() {int n;for (; ; ) {String str = readKeyBoard(4);try {n = Integer.parseInt(str);break;} catch (NumberFormatException e) {System.out.print("数字输入错误,请重新输入:");}}return n;}/**用于收入和支出说明的输入。该方法从键盘读取一个不超过8位长度的字符串,并将其作为方法的返回值。*/public static String readString() {String str = readKeyBoard(8);return str;}/**用于确认选择的输入。该方法从键盘读取‘Y’或’N’,并将其作为方法的返回值。*/public static char readConfirmSelection() {char c;for (; ; ) {String str = readKeyBoard(1).toUpperCase();c = str.charAt(0);if (c == 'Y' || c == 'N') {break;} else {System.out.print("选择错误,请重新输入:");}}return c;}private static String readKeyBoard(int limit) {String line = "";while (scanner.hasNext()) {line = scanner.nextLine();if (line.length() < 1 || line.length() > limit) {System.out.print("输入长度(不大于" + limit + ")错误,请重新输入:");continue;}break;}return line;}
}

基于Java小案例家庭收入支出记录相关推荐

  1. Java基础必须项目一(家庭收入支出软件,详细注释,并且添加日期记录功能)

    本软件是模拟家庭收入支出软件,所以登记的数据没有和数据库交互,不能保留.学习这个小项目只是为了熟悉Java中知识点的运用并且了解一些编程的思修.本人也是小白一枚,所以代码都有注释,可以帮助你更好的理清 ...

  2. Java项目一之实现家庭收入支出登记系统

    家庭收入支出登记系统 目录 一.主要涉及的知识点 二.工具类 Utility.java 介绍 三.主体流程图 四.实践操作 五.结果分析 一.主要涉及的知识点  局部变量和基本数据类型  循环语句 ...

  3. java小项目家庭记账程序

    文章目录 java小项目家庭记账程序 **1.项目目标:** 2.项目需求: 3.具体思路: 4.具体代码: 1.页面: 2.Option_1类: 3.Option_2类: 4.Option_3类: ...

  4. linux小型游戏系统设计,Linux平台下基于JAVA小游戏_设计文档.doc

    Linux课程设计报告 课题名称:<Linux平台下基于java小游戏设计> 专 业:2011级计算机科学与技术 组 长:043佘清泉 组 员:007陈威达 008陈学仁 026赖华标 0 ...

  5. c语言家庭收入支出程序

    关于c语言中的家庭收支程序 第一个为无函数的,直接无脑void main程序的维护性极差 第二个为改进后的,使用了函数. 优化前 ----------------------------------- ...

  6. 基于JAVA小动物领养网站计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA小动物领养网站计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA小动物领养网站计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  7. 【Java小案例】家庭记账软件

    一.概述 1.具体需求: 1.首页设有收支明细.登记收入.登记支出.退出四个选项 2.若用户输入不存在的选项数字,请用户重新输入 3.当用户输入一个选项对应的数字,打开该选项的界面,并再次打开首页界面 ...

  8. Java小项目——家庭记账项目

    学习Java已经过了半个月左右了,所学的知识已经能够写一些小程序或者小项目,虽然它可能没有那么高级,但是也能检验你之前所学的全部内容.所以今天就与大家分享一下我的小项目经验. 一.需求说明 该软件能够 ...

  9. 基于Java基础的家庭收支记账软件

    文章目录 前言 一.前期准备 二.整体功能 三.功能模块 四.功能浅谈 1. AccountInfo 类 2.收支明细 3.登记收入/支出 4. 查询账单 五.收获 六.总结 前言 学习完Java基础 ...

最新文章

  1. 左线性文法和右线性文法_线性代数期末考试复习资料
  2. SQL Server 2012 数据库镜像配置完整篇
  3. git命令行完全解读
  4. Makedown 本地图片问题
  5. RabbitMQ负载均衡(4)——LVS
  6. arduino倾斜开关python语言_Arduino小白的学习记录:倾斜开关实验
  7. 深度学习工程师能力评估标准
  8. centeros php,CenterOs7 安装oracle19c的方法详解
  9. python爬虫:爬取医药数据库drugbank
  10. 181007扇贝有道每日一句
  11. 东北大学软件项目管理与过程改进复习提纲(2020)——第四章《项目综合管理》
  12. 企业微信机器人消息发送(文本、图片、文件)
  13. 北方经贸杂志北方经贸杂志社北方经贸编辑部2022年第10期目录
  14. 系统架构设计师与系统分析师历年实体分析与解答下载_【系统分析师】07-系统设计...
  15. U盘格式化后容量变小了恢复教程
  16. w ndows10启动黑屏,Win10系统开机黑屏怎么办 Windows10开机黑屏的解决方法
  17. 关于计算机软件的研究生就业,计算机软件与理论研究生毕业就业方向
  18. win10开机蓝屏_终级解决win10蓝屏代码WHEA_UNCORRECTABLE_ERROR没有之一 心语家园
  19. LayUi 之 模板引擎
  20. Unity中OnRenderImage屏幕后处理做Graphics.blit时遇到的一个问题

热门文章

  1. 如何处理尼古丁戒断症状?
  2. MATLAB 安装通用摄像头插件
  3. Java练习使用ActionListener
  4. 面向对象编程思维(软件工程)
  5. 怎样做搜索引擎优化_您可以做的事情可以使您的博客更加优化搜索引擎
  6. 冯唐:不是所有人都能苦尽甘来,有3种人会苦上加苦,千万别大意
  7. 英特尔至强E7 v4上市,剑指Power
  8. 怎样修改Facebook主页的颜色
  9. 《博弈论》欧几里德的游戏
  10. 《资源成本双优化!看 Serverless 颠覆编程教育的创新实践》