main / main.go
importação principal do pacote ( "laurence / utils" ) func main () { // familAccount: = utils.NewFamilyAccount () familAccount.MainMenu () }
utils / familAccount.go
utilitários de pacotes importam "fmt" tipo FamilAccount struct { Cadeia de opções `json: opção` Loop bool` json: loop` Equilíbrio float64` json: balance` Dinheiro float64` json: money` Nota string `json: note` Flag bool` json: flag` Detalhe string `json: detail` } // O modo de fábrica retorna um ponteiro para o front-end usando a função NewFamilyAccount () * FamilAccount { return & FamilAccount { Option:" ", Loop: true, Saldo: 10000,00, Dinheiro: 0,00, Nota:" ", Sinalizador: false, Detalhe:" Receita e despesa \ tConta da conta \ tConta e despesas \ tDescrição \ n ", } } func (familAccount * FamilAccount) showDetail () { if familAccount.Sinalizar { fmt.Println (familAccount.Detail) } else { fmt.Println ("Nenhum registro !!!!!!!!!!") } fmt.Println () } func (familAccount * FamilAccount) Renda () { fmt. Print ("Valor dessa receita:") fmt.Scanln (& familAccount.Money) fmt.Print ("Descrição dessa renda:") fmt.Scanln (& familAccount.Note) familAccount.Balance + = familAccount.Money // Format splicing familAccount.Detail + = fmt.Sprintf ( "receita \ V% T \ T \ T% V \ T \ T% V \ n-", familAccount.Balance, familAccount.Money, familAccount.Note) familAccount.Flag = true } func (familAccount * FamilAccount) Pay () { fmt.Print ("Este valor da despesa:") fmt.Scanln (& familAccount.Money) fmt.Print ("Descrição desta despesa: ") fmt.Scanln (& familAccount.Note) se familAccount.Money> familAccount.Balance { fmt.Print ("Saldo inadequado e insuficiente !!!!!!!!!!!!!!") } familAccount.Balance- = familAccount. Dinheiro // Formatar a costura familAccount.Detail + = fmt.Sprintf ("Despesas \ t% v \ t \ t% v \ t \ t% v \ n", familAccount.Balance, familAccount.Money, familAccount.Note) familAccount .Flag = true } func (familAccount * FamilAccount) Exit () { fmt.Print ("Tem certeza de que deseja sair? S / n:") escolha: = "" para { fmt.Scanln (& choice) if choice == " y "|| escolha ==" n "{ break } fmt.Print (" A entrada está incorreta, digite novamente: ") } se escolha ==" y "{ familAccount.Loop = false } } func (familAccount * FamilAccount) MainMenu () { para { fmt.Println ("---------- Detalhes da contabilidade da receita e despesas da família ------------") fmt. Println ("1 Detalhes da receita e despesa") fmt.Println ("2 receitas registradas") fmt.Println ("3 despesas registradas") fmt.Println ("4 saídas") fmt.Println ("Selecione (1-4) ") fmt.Println (" -------------------------------------- ") fmt.Print ("Selecione a opção que você deseja operar:") fmt.Scanln (& familAccount.Option) alterna familAccount.Option { case "1": familAccount.showDetail () case "2": familAccount.Income () case "3": caso "4" de familAccount.Pay () : familAccount.Exit () padrão: fmt.Println ("A entrada está incorreta, selecione novamente:") } se! familAccount.Loop { fmt.Println ("Bem-vindo à próxima vez, Goodbay !!!!!!!!!!!!") interrompa } } } // TODO // Verificar login // concluir a função de transferência