- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构:模拟现实下雨(C语言)
需求分析
A.要求:
本程序要求彩色的雨点从天而降,当碰到虚拟的地面时,产生一个水波,同时有声音产生。对于每一次运行,都能设计雨点的多少和下降的速度,不同的设计呈现出不同的效果。
可以随机的对雨点的位置进行设置,随时对雨点的下落位置进行定位。
多个雨点按照各自的随机参数和存在状态,同时演示在屏幕上,可以适当的控制雨点的密度、最大水圈和状态变化的时间间隔等参数。
B.进一步要求:
主要的数据类型有两个带头结点的双向循环链表,如下:typedef struct //单个雨滴 colorref color;//雨滴颜色 bool visibility; //可见性 float radius; //半径 float x;//雨滴中心位置 x float y;//雨滴中心位置 y float xvelocity;//雨滴速率 vx float yvelocity;//雨滴速率 vy droplet; struct dropletchain ; typedef struct ripple; struct ripplechain ;对链表的操作混杂在类ccraindlg(mfc 的对话框类)中。演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”下,用户可由键盘输入各选择项以及输入数据。每次的排序结果都可以进行显示,便于用户检验排序的正确与否。
C.测试过程:
概要设计
采用方便的用户输入界面,直接输入两个变量值,一个是雨点的数量,一个是雨点延迟时间,雨点的数量越多,运行的时间越多,所要用的内存也相对要多;同理输入的雨点的延迟时间越长,程序运行中所需要的保存状态的内存量就大,而其运行的时间也相对多点。不管是用何种方式,运行的硬件的条件不变。
抽象数据类型如下:
ADT graphList {
数据对象:D={ai | ai ∈Charset , I = 1,2,3,···,n, n≥0}
数据关系:R1={ai-1,ai | ai-1,ai∈D,ai-1ai, I =2,···,n}
基本操作:
void initgr(void)
初始条件: 已经有雨点存在或者是水纹存在
操作结果: 图形显示
void main()
操作结果: 创建主函数
void background(void)
操作结果: 绘制背景图
void rain(void)
操作结果: 创建下雨函数
struct drop *creatDrop(void)
操作结果: 创建雨点
void recreatDrop(struct drop *p)
操作结果: 雨点重新创建
void creatRain(void)
操作结果: 创建雨点链表
void drop(struct drop *p)
操作结果: 创建雨点下落过程的函数
void drawdrop(struct drop *p)
操作结果: 画雨点函数
void cleardrop(struct drop *p)
操作结果: 清除雨点函数
void wave(struct drop *p)
操作结果: 创建水纹产生函数
void draw(struct drop *p)
操作结果: 画水纹函数
void clear(struct drop *p)
操作结果: 清除水纹函数
void release (void)
操作结果: 清楚雨点链表函数
}ADT graphList
要求雨点的状态以图的形式显示出来,所以要用到图形函数,在此需要设计一个结构。
雨点存储结构:
struct drop
{
int x;
int y0;
int yt;
int color;
int inc;
int i;
int j;
int r;
struct drop *next;
};
4.本程序含有四大模板:
(1)主函数 void main( )
(2)雨点产生模块 struct drop *creatDrop(void),void recreatDrop(struct drop *p),
void creatRain(void)
(3)雨点下落模块 void drop(struct drop *p),void drawdrop(struct drop *p),
void cleardrop(st
文档评论(0)