C语言编程模拟下雨by张田浩.doc

C语言编程模拟下雨by张田浩.doc

ID:49699719

大小:27.62 KB

页数:9页

时间:2020-03-03

C语言编程模拟下雨by张田浩.doc_第1页
C语言编程模拟下雨by张田浩.doc_第2页
C语言编程模拟下雨by张田浩.doc_第3页
C语言编程模拟下雨by张田浩.doc_第4页
C语言编程模拟下雨by张田浩.doc_第5页
资源描述:

《C语言编程模拟下雨by张田浩.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、程序设计实习报告题目:模拟下雨学院:计算机与通信工程学院专业:计算机科学与技术班级:计算1402姓名:张田浩学号:1407010220一、需求分析1、本程序要求模拟下雨过程,要有雨点落下并有雨点落地时的水圈效果2、雨滴在屏幕出现的位置是随机的,雨圈的位置要和雨线对应,并且雨圈的大小要是随机的来增强效果3、雨要一直下,不受程序员控制二、总体设计1.利用easyx把TC下的"graphics.h"函数导入到了VC6.0中来实现绘图功能,并且调用”initgraphics”函数初始化图形模式600*480,2.雨滴和雨圈可以看作两个结构体,而且雨圈的结构体可以嵌

2、套咋雨滴的结构体中3.程序主要分为五大模块(1)主函数voidmain()(2)雨点产生模块structdrop*creatDrop(void),voidrecreatDrop(structdrop*p),voidcreatRain(void)(3)雨点下落模块voidupdateRainLineData(structrainDrop*p),voiddrawRainLine(structrainDrop*p),voidclearRainLine(structrainDrop*p),voidrainDropDown(structrainDrop*p)(4)水

3、纹生成模块voidupdateRainCircleData(structrainDrop*p),voiddrawRainCircle(structrainDrop*p),voidclearRainCircle(structrainDrop*p)(5)控制模块voidrain(void),voidclearAll(void)我的任务:负责雨点产生和下落模块及最后的调试,编写实习报告。三、详细设计1.雨圈的结构体structrainCircle雨点落下造成的水圈{intx;雨圈的圆心坐标inty;intr;水圈的半径intcurR;中间过程水圈的半径intra

4、inCircleStep;水圈每次扩张的增量};2.雨线的结构体structrainDrop{intstartX;雨点开始的X值intstartY;雨点开始的Y值intendY;雨点结束的Y值intcurX;雨点降落中的X值intcurY;雨点降落中的Y值intrainLineStep;雨线每次的增量intrainLineLength;雨线的长度intstatus;表示下落过程是否完成structrainCirclewater;嵌套的雨圈结构体structrainDrop*next;用于创建动态链表的指针};3.动态链表的创建和释放structrainDr

5、op*head;structrainDrop*p1,*p2;inti;p1=p2=creatDrop();head=p1;for(i=0;inext=p2;p1=p2;}在creatDrop函数中用malloc()动态分配内存4.雨线和雨圈的绘制与清除Setcolor()设定颜色,line()画线。出现时用白色画,让其消失就在原位置画一条黑线。5.三个if-else判断的核心函数(1)整个下雨的控制过程rain(){创建rainDrop类的指针p让它指向头指针;While(键盘没有输入){if(p指到表

6、尾)p指向头指针;else{If(status==0)控制下雨;else控制形成雨圈;}延时;指针指向指向下一个;}(2)控制下雨rainDropDown(){If(当前的雨线的y坐标大于等于终点坐标){擦除上一条雨线;Status=0;}else{擦除上一条雨线;更新雨线坐标;画新雨线;}}(3)画雨圈思路和画雨线一样6.随机的实现使用”time.h”下的”rand”函数进行随机,对雨点雨圈的初始坐标,雨圈的半径,雨圈的扩张速度,延时时间进行随机。7.主函数实现过程(1)配置屏幕(2)创建链表(3)模拟下雨过程(4)下雨结束,清除链表8.使用的几个关键库

7、函数initgraphics();kbhit();Sleep();四、编码源代码如下:#include#include#include#include#include#includestructrainDrop*head;voidinitgraphics(void){intgmode,gdriver;gdriver=DETECT;initgraph(&gdriver,&gmode,"");}intn=100;//雨的数目structrain

8、Circle//雨点落下造成的水圈{intx;inty;intr;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。