TC中,音乐,正弦曲线,满天星,成绩柱状图

必须在tc中运行

1.#include <stdio.h>
#include<dos.h>
void mysound(unsigned int freq,int times)
{
     int i;
union{
int n;
char c[2];
}count;
char bits;
count.n=1193180/freq;
outportb(0x43,0xb6);
outportb(0x42,count.c[0]);
outportb(0x42,count.c[1]);
bits=inportb(0x61);
outportb(0x61,bits|3);
     for(i=0;i<times;i++)
        delay(250);
     outportb(0x61,bits&0xfc);
     outportb(0x61,bits);
}
int main()
{
    int freq[8]={0,262,294,330,349,392,440,494};
int song[]={1,1,5,5,6,6,5,4,4,3,3,2,2,1,0};
    int div[]={8,8,8,8,8,8,4,8,8,8,8,8,8,4,0};
    unsigned int f;
    int times,i;
    for(i=0;song[i];i++)
    {
        if(song[i]<0)
            f=freq[-song[i]]/2;
        else
            if(song[i]>7)
               f=freq[song[i]%7]*2;
            else
                f=freq[song[i]];
        times=16/div[i];
        mysound(f,times);
    }
    return 0;

}

2.正弦曲线

#include <graphics.h>
#include <stdio.h>
#include <math.h>
#define PI 3.14159
int main()
{
int gmode,gdriver=DETECT,i;
    double x,y,originx,originy;
initgraph(&gdriver,&gmode,"c:\\tc20\\BGI");
line(20,250,600,250);
    line(600,250,590,240);
    line(600,250,590,260);
    line(320,450,320,20);
    line(320,20,310,30);
    line(320,20,330,30);
    setcolor(RED);
for(i=0;i<180;i++)
    {
        line(320-i,250+150*sin(i*PI/180),320-(i+1),250+150*sin((i+1)*PI/180));
        line(320+i,250-150*sin(i*PI/180),320+(i+1),250-150*sin((i+1)*PI/180));
    }
    getch();
    closegraph();
    return 0;
}

 3.这满天星有点LOW,有时间在改进^^

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <graphics.h>
int main()
{
    int driver=DETECT;    
    int mode,i,n,j,p;
    initgraph(&driver,&mode,"C:\\TC20\\BGI");
    srand(time(NULL));  
    for(i=1;i<640;i++)   
    {           
        for(j=1;j<=30;j++)        
        {            
              if(j<=15)            
              {                
                   n=rand()%699;                
                   putpixel(n+i,n+10*i,14);
              }            
              else            
              {                               
                     n=rand()%666;                
                     putpixel(n+11*i,n+i,14);          
               }
         } 
    }
    do
    {
        x=rand()%996;
        y=rand()%777;
        delay(10);
        putpixel(x,y,0);
        delay(10);
        putpixel(x,y,14);  
    } while(!kbhit());
    getch();    
    closegraph();    
    return 0;

    }

4.模拟乒乓

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define MAXNUM 100
int main()
{
    char *buf;
    char sign,sign1[MAXNUM],sign2[MAXNUM];
    int i,size,a;
    int x[MAXNUM],y[MAXNUM],r[MAXNUM][MAXNUM];
    int gd=DETECT,gm;
    clrscr();
    scanf("%d",&a);
    initgraph(&gd,&gm,"c:\\tc20\\BGI");
    setcolor(YELLOW);
    setfillstyle(SOLID_FILL,9);
    rectangle(0,0,getmaxx(),getmaxy());
    rectangle(1,1,getmaxx()-1,getmaxy()-1);
    bar(2,2,getmaxx()-2,getmaxy()-2);
    for(i=8;i>=0;i--)
    {
        setcolor(i+7);
        circle(11,getmaxy()-11,i);
    }
    size=imagesize(2,getmaxy()-20,20,getmaxy()-2);
    buf=malloc(size);
    getimage(2,getmaxy()-20,20,getmaxy()-2,buf);
    for(i=8;i>=0;i--)
    {
        setcolor(9);
        circle(11,getmaxy()-11,i);
}
randomize();
for(i=0;i<a;i++)
{
    x[i]=random(600)+20;
    y[i]=random(400)+32;
    sign1[i]=random(2);
    sign2[i]=random(2);
}
while(1)
{
    if(kbhit())
    {
        sign=getch();
        if(sign==0x1b)
        {
            free(buf);
            break;
        }
    }
    else
    {
        for(i=0;i<a;i++)
        {
            putimage((sign1[i]==1?x[i]++:x[i]--),
                     (sign2[i]==1?y[i]++:y[i]--),
                     buf,COPY_PUT);
            if(x[i]>getmaxx()-21)
                sign1[i]=0;
            if(x[i]<3)
                sign1[i]=1;
            if(y[i]>getmaxy()-21)
                sign2[i]=0;
            if(y[i]<3)
                sign2[i]=1;
        }}}
        free(buf);
        getch();
        closegraph();
        return 0;}
    5.成绩柱状图

#include <graphics.h>
#include <stdio.h>
struct TU
{
    int math;
    int eng;
    int comp;
}s[100];
int main()
{
int gmode,gdriver=DETECT,i,n=2;  
initgraph(&gdriver,&gmode,"c:\\tc20\\BGI");
for(i=0;i<n;i++)
    scanf("%d%d%d",&s[i].math,&s[i].eng,&s[i].comp);
line(50,450,600,450);
line(50,450,50,50);
line(50,50,40,60);
line(50,50,60,60);
line(600,450,590,440);
line(600,450,590,460);
for(i=0;i<n;i++)
{
    setfillstyle(2,9);
    bar3d(80+(500/n+5)*i,440-s[i].math*4-s[i].math%10,80+(500/n+5)*i+500/n/3,440,500/n/3,1);
    setfillstyle(3,8);
    bar3d(80+(500/n+5)*i+500/n/3,440-s[i].eng*4-s[i].eng%10,80+(500/n+5)*i+500/n/3+500/n/3,440,500/n/3,1);
    setfillstyle(4,6);
     bar3d(80+(500/n+5)*i+500/n/3*2,440-s[i].comp*4-s[i].comp%10,80+(500/n+5)*i+500/n/3+500/n/3*2,440,500/n/3,1);
}
getch();
closegraph();
return 0;
}

posted @ 2018-04-03 16:09  ~~zcy  阅读(231)  评论(0编辑  收藏  举报