C语言程序设计今天下雨了吗,C语言编程模拟下雨by张田浩.doc
实用文档
标准
程序设计实习报告
题目: 模拟下雨
学院: 计算机与通信工程学院
专业: 计算机科学与技术
班级: 计算1402
姓名: 张田浩
学号:1407010220
一、需求分析
1、本程序要求模拟下雨过程,要有雨点落下并有雨点落地时的水圈效果
2、雨滴在屏幕出现的位置是随机的,雨圈的位置要和雨线对应,并且雨圈的大小要是随机的来增强效果
3、雨要一直下,不受程序员控制
二、总体设计
1.利用easyx把TC下的"graphics.h"函数导入到了VC6.0中来实现绘图功能,并且调用”initgraphics”函数初始化图形模式 600*480 ,
2.雨滴和雨圈可以看作两个结构体,而且雨圈的结构体可以嵌套咋雨滴的结构体中
3.程序主要分为五大模块
(1)主函数 void main( )
(2)雨点产生模块 struct drop *creatDrop(void),void recreatDrop(struct drop *p),
void creatRain(void)
(3)雨点下落模块 void updateRainLineData(struct rainDrop *p),void drawRainLine(struct rainDrop *p),void clearRainLine(struct rainDrop *p),void rainDropDown(struct rainDrop *p)
(4)水纹生成模块 void updateRainCircleData(struct rainDrop *p),void drawRainCircle(struct rainDrop *p),void clearRainCircle(struct rainDrop *p)
(5)控制模块 void rain(void),void clearAll(void)
我的任务:
负责雨点产生和下落模块及最后的调试,编写实习报告。
三、详细设计
1.雨圈的结构体
struct rainCircle 雨点落下造成的水圈
{
int x; 雨圈的圆心坐标
int y;
int r; 水圈的半径
int curR; 中间过程水圈的半径
int rainCircleStep; 水圈每次扩张的增量
};
2.雨线的结构体
struct rainDrop
{
int startX; 雨点开始的X值
int startY; 雨点开始的Y值
int endY; 雨点结束的Y值
int curX; 雨点降落中的X值
int curY; 雨点降落中的Y值
int rainLineStep; 雨线每次的增量
int rainLineLength; 雨线的长度
int status; 表示下落过程是否完成
struct rainCircle water; 嵌套的雨圈结构体
struct rainDrop *next; 用于创建动态链表的指针
};
3.动态链表的创建和释放
struct rainDrop *head;
struct rainDrop *p1,*p2;
int i;
p1=p2=creatDrop();
head=p1;
for(i=0;i
{
p2=creatDrop();
p1->next=p2;
p1=p2;
}
在creatDrop函数中用malloc()动态分配内存
4.雨线和雨圈的绘制与清除
Setcolor()设定颜色,line()画线。出现时用白色画,让其消失就在原位置画一条黑线。
5.三个if-else判断的核心函数
(1)整个下雨的控制过程
rain()
{
创建rainDrop类的指针p让它指向头指针;
While(键盘没有输入)
{
if(p指到表尾) p指向头指针;
else
{
If(status==0) 控制下雨;
else 控制形成雨圈;
}
延时;
指针指向指向下一个;
}
(2)控制下雨
rainDropDown()
{
If(当前的雨线的y坐标大于等于终点坐标)
{
擦除上一条雨线;
Status=0;
}
else
{
擦除上一条雨线;
更新雨线坐标;
画新雨线;
}
}
(3)画雨圈
思路和画雨线一样
6.随机的实现
使用”time.h”下的”rand”函数进行随机,对雨点雨圈的初始坐标,雨圈的半径,雨圈的扩张速度,延时时间进行随机。
7.主
C语言程序设计今天下雨了吗,C语言编程模拟下雨by张田浩.doc相关推荐
- C语言程序设计今天下雨了吗,C语言编程模拟下雨by张田浩
<C语言编程模拟下雨by张田浩>由会员分享,可在线阅读,更多相关<C语言编程模拟下雨by张田浩(11页珍藏版)>请在人人文库网上搜索. 1.程序设计实习报告题目:模拟下雨学院: ...
- c语言程序设计 函数说课,《C语言程序设计》之函数说课课件.ppt
您所在位置:网站首页 > 海量文档  > 计算机 > C/C++资料 <C语言程序设计>之函数说课课件.p ...
- c语言程序设计授课进度安排表,C语言程序设计教学大纲、教学计划进度简表
<C语言程序设计>教学大纲 课程名称:<C语言程序设计> 英文名称:PROGRAMMING IN C LANGUAGE 课程性质:公共选修课程 课程编号:1203141 所属院 ...
- c语言程序设计课后答案西电,C语言程序设计习题大全(含答案)C语言-.doc
C语言程序设计习题大全(含答案)C语言-.doc C语言基础?一: 1.下列四组选?项中,均不是C语?言关健字的?选项是( A ). A) defin?e B) gect C) inclu?de D) ...
- c语言程序设计形成性作业3,C语言程序设计形成性作业3-4..doc
C语言程序设计形成性作业3-4. 毛送轻囊集凿撤震栖宋求胳多乡靳肪来蹄亲居菩仍何芦潞征谭欺芋祸早访重俭欧哈函炸惯漆膏花昂缺扫袖凰伸几沁蹲欠傍试嘉慷节说陋锯赚故酪添默牺臭能触波圈爷特苦吻酱怎摔江邢葛背湍 ...
- **PTA:浙大版《C语言程序设计(第3版)》编程题答案*
PTA:浙大版<C语言程序设计(第3版)>编程题答案 练习2-3 输出倒三角图案 练习2-4 温度转换 练习2-6 计算物体自由下落的距离 练习2-8 计算摄氏温度 练习2-9 整数四则运 ...
- c语言程序设计自评报告,石家庄学院c语言程序设计自评报告.docx
石家庄学院c语言程序设计自评报告 石家庄学院课程设计报告 课程名称:设计题目:院系:专业:班级:设计者:学号:指导教师:一.题目分析: C语言程序设计校级运动会管理系统 计算机系计算机科学与技术 XX ...
- c语言程序设计试题及答案十,C语言程序设计试题试题及答案.doc
<C语言程序设计试题试题及答案.doc>由会员分享,可在线阅读,更多相关<C语言程序设计试题试题及答案.doc(49页珍藏版)>请在装配图网上搜索. 1.C ,C+(120)1 ...
- 吉大c语言程序设计作业一,吉林大学历年C语言程序设计试题及答案.doc
吉林大学历年C语言程序设计试题及答案 吉林大学历年C语言程序设计试题及答案(5)END 2000年试题答案 一.(1)解题思想: 用5个数 a,b,c,d,e,来回替换,最终f(n)算出. 设计程序如 ...
最新文章
- php 循环打开目录读取文件
- 服务器于本地间进行复制粘贴
- Python 03 学习内容整理
- ppt文件限打开次数_PPT冷知识25条!看到第一条我就翻了车…
- 玩的时候好好玩,学的时候好好学。不做半吊子
- 2020有效的邮箱号大全_2020年公众号免费裂变涨粉的3个有效方法,让我一天涨粉6000...
- 【数据结构与算法】AVL树核心算法的Java实现
- 开源 数据查询 工具_6个用于数据新闻的开源工具
- 低代码,是否能“取代”开发者?
- matlab 生成连续信号,Matlab的连续信号生成及时频域分析
- 什么是IT行业? IT行业都有哪些职位?
- 吃握手包的电子宠物 - Pwnagotchi开箱教程
- excel数据库_标签打印软件中Excel数据整理及导入
- 英语怎么形容“漂亮女孩”(转)
- 2019年北京理工大学计算机专硕上岸经验分享
- UE4材质03_纹理采样及UV
- codeforces 416E President's Path floyd+D(递)P(推)
- 2018年9月份面试小记
- spring的两大核心
- git出现error: invalid object for ‘xxxxx‘
热门文章
- matlab构建信道模型channel model, Rayleigh channel (NLoS), Rician channel (LoS)
- 【STM32L552ZET6QU】小白入门资料汇总
- python爬虫汽车之家全车型及基本参数入数据库(截止50524个数据)(详解)
- maven的依赖下载不下来,解决的几种方法(包括手动下载导入)
- 计算机设备替换方案,电脑升级cpu的方案
- beeline登录配置
- 基于Web+App的快递公司物流管理信息系统设计与实现
- Typescript+Vue大型后台管理系统实战
- Linux-开机引导过程 | MBR、GRUB、ROOT密码找回讲解 | 超详细
- 135微信编辑html语言,135微信编辑器如何使用 135编辑器微信文章编辑教程