画图,用circle画圆形。(提示:用到graphics.h头文件,里面有setbkcolor,circle等库函数)

画图,用circle画圆形。(提示:用到graphics.h头文件,里面有setbkcolor,circle等库函数),第1张

#include <graphicsh>

main()

{

int drive=DETECT,mode=0;

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

cleardevice();

setbkcolor(1);

setcolor(3);

circle(x,y,r);

getch();

closegraph();

}

有的。

cleardevice()清除屏幕显示,仅用于图形工作方式

clearviewport()清除当前屏幕窗口显示,仅用于图形工作方式

想清除图形方式下屏幕上某部分窗口显示的时候就用clearviewport()

想清除图形方式下全屏的时候用cleardevice()

二者作用范围不同。

你对c的图形功能有兴趣啊,这些技术似乎已经落伍了。

对于图形模式的屏幕颜色设置, 同样分为背景色的设置和前景色的设置。在 Turbo C中分别用下面两个函数。 设置背景色: void far setbkcolor( int color); 设置作图色: void far setcolor(int color); 其中color 为图形方式下颜色的规定数值, 对EGA, VGA显示器适配器, 有关 颜色的符号常数及数值见下表所示。 表3 有关屏幕颜色的符号常数表 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━ 符号常数 数值 含义 符号常数 数值 含义 —————————————————————————————— ————— BLACK 0 黑色 DARKGRAY 8 深灰 BLUE 1 兰色 LIGHTBLUE 9 深兰 GREEN 2 绿色 LIGHTGREEN 10 淡绿 CYAN 3 青色 LIGHTCYAN 11 淡青 RED 4 红色 LIGHTRED 12 淡红 MAGENTA 5 洋红 LIGHTMAGENTA 13 淡洋红 BROWN 6 棕色 YELLOW 14 ** LIGHTGRAY 7 淡灰 WHITE 15 白色 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━ 对于CGA适配器, 背景色可以为表3中16种颜色的一种, 但前景色依赖于不同 的调色板。共有四种调色板, 每种调色板上有四种颜色可供选择。不同调色板所 对应的原色见表4。 表4 CGA调色板与颜色值表 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━ 调色板 颜色值 ————————————————————————————— 符号常数 数值 0 1 2 3 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━ C0 0 背景 绿红黄 C1 1 背景 青 洋红 白 C2 2 背景 淡绿 淡红 黄 C3 3 背景 淡青 淡洋红 白 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━ 清除图形屏幕内容使用清屏函数, 其调用格式如下: voide far cleardevice(void); 有关颜色设置、清屏函数的使用请看例8。 例8: #include<stdioh> #include<graphicsh> int main() { int gdriver, gmode, i; gdriver=DETECT; registerbgidriver(EGAVGA_ DRIVER);/建立独立图形运行程序/ initgraph(&gdriver, &gmode", "");/图形初始化/ setbkcolor(0); /设置图形背景/ cleardevice(); for(i=0; i<=15; i++) { setcolor(i); /设置不同作图色/ circle(320, 240, 20+i10); /画半径不同的圆/ delay(100); /延迟100毫秒/ } for(i=0; i<=15; i++) { setbkcolor(i); /设置不同背景色/ cleardevice(); circle(320, 240, 20+i10); delay(100); } closegraph(); return 0; } 另外, TURBO C也提供了几个获得现行颜色设置情况的函数。 int far getbkcolor(void); 返回现行背景颜色值。 int far getcolor(void); 返回现行作图颜色值。 int far getmaxcolor(void); 返回最高可用的颜色值。

