雪花飞舞--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++) ? ? ?