C语言开发的一个画图程序

| 收藏本文 下载本文 作者:风儿的前世

以下是小编为大家准备的C语言开发的一个画图程序(共含6篇),供大家参考借鉴,希望可以帮助到有需要的朋友。同时,但愿您也能像本文投稿人“风儿的前世”一样,积极向本站投稿分享好文章。

C语言开发的一个画图程序

篇1:C语言开发的一个画图程序

在开发县级电网调度自动化系统的过程中,碰到一个要绘制电力系统一次接线图的问题.由于电力系统一次接线图比较复杂,用一般的编程方法来绘制比较困难,因此,笔者用C语言开发了一个手工绘制电力系统一次接线图的键盘绘图程序,使用该程序绘制的一次接线图符合用户需求,效果良好.

一、使用方法

程序中定义了几个特殊键:

\“V”:画笔提起

\“W”:开始画图

\“R”:开始擦图

\“S”:当前图形存入文件

\“E”:调出已有文件

\“C”:画圆

程序一运行,屏幕上出现一个黄色的边框来设定画图的区域,区域中间出现提起的画笔符号 ,当按下“W”键时,画笔符号变为 ,此时可移动方向键(上、下、左、右、左上、左下、右上、右下)来画图;当按下“R”键时,画笔符号变为 ,此时可移动方向键来擦图;在画图过程中,按下“C”键,可画出一个半径为20个象素点的圆;当结束画图时,按下“S”键,将画好的图形存盘;按下“E”键可调出已有的图形进行编辑.

二、源程序清单

# include \“graphics.h\”

# include \“stdio.h\”

# include \“fcntl.h\”

# include \“stdlib.h\”

main

void save(),load();

void *wg,*rg,*vg,*fy;

int driver,mode;

int c=RED;

int x=320,y=225;

//www.baoluowanxiang.com

int x1,y1,x2,y2;

int k,k1,k2;

/* initialize grapher */

detectgraph(&driver,&mode);

initgraph(&driver,&mode,\“c:\\tc\”);

/* write the pen */

bar(200,10,206,16);

line(203,7,200,10);

line(203,7,206,10);

line(243,7,240,16);

line(243,7,246,16);

line(283,7,280,10);

line(283,7,286,10);

line(283,7,283,16);

/* save the pen */

wg=malloc(imagesize(200,7,206,16));

rg=malloc(imagesize(240,7,246,16));

vg=malloc(imagesize(280,7,286,16));

fy=malloc(imagesize(200,7,206,16));

getimage(200,7,206,16,wg);

getimage(240,7,246,16,rg);

getimage(280,7,286,16,vg);

cleardevice();

/* write the box */

setcolor(YELLOW);

rectangle(4,19,637,447);

x1=x-3;

y1=y+1;

x2=x+3;

y2=y+10;

getimage(x1,y1,x2,y2,fy);

putimage(x1,y1,vg,XOR_PUT);

/* receive the command */

for (;;)

while (bioskey(1)==0);

k=bioskey(0);

putimage(x1,y1,fy,AND_PUT);

if (((k&0x00ff)|0x00)==0)

k1=k&0xff?0:k>>8; /* k1 is the specialkey value */

else

k2=k&0x00ff; /* k2 is the non-specialkey value */

if (((k&0x00ff)|0x00)==0) /* Special key */

switch(k1)

case 45:

restorecrtmode();

exit(0);

case 72:

if (y>20)

y=y-1;

break;

case 75:

if (x>5)

x=x-1;

break;

case 77:

if (x<636)

x=x+1;

break;

case 80:

if (y<446)

y=y+1;

break;

case 71:

if ((x>5)&&(y>20))

x=x-1;

y=y-1;

break;

case 79:

if ((x>5)&&(y<446))

x=x-1;

y=y+1;

break;

case 73:

if ((x<636)&&(y>20))

x=x+1;

y=y-1;

break;

case 81:

if ((x<636)&&(y<446))

x=x+1;

y=y+1;

break;

x1=x-3;

y1=y+1;

x2=x+3;

y2=y+10;

getimage(x1,y1,x2,y2,fy);

/* non-special key */[Page]

switch(k2)

case 118: /* \'v\' */

case 86: /* \'V\' */

putimage(x1,y1,vg,OR_PUT);

break;

case 119: /* \'w\' */

case 87: /* \'W\' */

putimage(x1,y1,wg,OR_PUT);

putpixel(x,y,c);

break;

case 114: /* \'r\' */

case 82: /* \'R\' */

putimage(x1,y1,rg,OR_PUT);

