展开全部

数字流星雨代码:

//流星雨.cpp:Defines the entry point for the console application.

//

///

//程序名称:数字流星雨

//最后修改e5a48de588b63231313335323631343130323136353331333431353362:2006-10-15

///

#include<windows.h>

#include<time.h>

#include<stdlib.h>

#include"graphics.h"

#include<conio.h>

#include<math.h>

/***********************宏定义**********************/

#define PI 3.1415926//圆周率

#define WIDTH 200//屏幕宽度,流星出生区域

#define HEIGHT 150//屏幕高度,流星出生区域

#define V 20//流星速度,单次移动的像素数

#define LENGTH 20//流星字符数

#define DELAY 30//延时

#define NUM 45//流星个数

/******************定义流星结构体*******************/

struct meteor

{

int x0;

int y0;

int yh;

char str[LENGTH];

}me[NUM]={0};

/*********************函数声明**********************/

char AsciiRand();

void Move(char*p);

void InitMeteor(struct meteor*me);

int color(int y,int y0,int yh);

void Meteors(struct meteor me[]);

/***********************主函数**********************/

///int main(void)

int _tmain(int argc,_TCHAR*argv[]){

char c='\0';//接收键盘输入的变量

initgraph(WIDTH,HEIGHT);//初始化WIDTH*HEIGHT的绘图窗口

HWND hwnd=GetHWnd();//获得窗口句柄

SetWindowText(hwnd,"Gavin Liu数字流星雨");//修改窗口名称

ShowWindow(hwnd,SW_SHOWMAXIMIZED);//最大化显示窗口

MessageBox(hwnd,TEXT("点击【确定】开始演示流星雨效果,Esc键退出"),TEXT("提示"),MB_OK|MB_ICONWARNING);//弹出提示

srand((unsigned)time(NULL));//设置随机种子

for(int i=0;i<NUM;i++){//对NUM个流星体初始化

InitMeteor(&me<i>);

}

while(c!=27){

BeginBatchDraw();//开始批量绘图

Meteors(me);//绘制一帧动画

FlushBatchDraw();//执行未完成的绘制任务

Sleep(DELAY);//延时

cleardevice();//清屏

for(int i=0;i<NUM;i++){

me<i>.yh+=V;

Move(me<i>.str);

if(me<i>.yh>HEIGHT+LENGTH*V){

InitMeteor(&me<i>);

}

}

if(kbhit()){

c=getch();

}

}

EndBatchDraw();//结束批量绘图

closegraph();//结束绘图环境

return 0;

}

/***********************函数体**********************/

char AsciiRand(){//产生随机可见ASCII码

return((char)(rand()%(126-33)+33));

}

void Move(char*p){//字符后移,可以使显示时字符相对屏幕位置不变

char*pt=p+LENGTH;

while(pt>p){

*(--pt)=*(pt-1);

}

*p=AsciiRand();

}

void InitMeteor(struct meteor*me){//对一颗流星初始化

me->x0=rand()%WIDTH;

me->yh=me->y0=rand()%HEIGHT;

for(int i=0;i<LENGTH;i++)

{

*(me->str+i)=AsciiRand();

}

}

int color(int y,int y0,int yh){//确定流星的颜色

int color;

//出生点之前的流星体置成黑色

if(y<y0){

color=0;

}

//流星颜色自头至尾按照余弦函数递减

else{

//尾迹消失

color=(int)(255*cos((yh-y)*PI/(2*LENGTH*V)));

}

return color;

}

//打印一帧流星的画面

void Meteors(struct meteor me[]){

//设置格式:背景透明,字符高度,字体粗细,字体

setbkmode(TRANSPARENT);

setfont(12,12,"宋体");

//开始打印一帧图像

int y;

for(int n=0;n<NUM;n++){

for(int j=0;j<LENGTH;j++){

//流星中第j个字符的纵坐标

y=me[n].yh-j*V;

//设置颜色,流星的头部是白色的

setcolor(RGB(255*(0==j),color(y,me[n].y0,me[n].yh),255*(0==j)));

//打印字符

outtextxy(me[n].x0,y,me[n].str[j]);

}

}

}

扩展资料:

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include<文件名>

2、#include"文件名"

