浅析C语言程序设计中的屏幕定位及彩色输出

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:TimRealler
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:通过介绍C语言程序中的窗口函数、彩色输出函数、背景前景设置函数、清屏函数、屏幕定位函数等基本图形函数的定义及用法,并采用程序设计实例进行分析,解决如何使用C语言输出彩色图形的问题,对于C语言的深入学习具有一定的借鉴意义。
  关键词:C语言程序设计;屏幕定位;彩色输出
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)27-0073-02
  C语言程序设计包含很丰富的知识,主要有顺序结构程序设计,选择结构、循环结构、以及数组、指针等内容,我们一般所接触到的程序的输出结果都是黑色屏幕上显示白色字符,也就是黑白效果,其实,C语言中也可以彩色输出。
  使用C语言中的函数输出彩色图形,需要学习掌握窗口函数、彩色输出函数、背景前景设置函数、清屏函数、屏幕定位函数等基本图形函数,缺少以上任意一种函数,都有可能无法得到正确的输出结果,从而导致在反复调试过程中增加了不必要的工作量,降低了编译程序的可读性和效率。
  1 文本窗口的定义
  C语言默认的文本窗口为整个屏幕,共有80列25行的文本单元,C语言允许使用window( )函数定义屏幕上的一个矩形域作为窗口。
  Window( )函数的调用格式为:Window(int left,int top, int right, int bottom);使用的头文件为:“conio.h”,在使用该函数时加上文件包含命令:# include (conio.h)。C语言规定整个屏幕的左上角坐标为(1,1),右下角坐标为(80,25),并规定沿水平方向为X轴,方向向右,沿垂直方向为Y轴,方向向下。例:要定义一个窗口左上角在屏幕(20,5)处,大小为5列、5行的窗口可写为:window (20,5,25,10);
  2 文本窗口内的输入输出函数
  2.1 文本窗口的输出
  文本窗口的输出函数主要有三个,cprintf( ),格式为:cprintf(格式控制字符串,输出表列),函数的功能是,输出一个字符串或数值到窗口中,它与printf( )函数的用法完全一样,所不同的就是cprintf( )函数的输出受到窗口的限制,而printf( )函数的输出窗口为整个屏幕。cputs( ),格式为:cputs( s );函数的功能是,输出一个字符串到窗口上。putch( ),格式为:putch( c );函数的功能是,输出一个字符到窗口内。
  2.2 文本窗口的输入
  窗口内文本的输入函数只有一个,其调用格式为:getchar( );使用该函数时要用文件包含命令:# include(stdio.h)
  3 文本窗口的颜色设置
  文本窗口的颜色设置主要包括背景色设置和字符颜色设置。
  3.1 背景颜色的设置函数
  设置背景颜色的函数名为:textbackground(),具体的使用格式为:Textbackground(int color);其中参数color对应了不同的颜色,可根据其所对应的颜色值设置背景颜色。
  3.2 字符颜色的设置函数
  函数名:textcolor(),格式为:Textcolor(int color);功能:根据参数color所对应的颜色值设置字符颜色。例如:编写程序在青色背景下用红、黄、绿三种颜色输出“I love C language!”,程序如下:
  #include
  main( )
  {
  clrscr();
  textbackground(CYAN);
  textcolor(RED);
  cprintf(“I love C language!\n”);
  textcolor(YELLOW);
  cprintf(“I love C language!\n”);
  textcolor(GREEN);
  cprintf(“I love C language!\n”);
  }
  使用以上两个函数的几点说明,(1)包含这两个函数的头文件均为“conio.h”。(2)这两个函数均为有参函数,参数为颜色值。例如,要设置青色的背景可以通过以下两种方法:
  textbackground(3);或textbackground(CYAN);
  3.3 同時设置文本的字符颜色和背景颜色的函数
  函数名:textattr(),调用的一般格式:textattr(int attr);功能:根据参数attr所对应的值同时设置文本的字符颜色和背景颜色。其中参数attr的值表示颜色形式编码的信息,编码由八位(7,6,5,4,3,2,1,0位)组成,字节的低四位(3,2,1,0)用于设置字符的颜色,字节的6,5,4三位用于设置背景颜色,最高位(7位)设置为是否闪烁。例如,要设置一个蓝底黄字,可以设置为textatter(YELLOW (BLUE<<4));若设置一个闪烁的蓝底黄字,设置方法为 textatter (128 YELLOW (BLUE<<4)),在使用textatter函数时,背景颜色需要使用位运算符,将左移运算符向左边移动4位,这样才能保证背景颜色移动至正确的位置上。在主函数中调用textatter()函数时,需要使用头文件“conio.h”。
  4 有关屏幕定位的操作
  在使用C语言进行彩色图形输出过程中,如果想达到预期的效果,其中必要的一步操作就是需要进行屏幕定位,否则会导致字符偏移,从而无法得到正确的运行结果,因此,屏幕定位函数对于彩色图形输出来讲是不可或缺的。同时,在程序编写和调试过程中,由于无法保证程序编译一次性输出正确彩色图形,需要进行反复调试,此时清屏函数就显得尤为重要,可以解决输出彩色图形因多次运行后造成相互叠加的问题。   4.1 清除屏幕内容的函数
  清除屏幕内容的函数主要有两个,一个是clrscr(),该函数的主要功能是清除当前窗口中的所有文本内容,并使光标定位在左上角(1,1)处。另一个是clreol(),该函数的主要功能是清除当前窗口中从光标起始处到行末的所有字符,而使光标的位置不发生变化。
  一般我们在编写程序时,大多都会使用clrscr()函数,如果不使用这个函数,在程序多次运行后,程序的运行结果也就是输出的彩色图形就会叠加在同一个位置,导致图形看上去很混乱,使用清屏函数后可以在每次调試运行后都清晰地看到图形。
  4.2 光标定位函数
  光标定位函数是gotoxy(x,y),该函数的主要功能是定位当前光标所在的位置,其中的x、y是指光标相对于窗口而言定位处的坐标。也就是说当x、y的设置一旦超出窗口的大小,此函数将无法运行。例如,编程输出一个用*组成的四行的等腰三角形,要求每行的*的个数分别是1,3,5,7,程序如下:
  #include
  main( )
  {
  textcolor(RED);
  cprintf(“%s\n”, “*”);
  cprintf(“%s\n”, “***”);
  cprintf(“%s\n”, “*****”);
  cprintf(“%s\n”,”*******”);
  }
  运行结果将是一个直角三角形,必须给每行都使用定位函数定位才能得到正确的图形,若想得到题目要求的正确结果,程序必须使用定位函数,程序如下:
  #include
  main( )
  {
  textcolor(RED);
  gotoxy(1,1);
  cprintf(“%s\n”, “*”);
  gotoxy(1,2);
  cprintf(“%s\n”, “***”);
  gotoxy(1,3);
  cprintf(“%s\n”, “*****”);
  gotoxy(1,4);
  cprintf(“%s\n”,”*******”);
  }
  将图形函数综合使用起来,字符模式下窗口内容的有关操作示例(窗口定义、颜色设置、输入输出、屏幕定位)如下:
  #include
  #include
  main( )
  { int x=3,y=2;
  char ch1=‘A’,ch2;
  window(15,5,50,25);
  textbackground(3);
  textcolor(YELLOW);
  clrscr( );
  cprintf(“x=%d,y=%d,ch1=%c\n”,x,y,ch1);
  gotoxy(16,6);
  ch2=getch();
  putch(ch2);}
  5 基本图形函数
  在使用C语言编写输出图形的程序中,除了要使用彩色输出函数cprintf(),设置背景颜色函数textbackground(),设置字符颜色函数textcolor(),屏幕定位函数gotoxy(),清屏函数clrscr()等函数外,基本图形函数很有很多。(1)putpixel,功能是用指定的像素画一个按color所指定的颜色的点,函数的格式是putpixel(int x,int y,int color);例如在坐标(4,4)处画一个红点,应写为:putpixel(4,4,RED)。(2)line,函数的功能是画一条从某个点到另一个点的直线,函数的格式是line(int x1,int y1,int x2,int y2),例如画一条从(4,5)到(10,8)的直线,应写为line(4,5,8,10)。(3)circle,函数的功能是以某个点为圆心,以某个数为半径画一个圆,函数的格式是circle(int x,int y,int radius),例如以(4,4)为圆心,以5为半径画一个圆,应写为circle(4,4,5)。(4)arc,函数的功能是以某个点为圆心,以某个数为半径,用度表示画一段圆弧线,函数的格式是arc(int x,int y,int stangle,int endangle,int radius)。(5)rectangle,函数的功能是以某个点为左上角,某个点为右下角,画一个矩形,函数的格式为rectangle(int x1,int y1,int x2,int y2)。
  基本图形函数还有很多,比如求当前点的颜色值函数getpixel,求x轴的最大值函数getmaxx,画椭圆的函数ellipse,画n边形的函数drawpoly等,诸如此类的函数还有很多,都可以用来在C语言程序设计中编写输出图形。
  6 结束语
  C语言是由函数组成的,C语言屏幕定位及彩色输出中的函数也非常的丰富,窗口函数,彩色输出函数,清屏函数,背景色前景色设置函数,定位函数等,只要掌握好各函数的使用方法,掌握好函数使用时所使用到的头文件,按照C语言程序设计中的顺序结构的编程方法来编写输出彩色图形就会很容易。
  参考文献:
  [1] 吴琼,蔡仲儒.C语言图形函数及应用[J].考试周刊,2007(40):114-115.
  [2] 林君. C语言图形程序设计技巧与实例[M]. 北京: 海洋出版社, 2007(7).
  [3] 邱力. C语言程序设计[M]. 北京: 清华大学出版社, 2004(7).
  [通联编辑:谢媛媛]
