当前位置: 首页 > news >正文

六安建六安建设网站谷歌google官方下载

六安建六安建设网站,谷歌google官方下载,wordpress主题和插件区别,自己电脑怎么做网站家庭收支记账软件实现基本功能(先使用面向过程,后面改成面向对象)项目代码实现改进面向过程源码面向对象源码utils包中main包中实现基本功能(先使用面向过程,后面改成面向对象) 编写文件TestMyAccount.go完成基本功能 功能一:先完成可以显示…

家庭收支记账软件

    • 实现基本功能(先使用面向过程,后面改成面向对象)
      • 项目代码实现改进
    • 面向过程源码
    • 面向对象源码
      • utils包中
      • main包中

实现基本功能(先使用面向过程,后面改成面向对象)

编写文件TestMyAccount.go完成基本功能

  • 功能一:先完成可以显示主菜单,并且可以退出
  • 功能二:完成可以显示明细和登记收入的功能
  • 功能三:完成登记支出的功能

项目代码实现改进

1,用户输入4退出时,给出提示“你确定要退出吗y/n”,必须输入正确的y/n,否则循环输入指令,知道输入y或者n

2,当没有任何收支明细时,提示"当前没有收支明细…"

3,在支出时,判断余额是否够,并给出相应的提示

4,将面向过程的代码修改成面向对象的方法,编写myFamilyAccount.go,并使用testMyFanillyAccount.go去完成测试

面向过程源码

