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

建立一个公司网站 宣传企业文化优弊端网络服务协议需要交印花税吗

建立一个公司网站 宣传企业文化优弊端,网络服务协议需要交印花税吗,页面设计升级访问紧急通知,一流校建设网站家庭收支记账软件实现基本功能(先使用面向过程,后面改成面向对象)项目代码实现改进面向过程源码面向对象源码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://www.yayakq.cn/news/672863/

相关文章:

  • cms开源网站管理系统深圳做夜场做网站
  • 自助建站系统软件网络设置了代理是什么意思
  • 用按键精灵做网站wordpress搭建服务器
  • 云商网站建设重庆网站建设推广优化
  • 南平高速建设有限公司网站做网站时候图片和视频放在哪里
  • 东莞市凤岗建设局网站软件开发模型有几种
  • 天津网站排名wordpress自带有用参数
  • 移动网站开发环境 主流上海公布最新情况
  • 成品网站源码1688版本号做一个棋牌网站要多少钱
  • 建设银行商城网站软件设计的过程
  • 甘肃企业网站备案网页工具
  • 科技网站建设分析wordpress怎么设置广告位
  • 地产公司网站建设wordpress默认图像不显示
  • 长安商城网站建设qq推广开通
  • 手机网站怎么做301查找手机网站
  • 网站和域名北京网站建设价格
  • 某企业网站搜索引擎优化谷歌推广seo
  • 建设外国商城网站企业网站建设选题的依据及意义
  • 品牌高端网站注册会计师协会
  • 手机企业网站建设海口市住房和城乡建设局网站
  • 上海建溧建设集团有限公司网站游戏网站建设内容
  • 网站企业快速备案wordpress首页访问慢
  • 做公司英文网站沧州英文模板建站
  • 聊城做网站哪里好厦门市同安区建设局网站
  • 手机原理网站wordpress云建站教程
  • 做新闻封面的网站wordpress加速优化插件
  • 怎么设置网站字体网站建设公司需要icp证
  • 网站开发流程包括四川住房城乡建设官网
  • 网站管理后台怎么做采集网站seo
  • 小公司使用的网站开发蜂鸟摄影网