提示:本文为博主学习笔记,部分代码来源网络,如有错误,恳请斧正!!!

文章目录

  • 前言
  • 一、Utility类
  • 二、FamilyAccount类
  • 总结

前言

大一学习了面向过程开发的C语言,总是感觉不太够,于是暑假开始学习面向对象的JAVA语言,开爪!
博主跟的尚硅谷的宋红康老师学习,他讲的实在太细了!!!于是我五天看了170多集,由于之前有一些C语言语法基础,所以看这个前期就觉得容易一些。首先写的是第一个工程家庭账目管理系统。


以下是本篇文章正文内容,下面案例可供参考
对代码的解析已经写入注释中!

一、Utility类

import java.util.Scanner;class Utility{//创建类private static Scanner scanner = new Scanner(System.in);//创建对象//界面菜单的选择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("选择错误,请重新输入:");}elsebreak;}return c;}//用于收入和支出金额的输入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;}//用于收入和支出的说明public static String readString(){String str = readKeyBoard(8);return str;}//用于确认选择的输入,从键盘度Y和Npublic 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;}public static String readKeyBoard(int n){Scanner scanner = new Scanner(System.in);String str = scanner.next();return str;}
}

二、FamilyAccount类

class FamilyAccount{public static void main(String[] args){boolean isFlag = true;//定义一个布尔型变量,用作系统的循环和终止String details = "收支\t账户金额\t\t收支金额\t\t说 明\n";//表头int balance = 1000;//初始账目余额while(isFlag){//进入一个死循环,除非改变isFlag的值,否则无法退出系统System.out.println("----------------家庭收支记账软件----------------\n");//该系统的目录页System.out.println("                1.收支明细");System.out.println("                2.登记收入");System.out.println("                3.登记支出");System.out.println("                4.退出");System.out.print("                请选择(1-4):");//获取用户的选择:1-4char selection = Utility.readMenuSelection();//调用Utlity类中的readMenuSelection方法,将得到的参数赋给selectionswitch(selection) {//用户选择模式case '1':System.out.println("------------当前收支明细记录------------");System.out.println(details+"\n\n");System.out.println("-------------------------------------");break;case '2':System.out.println("本次收入金额:");int addMoney = Utility.readNumber();//同样的调用Utility中的readNumber方法,将返回值赋给addMoney这个变量System.out.println("本次收入说明:");String addInfo = Utility.readString();balance+=addMoney;details+=("收入\t\t"+balance+"\t"+addMoney+"\t\t"+addInfo+"\n");System.out.println("当前等级完成\n\n");break;case '3':System.out.println("本次支出金额:");int minusMoney = Utility.readNumber();System.out.println("本次支出说明:");String minusInfo = Utility.readString();if(balance>=minusMoney) {balance-=minusMoney;}details+=("收入\t"+balance+"\t\t\t"+minusMoney+"\t\t\t"+minusInfo+"\n");System.out.println("当前登记完成\n\n");break;case '4':System.out.println("是否确认退出(Y/N)?");char isExit = Utility.readConfirmSelection();if(isExit=='Y') {isFlag=false;}break;}}}
}

总结

以上是基于Java的家庭账目管理系统,后续会进行优化升级,欢迎各位大佬指点!

【Java学习笔记】之家庭账目管理系统相关推荐

  1. Java学习笔记:公司账目流水表生成报表1

    package Part4;import com.yzk18.docs.ExcelHelpers; import org.apache.poi.ss.usermodel.Sheet; import o ...

  2. Java学习笔记系列-入门篇-计算机基础

    Java学习笔记 Java学习笔记是一个持续更新的系列,工作多年,抽个空对自身知识做一个梳理和总结归纳,温故而知新,同时也希望能帮助到更多正在学习Java 的同学们. 本系列目录: 入门篇 计算机基础 ...

  3. java计算机毕业设计web家庭财务管理系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计web家庭财务管理系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计web家庭财务管理系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: ...

  4. 2022年Java学习笔记目录

    一.2022年Java任务驱动课程 任务驱动,统摄知识点:2022年Java程序设计讲课笔记 二.2022年Java学习笔记 (一)踏上Java开发之旅 Java学习笔记1.1.1 搭建Java开发环 ...

  5. java计算机毕业设计web家庭财务管理系统源码+数据库+系统+lw文档

    java计算机毕业设计web家庭财务管理系统源码+数据库+系统+lw文档 java计算机毕业设计web家庭财务管理系统源码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  6. java学习笔记11--Annotation

    java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...

  7. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

  8. 准备写java学习笔记

    准备写java学习笔记 java int 转载于:https://blog.51cto.com/cryingcloud/1975267

  9. Java学习笔记--StringTokenizer的使用

    2019独角兽企业重金招聘Python工程师标准>>> Java Tips: 使用Pattern.split替代String.split String.split方法很常用,用于切割 ...

  10. java学习笔记12--异常处理

    java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...

最新文章

  1. YII用户注冊和用户登录(五)之进行session和cookie分析 ,并在前后区分session和cookie...
  2. 电脑上如何安装CAD看图软件及dwg图纸的打开?
  3. 图论--树的直径--DFS+树形DP模板
  4. Sum of Paths CodeForces - 1467D
  5. [转]我是如何走进黑客世界的?
  6. [币严区块链]以太坊(ETH)Dapp开发入门教程之宠物商店领养游戏
  7. windows下运行python文件路径总是出错?
  8. linux操作系统怎么修改时区,Linux操作系统修改时区的方法
  9. 怎么使用Vegas制作炫彩灯光效果?
  10. C#给图片加文字水印
  11. java接口深入理解_深入理解Java的接口和抽象类
  12. overleaf表格_latex插入表格心得
  13. 12款好用超赞的国外搜索资源网站 ,开发者们的标配,你都知道吗?不知道就OUT了...
  14. 对于刺头,怎么办?9个套路支招
  15. Adobe Illustrator【印前角线X2.0】脚本源码
  16. PaddleX---MobileNetV2图像分类
  17. loj6089 小 Y 的背包计数问题
  18. 适合Java初学入门的几本图书
  19. [补充内容]关于使用matlab进行方程组求解的线性代数相关知识补充——n维向量
  20. 通过百度地图实现定位并获取本地当日天气信息

热门文章

  1. 金山词霸只能最大或最小化问题的解决
  2. linux内核线程详解,Linux内核线程
  3. win10黑客教学(5)--xscan漏洞探测
  4. JAVA学习笔记:目录
  5. 微软ASP.NET AJAX框架剖析(1)
  6. 为 Elipse 下载windowsBuilder 实现窗口插件
  7. 大学生计算机vfp,计算机vfp教学课件
  8. bulkwrite 批量插入_使用EF扩展EntityFramework.BulkInsert实现批量插入
  9. php发送邮件pop3,php 发送邮件与pop3邮件登录代码
  10. truecrypt linux用法,TrueCrypt for Linux好吗