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

伊犁哈萨克自治州网站建设_网站建设公司_移动端适配_seo优化

海尔网站推广方法,免费域名的网站,公司有网站有什么好处,快手直播间挂人气自助网站项目 文章目录 项目1.项目开发流程图2.家庭收支记账软件项目2#xff09;项目代码实现3#xff09;具体功能实现 3.客户信息管理系统1#xff09;项目需求说明2#xff09;界面设计3#xff09;项目框架图4#xff09;流程5#xff09;完成显示客户列表的功能6#xff…项目 文章目录 项目1.项目开发流程图2.家庭收支记账软件项目2项目代码实现3具体功能实现 3.客户信息管理系统1项目需求说明2界面设计3项目框架图4流程5完成显示客户列表的功能6添加客户功能7删除客户功能8修改客户的功能9完整代码的展示如下 1.项目开发流程图 2.家庭收支记账软件项目 1需求说明 模拟实现基于文本界面的《家庭记账软件》 该软件能够记录家庭的收入、支出并能够打印收支明细表 项目采用分级菜单的方式主菜单如下 --------家庭收支记账软件-------1.收支明细2.登记收入3.登记支出4.退出请选择(1-4): 2项目代码实现 实现基本功能先使用面向过程后面改成面向对象 编写文件TestMyAccount.go 完成基本功能 功能1先完成可以显示主菜单并且可以退出功能2完成可以显示明细和登记收入的功能功能3完成了登记支出的功能 3具体功能实现 功能1先完成可以显示主菜单并且可以退出 思路分析给出的界面完成主菜单的显示当用户输入4的时候就退出 package main import (fmt )func main(){//声明一个变量保存接收用户输入的选项key : //声明一个变量控制是否退出for循环loop : true//显示这个主菜单for {fmt.Println(--------家庭收支记账软件---------)fmt.Println( 1.收支明细)fmt.Println( 2.登记收入)fmt.Println( 3.登记支出)fmt.Println( 4.退出软件)fmt.Print(请选择(1-4))fmt.Scanln(key)switch key {case 1 :fmt.Println(1.收支明细)case 2 :fmt.Println(2.登记收入)case 3 :fmt.Println(3.登记支出)case 4 :loop false default :fmt.Println(请输入正确的选项) }if !loop {break}}fmt.Println(你退出了家庭记账软件的使用) }功能2完成可以显示明细和登记收入的功能 思路分析: 1.因为需要显示明细我们定义一个变量details string来记录 2.还需要定义变量来记录余额(balance)每次支出的收支的金额(money)以及收支说明(note) 走代码 //声明一个变量统计余额balance : 10000.0//每次收支的金额money : 0.0//每次收支的说明note : //收支的详情//当有收支发生的时候就对details进行拼接处理details : 收支\t账户余额\t收支金额\t说明在case的操作 case 2 :fmt.Println(本次收入金额)fmt.Scanln(money)balance money //修改账户余额fmt.Println(本次收入的说明)fmt.Scanln(note)//将这个收入情况拼接到details变量当中details fmt.Sprintf(\n收入\t%v\t%v\t%v,balance,money,note)功能3完成登记支出的功能 思路分析登记支出的功能和登记收入的功能类似做一些修改即可 case 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)项目改进 1.用户输入4时给出提示你确定要退出吗y/n,必须输入正确的y/n否则循环输入指令直到输入y或者n case 4 :fmt.Println(您确定要退出吗 y/n)choice : for {fmt.Scanln(choice)if choice y || choice n{ //输了y/n就break出去break}fmt.Println(您的输入有误请重新输入 y/n)}if choice y {loop false } 2.当没有任何收支明细时提示“当前没有收支明细。。。来一笔把!” case 1 :fmt.Println(------------当前收支明细记录--------)if flag {fmt.Println(details)}else{fmt.Println(您当前没有支出记录来一笔吧)}3.在支出时判断余额是否够并给出相应的提示 case 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 true面向过程的家庭记账收支软件全部代码 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.Print(请选择(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变量当中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{ //输了y/n就break出去break}fmt.Println(您的输入有误请重新输入 y/n)}if choice y {loop false }default :fmt.Println(请输入正确的选项) }if !loop {break}}fmt.Println(你退出了家庭记账软件的使用) }4.将面向过程的代码改为面向对象的方法编写myFamilyAccount.go,并使用testMyFamilyAccount.go去完成测试。 思路分析 把记账软件的功能封装到一个结构体中然后调用该结构体的方法来实现记账显示明细就可以了结构体的名字为FamilyAccount 再通过main方法中创建一个结构体FamilyAccount实例实现记账即可 代码实现代码不需要重新写只需要引用上侧代码 package objectTestAcc import (fmt )type FamilyAccount struct {//声明必须字段//声明一个字段保存接收用户输入的选项key string//声明一个字段控制是否退出for循环loop bool//声明一个字段统计余额balance float64//每次收支的金额money float64//每次收支的说明note string//定义一个字段记录是否有收支的行为flag bool//收支的详情//当有收支发生的时候就对details进行拼接处理details string } //编写一个构造方法返回一个FamilyAccount实例 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(您当前没有支出记录来一笔吧)} }//将登记收入写成一个方法和*FamilyAccount绑定 func (this *FamilyAccount) Income(){fmt.Println(本次收入金额)fmt.Scanln(this.money)this.balance this.money //修改账户余额fmt.Println(本次收入的说明)fmt.Scanln(this.note)//将这个收入情况拼接到details变量当中this.details fmt.Sprintf(\n收入\t%v\t%v\t%v,this.balance,this.money,this.note)this.flag true } //将支出也绑定到一个方法当中 func (this *FamilyAccount) Pay(){fmt.Println(本次支出的金额)fmt.Scanln(this.money)//这里需要做出一个必要的判断if this.money this.balance {fmt.Println(余额不足)}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{ //输了y/n就break出去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.Print(请选择(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}} } 建立一个main方法 package main import (fmtgo_code/project/objectTestAcc )func main() {fmt.Println(这个是面向对象的方式完成)objectTestAcc.NewFamilyAccount().MainMenu()} 3.客户信息管理系统 1项目需求说明 模拟实现基于文本界面的《客户信息管理软件》 该软件能够实现对客户对象的插入、修改和删除用切片实现并能够打印客户明细表 多个对象协同工作 2界面设计 添加客户界面 修改客户界面 删除客户界面 客户列表的界面 3项目框架图 4流程 功能说明 当用户运行程序可以看到主菜单当输入5时可以退出该软件 思路分析 编写customerView.go另外可以把customer.go和customerDervice.go协商 代码实现 customerManager/model/customer.go package model // import ( // fmt // ) //声明一个customer结构体表示一个客户信息 type Customer struct {Id intName stringGender stringAge intPhone stringEmail string }//编写一个工厂模式返回一个Customer的实例func NewCustomer(id int,name string, gender string,age intphone string,email string) Customer {return Customer{Id : id,Name : name,Gender : gender,Age : age,Phone : phone,Email : email,}} customerManagerservice/customerService.go package service import (go_code/project/customerManager/model )//该CustomerService ,完成对Customer的操作包括增删改查 type CustomerService struct {customers []model.Customer//声明一个字段表示当前切片含有多少客户//该字段后面还可以作为新客户的id1customerNum int }customerManager/view/customerView.go package main import (fmt )type customerView struct {//定义必要字段key string //接收用户输入loop bool //是否循环显示菜单}//显示主菜单 func (this *customerView) mainView() {for{fmt.Println(--------客户信息管理系统------------)fmt.Println( 1.添加客户 )fmt.Println( 2.修改客户 )fmt.Println( 3.删除客户 )fmt.Println( 4.客户列表 )fmt.Println( 5.退出 )fmt.Println(请选择(1-5): )fmt.Scanln(this.key)switch this.key {case 1:fmt.Println(添加客户)case 2:fmt.Println(修改客户)case 3:fmt.Println(删除客户)case 4:fmt.Println(客户列表)case 5:this.loop falsedefault :fmt.Println(你的输入有误请重新输入...) }if !this.loop {break}}fmt.Println(你退出了客户关系管理系统的使用) } func main() {//在主函数中创建一个customerView并运行显示主菜单...customerView : customerView{key : ,loop : true, }//显示主菜单customerView.mainView() } 5完成显示客户列表的功能 思路分析 代码实现 customerManager/model/customer.go package model import (fmt ) //声明一个customer结构体表示一个客户信息 type Customer struct {Id intName stringGender stringAge intPhone stringEmail string }//编写一个工厂模式返回一个Customer的实例func NewCustomer(id int,name string, gender string,age int,phone string,email string) Customer {return Customer{Id : id,Name : name,Gender : gender,Age : age,Phone : phone,Email : email,} } //增加了这个方法 //返回用户的信息,格式化的字符串 func (this Customer) GetInfo() string{info : fmt.Sprintf(%v\t%v\t%v\t%v\t%v\t%v\t,this.Id,this.Name,this.Gender,this.Age,this.Phone,this.Email)return info } customerManagerservice/customerService.go package service import (go_code/project/customerManager/model )//该CustomerService ,完成对Customer的操作包括增删改查 type CustomerService struct {customers []model.Customer//声明一个字段表示当前切片含有多少客户//该字段后面还可以作为新客户的id1customerNum int }//编写一个方法可以返回一个*customerService实例 func NewCustomerService() *CustomerService {//为了可以看到客户在切片中我们初始化一个客户customerService : CustomerService{}customerService.customerNum 1customer : model.NewCustomer(1,张三,男,20,112,zssohu.com)customerService.customers append(customerService.customers ,customer)return customerService }//返回客户切片 func (this *CustomerService) List()[]model.Customer{return this.customers } customerManager/view/customerView.go package main import (fmtgo_code/project/customerManager/service )type customerView struct {//定义必要字段key string //接收用户输入loop bool //是否循环显示菜单//增加一个字段customerServicecustomerService *service.CustomerService }//显示所有的客户信息 func (this *customerView) list(){//首先获取到当前所有的客户信息在切片中customers : this.customerService.List()//显示fmt.Println(----------客户列表--------------)fmt.Println(编号\t姓名\t性别\t年龄\t电话\t邮箱)for i :0;ilen(customers);i {fmt.Println(customers[i].GetInfo())}fmt.Printf(\n--------客户列表完成------------\n\n) }//显示主菜单 func (this *customerView) mainView() {for{fmt.Println(--------客户信息管理系统------------)fmt.Println( 1.添加客户 )fmt.Println( 2.修改客户 )fmt.Println( 3.删除客户 )fmt.Println( 4.客户列表 )fmt.Println( 5.退出 )fmt.Println(请选择(1-5): )fmt.Scanln(this.key)switch this.key {case 1:fmt.Println(添加客户)case 2:fmt.Println(修改客户)case 3:fmt.Println(删除客户)case 4:this.list()case 5:this.loop falsedefault :fmt.Println(你的输入有误请重新输入...) }if !this.loop {break}}fmt.Println(你退出了客户关系管理系统的使用) } func main() {//在主函数中创建一个customerView并运行显示主菜单...customerView : customerView{key : ,loop : true, }//完成对customerView结构体的customerService字段的初始化customerView.customerService service.NewCustomerService()//显示主菜单customerView.mainView() } 6添加客户功能 功能说明 思路分析 代码实现 需要编写CustomerView和customerServiceCustomer类 规定新添加的学院的id就是他是第几个加入的 customerManager/model/customer.go //编写一个工厂模式返回二种Customer的实例方法不带id func NewCustomer2(name string, gender string,age int,phone string,email string) Customer {return Customer{Name : name,Gender : gender,Age : age,Phone : phone,Email : email,} }customerManagerservice/customerService.go 增加一个方法 //添加客户到customer切片中 func (this *CustomerService) Add(customer model.Customer) bool{//我们确定一个分配id的规则就是添加的顺序this.customerNum customer.Id this.customerNumthis.customers append(this.customers,customer)return true } customerManager/view/customerView.go 编写一个add方法调用servic蹭的Add() //得到用户的输入信息构建新的客户并完成添加 func (this *customerView) add() {fmt.Println(------------添加客户------------)fmt.Println(姓名:)name : fmt.Scanln(name)fmt.Println(性别:)gender : fmt.Scanln(gender)fmt.Println(年龄:)age : 0fmt.Scanln(age)fmt.Println(电话号码:)phone : fmt.Scanln(phone)fmt.Println(电邮:)email : fmt.Scanln(email)//构建一个新的Customer实例//注意id号没有让用户输入id号是唯一的让系统分配即可customer : model.NewCustomer2(name,gender,age,phone,email)//调用if this.customerService.Add(customer) {fmt.Println(------------添加完成------------)}else{fmt.Println(------------添加失败------------)} } 下面的switch方法也要改一下 case 1:this.add()7删除客户功能 功能说明 思路分析 需要编写CustomerView和CustomerService 代码实现 customerManager/model/customer.go:无变化 customerManagerservice/customerService.go 增加了这两个方法一个删除一个查找id //根据id删除客户从切片中删除 func (this *CustomerService) Delete(id int )bool {index :this.FindById(id)//如果index -1说明没有这个客户if index -1 {return false}//如何从切片中删除一个元素this.customers append(this.customers[:index],this.customers[index1:]...)return true}//根据Id查找客户在在切片对应中的下标,返回-1 func (this *CustomerService) FindById(id int) int {//默认为-1index : -1//遍历this.customers切片for i :0;i len(this.customers);i {if this.customers[i].Id id {//找到了index i}}return index } customerManager/view/customerView.go 增加这个方法 //得到用户输入的id删除该id对应的客户 func (this *customerView) delete() {fmt.Println(------------删除客户------------)fmt.Println(请选择待删除的客户编号(-1退出))id :-1fmt.Scanln(id)if id -1 {return //放弃删除操作}fmt.Println(确认是否删除(Y/N): )choice : fmt.Scanln(choice)if choice y || choice Y {//调用service中的delete方法if this.customerService.Delete(id) {fmt.Println(------------删除成功------------)}else{fmt.Println(------------删除失败输入的id号不存在------------)}} } 8完善退出确认功能 功能说明 要求用户在退出时提示“是否退出(Y/N),用户必须输入y/n否则循环提示 思路分析需编写CustomerView 代码实现 在customerManager/view/customerView.go增加这个方法 //退出软件 func (this *customerView) exit(){fmt.Println(确定是否退出(Y/N): )for {fmt.Scanln(this.key)if this.key Y || this.key y || this.key N || this.key n{break}fmt.Println(您的输入有误请重新输入(Y/N) : )}if this.key Y || this.key y {this.loop false} } 然后在switch中修改一下 case 5:this.exit()8修改客户的功能 功能说明根据id进行对客户的修改操作 思路依旧在customerService和customerView中进行编写操作 代码实现 customerManagerservice/customerService.go //根据id进行修改客户信息的操作 func (this *CustomerService) Update(customer model.Customer) bool {index :this.FindById(customer.Id)//如果index -1说明没有这个客户if index -1 {return false}//将customer插入到指定的位置并对customers进行更新操作,就将原来位置的customer用一个新的customer进行替换操作this.customers append(append(this.customers[:index],customer),this.customers[index1:]...)return true }//根据Id查找客户在在切片对应中的下标,返回-1 func (this *CustomerService) FindById(id int) int {//默认为-1index : -1//遍历this.customers切片for i :0;i len(this.customers);i {if this.customers[i].Id id {//找到了index i}}return index }customerManager/view/customerView.go //修改客户的操作 func (this *customerView) update() {fmt.Println(------------修改客户------------)fmt.Println(请选择修改客户的编号(-1的话就退出): )id : -1fmt.Scanln(id)if id -1 {return}fmt.Println(姓名:)name : fmt.Scanln(name)fmt.Println(性别:)gender : fmt.Scanln(gender)fmt.Println(年龄:)age : 0fmt.Scanln(age)fmt.Println(电话号码:)phone : fmt.Scanln(phone)fmt.Println(电邮:)email : fmt.Scanln(email)//构建一个新的Customer实例//注意id号没有让用户输入id号是唯一的让系统分配即可customer : model.NewCustomer(id,name,gender,age,phone,email)//调用if this.customerService.Update(customer) {fmt.Println(------------修改成功------------)}else{fmt.Println(------------修改失败------------)} }再外加一个简单的登录操作使得项目更加完善 在customerManager/view/customerView.go中进行编写 //简单登录功能的时间 func (this *customerView) Login (){account :pwd :for {fmt.Println(请输入账号 )fmt.Scanln(account)fmt.Println(请输入密码)fmt.Scanln(pwd)if account 7758258 pwd 111{fmt.Println(恭喜你正在进入系统)break}fmt.Println(您的输入的账号或者密码有误请重新输入: ) }this.mainView() } func main() {//在主函数中创建一个customerView并运行显示主菜单...customerView : customerView{key : ,loop : true, }//完成对customerView结构体的customerService字段的初始化customerView.customerService service.NewCustomerService()//显示主菜单customerView.Login() }9完整代码的展示如下 customerManager/model/customer.go package model import (fmt ) //声明一个customer结构体表示一个客户信息 type Customer struct {Id intName stringGender stringAge intPhone stringEmail string }//编写一个工厂模式返回一个Customer的实例 func NewCustomer(id int,name string, gender string,age int,phone string,email string) Customer {return Customer{Id : id,Name : name,Gender : gender,Age : age,Phone : phone,Email : email,} }//编写一个工厂模式返回二种Customer的实例方法不带id func NewCustomer2(name string, gender string,age int,phone string,email string) Customer {return Customer{Name : name,Gender : gender,Age : age,Phone : phone,Email : email,} }//返回用户的信息,格式化的字符串 func (this Customer) GetInfo() string{info : fmt.Sprintf(%v\t%v\t%v\t%v\t%v\t%v\t,this.Id,this.Name,this.Gender,this.Age,this.Phone,this.Email)return info } customerManagerservice/customerService.go package service import (go_code/project/customerManager/model )//该CustomerService ,完成对Customer的操作包括增删改查 type CustomerService struct {customers []model.Customer//声明一个字段表示当前切片含有多少客户//该字段后面还可以作为新客户的id1customerNum int }//编写一个方法可以返回一个*customerService实例 func NewCustomerService() *CustomerService {//为了可以看到客户在切片中我们初始化一个客户customerService : CustomerService{}customerService.customerNum 1customer : model.NewCustomer(1,张三,男,20,112,zssohu.com)customerService.customers append(customerService.customers ,customer)return customerService }//返回客户切片 //一定要使用指针的方式 func (this *CustomerService) List()[]model.Customer{return this.customers }//添加客户到customer切片中 //必须要用指针的方式保证一直用的都是一个CustomerService func (this *CustomerService) Add(customer model.Customer) bool{//我们确定一个分配id的规则就是添加的顺序this.customerNum customer.Id this.customerNumthis.customers append(this.customers,customer)return true }//根据id删除客户从切片中删除 func (this *CustomerService) Delete(id int )bool {index :this.FindById(id)//如果index -1说明没有这个客户if index -1 {return false}//如何从切片中删除一个元素this.customers append(this.customers[:index],this.customers[index1:]...)return true}//根据id进行修改客户信息的操作 func (this *CustomerService) Update(customer model.Customer) bool {index :this.FindById(customer.Id)//如果index -1说明没有这个客户if index -1 {return false}//将customer插入到指定的位置并对customers进行更新操作,就将原来位置的customer用一个新的customer进行替换操作this.customers append(append(this.customers[:index],customer),this.customers[index1:]...)return true }//根据Id查找客户在在切片对应中的下标,返回-1 func (this *CustomerService) FindById(id int) int {//默认为-1index : -1//遍历this.customers切片for i :0;i len(this.customers);i {if this.customers[i].Id id {//找到了index i}}return index } customerManager/view/customerView.go package main import (fmtgo_code/project/customerManager/servicego_code/project/customerManager/model )type customerView struct {//定义必要字段key string //接收用户输入loop bool //是否循环显示菜单//增加一个字段customerServicecustomerService *service.CustomerService }//显示所有的客户信息 func (this *customerView) list(){//首先获取到当前所有的客户信息在切片中customers : this.customerService.List()//显示fmt.Println(----------客户列表--------------)fmt.Println(编号\t姓名\t性别\t年龄\t电话\t邮箱)for i :0;ilen(customers);i {fmt.Println(customers[i].GetInfo())}fmt.Printf(\n--------客户列表完成------------\n\n) }//得到用户的输入信息构建新的客户并完成添加 func (this *customerView) add() {fmt.Println(------------添加客户------------)fmt.Println(姓名:)name : fmt.Scanln(name)fmt.Println(性别:)gender : fmt.Scanln(gender)fmt.Println(年龄:)age : 0fmt.Scanln(age)fmt.Println(电话号码:)phone : fmt.Scanln(phone)fmt.Println(电邮:)email : fmt.Scanln(email)//构建一个新的Customer实例//注意id号没有让用户输入id号是唯一的让系统分配即可customer : model.NewCustomer2(name,gender,age,phone,email)//调用if this.customerService.Add(customer) {fmt.Println(------------添加完成------------)}else{fmt.Println(------------添加失败------------)} }//修改客户的操作 func (this *customerView) update() {fmt.Println(------------修改客户------------)fmt.Println(请选择修改客户的编号(-1的话就退出): )id : -1fmt.Scanln(id)if id -1 {return}fmt.Println(姓名:)name : fmt.Scanln(name)fmt.Println(性别:)gender : fmt.Scanln(gender)fmt.Println(年龄:)age : 0fmt.Scanln(age)fmt.Println(电话号码:)phone : fmt.Scanln(phone)fmt.Println(电邮:)email : fmt.Scanln(email)//构建一个新的Customer实例//注意id号没有让用户输入id号是唯一的让系统分配即可customer : model.NewCustomer(id,name,gender,age,phone,email)//调用if this.customerService.Update(customer) {fmt.Println(------------修改成功------------)}else{fmt.Println(------------修改失败------------)} }//得到用户输入的id删除该id对应的客户 func (this *customerView) delete() {fmt.Println(------------删除客户------------)fmt.Println(请选择待删除的客户编号(-1退出))id :-1fmt.Scanln(id)if id -1 {return //放弃删除操作}fmt.Println(确认是否删除(Y/N): )choice : for {fmt.Scanln(choice)if choice y || choice Y || choice n || choice N{break}fmt.Println(您的输入有误请重新输入(Y/N): )}if choice y || choice Y {//调用service中的delete方法if this.customerService.Delete(id) {fmt.Println(------------删除成功------------)}else{fmt.Println(------------删除失败输入的id号不存在------------)}} else{this.mainView()} }//退出软件 func (this *customerView) exit(){fmt.Println(确定是否退出(Y/N): )for {fmt.Scanln(this.key)if this.key Y || this.key y || this.key N || this.key n{break}fmt.Println(您的输入有误请重新输入(Y/N) : )}if this.key Y || this.key y {this.loop false} }//显示主菜单 func (this *customerView) mainView() {for{fmt.Println(--------客户信息管理系统------------)fmt.Println( 1.添加客户 )fmt.Println( 2.修改客户 )fmt.Println( 3.删除客户 )fmt.Println( 4.客户列表 )fmt.Println( 5.退出 )fmt.Println(请选择(1-5): )fmt.Scanln(this.key)switch this.key {case 1:this.add()case 2:this.update()case 3:this.delete()case 4:this.list()case 5:this.exit()default :fmt.Println(你的输入有误请重新输入...) }if !this.loop {break}}fmt.Println(你退出了客户关系管理系统的使用) }//简单登录功能的时间 func (this *customerView) Login (){account :pwd :for {fmt.Println(请输入账号 )fmt.Scanln(account)fmt.Println(请输入密码)fmt.Scanln(pwd)if account 7758258 pwd 111{fmt.Println(恭喜你正在进入系统)break}fmt.Println(您的输入的账号或者密码有误请重新输入: ) }this.mainView() } func main() {//在主函数中创建一个customerView并运行显示主菜单...customerView : customerView{key : ,loop : true, }//完成对customerView结构体的customerService字段的初始化customerView.customerService service.NewCustomerService()//显示主菜单customerView.Login() } 10项目展示 1.登录 2.客户列表 3.添加客户 4.修改客户 5.删除客户 6.退出
http://www.lebaoying.cn/news/32406.html

