--------------------------------------------------------总代码在最下面-----------------------------------------------------------
(1)好友管理系统中不仅需要保存好友名称,还需要保存分组以及分组中的好友,因此,我们需要明确以什么结构保存数据。根据功能的描述,我们可以将数据以['王五', '张三', '赵柳', {'家人': ['李四','刘备']},{'同事': ['李龙','张飞']}]结构保存。
(2)功能展示。功能展示用于向用户展示该程序中所包含的功能,以及接收用户输入的功能选项,实现用户人机交互的入口。
(3)添加好友。该功能逻辑相对简单,只需要将用户输入的好友名称添加到好友列表中即可。
(4)获取所有好友。该功能用于获取好友列表中的所有数据,包括分组中的数据,便于后期对好友列表中的数据操作。
(5)获取所有分组及其分组好友。该功能用于获取好友列表中分组的名称和分组的好友,不包括未分组的好友。
(6)获取分组名称。该功能仅仅用于获取所有的分组名称,用于后期判断用户输入的分组名是否合法。
(7)删除好友。此功能分为两种情况进行判断,一是:删除的好友未在分组内,二是:删除的好友在分组内。如果删除的好友未在分组内,那么直接在好友列表中删除;如果删除的好友在分组内,那么需要先获取所有分组和分组内的好友,根据用户输入的好友名称在对应的分组内进行删除。
(8)备注好友。备注好友功能与删除好友逻辑类似,需要分为两种情况修改好友的备注名称,若修改备注的好友未在分组内,则直接获取好友名称并对其重新赋值;若修改备注的好友在分组内,则需要找到该好友对应的分组并进行修改。
(9)展示好友。展示好友功能分为展示所有好友和展示指定分组的好友,展示所有好友,直接调用已经定义好的获取所有好友方法即可,展示指定分组的好友,需要根据用户输入的分组名进行展示分组内的好友名称。
(10)好友分组。好友分组功能是将好友划分为不同的组,在使用好友分组功能时,会询问用户是否创建新的分组,如果用户选择创建新的分组,那么由用户输入新的分组名并创建,新的分组会以{'家人': ['李四','刘备']}结构添加到好友列表中;如果用户选择使用已存在的分组,那么需要由用户输入具体的分组名和具体的好友名,在将好友名添加到分组前需要分别对分组名和好友名进行正确性校验,只有当分组名和好友名均存在时,才可以将好友名移动到指定的分组中。
(11)所有功能完成后,需要将定义的类实例化并调用入口函数
(初始化界面)
期望功能实现:
['王五', '张三', '赵柳', {'家人': ['李四','刘备']},{'同事': ['李龙','张飞']}]
(1)添加好友
*因为前面的功能都会用到好友分组所有先行介绍好友分组
(5)好友分组
其中有三种方式,第一种为创建新的分组,创建分组时会让