1、对于窗口组件菜单,需要根据不同平台,通过图形编程接口,进行菜单的编制。

    例程:

    #include<stdioh> 

    #include<graphicsh> 

    #include<conioh> 

    void main() 

    { 

    char str; 

    int i,k,choice=1; 

    int gd=DETECT,gm; 

    initgraph(&gd,&gm," "); 

    setbkcolor(2); 

    settextstyle(3,0,3); 

    outtextxy(140,120,"A The Mock Clock"); 

    outtextxy(140,150,"B The Digital Clock"); 

    outtextxy(140,180,"C Exit"); 

    setlinestyle(0,0,3); 

    rectangle(170,115,370,145); 

    /按上下键选择所需选项/ 

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

    { 

    str=getch(); 

    if(str==72) 

    { 

    --choice; 

    if(choice==0)choice=3; 

    } 

    if(str==80) 

    { 

    ++choice; 

    if(choice==4)choice=1; 

    } 

    if(str==13)break; /*按回车键确认*/ 

    /画图做菜单/ 

    cleardevice(); 

    switch(choice) 

    { case 1: setlinestyle(0,0,3); 

    rectangle(170,115,400,145); 

    settextstyle(3,0,3); 

    outtextxy(140,120,"A The Mock Clock"); 

    settextstyle(3,0,3); 

    outtextxy(140,150,"B The Digital Clock"); 

    outtextxy(140,180,"C Exit"); 

    break; 

    case 2: setlinestyle(0,0,3); 

    rectangle(170,145,400,175); 

    settextstyle(3,0,3); 

    outtextxy(140,120,"A The Mock Clock"); 

    settextstyle(3,0,3); 

    outtextxy(140,150,"B The Digital Clock"); 

    settextstyle(3,0,3); 

    outtextxy(140,180,"C Exit"); 

    break; 

    case 3: settextstyle(3,0,3); 

    outtextxy(140,120,"A The Mock Clock"); 

    outtextxy(140,150,"B The Digital Clock"); 

    settextstyle(3,0,3); 

    outtextxy(140,180,"C Exit"); 

    setlinestyle(0,0,3); 

    rectangle(170,175,400,205); 

    break; 

    } 

    } 

    if(i>=100)exit(0);/*如果按键超过100次退出*/ 

    switch(choice)/这里引用函数,实现所要的功能/ 

    { 

    case 1: cleardevice(); 

    setbkcolor(4); 

    settextstyle(3,0,4); 

    outtextxy(160,120,"No1 have not built"); break; 

    case 2: cleardevice(); 

    setbkcolor(4); 

    settextstyle(3,0,4); 

    outtextxy(160,150,"No2 have not built"); 

    break; 

    case 3: exit(0); 

    } 

    getch(); 

    closegraph(); 

    }

2、对于命令行菜单,直接通过不断刷新输出来模拟菜单行为。

    例程:

    #include <stdioh>

    #include <stdlibh> 

    #include <stringh>

    int n,t,k;

    int m;

    char s1[20],s2[20],c;

    char l;

    char num[]={"one","two","three","four","five","six","seven","eight","nine","ten"};

    void menu()

    {

     printf("\n\n\t\t\n");

     printf("\t\t   1查找字符串S1中S2出现的次数                    \n");

     printf("\t\t   2统计字符串中大小写字母,数字出现的次数        \n");

     printf("\t\t   3将数字翻译成英语                              \n");

     printf("\t\t   4结束                                          \n");

     printf("\t\t\n");

     printf("\t\t     您的输入:");

        fflush(stdin);

     scanf("%d",&n);

    }

    void check()

    {

     

     char a[20],b[20];

     int j=0,k,m,l=0;

     int t=0,n=0;

     printf("请输入主字符串:\n");

     scanf("%s",a);

     k=strlen(a);

     printf("请输入子字符串:\n");

     scanf("%s",b);

     m=strlen(b);

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

      if(a[n]==b[0])

      {

       j++; /记录相同的字符数/

       do

       {    

        if(a[++n]==b[++t])

        { 

         j++;

         if(j==m) 

         {

          l++;/子字符串相同数/

          j=0;/判断后相同字符数归零/

          t=-1;/判断中if中++t;t将会归零/

         }

        }

        else

        {

         j=0;

         t=0;

         break;/如果不同跳出while循环让for使n+1继续判断/

        }

       }while(a[n]!='\0');/查找完字符数组a结束/

      }

      printf("子字符串出现次数:\n%d\n",l);

    }                                  

    void cout()

    {

     int n=0,t=0,k=0;

     printf("请输入一个字符串:\n");

        fflush(stdin);/清除缓冲/

     while((c=getchar())!='\n')

     {

      if(c>='a'&&c<='z')

       n++;

      if(c>='A'&&c<='Z')

       t++;

      if(c>='0'&&c<='9')

       k++;

     }

     printf("有大写字母:\n%d\n",t);

     printf("有小写字母:\n%d\n",n);

     printf("有数字:\n%d\n",k);

    }

    void number()

    {

     l=num;

     printf("请输入一个数字:(0-10)\n");

        fflush(stdin);

     scanf("%d",&m);

     printf("%d对应的英文是:\n%s\n",m,(l+m-1));

    }

    void main()

    {

     while(1)

     {   

      system("cls");

      menu();

      switch(n)

      {

      case 1:system("cls");check();system("pause");break;

      case 2:system("cls");cout();system("pause");break;

      case 3:system("cls");number();system("pause");break;

      case 4:system("cls");break;

      default:system("cls");break; 

      }

      if(n==4) break;

     }

     printf("感谢使用\n");

    }

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/13494243.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存