开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:客户管理系统-添加客户】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/626/detail/9722
客户管理系统-添加客户
内容介绍
一、功能说明
二、思路分析
三、代码实现
一、 功能说明
首先做一个用户分析,当用户输入以下选项时,菜单里,如果输入1的时候,就会出现以下的界面,输入新的客户的信息,把客户添加到客户切片里去。
界面:
添加客户:
姓名:张三
性别:男
年龄: 30
电话: 010-56253825
邮箱: zhang@abc. com
添加完成
二、思路分析
一旦要完成思路分析,一定要在相应的文件里编写相应的方法,然后
调用这个方法,完成这项功能。
1.customer[表示数据] model层
(1)表示一个客户
(2)客户各种字段
customer表示一个客户信息,因此它需要含有客户必须的各种字段
type Customer struct (
Id int
Name string
Genderstring...
写个方法,显示该用户的信息GetInfo
写了新的返回客户的方法NewCustomer2
2. customerService[处理业务逻辑]
(1)完成对用户的各种操作
(2)对客户的增,删除,修改,显示
(3)会声明一个customer的切片
显示客户列表
编写方法 List【返回客户信息,其实就是切片】
编写NewCustomerService 返回一个customerService实例添加客户。
编写方法Add[将新的客户加入到customers切片]
3. customerView.go[界面]V【含customerService字段】
(1)可以显示界面
(2)可以接收用户的输入
(3)根据用户的输入,调用customerService的方法完成客户的管理【修改,删除,显示等等】,它是调用。
编写一个方法
list去调用 customerService 的 List 方法,并显示客户列表
add方法去调用 customerService的Add方法,完成客户添加
二、 代码实现
1.stomerManage model/customer.go
首先找到 customerService,
//返回客户切片
func (this *customerService) List() [ ]model. Customer freturn this . customers
2.stomerManage service customerService.go
//添加客户到 customers 切片
func (this *customerService) Add customer Customer) bool (
this. customers = append(this . customers, customer )
return true
3. customerManage/service/customer View.go
//得到用户的输入,信息构建新的客户,并完成添加
func (this *customerView) add()(
fmt.Println("添加客户")
fmt.Println("姓名:")
name:=
fmt.Scanln(&name)
fmt.Println("性别:")
gender=
fmt.Scanln(&gender)
fmt.Println(“年龄:")
age := 0
fmt.Scanln(&age)
fmt.Println(”电话:"
phone:=
fmt.Scanln(&phone)
fmt.Println(”电邮:"
email:=
fmt.Scanln(&email)
//构建一个新的Customer实例
//注意:id号,没有让用户输入,id是唯一的,需要系统分配
//第二种创建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,
customer:=model.NewCustomer2(name, gender, age, phone,email)
//调用
this.customerService.Add(customer)
//返回客户切片
func (this *CustomerService) List() [ ]model.Customer
return this.customers
//添加客户到customers切片
//非常重要
func(this *CustomerService) Add(customer Customer) bool
//我们确定一个分配id的规则,就是添加的顺序
this.customerNum++
customer.Id = this.customerNum
this.customers = append(this.customers, customer)
return true
//调用
if this.customerService.Add(customer)
fmt.Println(”添加完成”)
else
fmt.Println(”添加失败”)
全部保存后,打开d盘,进入到所写文件中,输入cmd,go run.
请选择1-5,并逐步添加人物。
客户列表:
编号 |
姓名 |
性别 |
年龄 |
电话 |
邮箱 |
1 |
张三 |
男 |
20 |
112 |
ZS@sohu.com |
2 |
tom |
男 |
20 |
112 |
tom@sohu.com |
3 |
mary |
女 |
24 |
113 |
mary@qq.com |
客户列表完成
客户信息管理软件
1添加客户
2修改客户
3删除客户
4客户列表
5 退出
//显示主菜单
func (this *customerView) mainMenu()
for
fmt.Println("客户信息管理软件")
fmt.Println(" 1添加客户")
fmt.Println(”2修改客户")
fmt.Println(" 3删除客户")
fmt.Println(" 4 客 户列 表")
fmt.Println(" 5 退 出")
fmt.Print("请选择(1-5):
fmt.Scanln(&this.key)
switch this.key
//调用
case"1”:
this.add()
case"2”:
fmt.Printin("修改客户”)
case"3”:
fmt. Println("HằÈ")
case "4" :
this.list()
case"5":
this.loop = false
default :
fmt . Println(”你的输入有误,请重新输入...")
其中,case 是重点。调用 add 方法,才能看到直接添加的页面。