//声明部分 #include #include #define LENTH 300//音长标准 struct music { unsigned tune;//音调 unsigned tone;//音色 unsigned hold;//音长 }; typedef struct music* song;//结构体指针 static int size;//静态变量 void init(song S,int *I);//初始化结构体 void play(song S);//播放歌曲 int record(void);//曲目 void play_adv(song S);//高级播放 song test(void);//测试歌曲 song test_adv(void);//测试歌曲-高级 song happy(void);//欢乐颂 song star_adv(void);//小星星-高级 song sky(void);//天空之城 song mate(void);//同桌的你 song liangzu(void);//梁祝 //主函数部分 int main() { char c; printf("*******曲目********\n" "[1].欢乐颂\n" "[2].小星星\n" "[3].天空之城\n" "[4].同桌的你\n" "[5].梁祝\n" "[0].测试音调\n" "******************\n"); do{ printf("\n"); switch(record())//曲目选择 { case 1: puts("--欢乐颂--"); play(happy());break; case 2: puts("--小星星--"); play_adv(star_adv());break; case 3: puts("--天空之城--"); play(sky());break; case 4: puts("--同桌的你--"); play(mate());break; case 5: puts("--梁祝--"); play(liangzu());break; case 0: puts("--测试发声器--"); play(test());break; default: puts("--高级测试发音--"); play_adv(test_adv()); } printf("要继续吗(q退出)?"); c=getch();//自动获取输入 }while(c!='q'); puts("\n--结束--\n"); return 0; } void init(song S,int *I)//初始化结构 { int i; for(i=0;i