相关文章:

  • 站内推广有哪些方式医院网站建设方案大全
  • wordpress .沧州seo公司
  • 塘沽网站开发影视公司起名
  • 平面设计展示网站做网站的程序员工资大约月薪
  • 罗湖高端网站设计广州游戏软件开发公司有哪些
  • 免费三网合一网站系统asp网站怎么改成中英双语
  • 南昌网站排名自己的网站怎么做排名
  • 电子商务网站建设的书手机建模软件
  • 可以自己做logo的网站dedecms 食品网站
  • 做动画网站公司海安县城乡建设局网站
  • 海南房产网站制作用哪个网站做简历更好
  • 网站找建站公司郑州新一网站建设
  • 建立网站功能组织部信息化建设官方网站
  • 网站编辑工作内容wordpress登录下载
  • 网站优化北京seo渠道是什么意思
  • c2c网站免费建设企业网站系统cms
  • 湛江网站设计模板视频东风多利卡道路清障车做网站
  • 山西城乡和住房建设厅网站电商培训基地
  • 金融企业网站制作帮别人做网站市场价
  • 在建设部网站呢李可以看出需要什么时候考试wordpress 搜索制作
  • 织梦系统网站打开速度慢网页设计属于ui范围吗
  • 深圳最好的营销网站建设公司湛江市住房和城乡建设网站
  • 免费服务器建站广州排名网站关键词优化
  • 梅林 做服务器 网站dede网站站内推广方法
  • 化妆品企业网站建设的缺点html5网站动态效果
  • 用lnmp做网站wordpress拉
  • 网站建设做网站好吗建筑网片计算公式详解
  • 郑州做网站推广地网站开发的外文翻译
  • 专业做网站建设建站成都圣都装饰装修公司
  • 陵县网站建设网站301做排名