国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

廈門市同安區(qū)建設(shè)局公開網(wǎng)站網(wǎng)站優(yōu)化軟件

廈門市同安區(qū)建設(shè)局公開網(wǎng)站,網(wǎng)站優(yōu)化軟件,網(wǎng)頁制作分工明細(xì),云優(yōu)cms家庭收支記賬軟件實現(xiàn)基本功能(先使用面向過程,后面改成面向?qū)ο?項目代碼實現(xiàn)改進(jìn)面向過程源碼面向?qū)ο笤创autils包中main包中實現(xiàn)基本功能(先使用面向過程,后面改成面向?qū)ο? 編寫文件TestMyAccount.go完成基本功能 功能一:先完成可以顯示…

家庭收支記賬軟件

    • 實現(xiàn)基本功能(先使用面向過程,后面改成面向?qū)ο?
      • 項目代碼實現(xiàn)改進(jìn)
    • 面向過程源碼
    • 面向?qū)ο笤创a
      • utils包中
      • main包中

實現(xiàn)基本功能(先使用面向過程,后面改成面向?qū)ο?

編寫文件TestMyAccount.go完成基本功能

  • 功能一:先完成可以顯示主菜單,并且可以退出
  • 功能二:完成可以顯示明細(xì)和登記收入的功能
  • 功能三:完成登記支出的功能

項目代碼實現(xiàn)改進(jìn)

1,用戶輸入4退出時,給出提示“你確定要退出嗎y/n”,必須輸入正確的y/n,否則循環(huán)輸入指令,知道輸入y或者n

2,當(dāng)沒有任何收支明細(xì)時,提示"當(dāng)前沒有收支明細(xì)…"

3,在支出時,判斷余額是否夠,并給出相應(yīng)的提示

4,將面向過程的代碼修改成面向?qū)ο蟮姆椒?#xff0c;編寫myFamilyAccount.go,并使用testMyFanillyAccount.go去完成測試

面向過程源碼

package main
import ("fmt"
)func main() {//聲明一個變量,保存接受用戶輸入的選項key := ""//聲明一個變量,控制是否退出for循環(huán)loop := true//定義賬戶的金額balance := 10000.0//每次收支的金額money := 0.0//每次收支的說明note := ""//定義一個變量,記錄是否有收支行為flag := false//收支的詳情使用字符串來記錄//當(dāng)有收支的時候,只需要對details進(jìn)行拼接處理details := "收支\t賬戶余額\t收支金額\t說   明"//循環(huán)顯示菜單for{fmt.Println("\n--------------------家庭收支記賬軟件------------------")fmt.Println("                      1 收支明細(xì)")fmt.Println("                      2 登記收入")fmt.Println("                      3 登記支出")fmt.Println("                      4 退出軟件")fmt.Println("                      請選擇(1-4):")fmt.Scanln(&key) switch key {case "1":fmt.Println("-----------------當(dāng)前收支明細(xì)記錄----------------")if flag {fmt.Println(details)} else {fmt.Println("你的卡里沒錢錢,存一筆吧")}case "2":fmt.Println("本次收入的金額:")fmt.Scanln(&money)balance += money //修改賬戶余額fmt.Println("本次收入說明:")fmt.Scanln(&note)//將這個收入的情況,拼接到details//收入    11000      10000       血汗錢details += fmt.Sprintf("\n收入\t%v\t%v\t%v", balance, money, note)flag = truecase "3":fmt.Println("本次支出的金額:")fmt.Scanln(&money)//這里做一個必要的判斷if money > balance {fmt.Println("余額不足")break}balance -= moneyfmt.Println("本次支出的說明:")fmt.Scanln(&note)details += fmt.Sprintf("\n支出\t%v\t%v\t%v", balance, money, note)flag = truecase "4":fmt.Println("你確定要退出嗎? y/n")choice := ""for {fmt.Scanln(&choice)if choice == "y" || choice == "n" {break}fmt.Println("你的輸入有誤,請重新輸入 y/n")}if choice == "y" {loop = false}default :fmt.Println("請輸入正確的選項")}if !loop {break}}fmt.Println("你退出了家庭記賬軟件的使用")}

面向?qū)ο笤创a

思路:

把記賬軟件的功能,封裝到一個結(jié)構(gòu)體中,然后調(diào)用該結(jié)構(gòu)體的方法,來實現(xiàn)記賬,顯示明細(xì)

再通過在main方法中,創(chuàng)建一個結(jié)構(gòu)體FamilyAccount實例,實現(xiàn)記賬即可

utils包中

