- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言_流星雨的实现
HUNAN UNIVERSITY
程序设计训练报告
题目 流 星 雨 的 实 现 学生姓名 毛 宇 锋 学生学号 201208060116 专业班级 信息安全一班 学院名称 信息科学与工程学院 指导老师 李 丽 娟
2013年7月8日
(一)程序要求及功能简介
程序模拟一组流星飞向地面的情景。地面用多行#来表示,流星用大写字母表示。程序产生一组流星(比如10个),从屏幕顶部下降飞向地面。一组流星中,每个流星的字符颜色是随机的,下降的位置是随机的,下降的速度也是随机的。一个流星下落只能去掉一个#号,当最后一行地面有#被去掉时,程序终止,程序在下降过程中,程序必须知道流星的字符、颜色、位置、速度。
(二)基本算法思想说明
定义一个二维数组screen[24][80],代表25行80列的程序界面,由于DOS界面在输出第25行的时候会发生滚屏的现象,所以只利用上面24行,通过sky数组和ground数组对screen数组进行初始化和更改。
利用随机数产生一组十个流星的数据,包括流星的字符、出现位置、颜色和速度,分别保存在letter,lie,color,speed数组里。
流星坠落的实现就是将上一行出现的字符在下一行出现并将上一行的字符更改为0,坠落的速度是每次替换的行数,替换的多则坠落的快,少则坠落的慢,流星的颜色可以用SetConsoleTextAttribute函数进行更改。
(三)模块的功能及程序说明
调用函数介绍
load函数:初始化sky,ground,heng,lie数组,给他们赋初始值。
make函数:用随机数制造一组流星的数据,包括流星的字符、颜色、初始位置、速度。
combine函数:将经过初始化或者经过改变后的sky与ground数组赋给screen数组。
output函数:程序界面的输出,将包含流星信息的screen函数输出到屏幕上。
gotoxy函数:光标移动函数,将光标移动到初始位置重新输出以达到替换屏幕从而实现流星坠落的效果。这个函数也可以用clearscreen这个系统函数来代替,可是clearscreen函数会造成屏幕的闪烁,影响最终效果。
fall函数:通过替换和替换的次数来实现流星在screen数组里的位置改变和改变速度的快慢,达到流星坠落的效果。
exist_or函数:判断屏幕上是否还有流星,如果没有流星则产生新的流星。
(四)算法流程图
否
是
(五)核心源程序
本程序的核心部分是流星雨的制造和通过替换实现流星雨的下落,在源程序中分别被定义为make函数和fall函数。
make函数通过随机数产生流星的字符、颜色、速度性质并传给其他函数进行运算,它所要解决的最重要的问题是如何使流星产生在不同的列和如何将列序号从小到大排列,使得在output函数里能通过SetConsoleTextAttribute函数给流星不同的颜色而不影响整个背景的颜色。解决第一个问题的方法是通过产生随机数逐次比较来筛选掉出现重复的流星列位置,解决第二个问题的方法是将所有产生的列位置进行冒泡排序。该函数的源代码如下:
void make(char screen[24][80],char sky[24][80],char letter[10],int lie[10],int heng[10],int color[10],int speed[10],int exist[10])
{
int i1,i2,t,change,base=1;
for(i1=0;i110;i1++)
{
heng[i1]=0;
letter[i1]=(abs(rand())%26+65);//随机产生一个字母作为流星
color[i1]=abs(rand())%3;
while(1) //保证流星不产生在同一列的筛选函数
{
base=0;
t=(abs(rand())%80);
for(i2=0;i210;i2++)
if(
您可能关注的文档
- 2013浙江高培考试多选题高等教育学.docx
- 2013广州三模化学考前训练题.doc
- 2013新课标高考文综历史部分试题及答案解析.doc
- 2013版七年级英语下册期末复习Units1-6阶段测试.doc
- 2013文科综合历史部分试题.doc
- 2013数学建模一等奖.doc
- 2013版《思考与练习》参考答案.doc
- 2013版思修第四章学习道德理论注重道德实践.doc
- 2013物流工程毕业设计部分论文题目讨论稿.doc
- 2013浙江省公务员行测模拟冲刺卷试题+答案.doc
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)