欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

GO语言项目实战之客户信息管理软件(1)项目分析

程序员文章站 2022-05-08 14:29:35
...

一、项目需求

模拟实现一个基于文本界面的《客户信息管理软件》
进一步掌握编程技巧和调试技巧,熟悉面向对象编程
主要涉及以下知识点:

  • 切片的插入、删除和替换
  • 多对象协同工作
  • 分层

二、需求说明

1、模拟实现基于文本界面的《客户信息管理软件》。
该软件能够实现对客户对象的插入、修改和删除(用切片实现),并能够打印客户明细表。
项目采用分级菜单方式。主菜单如下:

-----------------客户信息管理软件-----------------
                 1    
                 2    
                 3    
                 4    
                 5 退           
                 请选择(1-5):_

2、每个客户的信息被保存在Customer对象中。
3、以一个Customer类型的数组来记录当前所有的客户
4、每次“添加客户”(菜单1)后,客户(Customer)对象被添加到数组中。
5、每次“修改客户”(菜单2)后,修改后的客户(Customer)对象替换数组中原对象。
6、每次“删除客户”(菜单3)后,客户(Customer)对象被从数组中清除。
7、执行“客户列表 ”(菜单4)时,将列出数组中所有客户的信息

8、“添加客户”的界面及操作过程如下所示:

                   请选择(1-5):1
---------------------添加客户---------------------
姓名:张三
性别:男
年龄:30
电话:010-56253825
邮箱:aaa@qq.com.com
---------------------添加完成---------------------

9、“修改客户”的界面及操作过程如下所示:


                   请选择(1-5):2
---------------------修改客户---------------------
请选择待修改客户编号(-1退出):1
姓名(张三):<直接回车表示不修改>
性别(男):
年龄(30):
电话(010-56253825):
邮箱(aaa@qq.com):aaa@qq.com.com
---------------------修改完成---------------------

10、“删除客户”的界面及操作过程如下所示:

                请选择(1-5):3
---------------------删除客户---------------------
请选择待删除客户编号(-1退出):1
确认是否删除(Y/N):y
---------------------删除完成---------------------

11、“客户列表”的界面及操作过程如下所示:


                请选择(1-5):4
---------------------------客户列表---------------------------
编号  姓名       性别    年龄   电话            邮箱
 1    张三             30     010-56253825   aaa@qq.com.com
 2    李四             23     010-56253825    aaa@qq.com.com
 3    王芳             26     010-56253825   aaa@qq.com.com
-------------------------客户列表完成-------------------------

三、软件设计结构

该软件由以下三个模块组成:
GO语言项目实战之客户信息管理软件(1)项目分析
CustomerView为主模块,负责菜单的显示和处理用户操作;
CustomerService为Customer对象的管理模块,内部用切片管理一组Customer对象,并提供相应的添加、修改、删除和获取方法,供CustomerView调用;
Customer为对象,用来封装客户信息。

1、Customer结构体的设计

1)Customer为结构体,用来封装客户信息
该类封装客户的以下信息:

id:客户编号
–   name :客户姓名
–   gender  :性别
–   age          :年龄
–   phone:电话号码
–   email :电子邮箱

2)提供各字段的get/set方法
3)提供所需的工厂方法 (可自行确定)
2、CustomerService结构体的设计
CustomerService为Customer对象的管理模块,内部用数组管理一组Customer对象
本封装以下信息:

–   customers:用来保存客户对象的切片
–   int total = 0                 :记录已保存客户对象的数量
该结构体至少提供以下方法:
–   CustomerList(totalCustomer int) 
–   addCustomer(customer Customer) 
–   deleteCustomer(index int)
–   getAllCustomers() 
–   getCustomer(index int) 

3、enterMainMenu()方法的活动图
GO语言项目实战之客户信息管理软件(1)项目分析