代码制作数字流星雨_用C语言编写流星雨程序相关推荐

  1. 编写lisp程序解一元二次方程_用C语言编写一程序求解一元二次方程的根。

    展开全部 C语言编写一程序求解32313133353236313431303231363533e78988e69d8331333365643661一元二次方程的根: #include #include ...

  2. java语言50到100之间素数和_用JAVA语言编写一程序,求100以内的所有素数

    满意答案 fdewj590 2017.02.13 采纳率:40%    等级:9 已帮助:316人 12345678910111213141516171819public static void ma ...

  3. python有趣的代码-分享几款由quot;Python”语言编写的quot;有趣、恶搞、好玩”的程序代码...

    为提高大家对"Python"编程语言的学习兴趣,今天给大家分享几款有趣的Python程序代码,感兴趣的小伙伴可以跟着学习借鉴哦!qq进群:156846986可以获取Python学习 ...

  4. c语言输入字母输出数字,输入一字符串 把其中的字母和数字分开输出 用c语言编写...

    输入一字符串 把其中的字母和数字分开输出 用c语言编写 答案:6  信息版本:手机版 解决时间 2019-10-05 09:13 已解决 2019-10-04 22:32 输入一字符串 把其中的字母和 ...

  5. c语言万年历代码作业,用c语言编写万年历程序

    用c语言编写万年历程序 <C 程序设计>课程设计报告 2011-2012学年第二学期 设计题目:万年历的设计 指导教师: 李素若 完成时间:2012 年 6月 1日至 2011年 6月 2 ...

  6. python输入一个正整数n求下列算式的值_C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值。,C语言 编写一个程序,输入一个正整数,求出它是几位数。...

    导航:网站首页 > C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值.,C语言 编写一个程序,输入一个正整数,求出它是几位数. C语言编写程序:输入一个正整数x和一个正整数n,求下 ...

  7. C语言编写一个赋值程序,实验2 用C语言编写简单程序——2.1 基本数据处理.doc

    实验2 用C语言编写简单程序--2.1 基本数据处理 实验2 用C语言编写简单程序 2.1 基本数据处理 [实验目的] (1)掌握算术表达式和赋值表达式的使用. (2)掌握基本输出函数的使用. (3) ...

  8. 心碎的图案怎么用c语言编出来,教案实验2用c语言编写简单程序.doc

    教案实验2用c语言编写简单程序 实验2 用C语言编写简单程序 2.1 基本数据处理1.调试示例 改正下列程序中的错误,求华氏温度100oF对应的摄氏温度?计算公式如下,其中:c 表示摄氏温度,f 表示 ...

  9. 用 C 语言编写的程序被称为,用c语言编写的程序被称为

    快速导读: Q1:用C语言编写以下程序 #includeintmain(void){ intm,n,i,t; printf("InputM,N(int0if(scanf("%d%d ...

最新文章

  1. oracle负载均衡方案,Oracle负载均衡配置代码
  2. IC/FPGA校招笔试题分析(二)任意切换的时钟分频电路
  3. 在什么时候才会用到fireEvent方法呢?
  4. 环境搭建之八-- node.js, npm和yarn
  5. Tiny210编译和烧写u-boot步骤
  6. matlab路面,赛道道路路况分析问题 matlab高手进下
  7. Effective STL 条款30
  8. [css] ::first-letter有什么应用场景?
  9. 为什么说string是引用类型,但是又有值类型的特点呢?
  10. cmd命令行怎样运行python_在CMD命令行中运行python脚本的方法
  11. tornado使用mysql 连接池(torndb)
  12. sql like不包括_SQL Like – SQL不喜欢
  13. Linux之DNS配置及案例
  14. JS DOM节点的增删改查
  15. JUC 常用 4 大并发工具类:CountDownLatch、CyclicBarrier、Semaphore、Exchanger
  16. 基于Java在线学习系统设计与实现
  17. Linux查看电脑启动时间,几种常用的「查看Linux开机时间」的命令
  18. 给大家分享一个QQ资料查询接口(等级,活跃,年龄,性别,身份卡)
  19. 使用Fiddler抓公众号数据
  20. u盘无法格式化怎么办?数据丢失这样恢复

热门文章

  1. python图片字符分割_图像分割python
  2. MyBioSource丨艾美捷抗eIF4E抗体
  3. 蓝牙耳机什么牌子好?无线蓝牙耳机品牌推荐
  4. 计算机系统维护数据安全,计算机组装与维护电子教案09单元9悉心保证系统与数据安全.doc...
  5. Linux 编辑doc,Linux 指令篇-文档编辑.doc
  6. 全国计算机二级flash,国家计算机二级考试WEB程序复习重点:制作Flash相册
  7. java编写flash相册的制作软件_精美的flash相册制作软件
  8. 用计算机怎么调闹钟,电脑闹钟怎么设置 win7电脑闹钟怎么设置
  9. 京东京麦开放平台的高可用架构之路
  10. 工业机器人上下料教学实训平台