0
点赞
收藏
分享

微信扫一扫

go实现小项目

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

package main
import "fmt"
func main() {
key:="";
loop:=true;
money:=0.0;
banacle:=1000.00;
notes:="";
details:="";
flag:=false;
for {
fmt.Println("\n-------------------家庭收支记账软件-----------------------");
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("收支\t账户余额\t收支金额\t说明");
fmt.Println(details);
}else{
fmt.Println("当前没有收支明细...来一笔吧");
}

case "2":
fmt.Println("本次收入:");
fmt.Scanln(&money);
banacle=banacle+money;//收入
fmt.Println("收入来源是:");
fmt.Scanln(¬es);
details+=fmt.Sprintf("\n收入%12v\t%10v\t%12v",banacle,money,notes);
flag=true;
case "3":
fmt.Println("本次支持金额:");
fmt.Scanln(&money);
banacle-=money;
fmt.Println("本次支出说明");
fmt.Scanln(¬es);
details+=fmt.Sprintf("\n支出%12v\t%10v\t%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("收支\t账户余额\t收支金额\t说明");
fmt.Println(details);
}
//添加收入方法
func (note Note) AddData(money float64,desc string) string {
details:=fmt.Sprintf("\n收入%12v\t%10v\t%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("\n支出%12v\t%10v\t%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("\n-------------------家庭收支记账软件-----------------------");
fmt.Println(" 1.收支明细");
fmt.Println(" 2.登记收入");
fmt.Println(" 3.登记支出");
fmt.Println(" 4.退出软件");
fmt.Println("请选择(1-4):");
}

 

  

举报

相关推荐

0 条评论