日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

零钱通(面向对象)

發布時間:2024/3/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 零钱通(面向对象) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?一、SmallChangeSysOOP

二、SmallChangeSysApp


?一、SmallChangeSysOOP

思路:

將在面向過程中定義的變量變成這個類的屬性

將主菜單和四個選項分別封裝在獨立的方法中,并且在主菜單中用this關鍵字調用這些方法

package com.hspedu.samllchange.samllchangeoop;import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner;public class SmallChangeSysOOP {//屬性//1.先完成顯示菜單,并可以選擇菜單,給出對應提示//2.完成零錢通明細//3.收益入賬//4.消費支出//5.退出//6.完善退出功能//7.在收益入賬和消費的時候,完成金額判斷并提示Scanner scanner = new Scanner(System.in);String key = "" ;boolean loop = true;//2.完成零錢通明細//老師的思路:(1)可以把收益、入賬和消費保存到數組//(2)可以使用對象//(3)簡單的話可以使用String拼接String details = "------------零錢通明細--------";//3.完成收益入賬//收益入賬的格式:收益入賬 +100.02021-01-21 17:41 余額:100.0//需要定義變量 收入的錢 money; 日期date; 余額balacedouble money = 0;Date date = null;//Date型變量存儲日期//修改日期格式,改成符合中國人習慣的日期SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");//年月日時分// SimpleDateFormat saf = null;double balance = 0;//4.消費支出//變量和收益相似,但是需要定義不同的商家String consume = "";//6.完善退出功能,退出時要輸入選項String choice = "";//將4個功能分別封裝在4個方法內public void mainmenu(){do{System.out.println("\n-------------零錢通菜單OOP------------");System.out.println("\t\t\t1 零錢通明細");System.out.println("\t\t\t2 收益入賬");System.out.println("\t\t\t3 消費");System.out.println("\t\t\t4 退 出");//用戶選擇1-4,即需要輸入1-4,需要ScannerSystem.out.print("請選擇(1-4):");//不用換行key = scanner.next();//接收字符串//使用switch分支結構,輸出4種情況switch(key){case "1":this.details();//直接打印明細break;case "2":this.income();break;case "3":this.pay();break;case "4":this.exit();break;//沒有此處的break,會直接輸出default里的語句default:System.out.println("你的選擇有誤,請重新選擇");}}while(loop);//無限循環,始終是一個不停顯示菜單的過程System.out.println("--------退出了零錢通項目--------");}public void details(){System.out.println(details);}public void income(){//首先提示一筆收益入賬System.out.print("收益入賬金額:");//輸入收益金額money = scanner.nextDouble();//需要對金額進行判斷,金額必須要大于0if(money <= 0){System.out.println("輸入的收益入賬金額有誤,請重新輸入");return;//把break改成return}//日期date = new Date();//獲取當日信息//sdf.format(date);對象sdf調用format方法,傳入//余額balance += money;details += "\n收益入賬\t+" + money + "\t" + sdf.format(date) + "\t余額:" + balance;}public void pay(){System.out.print("消費的項目名稱:");consume = scanner.next();//輸入消費名稱System.out.print("消費支出金額:");money = scanner.nextDouble();//消費金額也要判斷,消費金額大于0并且小于等于余額//所以當money<=0 或者 金額大于余額的時候就是錯的if(money <= 0 || money > balance){System.out.println("你的消費金額需要在0-" + balance);return;}date = new Date();balance -= money;details += "\n" + consume + "\t-" + money + "\t" + sdf.format(date) + "\t余額\t" + balance;}public void exit(){//當用戶輸入4之后,首先執行“退出”,//loop = false;會結束do..while循環//要求:1.用戶輸入4退出時,給出提示”你確定要退出嗎? y/n”,// 必須輸入正確的y/n ,否則循環輸入指令,直到輸入y 或者 n。//循環輸入指令,所以需要一個while循環while(true){System.out.println("你確定要退出嗎? y/n");choice = scanner.next();//最好是一段代碼完成一個功能,此處只完成了輸入y和nif("y".equals(choice) || "n".equals(choice)){break;} // if("y".equals(choice)){//確實是要退出循環 // loop = false;//退出do...while循環 // break;//退出這個while循環 // }else if("n".equals(choice)){ // break;//退出這個小的while,但是還是繼續do...while循環 // }}//在確保輸入的是y或者n之后再次進行判斷if("y".equals(choice)){loop = false;}}}

二、SmallChangeSysApp

package com.hspedu.samllchange.samllchangeoop;public class SmallChangeSysApp {public static void main(String[] args) {new SmallChangeSysOOP().mainmenu();} }

新建匿名對象,直接調用mainmenu()這個方法

經過測試,功能和面向對象的代碼功能完全一致

總結

以上是生活随笔為你收集整理的零钱通(面向对象)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。