- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 10
计算机技术基础课程设计
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 语句
结束
结束
四、程序清单:
#includeio.h #includestdio.h #includedos.h #includestring.h #includemath.h #includestdio.h #includebios.h #includemem.h #includefcntl.h #includestdlib.h #includeconio.h #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[((y8)+(y6))+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;n300;n++) ? ? ? ? ? { ? ? ? ? ? ? if(num[n].SORT
文档评论(0)