zoukankan      html  css  js  c++  java
  • go实现小项目

    1.家庭记账本【这是面向过程写法

    package main
    import "fmt"
    func main() {
        key:="";
        loop:=true;
        money:=0.0;
        banacle:=1000.00;
        notes:="";
        details:="";
        flag:=false;
        for {
            fmt.Println("
    -------------------家庭收支记账软件-----------------------");
            fmt.Println("                   1.收支明细");
            fmt.Println("                   2.登记收入");
            fmt.Println("                   3.登记支出");
            fmt.Println("                   4.退出软件");
            fmt.Println("请选择(1-4):");
            fmt.Scanln(&key);
            switch key {
            case "1":
                if flag {
                    fmt.Println("-------------------收支明细记录-----------------------");
                    fmt.Println("收支	账户余额	收支金额	说明");
                    fmt.Println(details);
                }else{
                    fmt.Println("当前没有收支明细...来一笔吧");
                }
    
            case "2":
                fmt.Println("本次收入:");
                fmt.Scanln(&money);
                banacle=banacle+money;//收入
                fmt.Println("收入来源是:");
                fmt.Scanln(&notes);
                details+=fmt.Sprintf("
    收入%12v	%10v	%12v",banacle,money,notes);
                flag=true;
            case "3":
                fmt.Println("本次支持金额:");
                fmt.Scanln(&money);
                banacle-=money;
                fmt.Println("本次支出说明");
                fmt.Scanln(&notes);
                details+=fmt.Sprintf("
    支出%12v	%10v	%12v",banacle,money,notes);
            case "4":
                //loop=false;
                fmt.Println("你确定要退出y/n");
                choice:="";
                for {
                    fmt.Scanln(&choice);
                    if choice == "y" || choice == "n" {
                        break;
                    }
                }
                if choice == "y" {
                    loop = false;
                }
            }
            if !loop {
                break;
            }
        }
    }

    2.面向对象写法[unitls包]

    package unitls
    import (
        "fmt"
        "strconv"
    )
    type Note struct {
        Money float64
        Banacle float64
        Desc string
    }
    //展示收支列表
    func (note Note) ShowList(details string){
        fmt.Println("-------------------收支明细记录-----------------------");
        fmt.Println("收支	账户余额	收支金额	说明");
        fmt.Println(details);
    }
    //添加收入方法
    func (note Note) AddData(money float64,desc string) string {
        details:=fmt.Sprintf("
    收入%12v	%10v	%12v",note.Banacle,money,desc);
        return details;
    }
    //减少收入
    func (note Note) DelData(money float64,desc string) string {
        note.Banacle, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", note.Banacle-money), 64)
        details:=fmt.Sprintf("
    支出%12v	%10v	%12v",note.Banacle,money,desc);
        return details;
    }
    //退出功能
    func (note Note) Exitprocess(flag * bool){
        fmt.Println("你确定要退出y/n:");
        choose:="";
        for {
            fmt.Scanln(&choose);
            if choose == "y" || choose=="n" {
                break;
            }else{
                fmt.Println("请选择正确信息");
            }
        }
        if choose == "y" {
            *flag = false;
        }
    }

     主程序

    package main
    import (
        "fmt"
        "unitls"
    )
    func main(){
        details:="";//描述列表
        note:=unitls.Note{Money: 0.00,Banacle: 1000.00,Desc: ""};
        key:="";
        loop:=true;
        money:=0.00;//接受输入交易
        desc:="";//描述
        for {
            showTitle();//展示内容
            fmt.Scanln(&key);
            switch key {
            case "1":
                    note.ShowList(details);
            case "2":
                    fmt.Println("本次收入:");
                    fmt.Scanln(&money);
                    fmt.Println("输入来源:");
                    fmt.Scanln(&desc);
                    note.Banacle= note.Banacle+money;
                    details+=note.AddData(money,desc);
            case "3":
                fmt.Println("本次支出:");
                fmt.Scanln(&money);
                fmt.Println("支出来源:");
                fmt.Scanln(&desc);
                details+=note.DelData(money,desc);
            case "4":
                note.Exitprocess(&loop);
            }
            if !loop {
                break;
            }
        }
    }
    func showTitle() {
        fmt.Println("
    -------------------家庭收支记账软件-----------------------");
        fmt.Println("                   1.收支明细");
        fmt.Println("                   2.登记收入");
        fmt.Println("                   3.登记支出");
        fmt.Println("                   4.退出软件");
        fmt.Println("请选择(1-4):");
    }

      

  • 相关阅读:
    正则表达式学习《一》
    vs2008添加模板方法
    MongoDB学习笔记《二》
    oracle存储过程错误分析
    最近一个星期的学习,比较杂乱
    C#中的委托和事件
    c++随机数字
    Delphi中的接口
    C# 泛型
    LoadString、LoadIcon和LoadCursor函数
  • 原文地址:https://www.cnblogs.com/zh718594493/p/14059914.html
Copyright © 2011-2022 走看看