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