其他文献
大数据时代的到来对许多传统行业造成了根本性的影响,也对教育领域带来了巨大的帮助,其强大的技术特点和能力使得许多阻碍教学质量提高的问题被处理解决。在《多媒体技术与应用实例》课程教学中,大数据技术的应用在教学内容、教学方式、学习效果等方面产生了明显的效果,可以极大地提高教学质量。
2012年,适逢中国国家博物馆成立100周年,又是宜兴、荆溪合并成宜兴县100周年。在这"国博庆百年,紫砂贺盛世"的时候,"印象中国&#183;宜兴紫砂大展"将于9月29日至10月14日在中国国
随着时代的进步,我们已经进入信息时代。作为教师,我们必须占有大量的信息,进行有效的整合,才能满足学生的要求。但实际的问题是,在教学手段上,我们已经进入21世纪,可在教案的管理上
名师离我们很远.这是很多教师特别是农村教师的感叹。曾经我跟他们一样,做梦都想和名师交流。然而.名师岂是我们能够“亲密接触”的?
【第059题】正方体的体积一定,底面积和高成什么比例?(福州市陈爱容老师供题)
建构主义理论认为,学生是在旧经验的基础上建构新知识的。已有的知识技能对于他所要认识、获得新的知识并形成技能有很大影响。这种影响即”认知迁移“。迁移可分为两种类型:“
紫砂壶是占有一定空间的立体造型,就其外观形态而言,点与线是最基本的两种构成要素。这两种构成要素在壶的造型上,既可表现为抽象概念的构成要素,也可以表现为具体视觉的构成
【片段一】引入毫米师:在学具盒里有一根大约5厘米长的小棒,你能把它找出来吗?(在学生的学具盒里有若干根小棒,只有一根白色的是5.3厘米长。)
海涅说:“一个时代有一个时代的课题,解决了它就把人类冉向前推进一步。”《语文课程标准》为我们勾画了阅读教学极富魅力的课堂新景致,倡导要“培养学生探究性阅读和创造性阅读
紫砂茗壶的艺术造型多彩多姿。清代康熙、雍正、乾隆三朝期间,宜兴紫砂陶的装饰手法空前多样,除底部铭刻甲子年款及作者署号外,紫砂壶表面上的装饰有泥绘、粉彩、浮雕、印贴、堆