资源描述:
《电子乐谱数据结构》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、电了乐谱数据结构设想树型结构:多首歌曲数据结构Typedefstructmultisong{intnumber;//歌曲号SYSTEMS^systems〃歌曲链表}MULTISONG;一曲钢琴曲数据结构Typedefstructsystem{STAVESstaves;}SYSTEM五线谱数据结构typedefstructstave{inttop,left;//上、左边界intwidth,height;〃尺寸intstavespace;〃五线谱谱线的间隔VOICEPARTSvoiceparts;//五线谱
2、声部链表}STAVE声部数据结构typedefstructvoicepart{inttop,left;〃上、左边界intwidth,height;〃尺寸MEASURESmeasures;//小节链表}VOICEPART小节数据结构typedefstructmeasure{PEDIGREE^pedigrees;//谱号SIGATUREsignatures;//调号BATbats;//拍号CHORDSchords;//音符链表BARLINEbarlines;//小节线}MEASURE;谱号数据结构typed
3、efstructpedigree)PEDIGREE_TPYEtype;〃谱号类型intleft,right;//中心坐标位置}PEDIGREE;调号数据结构typedefstructsignature{inttype;〃调号值(・7—7)intleftx,rightx;〃中心位置坐标}SIGNATURE;拍号数据结构typedefstructbat{inttop,bottom;〃拍号的上、下数字intposx,posy//中心位置坐标}BAT小节线数据结构typedefstructbatlineBART
4、LINE_TPYEtype;//小节线的类型intposx,posy;//小节线的中心位置BOOLdecoration;//有无装饰符号intdecorationtype;//小节线装饰符号类型,如延长音,换气符号等。}BATLINE;咅符数据结构typedefstructchord{BOOLvirtualstem;//标示音符有无符干BOOLstemup://记录符干的方向intnaugdots;//记录附点数intnflags;//记录符尾个数intstartx,starty,length;//符干
5、起点位置和长度NOTESnotesJCHORD;符头对象数据结构typedefstructnote)NOTE.TYPEtype://记录符头形状(空心或实心)和休止符类型intposx,poxy;//记录符头的谱线中心位置ACCID_TYPEtype;//记录变咅记号类型;升咅、降咅和还原记号intnflags;//记录符尾个数intdisx,disy;〃记录变咅记号位置}NOTE;符头队列的定义Constrontintmaxsze=maxlen〃定义为队列的最人长度typdefstructnotes{
6、NOTEnote[maxsizej;intfront;intrear;}NOTESTypedefCTypedPtrArrayNOTES〃符头队列枚举型变量定义Typedefenumpedigree{treble,Bass,C1....)PEDIGREE_TPYE如果是多个五线谱,在第一层增加一个五线谱链表一首歌曲文件的结构:五线谱1(声部1(小节1(咅符对象1(符头对象1.……符头对象N,音符对象其它属性).......音符对象N小节对象的其它属性).......小节N声
7、部的其它属性)……声部2)••…五线谱N小节数据结构2typedefstructmeasure{PEDIGREE^pedigrees;〃谱号SIGATUREsignatures;〃调号BATbats;//拍号CHORDS^chords;//音符链表BARLINEbarlines;//小节线CONNECTSconnects;〃音符连接线TRAILBRIDGES^trailbridges;〃尾桥队列SCORELINES^scorelines〃增加的五线谱线队列BOOLrepeat;〃有无重复符号intrep
8、eattype;//重复符号的类型intstartx,starty,endx,endy;〃重复符号的起点,终点}MEASURE;typedefstructconnect!BOOLtype;//连接线的类型,ture完全在一个小节内intstartx,starty,;〃连接线起点位置intendx,endy;〃连接线终点位置}CONNECTTypedefstructtrailbridge}intstartx,starty,;〃尾桥起点位置in