*本文笔记参考:b站【尚硅谷】Golang入门到实战教程
1、项目需求分析
实现基于文本界面的《客户信息管理软件》,该软件能够实现对客户对象的插入、修改和删除(用切片实现),并能够打印客户明细表。
2、项目界面
项目采用分级菜单方式。
1)主菜单
---------------客户信息管理软件---------------
1 添加客户
2 修改客户
3 删除客户
4 客户列表
5 退出软件
请选择(1-5):
2)添加客户
请选择(1-5):1
------------------添加客户------------------
姓名:张三
性别:男
年龄:30
电话:010-56256789
邮箱:zhang@cvb.com
------------------添加完成------------------
3)修改客户
请选择(1-5):2
------------------修改客户------------------
请选择待修改客户编号(-1退出):1
姓名(张三):<直接回车表示不修改>
性别(男):
年龄(30):
电话(010-56256789):
邮箱(zhang@cvb.com):zsan@cvb.com
------------------修改完成------------------
4)删除客户
请选择(1-5):3
------------------删除客户------------------
请选择待删除客户编号(-1退出):1
确认是否删除(y/n):y
------------------删除完成------------------
5)客户列表
请选择(1-5):4
------------------客户列表------------------
编号 姓名 性别 年龄 电话 邮箱
1 张三 男 30 010-56256789 zhang@avb.com
2 李四 女 24 010-56256790 li@avb.com
3 王五 男 26 010-56256791 wang@avb.com
-----------------客户列表完成----------------
3、程序框架图
程序框图:分析该模块有多少个文件(类),各类之间的调用关系,程序员需要按照架构师要求进行分层。
【代码步骤3】customerView.go[界面]
1.显示界面
2.接收用户的输入
3.根据用户的输入,调用customerService的方法完成客户的管理(删改、显示)
|
|
|
【代码步骤2】customerService.go[处理业务逻辑]
1.对用户的各种操作
2.对用户的增删改、显示
3.声明一个customer的切片
|
|
|
【代码步骤1】customer.go[表示数据]model层----->包含编号、姓名、性别、年龄、电话、邮箱
1.表示一个客户
2.客户各种字段
4、代码实现
1)显示主菜单和退出软件
编写customerView.go,另外可以把customerService.go和customer.go写上。
//model/customer.go
package model
//声明一个Customer结构体,表示客户信息(包含编号、姓名、性别、年龄、电话、邮箱)
type Customer struct {
Id int
Name string
Gender string
Age int
Phone string
Email 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,
}
}
//service/customerService.go
package service
import "code/test1/model"
//完成对Customer的操作,包括增删改查
type CustomerService struct {
customers []model.Customer
//声明一个字段,表示当前切片含有多少个客户
//该字段后面还可以作为新客户的id(原来客户的数量+1)
customerNum int
}
//view/customerView.go
package main
import (
"fmt"
)
type customerView struct {
//定义必要的字段
key int //接收用户的输入
loop bool //是否退出循环
}
//显示主菜单
func (this *customerView) mainView() {
for this.loop == true {
fmt.Println("---------------客户信息管理软件---------------")
fmt.Println(" 1 添加客户")
fmt.Println(&