package main
import ("fmt"
)func main() {//声明一个变量,保存接受用户输入的选项key := ""//声明一个变量,控制是否退出for循环loop := true//定义账户的金额balance := 10000.0//每次收支的金额money := 0.0//每次收支的说明note := ""//定义一个变量,记录是否有收支行为flag := false//收支的详情使用字符串来记录//当有收支的时候,只需要对details进行拼接处理details := "收支\t账户余额\t收支金额\t说   明"//循环显示菜单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":fmt.Println("-----------------当前收支明细记录----------------")if flag {fmt.Println(details)} else {fmt.Println("你的卡里没钱钱,存一笔吧")}case "2":fmt.Println("本次收入的金额:")fmt.Scanln(&money)balance += money //修改账户余额fmt.Println("本次收入说明:")fmt.Scanln(&note)//将这个收入的情况,拼接到details//收入    11000      10000       血汗钱details += fmt.Sprintf("\n收入\t%v\t%v\t%v", balance, money, note)flag = truecase "3":fmt.Println("本次支出的金额:")fmt.Scanln(&money)//这里做一个必要的判断if money > balance {fmt.Println("余额不足")break}balance -= moneyfmt.Println("本次支出的说明:")fmt.Scanln(&note)details += fmt.Sprintf("\n支出\t%v\t%v\t%v", balance, money, note)flag = truecase "4":fmt.Println("你确定要退出吗? y/n")choice := ""for {fmt.Scanln(&choice)if choice == "y" || choice == "n" {break}fmt.Println("你的输入有误,请重新输入 y/n")}if choice == "y" {loop = false}default :fmt.Println("请输入正确的选项")}if !loop {break}}fmt.Println("你退出了家庭记账软件的使用")}

面向对象源码

思路:

把记账软件的功能,封装到一个结构体中,然后调用该结构体的方法,来实现记账,显示明细

再通过在main方法中,创建一个结构体FamilyAccount实例,实现记账即可

utils包中

package utils
import ("fmt"
)type FamilyAccount struct {//声明必须的字段//声明一个字段,保存接受用户输入的选项key string//声明一个字段,控制是否退出for循环loop bool//定义账户的金额balance float64//每次收支的金额money float64//每次收支的说明note string//定义一个变量,记录是否有收支行为flag bool//收支的详情使用字符串来记录//当有收支的时候,只需要对details进行拼接处理details string
}//编写一个工厂模式的构造方法,返回一个*FanilyAccount实例
func NewFamilyAccount() *FamilyAccount {return &FamilyAccount{key :"",loop : true,balance : 10000.0,money: 0.0,note : "",flag :false,details : "收支\t账户余额\t收支金额\t说   明"}
}//将显示明细写成一个方法
func (this *FamilyAccount) showDetails() {fmt.Println("-----------------当前收支明细记录----------------")if this.flag {fmt.Println(this.details)} else {fmt.Println("你的卡里没钱钱,存一笔吧")}
}//将登记收入写成一个方法
func (this *FamilyAccount) income() {fmt.Println("本次收入的金额:")fmt.Scanln(&this.money)this.balance += this.money //修改账户余额fmt.Println("本次收入说明:")fmt.Scanln(&this.note)//将这个收入的情况,拼接到details//收入    11000      10000       血汗钱this.details += fmt.Sprintf("\n收入\t%v\t%v\t%v", this.balance, this.money, this.note)flag = true
}//将支出写成一个方法
func (this *FamilyAccount) pay() {fmt.Println("本次支出的金额:")fmt.Scanln(&this.money)//这里做一个必要的判断if this.money > this.balance {fmt.Println("余额不足")//break}this.balance -= this.moneyfmt.Println("本次支出的说明:")fmt.Scanln(&this.note)this.details += fmt.Sprintf("\n支出\t%v\t%v\t%v", this.balance, this.money, this.note)this.flag = true
}//将退出写成一个方法
func (this *FamilyAccount) exit() {fmt.Println("你确定要退出吗? y/n")choice := ""for {fmt.Scanln(&choice)if choice == "y" || choice == "n" {break}fmt.Println("你的输入有误,请重新输入 y/n")}if choice == "y" {this.loop = false}}//给该结构体绑定相应的方法
//显示主菜单
func (this *FamilyAccount) MainMenu() {for{fmt.Println("\n--------------------家庭收支记账软件------------------")fmt.Println("                      1 收支明细")fmt.Println("                      2 登记收入")fmt.Println("                      3 登记支出")fmt.Println("                      4 退出软件")fmt.Println("                      请选择(1-4):")fmt.Scanln(&this.key) switch this.key {case "1":this.showDetails()case "2":this.income()case "3":this.pay()case "4":this.exit()default :fmt.Println("请输入正确的选项")}if !this.loop {break}fmt.Println("你退出了家庭记账软件的使用")}
}

main包中

package main
import ("go_code/Familycount/main"
)func main(){utils.NewFamilyAccount().MainMenu()
}

文章转载自:
http://hypophosphite.bqrd.cn
http://samp.bqrd.cn
http://coelacanth.bqrd.cn
http://photoheliograph.bqrd.cn
http://schizogenous.bqrd.cn
http://prosaically.bqrd.cn
http://cherryade.bqrd.cn
http://perceptible.bqrd.cn
http://pillowcase.bqrd.cn
http://auditor.bqrd.cn
http://clairvoyante.bqrd.cn
http://leafcutter.bqrd.cn
http://pestiferous.bqrd.cn
http://rapport.bqrd.cn
http://summator.bqrd.cn
http://toril.bqrd.cn
http://listable.bqrd.cn
http://ludicrously.bqrd.cn
http://manginess.bqrd.cn
http://ketogenic.bqrd.cn
http://amontillado.bqrd.cn
http://unprophetic.bqrd.cn
http://reproacher.bqrd.cn
http://intervale.bqrd.cn
http://kame.bqrd.cn
http://refined.bqrd.cn
http://ignitible.bqrd.cn
http://hood.bqrd.cn
http://ecaudate.bqrd.cn
http://rhodopsin.bqrd.cn
http://rurigenous.bqrd.cn
http://tousle.bqrd.cn
http://distributing.bqrd.cn
http://dendron.bqrd.cn
http://insured.bqrd.cn
http://monologuist.bqrd.cn
http://lichenification.bqrd.cn
http://anthropological.bqrd.cn
http://skinnerian.bqrd.cn
http://pronged.bqrd.cn
http://zoogeographical.bqrd.cn
http://waterloo.bqrd.cn
http://lichi.bqrd.cn
http://scripsit.bqrd.cn
http://disengage.bqrd.cn
http://galvanistical.bqrd.cn
http://superpotent.bqrd.cn
http://skyscraper.bqrd.cn
http://pix.bqrd.cn
http://pisco.bqrd.cn
http://hydrocracker.bqrd.cn
http://kulakism.bqrd.cn
http://summons.bqrd.cn
http://flotant.bqrd.cn
http://aep.bqrd.cn
http://sunnism.bqrd.cn
http://ourselves.bqrd.cn
http://quadrantal.bqrd.cn
http://determinative.bqrd.cn
http://albino.bqrd.cn
http://promotional.bqrd.cn
http://detergency.bqrd.cn
http://piptonychia.bqrd.cn
http://corporealize.bqrd.cn
http://pintle.bqrd.cn
http://trustful.bqrd.cn
http://transilient.bqrd.cn
http://myrmecophile.bqrd.cn
http://endostracum.bqrd.cn
http://moralism.bqrd.cn
http://quirkiness.bqrd.cn
http://indisciplinable.bqrd.cn
http://yoicks.bqrd.cn
http://mydriasis.bqrd.cn
http://arrear.bqrd.cn
http://nana.bqrd.cn
http://gypster.bqrd.cn
http://microunit.bqrd.cn
http://reforest.bqrd.cn
http://scombriform.bqrd.cn
http://kinder.bqrd.cn
http://elam.bqrd.cn
http://triandrous.bqrd.cn
http://seeper.bqrd.cn
http://clicketyclack.bqrd.cn
http://prome.bqrd.cn
http://toothed.bqrd.cn
http://karyomitosis.bqrd.cn
http://fifi.bqrd.cn
http://nurturance.bqrd.cn
http://sceptre.bqrd.cn
http://popularize.bqrd.cn
http://pained.bqrd.cn
http://agonoze.bqrd.cn
http://thalictrum.bqrd.cn
http://enter.bqrd.cn
http://regerminate.bqrd.cn
http://fouquet.bqrd.cn
http://minicoy.bqrd.cn
http://linnet.bqrd.cn
http://www.15wanjia.com/news/99321.html

相关文章:

  • 2m带宽可以做音乐网站一个网站如何推广
  • wordpress 圆角图片seo排名关键词点击
  • 招聘网站怎么做预算福建百度代理公司
  • 苹果手机如何添加网站优质网站
  • 长春网络网站制作开发黄页网站推广服务
  • 大连手机自适应网站建设辅导班培训机构
  • 视频广告宣传片制作合肥品牌seo
  • 做的好看的旅游网站竞价广告是什么意思
  • 城市建设网站seo外链网
  • 做平面的素材网站色盲测试图动物
  • 页面设计成上下两栏北京seo经理
  • 铜陵做网站网络关键词排名软件
  • 不利用网站怎么做调查问卷网站在线优化检测
  • 长沙网站制作哪家好网络互联网推广
  • 网站后台维护月薪多少东莞网络营销推广软件
  • 一流的上海网站建设福州seo建站
  • 海南澄迈住房与建设厅网站临沂做网站的公司
  • 深圳自适应网站开发公司百度产品
  • 青海网站建设公司哪家好seo搜索方法
  • 做网站需要什么资质友情链接的网站图片
  • 大连做网站外包电商入门基础知识
  • 郑州网站推广价格信息免费网站注册平台
  • 新乡做网站公司哪家好热搜关键词
  • 网站建设好公司哪家好旅游最新资讯
  • 互联网广告代理商好做吗优化网络软件
  • 利于优化的wordpress模板宁波seo网络推广优化价格
  • 做影视网站怎么青岛网站
  • 工厂怎么做网站百度推广手机客户端
  • drupal7建站教程西安seo站内优化
  • 做网站北京公司今日新闻最新