当前位置:编程学习 > C/C++ >>

帮我C语言把程序翻译一下

希望高手帮我翻译一下,小弟在此感谢了!

# include "graphics.h"
# include "conio.h"
# include "stdlib.h"
# include "stdio.h"
# define PATH "d:\\tc"
main()
{ int i,j,imsize,midx=300;
int x=60,y=188,k=2;
char *buffer1,*buffer2;
int gdriver=VGA,gmode=VGAHI ;
initgraph(&gdriver,&gmode,PATH);
setfillstyle(1,BLUE);
bar(70,190,120,220);
bar(120,204,150,220);
setcolor(EGA_BROWN);
setfillstyle(1,BROWN);
setbkcolor(3);
circle(84,223,8);
floodfill(84,223,EGA_BROWN);
circle(134,223,8);
floodfill(134,223,EGA_BROWN);
circle(400,180,10);
line(400,190,400,210);
line(400,210,395,220);
line(395,220,395,240);
line(400,210,410,240);
line(400,200,380,210);
line(400,200,420,210);
settextstyle(TRIPLEX_FONT,HORIZ_DIR,5);
settextjustify(CENTER_TEXT,CENTER_TEXT);
outtextxy(midx,400,"It's terrible !");

imsize=imagesize(x,y,152,232);
buffer1=(char*)malloc(imsize);
buffer2=(char*)malloc(imsize);
getimage(x,y,152,232,buffer1);

{
for(i=0;i<=400;i+=k)
{
putimage(x+i,y,buffer1,COPY_PUT);
delay(1000000);
}
j=i-k+x;
for(i=0;i<152-x;i+=k)
{ imsize=imagesize(j+i,y,152-x+j,232);
buffer2=(char*)realloc(buffer2,imsize);
getimage(j+i,y,152-x+j-k,232,buffer2);
putimage(j+i+k,y,buffer2,COPY_PUT);
delay(10);
}
}
getch();
free(buffer1);
free(buffer2);
closegraph();
}


追问:学校要求就得用TC2.0写,我电脑都不能用Tc2.0,还得借电脑弄。。。

答案:# include "graphics.h"     //TC下的图形库函数
# include "conio.h"
# include "stdlib.h"
# include "stdio.h"
# define PATH "d:\\tc"
main()
{ int i,j,imsize,midx=300;
int x=60,y=188,k=2;
char *buffer1,*buffer2; //声明2个字符缓冲区
int gdriver=VGA,gmode=VGAHI ;
initgraph(&gdriver,&gmode,PATH);//这两句数显示屏图形模式的初始化
setfillstyle(1,BLUE); //填色函数,用蓝色模式对后面画出的轮廓图进行填充,1代表单色模式
bar(70,190,120,220);
bar(120,204,150,220); //画条形图函数 左上(120,204)到右下(150,220)
setcolor(EGA_BROWN); //前景色设置函数,颜色为BROWN
setfillstyle(1,BROWN);
setbkcolor(3); //背景颜色设置函数,3号对应CYAN,青
circle(84,223,8); //画圆函数,圆心(84,223),半径8
floodfill(84,223,EGA_BROWN);//封闭图形填充函数,点(84,223)在封闭图形里,填充颜色为为BROWN
circle(134,223,8);
floodfill(134,223,EGA_BROWN);
circle(400,180,10);
line(400,190,400,210);
line(400,210,395,220);
line(395,220,395,240);
line(400,210,410,240);
line(400,200,380,210);
line(400,200,420,210);
settextstyle(TRIPLEX_FONT,HORIZ_DIR,5); //定义文本字型函数,来设置文本输出的字形、方向和大小,本例水平输出
settextjustify(CENTER_TEXT,CENTER_TEXT);//文本输出位置函数,当用outtextxy()输出字符串时输出以字串中心对奇,
outtextxy(midx,400,"It's terrible !");//定位文本输出函数,在指定点(midx,400)出输出字符串“It's terrible !”

imsize=imagesize(x,y,152,232);//测定图象所占字节数函数,得到左上(x,y),右下(152,232)矩形区内图象所占的字节数。
buffer1=(char*)malloc(imsize);//malloc()函数再内存中分配imsize大小,类型为char*的空间
buffer2=(char*)malloc(imsize);//给2个缓冲区在内存中分配(imsize)大小的空间
getimage(x,y,152,232,buffer1);//存屏幕图象到内存区,把左上(x,y)右下(152,232)区内的图象保存到指针buffer1指向的内存区


{
for(i=0;i<=400;i+=k)
{
putimage(x+i,y,buffer1,COPY_PUT);//将所存图象显示的函数,该函数将把指针buffer1 指向的内存区中所装图象,与屏上现有左上角为(x+i,y)的矩形区内图象进行COPY_PUT操作,就是把图像复制到左上角为(x+i,y)的矩形区内
delay(1000000); //延迟函数
}
j=i-k+x;
for(i=0;i<152-x;i+=k)
{ imsize=imagesize(j+i,y,152-x+j,232);
buffer2=(char*)realloc(buffer2,imsize);//扩展buffer2的空间大小到imsize
getimage(j+i,y,152-x+j-k,232,buffer2);
putimage(j+i+k,y,buffer2,COPY_PUT);
delay(10);
}
}
getch();
free(buffer1);//释放内存空间buffer1
free(buffer2);//释放内存空间buffer2
closegraph();//关闭图形模式(恢复到文本模式)
}

哎呀!累死了!

TC图形库虽然说在现在工程中很少用,大部分都是用C++类库做。但是作为一种小巧的学习工具来说,也是值得使用的。

如果楼主感兴趣,我有一部PDF格式的《C语言高级编程》,讲的有C语言图形编程,键盘,鼠标,发声,中断之类的。说个邮箱,我给你发过去!

还是别用TC了

学习就VC写代码吧

上一个:求5道C语言程序填空题?
下一个:跪求强人解答C语言编程问题

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,