客户管理系统-显示客户列表|学习笔记

简介: 快速学习客户管理系统-显示客户列表

开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:客户管理系统-显示客户列表】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/626/detail/9721


客户管理系统-显示客户列表

 

内容介绍

一、 功能说明

二、 思路分析

三、 代码实现

 

项目功能实现-完成显示客户列表的功能

一、 功能说明

-----------------------------客户列表-----------------------------

编号   姓名    性别   年龄   电话          邮箱

 1    张三        30   010-56253825  abc@email.com

 2    李四        23   010-56253825  lisi@ibm.com

 3    王芳        26   010-56253825  wang@163.com 

----------------------------客户列表完成--------------------------

当输入要显示客户列表时,能够显示所有客户信息。

 

二、 思路分析

需要编写 CustomerView 和 CustomerService

1. customerService

(1) 显示客户列表,编写方法List【返回客户信息,其实就是切片】;

(2) 编写 NewCustomerService 返回一个 customerService 实例。

2. customerView

编写一个方法 list 去调用 customerService 的 List 方法,并显示客户列表。

 

三、 代码实现(改变如下)

1. customerManage/model/customer.go

增加了返回用户信息的方法GetInfo

//返回用户的信息,格式化的字符串

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

}

(注:输入一个customer,会返回格式化后的客户信息)

2. customerManage/service/customerService.go

增加了两个方法

(1) //编写一个方法,可以返回*CustomerService(注:指针类型)

func NewCustomerService() * CustomerService{

(2) //为了能够看到有客户在切片中,初始化一个客户

customerService := &CustomerService{}  (注:创建一个对象并初始化)

customerService.customerNum = 1  (注:默认值)

customer := model.NewCustomer(1,”张三”,“男”,20,“112”,zs@sohu.com) 创建一个初始化客户并加入新的客户;由于是在model中创建的,所以要写成model.NewCustomer;“()”表示方法,不能使用“{}”)

customerService.customer = append(customerService.customers,customer)  (注:给这个切片加了一个customer,再传给customer)

return customerService

}

(3) //返回客户切片   (注:写list方法)

func (this * CustomerService) List() []model,Customer{

return this.customers   (注:返回的类型是切片类型)

}

3. customerManage/view/customerView.go

(1) //增加一个字段 customerService

customerService *service.CustomerService(注:在service包里面,所以是service.CustomerService,“*”表示指针类型)

(注:customerView.go要调用customerService,所以必须要有一个customerService字段才可以实现调用,否则不能满足面向对象的要求)

(2) //显示所有的客户信息

func (this *customerView) list()

(注:在customerView中写一个list去调用customerService中的list方法,来完成显示功能)

//首先,获取到当前所有的客户信息(在切片中)

customers := this.customerService.List()

//显示

fmt.Printfln(“-----------------客户列表---------------”)

fmt.Printfln(“编号\t姓名\t性别\t年龄\t电话\t邮箱”)  

(注:表头,用“\t”标比较整洁)

for i := 0; i< len(customers); i++{  (注:用for循环进行遍历)

//fmt.Printfln(customers[i].Id,“\t”,customers[i].Name…)

(注:这样写比较复杂,比较low)

fmt.Printfln(customers[i].GetInfo())

(注:在customer.go中写一个方法,显示该用户的信息,用GetInfo)

}

fmt.Printf(“\n----------------客户列表完成-------------\n\n”)

(“\n”用来换行,使得输出结果更整齐,方便查看)

(3)

case “4”:

this.list()

(注:this 指代 customerView,customerView 中含有list方法,list方法又去调用了customerService 中的 list。这样做很有结构性,扩展性、可读性都非常好)

image.png (注:添加新客户时,要先输入到切片中进行保存)

(4)

//在main函数中,创建一个customerView,并运行显示主菜单

(注:结构体创建完毕,要实例化后才能被调用)

customerView := customerView{

key :””(注:初始值为空字符)

loop : true,  (注:默认返回主菜单)

}(注:这里是给出前面的参数)

//这里完成对customView结构体的customerService字段的初始化(注:创建customerView的时候顺便创建)

customerView.customerService = service.NewCustomerService

(注:在service包里,不需要其他参数,所以已经完成了初始化)

//显示主菜单

customerView.mainMenu()

小结:

写程序要有结构和框架的概念,如果程序比较大但不用框架图的话程序容易看不懂。客户管理系统中,customerView 是界面,customerService 是处理业务逻辑的,真正干活的,customer 是数据。customerService 中的切片维护了所有的客户信息,customerView 是调用 customerService 中的方法来完成相应的处理。

相关文章
|
2天前
|
UED
点晴OA办公系统如何实现业务表单的自定义设计
在点晴OA办公系统中,业务表单的自定义设计是一项重要的功能,它能够满足企业不同的业务需求,提高工作效率和协作能力。 随着企业的发展,不同的业务部门需要处理各种类型的表单,如人事表单、财务表单、项目表单等。如果这些表单无法根据实际需求进行自定义设计,就会导致工作效率低下、信息不准确、协作困难等问题。因此,实现业务表单的自定义设计是提高企业办公效率和协作能力的重要手段。
26 0
|
9月前
|
存储
客户信息管理软件的实现
客户信息管理软件的实现
|
11月前
|
存储 数据采集 搜索推荐
电商数据监测:如何获取想要的电商平台数据?
电商数据监测:如何获取想要的电商平台数据?
|
搜索推荐 SEO
外贸业务客户开发「途径详情」
扩大找客户的各种途径和方法,例如通过skype. facebook, google. B2B平台、展会,外贸开发客户软件,广交会买家数据,或者是通过海关数据找客户。
165 0
|
Java 关系型数据库 MySQL
删除客户 | 学习笔记
快速学习删除客户.
删除客户 | 学习笔记
|
Scala 开发者
CRM 项目-实现了显示客户列表 | 学习笔记
快速学习 CRM 项目-实现了显示客户列表
67 0
CRM 项目-实现了显示客户列表 | 学习笔记
|
Scala 开发者 索引
CRM 项目-删除客户 | 学习笔记
快速学习 CRM 项目-删除客户
99 0
|
监控 搜索推荐 大数据
电商项目之用户分析、主题活动、风控模块、销售模块讲解|学习笔记
快速学习电商项目之用户分析、主题活动、风控模块、销售模块讲解
104 0
|
网络协议 测试技术 Go
客户管理系统-删除客户|学习笔记
快速学习客户管理系统-删除客户
287 0
客户管理系统-删除客户|学习笔记
|
网络协议 测试技术 Go
客户管理系统-修改客户和作业|学习笔记
快速学习客户管理系统-修改客户和作业
102 0