



付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、下载可编辑题目:流星雨的实现学院 :班级 :姓名 :学号 :指导教师 :时间 :.专业 .整理 .下载可编辑目录一 课程设计目的3二 设计内容与要求3三 概要设计3四 详细设计5五 运行界面6六 设计总结16七 教师评语18.专业 .整理 .下载可编辑一 课程设计目的程序模拟一组流星飞向地面的情境,地面用多行 # 来表示,流星用大写字母表示 。二 设计内容与要求1 内容:程序产生一组流星 (比如 10 个),从屏幕顶部下降飞向地面 。2 一组流星中 ,每个流星的字符颜色是随机的 ,下降的位置是随机的 ,下降的速度也是随机的。一个流星下落只能去掉一个# 号,当最后一行地面有 # 被去掉时 ,程序
2、终止 。三 概要设计1 首先定义二维数组 screen 表示地面和天空 ,此数组是一个 24 行 81 列的字符数组 。上面的行表示天空 ,数组单元的值是空格 ;.专业 .整理 .下载可编辑最下面的几行 (如 5 行)表示地面 ,数组单元的值是 # 整;个屏幕的大小是 80*25 ,即 25 行 80 列, 为了在输出最后一行时不换行滚屏,程序只能利用上面的 24 行空间 。 把数组定义成 81 列的目的是,每行的最后字符赋值成 0 ,就可以按照字符串的方式输出每行文本了 。2 编写的程序在下降过程中 ,程序必须知道流星的字符 、颜色、位置、速度,因此程序需要定义以下几个数组变量 :存放流星字
3、符的数组 ,存放流星字符颜色的数组 ,存放流星行位置的数组 ,存放流星列位置的数组 ,存放流星下降速度的数组 。3 输出时程序首先输出地面和天空 ,即输出定义的二维数组 screen 中的字符串,前 21 行是空行,后 3 行是 # 号 。 这样 screen2481 的字符矩阵就与整个屏幕对应起来 。然后随时机产生一组流星数据 ,包括字符 、颜色、位置和速度 。速度用一次下降多少行来表示 ,最大的速度是4。由于要随机产生这些数据,因此需要调用random函数 。( random函数的原型是intrandom(intnum) ;这个函数产生一个0num-1之间的一个随机数 。 流星字符可以这样
4、产生: random(26)+流A星字;符的颜色可以这样产生 : random(16)+1; 流 星 下 降 的 位 置 可 以 这 样 产 生 :random(4)+1 ;流星的行位置一开始都是1; 流星的列位置可以这样产生:random(80)+1 ;但要保证所有流星的列位置不能相同。调用 random 之前,用 randomize() 库函数进行初始化 。 两个库函数都在 stdlib.h 文件中 。) 设置后,每个流星按照自己的速度下落 ,所.专业 .整理 .下载可编辑谓的下落就是逐行移动流星字符: 在下一行新的位置上显示流星字符,在原来的位置上显示空格以便擦除流星字符,然后再延迟等待
5、几十毫秒 。这样循环往复就构成了流星下落的动画。 但要注意 ,流星的速度各不相同,而一次下落多行的流星也要逐行下落。如果流星的新位置所对应的screen 的单元格的值是 # 则,表示撞到了地面 。 这种情况下在流星的新位置上输出空格,擦除 # 号,并且对screen 相应的单元赋值为空格 ,流星字符也要赋值为空格 ,以表示流星消失 。4 当 screen23 中任何一个单元格是空格时,程序终止。四 详细设计模块一 :输入天空和地面 ,天空和地面都是静止的 。模块二 :产生一组流星 ,流星的表示 。模块三 :流行的颜色 ,位置,速度。模块四 :若碰到 #号,流星和 # 号同时消失 。模块五 :若
6、第 24 行的流星被碰到 ,程序终止 。.专业 .整理 .下载可编辑流星的实现输 入 天 空 和产生一组流流行的颜色,若碰到 #号,地面星位置,速度流星和 #号同五 运行界面1 程序框图.专业 .整理 .下载可编辑2 程序清单#include #include #include #include #include #define ROW24.专业 .整理 .下载可编辑#define COL81#define REAL100#define NUM10#define SPEED4int random(int num);static void setSky();static void display
7、();int check_last_row();void word_n_down();int word_one_down(int begin,int position,int speed ,int word,int *word_end);void gotoxy(int x,int y);char sky_groundREALCOL;int test = 0;int cycle_end = 0;int word_endNUM;int list = 0;int beginNUM;.专业 .整理 .下载可编辑int positionNUM;int wordNUM;int speedNUM;int m
8、ain()int end_flag = 0;time_t t;srand(unsigned) time(&t);setSky();while(!(end_flag = check_last_row()for(int a=0;aNUM;a+)word_enda = 0;list = 0;cycle_end = 0;word_n_down();system(pause);return 0;.专业 .整理 .下载可编辑static void setSky()for(int b=0;bREAL;b+)for(int c=0;cCOL-1;c+)sky_groundbc = ;sky_groundbCO
9、L-1 = 0;for(int d=ROW-5;dROW;d+)for(int e=0;eCOL-1;e+)sky_groundde = #;sky_grounddCOL-1 = 0;static void display().专业 .整理 .下载可编辑gotoxy(0,0);for(int f=0;fROW;f+)printf(%s,sky_groundf);int random(int num)return(rand() % num);int check_last_row()for(int g=0;gCOL;g+)if(sky_ground23g = )return 1;return 0;
10、.专业 .整理 .下载可编辑void word_n_down()for(int h=0;h= NUM)break;test = list-1;if(test 0)test = 0;if(check_last_row()system(pause);exit(0);.专业 .整理 .下载可编辑for(int i=0;i= ROW)return 0;sky_groundbegin+test*speedposition = ; if(begin+list*speed = 19) for(int z=19;zROW;z+)if(sky_groundzposition = #).专业 .整理 .下载可编辑
11、sky_groundzposition = ;*word_end = 1;cycle_end +;break;elsesky_groundbegin+list*speedposition = word;return 0;void gotoxy(int x,int y)COORD coord;coord.X=x;coord.Y=y;SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord );.专业 .整理 .下载可编辑3、系统运行结果.专业 .整理 .下载可编辑六 设计总结经过一个星期的上机实践学习 ,使我对 C语言有
12、了更进一步的认识和了解 ,要想学好它要重在实践 ,要通过不断的上机操作才能更好地学习它 ,通过实践 ,我也发现我的好多不足之处 ,首先是自己在指法上还不行 ,经常按错字母 ,通过学习也有所改进;再有对 C语言的一些标准库函数不太了解 ,还有对函数调用的正确使用不够熟悉 ,还有对 C语言中经常出现的错误也不了解,通过实践 ,使我在这几个方面的认识有所提高 。虽然设计时完成了,但是我觉得其中还是由一些不足之处:1. 警告句。程序中缺少一些警告句,例如: “是否真的删除(y/n ) ? ”。2. 重名的情况 。由于考虑的不周全 ,没有设计遇到重名的情况该怎么处理 。3. 选择单一 。我们设计的程序中 ,只设计了按名字选择 ,进行操作 ,忽略了重名的情况 。短短的一周课程设计结束了 ,但是这段时间里 ,我又学到了更多 C 知识,如:对象数组 ,string 类,文件流等 ,同时我也被提醒以后办事的时候要认真 ,仔细,考虑周全 。, 也看到了团队
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省洛阳市嵩县2024-2025学年七年级下学期期末历史试题(含答案)
- 2025年福建省泉州市第六中学九年级最后一考数学试题(含部分答案)
- 食品物流行业发展前景研究报告
- 《道德经》的智慧启示知到智慧树答案
- “大庆精神”主题非遗文化剪纸知到智慧树答案
- 2025年哈尔滨房屋租赁合同范本
- JT-T 1178.2-2019 营运货车安全技术条件 第2部分:牵引车辆与挂车 含2025年第1号修改单
- 汇川区建设安全知识培训课件
- 水质监测基础知识培训课件
- 建筑工程施工安全技术培训方案
- T/CCASC 4003.1-2022氯碱工业成本核算方法第1部分:氢氧化钾
- 2024年高级消防员技能鉴定考前必刷必练题库500题(含真题、必会题)
- 2025年中国TPU环保薄膜市场调查研究报告
- 管网工程施工组织设计与管理
- 幼儿园开学园长会议发言稿模版
- 2025年大学辅导员选拔考试题库:学生综合素质评价体系评价方法试题
- 现场仪表知识培训课件
- 2025四川建筑安全员C证(专职安全员)考试题库
- 嘉兴市昊鸣纺织有限公司年产480万米高档纺织真丝面料技改项目环评报告
- 假体隆胸手术课件
- 水泵房设备安装施工方案
评论
0/150
提交评论