HUNANUNIVERSITY程序设计训练报告
题目流星雨的实现
学生姓名毛宇锋
学生学号
专业班级信息安全一班
学院名称信息科学与工程学院
指导老师李丽娟
2013年7月8日
f一程序要求及功能简介
程序模拟一组流星飞向地面的情景。地面用多行来表示流星用大写字母表示。程序产生一组流星比如10个从屏幕顶部下降飞向地面。一组流星中每个流星的字符颜色是随机的下降的位置是随机的下降的速度也是随机的。一个流星下落只能去掉一个号当最后一行地面有被去掉时程序终止程序在下降过程中程序必须知道流星的字符、颜色、位置、速度。
二基本算法思想说明
定义一个二维数组scree
2480代表25行80列的程序界面由于DOS界面在输出第25行的时候会发生滚屏的现象所以只利用上面24行通过sky数组和grou
d数组对scree
数组进行初始化和更改。
利用随机数产生一组十个流星的数据包括流星的字符、出现位置、颜色和速度分别保存在letterliecolorspeed数组里。
流星坠落的实现就是将上一行出现的字符在下一行出现并将上一行的字符
更改为0坠落的速度是每次替换的行数替换的多则坠落的快少则坠落的慢流星的颜色可以用SetCo
soleTextAttribute函数进行更改。
三模块的功能及程序说明
调用函数介绍
load函数初始化skygrou
dhe
glie数组给他们赋初始值。
make函数用随机数制造一组流星的数据包括流星的字符、颜色、初始位置、速度。
combi
e函数将经过初始化或者经过改变后的sky与grou
d数组赋给scree
数组。
output函数程序界面的输出将包含流星信息的scree
函数输出到屏幕上。
gotoxy函数光标移动函数将光标移动到初始位置重新输出以达到替换屏幕从而实现流星坠落的效果。这个函数也可以用clearscree
这个系统函数来代替可是clearscree
函数会造成屏幕的闪烁影响最终效果。
fall函数通过替换和替换的次数来实现流星在scree
数组里的位置改变和改变速度的快慢达到流星坠落的效果。
exist_or函数判断屏幕上是否还有流星如果没有流星则产生新的流星。
f四算法流程图
五核心源程序
本程序的核心部分是流星雨的制造和通过替换实现流星雨的下落在源程序中分别被定义为make函数和fall函数。
make函数通过随机数产生流星的字符、颜色、速度性质并传给其他函数进行运算它所要解决的最重要的问题是如何使流星产生在不同的列和如何将列序
f号从小到大排列使得在output函数里能通过SetCo
soleTextAttribute函数给流星不同的颜色而不影响整个背景的颜色。解决第一个问题的方法是通过产生随机数逐次比较来筛选掉出现重复的流星列位置解决第二个r