主题:关于双向链表的程序,等待解救
C多D若E米F发G骚A拉B稀
用ABCDEFG定义七个音符,每个音节可以有3个,4个,5个等等若干个节拍,每个节拍可以是一个音符,或者是一个休止符,一个乐谱可以是这样的
|C C C D|E _ D _|C E D D|
下面就是程序了
1.设计一个光标,可以由左向右移动,此光标可以选择一个小节或者一个音符。
2.通过光标可以修改音符
3.可以插入一个空白小节,这个小节或者是在原来两个小节之中,或者是在最后一个小节之后
4.实现一个或者几个小节的复制,剪切,粘贴
为了实现复制粘贴,我们将光标移至要复制的第一个音节,然后指出要复制的音节数,之后再将光标移动,我们选择是要插入光标之前还是之后
5.为了实现取消剪切和粘贴命令,我们利用在一个堆栈的缓存
关于乐谱的显示:同时显示三行,这三行分别是光标所在行,和光标所在前一行和后一行,一行最多显示24个音符,每小节必须在一行完成
可预见的补充方程
1.光标可垂直移动
2.读乐谱是能够按周一定的速度自动读取,光标可根据一定的速度自动移动
3.可以保存乐谱在某个文件夹下,并且可以打开一个我们存储的乐谱
4.管理取消修改音符,之后取消剪切粘贴
我是这么想的,乐谱是一个指针,指向一个双向链表,每个小节就是一个双向的链表(包括三部分,第一部分是指向前一个音节,第二部分是音符,第三部分是指向后一个音节)
现在令我想不明白的几点
1.移动光标完全迷茫
2.我将光标移至某处,如何显示出来我要进行的操作?
3.还有关于显示三行完全迷茫,怎么就显示三行,显示24个音符了?
我知道如果求程序的话会很无耻。。。先解决了这两个问题也好。。能加扣扣点播一下更是感激不尽。。。
我是这么设置这个乐谱的种类的 typedef struct par {char note[]; struct par *prece, *next; }partition,*Partition;
用ABCDEFG定义七个音符,每个音节可以有3个,4个,5个等等若干个节拍,每个节拍可以是一个音符,或者是一个休止符,一个乐谱可以是这样的
|C C C D|E _ D _|C E D D|
下面就是程序了
1.设计一个光标,可以由左向右移动,此光标可以选择一个小节或者一个音符。
2.通过光标可以修改音符
3.可以插入一个空白小节,这个小节或者是在原来两个小节之中,或者是在最后一个小节之后
4.实现一个或者几个小节的复制,剪切,粘贴
为了实现复制粘贴,我们将光标移至要复制的第一个音节,然后指出要复制的音节数,之后再将光标移动,我们选择是要插入光标之前还是之后
5.为了实现取消剪切和粘贴命令,我们利用在一个堆栈的缓存
关于乐谱的显示:同时显示三行,这三行分别是光标所在行,和光标所在前一行和后一行,一行最多显示24个音符,每小节必须在一行完成
可预见的补充方程
1.光标可垂直移动
2.读乐谱是能够按周一定的速度自动读取,光标可根据一定的速度自动移动
3.可以保存乐谱在某个文件夹下,并且可以打开一个我们存储的乐谱
4.管理取消修改音符,之后取消剪切粘贴
我是这么想的,乐谱是一个指针,指向一个双向链表,每个小节就是一个双向的链表(包括三部分,第一部分是指向前一个音节,第二部分是音符,第三部分是指向后一个音节)
现在令我想不明白的几点
1.移动光标完全迷茫
2.我将光标移至某处,如何显示出来我要进行的操作?
3.还有关于显示三行完全迷茫,怎么就显示三行,显示24个音符了?
我知道如果求程序的话会很无耻。。。先解决了这两个问题也好。。能加扣扣点播一下更是感激不尽。。。
我是这么设置这个乐谱的种类的 typedef struct par {char note[]; struct par *prece, *next; }partition,*Partition;