題意:
玩具公司請你設計一款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微信