现在的位置: 首页 > 综合 > 正文

浪漫的夏季

2013年07月07日 ⁄ 综合 ⁄ 共 1706字 ⁄ 字号 评论关闭

浪漫的夏季

后台音乐设计,程序如下:

#include<stdio.h>
#include<dos.h>
#include<graphics.h>
#include<fcntl.h>
#include<time.h>
#define N1 64
#define N2 32
#define N4 16
#define N8 8
#define N16 4
#define END 0
void interrupt(* handler)( );
void interrupt music( );
int handle,control;
enum NOTES
{
C10=131,D10=147,E10=165,F10=175,G10=196,A10=220,B10=247,
C0=262, D0=296, E0=330, F0=349, G0=392, A0=440, B0=494,
C1=523, D1=587, E1=659, F1=698, G1=784, A1=880, B1=988,
C2=1047, D2=1175, E2=1319, F2=1397, G2=1568, A2=1760, B2=1796
}song[]={
E1,N4,E1,N8,E1,N8,F1,N4,G1,N4,F1,N4,F1,N4,E1,N4,D1,
N4,C1,N4,C1,N4,D1,N4,E1,N4,E1,N4,D1,N4,D1,N4,E1,N4,
E1,N8,E1,N8,F1,N4,G1,N4,G1,N4,F1,N4,E1,N4,D1,N4,C1,
N4,C1,N4,D1,N4,E1,N4,D1,N4,D1,N4,C1,N4,D1,N4,D1,N8,
D1,N8,E1,N4,C1,N4,D1,N4,E1,N8,F1,N8,E1,N4,C1,N4,D1,
N4,E1,N8,F1,N8,E1,N4,C1,N4,C1,N4,D1,N4,G0,N4,E1,N4,
E1,N4,E1,N8,F1,N4,G1,N4,G1,N4,F1,N4,E1,N4,D1,N4,C1,
N4,C1,N4,D1,N4,E1,N4,E1,N4,D1,N4,C1,N4,D1,N4,
END,END
};
main()
{
int gdriver=VGA,gmode=1,i;
initgraph (&gdriver,&gmode," ");
handler=getvect(0x1c);
setvect(0x1c,music);
cleardevice( );
setbkcolor(BLUE);
setcolor(YELLOW);
setfillstyle(SOLID_FILL,RED);
sector(200,150,50,120,70,50);
bar3d(400,150,500,200,10,5);
setactivepage(1);
sector(200,150,50,170,70,50);
bar3d(400,200,500,250,10,5);
for(i=0;i<100;i++)
{
while(kbhit()) goto end;
setvisualpage(1);
delay((100-i)*10);
setvisualpage(0);
delay((100-i)*10);
}
end:;
outportb(0x61,control&0xfe);
setvect(0x1c,handler);
cleardevice();
closegraph();
}

void interrupt music( )
{
static int flag=0,note=0,fre,dur=8;
flag++;
fre=song[note];
dur=song[note+1];
if(/*flag>(int)dur*2/5*/fre)
{
flag=0;
outportb(0x43,0xb6);
fre=(unsigned)(1193180L/fre);
outportb(0x42,(char)fre);
outportb(0x42,(char)(fre>>8));
control=inportb(0x61);
outportb(0x61,(control)|0x3);
note=note+2;
if(note>=134)note=0;
}
handler();
}

抱歉!评论已关闭.