package utils
import ("fmt"
)type FamilyAccount struct {//聲明必須的字段//聲明一個字段,保存接受用戶輸入的選項key string//聲明一個字段,控制是否退出for循環(huán)loop bool//定義賬戶的金額balance float64//每次收支的金額money float64//每次收支的說明note string//定義一個變量,記錄是否有收支行為flag bool//收支的詳情使用字符串來記錄//當(dāng)有收支的時候,只需要對details進(jìn)行拼接處理details string
}//編寫一個工廠模式的構(gòu)造方法,返回一個*FanilyAccount實例
func NewFamilyAccount() *FamilyAccount {return &FamilyAccount{key :"",loop : true,balance : 10000.0,money: 0.0,note : "",flag :false,details : "收支\t賬戶余額\t收支金額\t說   明"}
}//將顯示明細(xì)寫成一個方法
func (this *FamilyAccount) showDetails() {fmt.Println("-----------------當(dāng)前收支明細(xì)記錄----------------")if this.flag {fmt.Println(this.details)} else {fmt.Println("你的卡里沒錢錢,存一筆吧")}
}//將登記收入寫成一個方法
func (this *FamilyAccount) income() {fmt.Println("本次收入的金額:")fmt.Scanln(&this.money)this.balance += this.money //修改賬戶余額fmt.Println("本次收入說明:")fmt.Scanln(&this.note)//將這個收入的情況,拼接到details//收入    11000      10000       血汗錢this.details += fmt.Sprintf("\n收入\t%v\t%v\t%v", this.balance, this.money, this.note)flag = true
}//將支出寫成一個方法
func (this *FamilyAccount) pay() {fmt.Println("本次支出的金額:")fmt.Scanln(&this.money)//這里做一個必要的判斷if this.money > this.balance {fmt.Println("余額不足")//break}this.balance -= this.moneyfmt.Println("本次支出的說明:")fmt.Scanln(&this.note)this.details += fmt.Sprintf("\n支出\t%v\t%v\t%v", this.balance, this.money, this.note)this.flag = true
}//將退出寫成一個方法
func (this *FamilyAccount) exit() {fmt.Println("你確定要退出嗎? y/n")choice := ""for {fmt.Scanln(&choice)if choice == "y" || choice == "n" {break}fmt.Println("你的輸入有誤,請重新輸入 y/n")}if choice == "y" {this.loop = false}}//給該結(jié)構(gòu)體綁定相應(yīng)的方法
//顯示主菜單
func (this *FamilyAccount) MainMenu() {for{fmt.Println("\n--------------------家庭收支記賬軟件------------------")fmt.Println("                      1 收支明細(xì)")fmt.Println("                      2 登記收入")fmt.Println("                      3 登記支出")fmt.Println("                      4 退出軟件")fmt.Println("                      請選擇(1-4):")fmt.Scanln(&this.key) switch this.key {case "1":this.showDetails()case "2":this.income()case "3":this.pay()case "4":this.exit()default :fmt.Println("請輸入正確的選項")}if !this.loop {break}fmt.Println("你退出了家庭記賬軟件的使用")}
}

main包中

package main
import ("go_code/Familycount/main"
)func main(){utils.NewFamilyAccount().MainMenu()
}
http://aloenet.com.cn/news/44225.html

相關(guān)文章:

  • 衡陽的房地產(chǎn)網(wǎng)站建設(shè)打開百度搜索網(wǎng)站
  • 全國知名網(wǎng)站建設(shè)市場營銷四大基本策略
  • wordpress淘寶客api排名優(yōu)化公司哪家好
  • 微商城建設(shè)購物網(wǎng)站網(wǎng)絡(luò)營銷方法有哪些?
  • 做網(wǎng)站用vue嗎網(wǎng)上教育培訓(xùn)機(jī)構(gòu)
  • wordpress 知識共享長尾詞seo排名優(yōu)化
  • 網(wǎng)上購物系統(tǒng)功能描述seo簡單優(yōu)化
  • 汕頭企業(yè)建站百度官網(wǎng)進(jìn)入
  • 百度網(wǎng)盟推廣怎么做網(wǎng)絡(luò)優(yōu)化的內(nèi)容包括哪些
  • 注冊一個網(wǎng)站營銷團(tuán)隊找產(chǎn)品合作
  • wordpress獲取指定目錄的文章百度網(wǎng)站排名優(yōu)化
  • 裝飾公司網(wǎng)站seo公司排名教程
  • 公司網(wǎng)站建設(shè)行業(yè)怎么樣老鬼seo
  • 網(wǎng)站維護(hù)需要多少錢全網(wǎng)引流推廣
  • 中國電商建站程序seo運(yùn)營是做什么的
  • 個人做網(wǎng)站需要備案嗎bt兔子磁力天堂
  • 用什么軟件做網(wǎng)站最快搜索量排行
  • 桂林做網(wǎng)站公司seo網(wǎng)絡(luò)優(yōu)化
  • 日照網(wǎng)站制作seo診斷站長
  • 博客網(wǎng)站如何建設(shè)互聯(lián)網(wǎng)推廣渠道
  • 做飛機(jī)票預(yù)訂網(wǎng)站如何做網(wǎng)站推廣的策略
  • 做彩票生意要登陸哪個網(wǎng)站百度最怕哪個投訴電話
  • 上海 網(wǎng)站制作公司網(wǎng)絡(luò)建站工作室
  • 有什么做服裝的網(wǎng)站蘭州seo網(wǎng)站建設(shè)
  • div css網(wǎng)站邊框模板疫情防控最新政策
  • 網(wǎng)站建設(shè)公司的公眾號百度官網(wǎng)平臺
  • 網(wǎng)站制作需要哪些軟件有哪些網(wǎng)站宣傳推廣策劃
  • 上海做網(wǎng)站 公司關(guān)鍵詞排名優(yōu)化怎么做
  • 舟山建設(shè)信息港門戶網(wǎng)站seo網(wǎng)絡(luò)推廣技術(shù)員招聘
  • 成都疫情實時狀況seo搜索優(yōu)化 指數(shù)