# include & ltstdio.h & gt
# include & ltstdlib.h & gt
# include & ltstring.h & gt
# include & ltconio.h & gt
無符號頻率[100];
char height[100];
無符號時間[100];
無符號率;
void main()
{
void set(unsigned f[],char h[],unsigned t[],int r,int num);
void music(無符號f[],無符號t[],int num);
int flag = 0;
FILE * f 1;
int i,n,menu
字符文件名[30];
while(1)
{ f 1 = NULL;
I = n = 0;
Printf("這個程序以編碼的形式播放音樂。\ n ");
printf(" \ n用記事本編輯樂譜,然後輸入文件名播放音樂\ n ");
Printf("樂譜文件可以自己創建,也可以復制別人的\ n ");
printf(" \ n現在可以先輸入數字,然後按enter播放音樂:\ n ");
Printf("1播放指定的音樂1 \ n ");
Printf("2播放指定的音樂\ n ");
Printf("3通過程序文件名播放音樂\ n ");
printf(" 4 exit \ n ");
while(1)
{
printf(" menu = ");scanf("%d ",& amp菜單);
if(menu==1)
{
strcpy(文件名,“music 1 . txt”);
打破;
}
if(menu==2)
{
strcpy(文件名,“music 2 . txt”);
打破;
}
if(menu==3)
{
scanf("%s ",文件名);
打破;
}
if(menu==4)
退出(0);
}
printf(" \ n此文件的音樂編碼如下:\ n ");
if((f1=fopen(FileName," r"))==NULL)
{
Printf("無法打開文件!\ n ");
退出(1);
}
fscanf(f1," %d ",& amp率);
而(!feof(f1)和amp& amp旗幟!=1)
{
fscanf(f1," %d%c%d ",& amp頻率[i],& amp高[i],& amptime[I]);
printf(" %d%c%d ",頻率[i],高度[i],時間[I]);
如果(時間[我]!=-1)
{
i++;n++;
}
其他
flag = 1;
}
printf(" \ n ");
set(頻率、高度、時間、速率、n);
音樂(頻率,時間,n);
fclose(f 1);
}
getch();
}
void set(無符號f[],char h[],無符號t[],int r,int num)
{
int i,k;
for(I = 0;我& ltnumi++)
{
t[I]= t[I]* r;
開關(h[i])
{
情況‘H’:k = 4;打破;
情況“M”:k = 2;打破;
案例“L”:k = 1;
}
開關(f[i])
{
案例1:f[I]= 262 * k;打破;
情況二:f[I]= 296 * k;打破;
情況三:f[I]= 330 * k;打破;
情況四:f[I]= 349 * k;打破;
情況5:f[I]= 392 * k;打破;
情況6:f[I]= 440 * k;打破;
情況7:f[I]= 494 * k;打破;
}
}
}
無效音樂(無符號f[],無符號t[],int num)
{
int I;
for(I = 0;我& ltnumi++)
{
Beep(f[i],t[I]);
}
}