⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3_17.c

📁 浙大《C语言设计基础课程设计》中的例程 有些比较好的代码!
💻 C
字号:
/*--------例程3-17----------*/
#include<graphics.h>
#include<stdlib.h>
#include<dos.h>

int x,y,maxcolor;
void graphone(char *str);     /*这个函数实现的是字符串str左右运动,线条上下运动*/
void graphtwo(char *str);     /*这个函数实现的是字符串str上下运动,线条左右运动*/
void graphthree(char *str);    
/*这个函数实现的是字符串str由小变大,再由大变小,直线也随之变化*/

main()
{
   int i,driver,mode;
   char *str="W E L C O M E !";
   driver=DETECT;
   mode=0;
   initgraph(&driver,&mode,"");                  //系统初始化
   cleardevice();                               // 清屏
   settextjustify(CENTER_TEXT,CENTER_TEXT);  // 设置字符串的定位模式
   x=getmaxx();               // 返回当前图形模式下的最大有效的x值
   y=getmaxy();               // 返回当前图形模式下的最大有效的y值
   maxcolor=getmaxcolor();     // 返回当前图形模式下的最大有效的颜色值
   
   while(!kbhit())
   {
        graphone(str);            // 第一个动画
   	graphtwo(str);            // 第二个动画
      	graphthree(str);           // 第三个动画
   }
   getch();
   closegraph();                    // 关闭图形模式
}

void  graphone(char *str)
{
   int i;
   for(i=0;i<40;i++)
   {
       setcolor(1);
       settextstyle(1,0,4);
       setlinestyle(0,0,3);
       cleardevice();
       line(150,y-i*15,150,y-300-i*15);
       line(170,y-i*15-50,170,y-350-i*15);
       line(130,y-i*15-50,170,y-i*15-50);
       line(150,y-300-i*15,190,y-300-i*15);

       line(x-150,i*15,x-150,300+i*15);
       line(x-170,i*15-50,x-170,250+i*15);
       line(x-150,i*15,x-190,i*15);
       line(x-130,250+i*15,x-170,250+i*15);
       outtextxy(i*25,150,str);
       outtextxy(x-i*25,y-150,str);
       delay(5000);
   }
}
void graphtwo(char *str)
{
    int i;
    for(i=0;i<30;i++)
    {
       setcolor(5);
       cleardevice();
       settextstyle(1,1,4);
       line(i*25,y-100,300+i*25,y-100);
       line(i*25,y-120,300+i*25,y-120);
       line(x-i*25,100,x-300-i*25,100);
       line(x-i*25,120,x-300-i*25,120);
       outtextxy(150,i*25,str);
       outtextxy(x-150,y-i*25,str);
       delay(5000);
   }
}
void graphthree(char *str)
{
    int i,j,color,width;
    color=random(maxcolor);        // 随机得到颜色值
    setcolor(color);
    settextstyle(1,0,1);              // 设置字符串的格式
    outtextxy(x/2,y/2-100,str);      // 显示字符串
    delay(8000);
    for(i=0;i<8;i++)                // 字符串由小变大
    {
	   cleardevice();               // 清屏
	   settextstyle(1,0,i);
	   outtextxy(x/2,y/2-i*10-100,str);
	   outtextxy(x/2,y/2+i*10-100,str);

	   width=textwidth(str);       // 得到当前字符串宽度
	   setlinestyle(0,0,1);           // 设置画线格式

	   line((x-width)/2+10*(8-i),y/2+i*15-70,(x+width)/2-10*(8-i),y/2+i*15-70);
	   line((x-width)/2+5*(8-i),y/2+i*15-60,(x+width)/2-5*(8-i),y/2+i*15-60);
	   line((x-width)/2,y/2+i*15-50,(x+width)/2,y/2+i*15-50);

	   line((x-width)/2,y/2+i*15-20,(x+width)/2,y/2+i*15-20);
	   line((x-width)/2+5*(8-i)-10,y/2+i*15-10,(x+width)/2-5*(8-i),y/2+i*15-10);
	   line((x-width)/2+10*(8-i),y/2+i*15,(x+width)/2-10*(8-i),y/2+i*15);
	   delay(8000);
    }
    for(i=7;i>=0;i--)               // 字符串由大变小   
    {
	   cleardevice();              // 清屏
	   settextstyle(1,0,i);           
	   outtextxy(x/2,y/2-i*10-100,str);
	   outtextxy(x/2,y/2+i*10-100,str);

	   width=textwidth(str);
	   setlinestyle(0,0,1);

	   line((x-width)/2+10*(8-i),y/2+i*15-70,(x+width)/2-10*(8-i),y/2+i*15-70);
	   line((x-width)/2+5*(8-i),y/2+i*15-60,(x+width)/2-5*(8-i),y/2+i*15-60);
	   line((x-width)/2,y/2+i*15-50,(x+width)/2,y/2+i*15-50);

	   line((x-width)/2,y/2+i*15-20,(x+width)/2,y/2+i*15-20);
	   line((x-width)/2+5*(8-i),y/2+i*15-10,(x+width)/2-5*(8-i),y/2+i*15-10);
	   line((x-width)/2+10*(8-i),y/2+i*15,(x+width)/2-10*(8-i),y/2+i*15);
	   delay(8000);
    }
} 
/*--------例程3-17结束----------*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -