题意:
玩具公司请你设计一款app,用于管理公司收集的弹珠、分析数据和阐释它们多样的分布。你需要显示每个成员的弹珠数、每种大小的弹珠数、每种样式的弹珠数等。 俱乐部一共有7名成员,分别是Scott Malcolm Tony Kevin Julia John和Paul。游戏只统计这七名成员的弹珠信息。每名成员的弹珠分别存储在计算机化的集合中,方便使用。
解析:
背景:
每颗弹珠存储以下信息:直径以毫米作为单位(double型)、花纹(enumeration类型)、材料(enumeration类型)、新旧(bool型)。弹珠集合按照直径的升序排列存储信息。 你将收到一个存储俱乐部收藏的弹珠基本信息的txt文件。
任务:
回答以下问题:
a.对于七名成员的弹珠集合,你将使用哪种底层数据结构(数组还是链表)?说明原因。
b.对于七名成员的弹珠集合,你将使用哪种抽象数据类型(二叉树、一般树、数组、栈、优先队列、双端队列、集合、列表等)?说明原因。
c.对于俱乐部的弹珠集合,你将使用哪种底层数据结构(数组还是链表)?说明原因。
d.对于俱乐部的弹珠集合,你将使用哪种抽象数据类型(二叉树、一般树、数组、栈、优先队列、双端队列、集合、列表等)?说明原因。
完成下列函数:
1、get_member()——查找俱乐部成员——以一名成员名字为输入,在MEMBERS数组中查找并返回索引值(数组不存在该名字返回 -1)—— 调用strcmp()函数
2、add_existing()——加入一颗弹珠到成员弹珠集合——以一名成员的非空弹珠集合地址和一颗弹珠为输入,按直径升序把该弹珠加入该成员的弹珠集合中 —— 利用指针插入新结点
3、add_marble()——加入一颗弹珠到俱乐部弹珠集合——以一名成员的名字和弹珠的一颗弹珠为输入,如果该成员没有这个弹珠就把成员名字和弹珠存入club集合中,否则调用add_existing()函数
4、process_category()——统计与分类——以一名成员的弹珠集合为输入,接受以下4个参数分别对应不同的分类操作,返回
‘t’——计算弹珠集合的总数
‘m’——计算不同材质的弹珠数量——材质有plastic,wooden,glass之别
‘c’——计算不同花纹的弹珠数量——花纹有plain,swirled,cats-eye之别
‘a’——计算新老弹珠的数量——弹珠有old,new之别
5、show_graph()——可视化展现统计结果——以上述4个参数为输入,输出一串字符表示数量大小,分别统计所有类型并输出最多的成员名字
涉及知识点:
抽象数据类型,数组,文件读取
更多可加微信讨论
微信号:alexa_au