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

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

开发者学堂课程【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 中的方法来完成相应的处理。

相关文章
|
8天前
|
存储 供应链 数据可视化
2024年采购管理新趋势:最适合记录和更新采购清单的在线看板工具
在现代企业中,采购部门的任务高效协作与管理至关重要。本文介绍了六款适合采购部门的在线看板工具:板栗看板、Trello、Miro、Zoho Projects、Airtable和TeamGantt,分别从关键功能、优势、劣势及适用对象等方面进行了详细对比,帮助企业选择最合适的工具,提升采购效率和透明度。
2024年采购管理新趋势:最适合记录和更新采购清单的在线看板工具
|
1月前
|
存储 数据采集 安全
客户管理CRM系统排行:使用最广泛的5款测评
在数字化时代,CRM系统成为企业提升销售效率、优化客户体验和增强竞争力的重要工具。本文综合评测了市场上五款广泛使用的CRM系统:销售易、天衣云、简道云、红圈和金蝶云之家,从推荐理由、产品功能、优势特色到适用企业,为读者提供全面参考。这些系统各具特色,企业应根据自身需求选择合适的CRM系统,以提升运营效率和客户满意度。
|
5月前
|
监控 数据挖掘 数据安全/隐私保护
ERP系统中的客户投诉管理与解决方案解析
【7月更文挑战第25天】 ERP系统中的客户投诉管理与解决方案解析
447 1
|
5月前
|
前端开发
会员系统02--,后台管理系统,包含网站运营,统计分析,用户中心,财务管理,资金明细,系统管理,参数配置,后台管理系统可以观看配置资料,广告位的相关资料,客服工单最主要是客户反馈给我们的问题,登录统计
会员系统02--,后台管理系统,包含网站运营,统计分析,用户中心,财务管理,资金明细,系统管理,参数配置,后台管理系统可以观看配置资料,广告位的相关资料,客服工单最主要是客户反馈给我们的问题,登录统计
|
7月前
|
数据中心
客户信息管理软件的实现
客户信息管理软件的实现
|
Java 关系型数据库 MySQL
删除客户 | 学习笔记
快速学习删除客户.
删除客户 | 学习笔记
|
Scala 开发者
CRM 项目-实现了显示客户列表 | 学习笔记
快速学习 CRM 项目-实现了显示客户列表
CRM 项目-实现了显示客户列表 | 学习笔记
|
网络协议 测试技术 Go
客户管理系统-删除客户|学习笔记
快速学习客户管理系统-删除客户
客户管理系统-删除客户|学习笔记
|
Scala 开发者 索引
CRM 项目-删除客户 | 学习笔记
快速学习 CRM 项目-删除客户