Java項目家庭記賬軟件

      網友投稿 859 2022-05-28

      項目要求

      要求實現一個基于文本界面的記賬軟件,模擬實現一個基于文本界面的《家庭記賬軟件》,掌握初步的編程技巧和調試技巧。

      主要涉及以下知識點:

      - 局部變量和基本數據類型

      - 循環語句

      - 分支語句

      - 方法調用和返回值的接收

      - 簡單的屏幕輸出格式控制

      界面如下圖所示:

      utility.java代碼:

      package demo; import java.util.Scanner; 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代碼:

      Java項目之家庭記賬軟件

      package demo; public class FamliyAccount { public static void main(String arg[]){ boolean isFlag=true; //用于記錄用戶的收入和支出的詳情 String details = "收支\t賬戶金額 \t收支金額 \t說 明\n"; //初始金額 int balance=10000; while (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):"); char selection=utility.readMenuSelection(); switch (selection){ case '1': //System.out.println("1.收支明細"); System.out.println("-----------當前收支收支明細記錄----------------"); System.out.println(details); System.out.println("-------------------------------------------"); break; case '2': //System.out.println("2.登記收入"); System.out.println("本次收入金額:"); int money=utility.readNumber(); System.out.print("本次收入說明:"); String info = utility.readString(); balance+=money; //處理details details +=("收入\t"+balance+"\t"+money+"\t\t"+info+"\n"); System.out.println("-----------登記完成----------------"); break; case '3': //System.out.println("3.登記支出"); System.out.println("本次支出金額:"); int minusmoney = utility.readNumber(); System.out.print("本次支出說明:"); String minusInfo = utility.readString(); //處理balance if(balance >= minusmoney) { balance -= minusmoney; //處理details details +=("支出\t"+balance+"\t"+minusmoney+"\t\t"+minusInfo+"\n"); }else { System.out.println("支出超出賬戶額度,支付失敗"); } System.out.println("-----------登記完成----------------"); break; case '4': //System.out.println("5.退 出"); System.out.print("確認是否退出(Y/N):"); char isExit=utility.readConfirmSelection(); if (isExit == 'Y') { isFlag = false; break; } } } } }

      Java

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【數據結構與算法】之深入解析“掃雷游戲”的求解思路與算法示例
      下一篇:【愚公系列】2021年12月 Java教學課程 17-Random隨機數的使用
      相關文章
      亚洲国产综合久久天堂| 亚洲高清乱码午夜电影网| 亚洲成人一区二区| 大桥未久亚洲无av码在线| 亚洲娇小性xxxx| 亚洲一卡二卡三卡四卡无卡麻豆| 亚洲精品国产成人专区| 亚洲Av无码精品色午夜| 亚洲国产精品乱码一区二区| 亚洲日韩精品无码一区二区三区| 久久精品亚洲乱码伦伦中文| 国产国拍精品亚洲AV片| 亚洲女同成av人片在线观看| 亚洲精品少妇30p| 亚洲av无码一区二区三区不卡 | 亚洲精品无码久久久久久| 亚洲AV无码无限在线观看不卡 | 亚洲人成影院在线无码按摩店| 国产亚洲精品不卡在线| 中文字幕精品无码亚洲字 | 国产专区一va亚洲v天堂| 国产国拍精品亚洲AV片| 久久亚洲高清观看| 久久久久久亚洲av成人无码国产| 婷婷亚洲久悠悠色悠在线播放 | 亚洲欧美在线x视频| 亚洲?V乱码久久精品蜜桃 | 亚洲最大av无码网址| 中文字幕亚洲一区| 情人伊人久久综合亚洲| 亚洲午夜精品一区二区| 亚洲成AV人片久久| 国产日本亚洲一区二区三区| 亚洲国产精品精华液| 另类小说亚洲色图| 丝袜熟女国偷自产中文字幕亚洲| 亚洲va久久久噜噜噜久久天堂| 99久久亚洲综合精品成人网| 亚洲一区二区三区免费视频| 亚洲精品精华液一区二区| 亚洲国产a级视频|