c语言课程设计雪花飞舞,雪花飞舞--c语言课程设计.doc

雪花飞舞--c语言课程设计

PAGE

计算机技术基础课程设计

C语言

设计报告

题目:雪花飞舞

一、选题背景:

问题的提出:我们在编制各种flash动画设计时,经常会用到风雪的背景,为此编制几个函数对于雪花飞舞的演示,此程序即可做艺术欣赏又可做背景设计。

所以编制这个程序对动画设计有很大的积极意义。

二、设计思想:

雪花飞舞是一个简单的动画背景,没有过多的繁杂景象,思路简单,编程容易。很容易被初学者接受。

在实现过程中,用到了while,for,if-else-if等循环语句。运用结构体。

三、程序流程图

开 始

开 始

调用库函数

调用库函数

定义视频模式函数

定义视频模式函数

定义流星雨雨点的结构体

定义流星雨雨点的结构体

定义雪堆元素点的结构体

定义雪堆元素点的结构体

定义4个for分别为赋结构体元素值

定义4个for分别为赋结构体元素值

主函数开始(main)

主函数开始(main)

设定256色视频模式

设定256色视频模式

调用时间和已定义的4个for函数

调用时间和已定义的4个for函数

W

While(!kbhit)

for语句

for语句

if语句

if语句

if-else-if 语句

if-else-if 语句

结束

结束

四、程序清单:

#include #include #include #include #include #include #include #include #include #include #include #define VGA256 0x13 #define TEXT_MODE 0x03

int n,i=0; unsigned char far *video_buffer=(char far *)0xA0000000L; void Set_Video_Mode(int mode)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*视频模式函数*/ { ? ? union REGS inregs,outregs; ? ? inregs.h.ah=0; ? ? inregs.h.al=(unsigned char)mode; ? ? int86(0x10,&inregs,&outregs); } struct Blizzard? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*流星雨雨点的结构体*/ { int SORT; int x; int y; };

struct Blizzard num[300];

struct Stack_Pixel? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*雪堆元素点的结构体*/ {

int x; int y;

};

struct Stack_Pixel Num[300]; void Plot_Pixel_Fast(int x,int y,char color) /*雪花的颜色为白色*/{ video_buffer[((y<<8)+(y<<6))+x]=color; } void data_initialization()? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? /*以下4个for分别为赋结构体元素值*/

{

for(n=0;n<=299;n=n+1)

{

num[n].x=random(640);

num[n].y=random(480);

}

for(n=0;n<=99;n=n+1)

{

num[n].SORT=1;

}

for(n=100;n<=199;n=n+1)

{

num[n].SORT=2;

}

for(n=200;n<=299;n=n+1)

{

num[n].SORT=3;

}

} void main() { Set_Video_Mode(VGA256);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*设定256色图形模式*/ srand(time(NULL)); data_initialization();

while(!kbhit()) ? ? ? { ? ? ?

for(n=0;n<300;n++) ? ? ?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值