zoukankan      html  css  js  c++  java
  • Golang-demo练习

    main/main.go

    package main
    
    import (
    	"laurence/utils"
    )
    func main() {
    	//面向对象
    	familAccount := utils.NewFamilyAccount()
    	familAccount.MainMenu()
    }
    

    utils/familAccount.go 

    package utils
    import "fmt"
    type FamilAccount struct {
    	Option string `json:option`
    	Loop bool `json:loop`
    	Balance float64 `json:balance`
    	Money float64 `json:money`
    	Note string `json:note`
    	Flag bool `json:flag`
    	Detail string `json:detail`
    }
    //工厂模式返回一个指针给前端用
    func NewFamilyAccount() *FamilAccount {
    	return &FamilAccount{
    		Option: "",
    		Loop: true,
    		Balance: 10000.00,
    		Money: 0.00,
    		Note: "",
    		Flag: false,
    		Detail: "收支	账号余额	收支金额	说明
    ",
    	}
    }
    func (familAccount *FamilAccount) showDetail() {
    	if familAccount.Flag {
    		fmt.Println(familAccount.Detail)
    	}else{
    		fmt.Println("暂无记录!!!!!!!!!!")
    	}
    	fmt.Println()
    }
    func (familAccount *FamilAccount) Income() {
    	fmt.Print("本次收入金额:")
    	fmt.Scanln(&familAccount.Money)
    	fmt.Print("本次收入说明:")
    	fmt.Scanln(&familAccount.Note)
    	familAccount.Balance += familAccount.Money
    	//格式化拼接
    	familAccount.Detail += fmt.Sprintf("收入	%v		%v		%v
    ",familAccount.Balance,familAccount.Money,familAccount.Note) 
    	familAccount.Flag = true
    }
    func (familAccount *FamilAccount) Pay() {
    	fmt.Print("本次支出金额:")
    	fmt.Scanln(&familAccount.Money)
    	fmt.Print("本次支出说明:")
    	fmt.Scanln(&familAccount.Note)
    	if familAccount.Money > familAccount.Balance {
    		fmt.Print("尴尬,余额不足!!!!!!!!!!!!!!")
    	}
    	familAccount.Balance -= familAccount.Money
    	//格式化拼接
    	familAccount.Detail += fmt.Sprintf("支出	%v		%v		%v
    ",familAccount.Balance,familAccount.Money,familAccount.Note) 
    	familAccount.Flag = true
    }
    func (familAccount *FamilAccount) Exit() {
    	fmt.Print("您确定要退出吗? y/n:")
    	choice := ""
    	for {
    		fmt.Scanln(&choice)
    		if choice == "y" || choice == "n" {
    			break
    		}
    		fmt.Print("输入有误,请重新输入:")
    	}
    	if choice == "y" {
    		familAccount.Loop = false
    	}
    }
    func (familAccount *FamilAccount) MainMenu() {
    	for {
    		fmt.Println("----------家庭收支记账明细------------")
    		fmt.Println("             1 收支明细")
    		fmt.Println("             2 登记收入")
    		fmt.Println("             3 登记支出")
    		fmt.Println("             4 退    出")
    		fmt.Println("             请选择(1-4)")
    		fmt.Println("--------------------------------------")
    		fmt.Print("请选择您要操作的选项:")
    		fmt.Scanln(&familAccount.Option)
    		switch familAccount.Option {
    			case "1":
    				familAccount.showDetail()
    			case "2":
    				familAccount.Income()
    			case "3":
    				familAccount.Pay()
    			case "4":
    				familAccount.Exit()
    			default:
    				fmt.Println("输入有误,请重新选择:")
    		}
    		if !familAccount.Loop {
    			fmt.Println("欢迎下次光临,Goodbay!!!!!!!!!!!!")
    			break
    		}
    	}
    }
    //TODO
    //验证是否登录
    //完成转账功能
    

      

  • 相关阅读:
    第14周总结
    第十三周总结
    第十二周总结
    第十一周总结
    第十次助教小结
    第九次小结-关注的助教
    第八次点评
    助教总结
    助教小结13
    助教小结12
  • 原文地址:https://www.cnblogs.com/Essaycode/p/12677743.html
Copyright © 2011-2022 走看看