1.主代码

public class FamilyAccount {public static void main(String[] args) {String details = "收支\t账户金额\t\t收支金额\t\t说    明\n";int balance = 10000;boolean loopFlag = true;do {System.out.println("\n-----------------家庭收支记账软件-----------------");System.out.println("                   1 收支明细");System.out.println("                   2 登记收入");System.out.println("                   3 登记支出");System.out.println("                   4 退    出\n");System.out.print("                   请选择(1-4)");char key = Fangfa.readMenuSelection();System.out.println();switch (key){case '1':System.out.println("-----------------当前收支明细记录-----------------");System.out.println(details);System.out.println("------------------------------------------------");break;case '2':System.out.println("本次收入金额:");int amount1 = Fangfa.readNumber();System.out.println("本次收入说明:");String desc1 = Fangfa.readString();balance += amount1;details += "收入\t" + balance + "\t\t" + amount1 + "\t\t\t" + desc1 + "\n";System.out.println("-----------------登记完成-----------------");break;case '3':System.out.println("本次支出金额:");int amount2 = Fangfa.readNumber();System.out.println("本次支出说明:");String desc2 = Fangfa.readString();balance -= amount2;details += "支出\t" + balance + "\t\t" + amount2 +"\t\t\t" + desc2 + "\n";System.out.println("-----------------登记完成-----------------");break;case '4':System.out.println("确认是否退出(Y/N)");char yn = Fangfa.readConfirmSelection();if (yn == 'Y')   loopFlag = false;break;}}while(loopFlag);}
}

2.方法

import java.util.Scanner;
public class Fangfa {private static Scanner scanner = new Scanner(System.in);//用于收到菜单的选项public static char readMenuSelection(){char c;for ( ; ; ){String str = readKeyBorad(1);c = str.charAt(0);if (c != '1' &&c != '2'&& c != '3' &&c != '4' ){System.out.println("输入错误。请重新输入:");}else break;}return c;}//用于收入和支出金额的输入public static int readNumber(){int n;for ( ; ; ){String str = readKeyBorad(4);try {n = Integer.parseInt(str);break;}catch (NumberFormatException e){System.out.println("数字输入错误,请重新输入");}}return n;}//用于收入和支出说明的输入,该方法public static String readString(){String str = readKeyBorad(8);return str;}//用于确认选择的输入。该方法从键盘读取‘Y’或者‘N’public static char readConfirmSelection(){char c;for ( ; ; ){String str = readKeyBorad(1).toUpperCase();c = str.charAt(0);if (c == 'Y' || c == 'N'){break;}else {System.out.println("选择错误,请重新输入:");}}return c;}//readKeyBored用来接受键盘的数据private static String readKeyBorad(int limit){String line = "";while (scanner.hasNext()){line = scanner.nextLine();if (line.length()<1 || line.length()>limit){System.out.println("输入的长度(不大于" + limit + ")错误,请重新输入");continue;}break;}return line;}
}

项目1 :家庭记账系统相关推荐

  1. [附源码]JAVA毕业设计家庭记账系统(系统+LW)

    [附源码]JAVA毕业设计家庭记账系统(系统+LW) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...

  2. java计算机毕业设计家庭记账系统源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计家庭记账系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计家庭记账系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S架构 开 ...

  3. 项目一. 家庭记账软件

    要求: 项目一 家庭记账软件 目 标• 模拟实现一个基于文本界面的<家庭记账软件>• 掌握初步的编程技巧和调试技巧• 主要涉及以下知识点: 变量的定义 基本数据类型的使用 循环语句 ...

  4. Java项目之家庭记账软件

    项目要求 要求实现一个基于文本界面的记账软件,模拟实现一个基于文本界面的<家庭记账软件>,掌握初步的编程技巧和调试技巧. 主要涉及以下知识点: - 局部变量和基本数据类型 - 循环语句 - ...

  5. Java项目一 家庭记账软件

    目录 概述 项目要求 代码 概述 项目来源:B站的尚硅谷java教程 这套视频总的来说还是很良心的,适合快速上手,但是要想深入了解原理的话,深度上还是差一点. 其实这套视频里涉及的练习也谈不上是项目, ...

  6. 项目一 家庭记账软件 (目标 + 需求说明 + 代码详解 + 基本金和收支明细记录 + 键盘访问的实现)

    家庭记账软件 1. 目标 2. 需求说明 3. 代码详解 4. 基本金和收支明细的记录 5. 键盘访问的实现 1. 目标 模拟实现一个基于文本界面的<家庭记账软件> 掌握初步的编程技巧和调 ...

  7. 小白自学笔记——JAVA基础 2.12 项目一 家庭记账软件

    需求说明 模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 假设家庭起始的生活基本金为10000元. 每次登记收入(菜单2)后,收入的金额应 ...

  8. Java阶段项目一 家庭记账软件

    模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 项目采用分级菜单方式.主菜单如下: -----------------家庭收支记账软件-- ...

  9. JAVA毕设项目家庭记账系统(java+VUE+Mybatis+Maven+Mysql)

    项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  10. 项目一 家庭记账软件

    目录 方法一(使用Utility工具类): 实现效果: 菜单主页面 收支明细初始页面 登记收入 登记支出 退出软件 详细代码: Utility.java FamilyAccount02.java 方法 ...

最新文章

  1. C语言标量变向量的函数,GLSL 详解(基础篇)
  2. MIMIC 以太坊医疗项目开发(7) 医疗智能合约 sample
  3. 5 图片 渐变_AI教程!5分钟教你绘制超酷炫的字体效果
  4. 华为鸿蒙系统明年8月份,华为鸿蒙系统明年上线,力争第五大操作系统,能否成功?...
  5. 化繁为简 回归初心 细品雅致设计的vivo X50系列
  6. spss和python stata matlab_(SPSS,Matlab,stata,Python)相关性?
  7. HDU2021 发工资咯:)【入门】
  8. nvidia显卡linux 7.2,科学网—悲喜录:服务器 CentOS 7.2 安装Nvidia显卡驱动(64bit) - 袁伟的博文...
  9. 过去的一年,2013!
  10. 14_按类别分页展示商品
  11. 64位java虚拟机_java虚拟机64位下载
  12. 前端实战:从零到一实现H5拼图小游戏(附源码)
  13. 树莓派安装centos操作系统
  14. 用计算机读取机读卡信息,摄像机SD卡无法读取怎么办
  15. 百度地图——多点标记及路线
  16. 剩余空间,自由再生——城市高架桥下空间的活化再生研究
  17. 不背单词,不学语法,过去100天,这10万人原来是这样学英语的......
  18. Erlang和Web
  19. 唯有作茧自缚,方可破茧成蝶
  20. EDA实验(Quartus Ⅱ+fpga) (二)---时序电路的设计-模可变计数器设计

热门文章

  1. rational rose 启动选择_Rational Rose 附使用教程
  2. (BLE)蓝牙抓包(1) -nRF-sniffer和wireshark
  3. 怎么关闭计算机管理窗口,桌面窗口管理器已停止工作并应关闭这应该怎么解决啊...
  4. Jconsole小记
  5. 用Java生成word文档
  6. 盒子不显示工会与服务器,DNF天空盒子找不到怎么办 dnf新版本活动防坑指攻略...
  7. 【C语言】案例四十八 综合案例——天生棋局(围棋棋盘)
  8. 联想Thinkpad E430 原装win8改版win7的BIOS设置
  9. Python爬虫实战+数据分析+数据可视化(前程无忧招聘信息)
  10. 关于jabber协议