客户信息管理系统
- 涉及知识点:切片的插入、删除和替换;多对象协同工作
项目需求说明
- 模拟实现基于文本界面的《客户信息管理软件》
- 该软件能够实现对客户对象的插入、修改和删除(用切片实现),并能够打印客户明细表
- 主菜单页面
- 添加客户页面
- 修改客户界面
- 删除客户界面
- 客户列表界面
程序框架图
- 描述项目里面有哪些文件、文件与文件的的调用关系
客户信息管理系统程序框架图
- 1、完成:显示主菜单和退出软件
- 功能说明:当用户运行程序时,可以看到主菜单,当输入5时,可以退出该软件。
- 思路分析:编写customerView.go,另外可以把customerService.go和customer.go写上
- 代码实现
- customerManage/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,
}
}
-
-
- customerManage/service/customerService.go
package service
import (
"go_code/customerManage/model"
)
//该CustomerService,完成对Customer的操作,包括
//增删改查
type CustomerService struct{
customers []model.Customer
//声明一个字段,表示当前切片已经含有多少个客户
//该字段后面,还可以作为新客户的id+1
customerNum int
}
-
-
- customerManage/view/customerView.go
package main
import(
"fmt"
)
type customerView struct{
//定义必要的字段
key string //接收用户的输入
loop bool //表示是否循环显示主菜单
}
//显示主菜单
func (this *customerView)mainMenu(){
for{
fmt.Println("-------------客户信息管理软件------------")
fmt.Println("