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

一、项目需求

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

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

二、需求说明

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
邮箱:zhang@abc.com
---------------------添加完成---------------------

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


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

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

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

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


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

三、软件设计结构

该软件由以下三个模块组成:
这里写图片描述
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()方法的活动图
这里写图片描述

猜你喜欢

转载自blog.csdn.net/TDCQZD/article/details/81813954