java学习之路 之 面向对象编程-面向对象-第一个小项目P1-FAACS
来源:互联网 发布:js跳转指定页面 编辑:程序博客网 时间:2024/05/17 01:00
public class FamilyAccount {public static void main(String[] args) {// 1) 声明基本金变量 初值为10000int balance = 10000; // 用于记录当前金额// 2) 声明记账本变量 初值为表头String details = "收支\t账户金额\t收支金额\t说 明\n";// 3) 声明控制循环的boolean变量, 初值为trueboolean loopFlag = true;// 4) 以上面的布尔变量为条件写一个循环do {// 5) 打印主菜单System.out.println("-----------------家庭收支记账软件-----------------"); System.out.println(""); System.out.println(" 1 收支明细"); System.out.println(" 2 登记收入"); System.out.println(" 3 登记支出"); System.out.println(" 4 退 出"); System.out.println(""); System.out.print(" 请选择(1-4) : ");// 6) 从键盘读取用户选择// 必须使用工具类的工具方法, 方法调用 通过类名.方法名(实参)char ch = Utility.readMenuSelection();// 方法的返回值是一个char型值, 声明一个char型变量保存这个返回值// 7) 对这个返回值进行分支 switch (ch) {// 8) 如果用户选择了1 case '1' :// 打印输出记账本System.out.println(details);break;// 9) 如果用户选择了2 case '2' :/*本次收入金额:1000本次收入说明:劳务费*/System.out.print("本次收入金额 : ");// 获取用户从键盘输入的金额// 调用工具类的方法readNumber, 这个方法会返回一个int型的值, 声明一个int型变量接收返回值int money = Utility.readNumber();System.out.print("本次收入说明 : ");// 获取用户从键盘输入的说明// 调用工具类的方法readString, 这个方法会返回一个String值, 声明一个String类型的变量接收返回值String info = Utility.readString();// 把收入的金额累加到余额变量中balance += money;// 创建一个临时字符串, 内容:收入 11000 1000 劳务费// "收入" + 当前余额 + 本次收入金额 + 本次收入说明\n String tmp = "收入" + "\t" + balance + "\t\t" + money + "\t\t" + info + "\n";// 把临时字符串串接到记事本的后面 +=details += tmp;break;// 10) 如果用户选择了3case '3' :// 登记支出 System.out.print("本次支出金额 : ");// 获取用户从键盘支出的金额// 调用工具类的方法readNumber, 这个方法会返回一个int型的值, 声明一个int型变量接收返回值money = Utility.readNumber();System.out.print("本次支出说明 : ");// 获取用户从键盘支出的说明// 调用工具类的方法readString, 这个方法会返回一个String值, 声明一个String类型的变量接收返回值info = Utility.readString();// 把支出的金额从余额变量减去balance -= money;// 创建一个临时字符串, 内容:支出 11000 1000 劳务费// "支出" + 当前余额 + 本次支出金额 + 本次支出说明\n tmp = "支出" + "\t" + balance + "\t\t" + money + "\t\t" + info + "\n";// 把临时字符串串接到记事本的后面 +=details += tmp;break;// 11) 如果用户选择了4case '4' :System.out.print("确认是否退出(Y/N) : "); char confirm = Utility.readConfirmSelection();if (confirm == 'Y') {//把控制循环的布尔值改为falseloopFlag = false;}break;}} while (loopFlag);}}import java.util.*;public 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("选择错误,请重新输入:");} else break;}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;}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;}}
3 0
- java学习之路 之 面向对象编程-面向对象-第一个小项目P1-FAACS
- java学习之路 之 面向对象编程-面向对象-第一个小项目P1-FAACS
- java学习之路 之 面向对象编程-面向对象与面向过程及面向对象的思想概念
- java学习之路 之 面向对象编程-面向对象-对象的关联
- JAVA之面向对象编程学习
- JAVA学习之面向对象编程
- java学习之路 之 面向对象编程-数组
- java学习之路 之 面向对象编程-面向对象-数组练习题(1)
- java学习之路 之 面向对象编程-可变个参数-练习题
- 《java入门第一季》之面向对象综合小案例
- 面向对象之第一个程序
- Scala学习之路----面向对象编程
- java学习之面向对象
- java学习之面向对象编程-类与对象
- 《java入门第一季》之面向对象
- Java学习系列(十三)Java面向对象之界面编程
- Java学习系列(十九)Java面向对象之数据库编程
- Java学习系列(十三)Java面向对象之界面编程
- 一个小小程序员的爬坑笔记
- Android实用视图动画及工具系列之六:通用表情栏,仿QQ微信聊天弹出表情选框
- Android实用视图动画及工具系列之七:可定制Tab标签栏,ViewPaper和Fragment滑动标签视图
- 2016 google host地址
- Android实用视图动画及工具系列之八:带头部的Viewpaper,结合头部的Fragment切换效果
- java学习之路 之 面向对象编程-面向对象-第一个小项目P1-FAACS
- Android实用视图动画及工具系列之九:漂亮的图片选择器,高性能防崩溃图片选择工具
- HDU - 5787 K-wolf Number 数位DP
- 利用Office 365 定制企业合同管理平台,实现企业合同管理新篇章!
- Android实用视图动画及工具系列之十:漂亮的发布动画,仿新浪首页加号发布微博动画框
- 函数的定义声明 用法 形参实参 return关键字
- Android NDK开发,Android.mk构建基础
- 一个菜鸟程序员的自白
- 2016多校训练Contest5: 1007 K-wolf Number hdu5787