目录

  • 概述
  • 项目要求
  • 代码

概述

项目来源:B站的尚硅谷java教程
这套视频总的来说还是很良心的,适合快速上手,但是要想深入了解原理的话,深度上还是差一点。
其实这套视频里涉及的练习也谈不上是项目,用到的都是java的基础语法,没什么技术栈。既然是初学java,就顺手写一下,养成好习惯。

项目要求

要求实现一个基于文本界面的记账软件,更详细的要求可以参考课程视频或给出的文档。

模拟实现一个基于文本界面的《家庭记账软件》
掌握初步的编程技巧和调试技巧
主要涉及以下知识点:
局部变量和基本数据类型
循环语句
分支语句
方法调用和返回值的接收
简单的屏幕输出格式控制

代码

//Utility.java
import java.util.*;
/**
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;}
}
//FamilyAccount.java
public class FamilyAccount {private int balance;private String message;public FamilyAccount() {balance = 10000;message = "收支\t账户金额\t收支金额\t说  明";}private void showMainMenu() {System.out.println("-----------家庭收支记账软件-----------");System.out.println();System.out.println("1 收支明细");System.out.println("2 登记收入");System.out.println("3 登记支出");System.out.println("4 退出");System.out.print("请选择(1-4):");}private void showMessage() {System.out.println(message);}private void addBalance(int n,String str) {balance += n;message = message + "\n收入\t" + balance + "\t" + n + "\t" + str;}private void decBalance(int n,String str) {balance -= n;message = message + "\n支出\t" + balance + "\t" + n + "\t" + str;}public static void main(String[] args) {boolean loopFlag = true;var familyaccount = new FamilyAccount();while(loopFlag) {familyaccount.showMainMenu();char ch = Utility.readMenuSelection();switch (ch) {case '1': {familyaccount.showMessage();break;}case '2': {System.out.print("请输入收入金额:");int n = Utility.readNumber();System.out.print("请输入收入明细:");String str = Utility.readString();familyaccount.addBalance(n, str);break;}case '3':{System.out.print("请输入支出金额:");int n = Utility.readNumber();System.out.print("请输入支出明细:");String str = Utility.readString();familyaccount.decBalance(n, str);break;}case '4':{System.out.println("是否要退出:Y/N?");char c = Utility.readConfirmSelection();if(c == 'Y') {loopFlag = false;System.out.println("感谢使用");}break;}default:break;}}}
}

Java项目一 家庭记账软件相关推荐

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

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

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

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

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

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

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

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

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

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

  6. Java 编写一个家庭记账软件 -25天 学习笔记

    练习 package com.xin.base; import java.util.Scanner;public class Part {public static void main (String ...

  7. 项目一 家庭记账软件

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

  8. Java写家庭记账软件

    java 家庭记账软件 Miraitowa 本内容介绍的是有关java制作一个家庭记账软件的相关知识.但是由于我也是初学,所以希望大家多多指教. 以下就是我们这次的题: 需求说明 •模拟实现基于文本界 ...

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

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

最新文章

  1. 小姐姐带你一起学:如何用Python实现7种机器学习算法(附代码)
  2. Java开发中Websocket的技术选型参考
  3. 转载:frameset 使用心得
  4. VTK:隐式函数之BooleanOperationImplicitFunctions
  5. java并发编程面试
  6. [git] git fsck --lost-found命令用法
  7. neu1250矩阵快速幂哪~~
  8. 21年计算机网络原理综合测评,(年对口升学计算机综合测评卷.doc
  9. Data truncation: Data too long for column错误分析
  10. python 遗传算法_Python实现遗传算法的代码
  11. 手写键盘计算机,鼠标手写输入法计算机版本v2017最新版本
  12. mercury已断开服务器无响应,Mercury水星无线路由器无法上网解决办法 | 192路由网...
  13. 基金:波动率、收益率、贝塔系数、最大回撤率、夏普比率
  14. iOS --- 使用Mixpanel来统计和分析移动APP的用户数据
  15. java实现rabbitmq_RabbitMQ搭建(2)-Java简单实现
  16. php函数形参,PHP中的函数形参的默认值
  17. ​万字长文阐述前端技术浪潮与应用
  18. 简单元胞自动机实现—Python
  19. 铁乐学python_day18-19_面向对象编程1
  20. 强化学习实例6:策略迭代法(policy iteration)

热门文章

  1. Invalid prop: type check failed for prop “total“. Expected Number with value x, got String with valu
  2. 哈尔滨工业大学21年计算机考研情况 学硕复录比超2:1?复试竞争激烈!
  3. API文档自动生成的方法
  4. 第1章 Linux系统介绍与环境搭建准备
  5. 电子化时代到来,电子印章助力构建网络时代互信环境
  6. 软件测试必备基础知识
  7. lms消噪声matlab,关于LMS去噪声的仿真
  8. 总结输入法挡住输入框方案
  9. 现在有多少老婆不上班,全靠男人一个人赚钱养家的,过得怎么样?
  10. html鼠标拖尾效果,Canvas实现特效(一):粒子拖尾