简单实现家庭记账程序(java) | 您所在的位置:网站首页 › 家庭日常流水记账 › 简单实现家庭记账程序(java) |
目录 一、项目需求及流程说明 1.需求说明: 2.流程说明 项目阶段1 项目阶段2 项目阶段3 二、完整源代码及工具类 1.工具类 2.主功能程序 一、项目需求及流程说明 1.需求说明 整体说明: 模拟实现基于文本界面的《家庭记账软件》。该软件能够记录家庭的收入、支出,并能够打印收支明细表。项目采用分级菜单方式。 主菜单如下:
家庭收支记账软件 1 收支明细 2 登记收入 3 登记支出 4 退出 请选择(1-4): 如图:
如图: 1)从键盘读取收入的金额(int) 2)从键盘读取收入的原因(String) 3)按照要求存储数据(数组) 4)添加成功 注意点: 1)从键盘读取支出的金额(int) 2)从键盘读取支出的原因(String) 3)按照要求存储数据(数组) 4)添加成功 注意点: 第二个截图是修改之后,对income重新进行定义,并且返回sunMum,然后可以进行正常运行。 代码实现效果: * 将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节*/ 2.主功能程序 public class home2 { public static void main(String[] args) { String[][] arr = new String[20][4]; int count=0; int sumNum = 10000;// 初始金额 arr[0][0]="收支"; arr[0][1]="账户金额"; arr[0][2]="收支金额"; arr[0][3]="说明"; while (true) { // 获取用户选择1-4 System.out.println("-------------家庭记账收支软件-----------"); System.out.println(" 1.收支明细"); System.out.println(" 2.登记收入"); System.out.println(" 3.登记支出"); System.out.println(" 4.退 出"); System.out.print (" 请选择(1-4):"); char menu = Utility.readMenuSelection();//nextInt(); switch (menu) { case '1': read(arr); break; case '2': count++; sumNum=income(count,sumNum,arr); break; case '3': count++; sumNum=outcome(count,sumNum,arr); break; case '4': System.out.print("确认是否退出(Y/N):"); char Selection = Utility.readConfirmSelection(); if (Selection == 'Y') { System.out.println("退出成功!"); return; }else{ break; } } } } public static void read(String[][] arr) { System.out.println("-------------当前明细收支记录-----------"); for (int j = 0; j < arr.length; j++) { if (arr[j][0] != null) { System.out.println(arr[j][0] + "\t\t" + arr[j][1] + "\t\t" + arr[j][2] + "\t\t" + arr[j][3]); } } System.out.println("--------------------------------------"); } public static int income(int count,int sumNum,String[][] arr) { //count++; arr[count][0]="收入"; System.out.print("本次收入金额:"); int MoneyIn = Utility.readNumber();//调用自定义工具类Utility中读取金额收入与支出的函数 sumNum += MoneyIn; arr[count][1]=Integer.toString(sumNum);//强制转换!!! arr[count][2]="+"+Integer.toString(MoneyIn); System.out.print("本次收入说明:"); String addInfo = Utility.readString(); //调用自定义工具栏Utility中读取收入与支出说明的函数 arr[count][3]=addInfo; // 处理details变量 //details += ("收入\t" + sumNum + "\t\t" + MoneyIn + "\t\t" + addInfo + "\n");// System.out.println("收入金额登记成功!"); return sumNum; } public static int outcome(int count,int sumNum,String[][] arr) { //count++; arr[count][0]="支出"; System.out.println("本次支出金额:"); int minusMoney = Utility.readNumber();//调用自定义工具类Utility中读取金额收入与支出的函数 // 处理balance if (sumNum >= minusMoney) { sumNum-= minusMoney; arr[count][1]=sumNum+""; arr[count][2]="-"+minusMoney+""; System.out.print("本次支出说明:"); String minusInfo = Utility.readString(); //调用自定义工具栏Utility中读取收入与支出说明的函数 arr[count][3]=minusInfo+""; } else { System.out.println("账户余额不足,支出失败"); } System.out.println("支出金额登记成功!"); return sumNum; } }下面是我第一次做的比较简单(没有用到数组遍历) 可以进行参考: public class home { public static void main(String[] args) { int basic = 10000;// 初始金额 String details = "收支\t账户金额\t\t收支金额\t\t说明\n";//记录收入与支出详细情况 while (true) { // 获取用户选择1-4 System.out.println("-------------家庭记账收支软件-----------"); System.out.println(" 1.收支明细"); System.out.println(" 2.登记收入"); System.out.println(" 3.登记支出"); System.out.println(" 4.退 出"); System.out.print(" 请选择(1-4):"); char menu = Utility.readMenuSelection(); switch (menu) { case '1': System.out.println("-------------当前明细收支记录-----------"); System.out.println(details); System.out.println("--------------------------------------"); break; case '2': System.out.print("本次收入金额:"); int MoneyIn = Utility.readNumber();//调用自定义工具类Utility中读取金额收入与支出的函数 System.out.print("本次收入说明:"); String addInfo = Utility.readString(); //调用自定义工具栏Utility中读取收入与支出说明的函数 // 处理basic basic += MoneyIn; // 处理details变量 details += ("收入\t" + basic + "\t\t" + MoneyIn + "\t\t" + addInfo + "\n"); System.out.println("收入金额登记成功!"); break; case '3': System.out.println("本次支出金额:"); int minusMoney = Utility.readNumber();//调用自定义工具类Utility中读取金额收入与支出的函数 // 处理balance if (basic >= minusMoney) { basic-= minusMoney; System.out.print("本次支出说明:"); String minusInfo = Utility.readString(); //调用自定义工具栏Utility中读取收入与支出说明的函数 // 处理details details += ("支出\t" + basic + "\t\t" + minusMoney + "\t\t" + minusInfo + "\n"); } else { System.out.println("账户余额不足,支出失败"); } System.out.println("支出金额登记成功!"); break; case '4': System.out.print("确认是否退出(Y/N):"); char Selection = Utility.readConfirmSelection(); if (Selection == 'Y') { System.out.println("退出成功!"); return; }else{ break; } } } } } |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |