golang實戰--家庭收支記帳軟件(面向過程)

1.開發流程編程

 

 

2.目標oop

  • 模擬實現一個基於文本界面的(家庭記帳軟件) ;
  • 初步掌握編程技巧和調試技巧;
  • 主要包含如下知識點:局部變量和基本數據類型、循環語句、分支語句、簡單屏幕格式輸出、面向對象編程;
  • 該軟件可以記錄家庭的輸入、支出,並可以打印家庭明細表;
  • 採用分級菜單的方式:
  • --------------家庭收支記帳軟件-----------------
  • 1.收支明細
  • 2.登記收入
  • 3.登記支出
  • 4.退出
  • 請選擇(1-4)

3.實現(具體細節看代碼吧)spa

package main

import (
    "fmt"
)

func main() {
    //申明一個變量,保存輸入的選擇
    key := ""
    //申明一個變量判斷是否退出循環
    loop := false
    //定義帳戶的餘額
    balance := 10000.0
    //每次收支的金額
    money := 0.0
    //每次收支的說明
    note := ""
    //收支的詳情,使用字符串來記錄
    details := "  收支\t帳戶金額\t收支金額\t說    明"
    //定義一個變量記錄是否有收支行爲
    flag := false

    //顯示菜單
    for {
        fmt.Println("----------------------家庭收支軟件-----------------------")
        fmt.Println("                      1.收支明細")
        fmt.Println("                      2.登記收入")
        fmt.Println("                      3.登記支出")
        fmt.Println("                      4.退出軟件")
        print("請選擇(1-4):")
        fmt.Scanln(&key)
        switch key {
        case "1":
            if flag {
                fmt.Println("----------------------當前收支明細-----------------------")
                fmt.Println(details)
            } else {
                fmt.Println("當前沒有收支明細,來一筆吧")
            }
        case "2":
            fmt.Println("本次收入金額:")
            fmt.Scanln(&money)
            balance += money
            fmt.Println("本次收入說明:")
            fmt.Scanln(&note)
            details += fmt.Sprintf("\n  收入 \t%v\t\t  %v\t\t%v", balance, money, note)
            flag = true
        case "3":
            fmt.Println("本次支出金額:")
            fmt.Scanln(&money)
            if money > balance {
                fmt.Println("餘額不足!!!")
                break
            }
            balance -= money
            fmt.Println("本次收入說明:")
            fmt.Scanln(&note)
            details += fmt.Sprintf("\n  支出 \t%v\t\t  %v\t\t%v", balance, money, note)
            flag = true
        case "4":
            fmt.Println("你肯定要退出嗎?y/n")
            choice := ""
            for {
                fmt.Scanln(&choice)
                if choice == "y" || choice == "n" {
                    break
                }
                fmt.Println("您的輸入有誤!!請從新輸入!")
            }
            if choice == "y" {
                loop = true
            }
        default:
            fmt.Println("請輸入正確的選項")
        }

        if loop {
            break
        }
    }

}

初始金額爲10000。0,固然也能夠本身定義爲0.0。調試

啓動後的界面:
code

 

若是收支明細中沒有記錄,選擇1的話,會顯示「當前沒有收支明細,來一筆吧」對象

選擇2:blog

 

選擇3:(若是金額不夠,會顯示「當前餘額不足!」)開發

 

 選擇1:字符串

 

記錄了咱們的收入與支出,同時金額也在相應進行變化。it

選擇4:輸入y或n,若是沒輸對,就提示輸入錯誤;輸入y,則退出;輸入n,則返回;

相關文章
相關標籤/搜索