putpixel(x,y,BLACK);

break;

case 115: /* \'s\' */

case 83: /* \'S\' */

save(\“pic.dat\”);

break;

case 101: /* \'e\' */

case 69: /* \'E\' */

load(\“pic.dat\”);

break;

case 99: /*\'c\'*/

case 67: /*\'C\'*/

setcolor(RED);

circle(x,y,20);

break;

default:continue;

/* function for screen picture save

*/

void save(char *fname)

FILE *fp;

int i;

register long j;

char far *ptr;

fp=fopen(fname,\“wb\”);

for(i=0;i<4;i++)

outportb(0x3CE,4);

outportb(0x3CF,i);

篇2:C语言数字钟程序

void clock(int t);

void main

{

int t,i,j,n;

for(t=0;t<10;t++)

{

clock(t);

sound(590);

for(n=0;n<4;n++)

{

delay(100000000);

}

nosound();

for(n=0;n<6;n++)

{

delay(100000000);

}

for(j=8;j<=18;j++)

{

for(i=1;i<=80;i++)

{

gotoxy(i,j);

putchar(0);

}

}

}

}

void clock(int t)

{

int i,j;

textcolor(11);

if(t==0)

{

for(i=0;i<11;i++)

{

gotoxy(60,8+i);

cprintf(“%c”,14);

}

for(i=0;i<11;i++)

{

gotoxy(51,8+i);

cprintf(“%c”,14);

}

for(j=0;j<11;j+=10)

{

for(i=0;i<8;i++)

{

gotoxy(59-i,8+j);

cprintf(“%c”,14);

}

}

}

if(t==1)

{

for(i=0;i<11;i++)

{

gotoxy(60,8+i);

cprintf(“%c”,14);

}

}

if(t==2)

{

for(j=0;j<2;j++)

{

for(i=0;i<6;i++)

{

gotoxy(60-j*8,8+i+j*5);

cprintf(“%c”,14);

}

}

for(j=0;j<11;j+=5)

{

for(i=0;i<9;i++)

{

gotoxy(60-i,8+j);

cprintf(“%c”,14);

}

}

}

if(t==3)

{

for(i=0;i<11;i++)

{

gotoxy(60,8+i);

cprintf(“%c”,14);

}

for(j=0;j<11;j+=5)

{

for(i=0;i<8;i++)

{

gotoxy(59-i,8+j);

cprintf(“%c”,14);

}

}

}

if(t==4)

{

for(i=0;i<11;i++)

{

gotoxy(60,8+i);

cprintf(“%c”,14);

}

for(i=0;i<6;i++)

{

gotoxy(52,8+i);

cprintf(“%c”,14);

}

for(i=0;i<8;i++)

{

gotoxy(59-i,13);

cprintf(“%c”,14);

}

}

if(t==5)

{

for(j=0;j<2;j++)

{

for(i=0;i<6;i++)

{

gotoxy(52+j*8,8+i+j*5);

cprintf(“%c”,14);

}

}

for(j=0;j<11;j+=5)

{

for(i=0;i<9;i++)

{

gotoxy(60-i,8+j);

cprintf(“%c”,14);

}

}

}

if(t==6)

{

for(j=0;j<2;j++)

{

for(i=0;i<6;i++)

{

gotoxy(52+j*8,8+i+j*5);

cprintf(“%c”,14);

}

}

for(i=0;i<6;i++)

{

gotoxy(52,13+i);

cprintf(“%c”,14);

}

for(j=0;j<11;j+=5)

{

for(i=0;i<9;i++)

{

gotoxy(60-i,8+j);

cprintf(“%c”,14);

}

}

}

if(t==7)

{

for(i=0;i<11;i++)

{

gotoxy(60,8+i);

cprintf(“%c”,14);

}

for(i=0;i<8;i++)

{

gotoxy(59-i,8);

cprintf(“%c”,14);

}

}

if(t==8)

{

for(i=0;i<11;i++)

{

gotoxy(60,8+i);

cprintf(“%c”,14);

}

for(i=0;i<11;i++)

{

gotoxy(52,8+i);

cprintf(“%c”,14);

}

for(j=0;j<11;j+=5)

{

for(i=0;i<8;i++)

{

gotoxy(59-i,8+j);

cprintf(“%c”,14);

}

}

}

if(t==9)

{

for(i=0;i<11;i++)

{

gotoxy(60,8+i);

cprintf(“%c”,14);

}

for(i=0;i<6;i++)

{

gotoxy(52,8+i);

cprintf(“%c”,14);

}

for(j=0;j<2;j++)

{

for(i=0;i<8;i++)

{

gotoxy(59-i,8+j*5);

cprintf(“%c”,14);

篇3:C程序开发经典实例7

【程序61】

题目:打印出杨辉三角形(要求打印出10行如下图)

1.程序分析:

1

11

121

1331

14641

15101051

2.程序源代码:

main

{

inti,j;

inta[10][10];

printf(“\n”);

for(i=0;i<10;i++)

{

a[i][0]=1;

a[i][i]=1;

}

for(i=2;i<10;i++)

for(j=1;j<10;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i<10;i++)

{

for(j=0;j<=i;j++)

printf(“%5d”,a[i][j]);

printf(“\n”);

}

}

【程序62】

题目:学习putpixel画点,

1.程序分析:

2.程序源代码:

#include“stdio.h”

#include“graphics.h”

main()

{

inti,j,driver=VGA,mode=VGAHI;

initgraph(&driver,&mode,“”);

setbkcolor(YELLOW);

for(i=50;i<=230;i+=20)

for(j=50;j<=230;j++)

putpixel(i,j,1);

for(j=50;j<=230;j+=20)

for(i=50;i<=230;i++)

putpixel(i,j,1);

}

【程序63】

题目:画椭圆ellipse

1.程序分析:

2.程序源代码:

#include“stdio.h”

#include“graphics.h”

#include“conio.h”

/*欢迎访问C++Builder研究-www.ccrun.com*/

main()

{

intx=360,y=160,driver=VGA,mode=VGAHI;

intnum=20,i;

inttop,bottom;

initgraph(&driver,&mode,“”);

top=y-30;

bottom=y-30;

for(i=0;i

{

ellipse(250,250,0,360,top,bottom);

top-=5;

bottom+=5;

}

getch();

}

【程序64】

题目:利用ellipseandrectangle画图,

1.程序分析:

2.程序源代码:

#include“stdio.h”

#include“graphics.h”

#include“conio.h”

main()

{

intdriver=VGA,mode=VGAHI;

inti,num=15,top=50;

intleft=20,right=50;

initgraph(&driver,&mode,“”);

for(i=0;i

{

ellipse(250,250,0,360,right,left);

ellipse(250,250,0,360,20,top);

rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));

right+=5;

left+=5;

top+=10;

}

getch();

}

【程序65】

题目:一个最优美的图案。

1.程序分析:

2.程序源代码:

#include“graphics.h”

#include“math.h”

篇4:c语言初级小程序

1.打印100-200之间的素数:

#include

#include

int main()

{

int i,a;

for(i=101;i<200;i++)

{for(a=2;a<=sqrt(i);a++)

if(i%a==0)

break;

if(i%a!=0)

printf(“%d\n”,i);

}

return 0;

}

2.输入乘法口诀:

#include

int main()

{

int i,j;

for(i=1;i<=9;i++)

{

for(j=1;j<=i;j++)

printf(“%d*%d=%d ”,j,i,j*i);

printf(“\n”);

}

return 0;

}

3.判断1000-之间的闰年:

#include

int main()

{

int i;

for(i=1000;i<=2000;i++)

if((i%4==0&&i%100!=0)||i%400==0)

printf(“%d\n”,i);

return 0;

}

篇5:C语言程序课程设计心得体会

在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。

虽然在上个学期中,我们已经学习了《c语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。

c语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。

在我们小组有解决不了的.问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。

这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。

在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!

当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。

三周的小学期即将结束,时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导,更要感谢我们小组成员之间的合作与交流。

篇6:C语言程序课程设计心得体会

在设计打字游戏的过程中,通过我们小组各成员之间的相互讨论和合作,我们完成了打字练习的程序设计。在这个学期中,我们已经学习了《C语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。

C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。

在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!

一学期的学习成果,都体现在了这次打字游戏的设计过程中。这个学期,我学得不算认真,一开始做感觉力不从心,但在几个同学的帮助和努力下,我翻阅课本,询问ACM大神,绞尽脑汁的情况下做完这个程序设计,我的自信一下子提高了。尽管对于有些人这种程序会很简单,可对我这个C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊!

Java程序开发员个人简历

C语言程序课程设计心得体会

计算机二级C语言入门程序

初识画图(教案)

画图教学反思

小学画图教案

编写一个程序:输入N,打印N*N矩阵

画图员实习日记

CAD画图的心得体会

Flash5.0和画图作文

C语言开发的一个画图程序(精选6篇)

欢迎下载DOC格式的C语言开发的一个画图程序,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档