C语言/C++基础之火箭发射
发布时间
阅读量:
阅读量
C语言/C++基础之火箭发射
- 程序的优雅
-
引言
-
主体部分
-
运行效果分析
- 码上实现案例
- 功能模块解析
- 初始化阶段规划
- 关键流程图解读
- 资源管理优化方案
-
结束语
-
程序之美

前言
火箭通过高速排出热气流产生推力向前运动的喷气推进装置。它自身携带氧化剂和助燃剂,在大气或外层空间均可飞行,并且其质量会随着推进剂的消耗而逐渐减小。作为变质量飞行器这一点也是其显著特征之一。
自然地作为一个程序员不都得实践一下不?下面我们就通过代码实现的方式来模拟我们心中的火箭——火箭发射过程。
主体
运行效果
话不多说,先看运行效果:

代码示例
#include<graphics.h>
#include<math.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<Windows.h>
void stars()
{
int seed = 2000;
int i, dotx, doty, height, width, color, maxcolor;
maxcolor = 15;
width = getmaxx();
height = getmaxy();
srand(seed);
for (i = 0; i < 250; i++)
{
dotx = i + rand() % (width - 1);
doty = i + rand() % (height - 1);
color = rand() % maxcolor;
setcolor(color);
putpixel(dotx, doty, color);
circle(dotx + 1, doty + 1, 1);
}
srand(seed);
}
void fashe()
{
float j = 1, k = 1;
for (j = 1; j < 90000; j++)
k = k + j * j + 1 * sqrt(j);
cleardevice();
k = 0;
}
int main()
{
int mode, i;
initgraph(960, 720);
setbkcolor(BLACK);
stars();
setcolor(YELLOW);
line(300, 300, 380, 300); line(300, 300, 340, 260);
line(380, 300, 340, 260); line(300, 300, 300, 400);
line(300, 400, 250, 450); line(380, 300, 380, 400);
line(340, 400, 430, 450); line(340, 400, 250, 450);
line(380, 400, 430, 450); line(300, 400, 380, 400);
setcolor(GREEN);
line(250, 450, 430, 450); line(250, 450, 150, 600);
line(430, 450, 630, 600);
for (i = 10; i >= 1; i--)
{
printf("%d\t", i);
Sleep(1000);
}
printf("\n\n\n\n\t\t\tPlease press 'S',START!");
Sleep(1000);
if (_getch() == 's')
{
printf("\n\n\n\n\n\t\t\t\t\tSTART!");
Sleep(1000);
for (i = 10; i <= 550; i++)
{
setcolor(YELLOW);
line(300, 300 - i, 380, 300 - i); line(300, 300 - i, 340, 260 - i);
line(380, 300 - i, 340, 260 - i); line(300, 300 - i, 300, 400 - i);
line(300, 400 - i, 250, 450 - i); line(380, 300 - i, 380, 400 - i);
line(340, 400 - i, 430, 450 - i); line(340, 400 - i, 250, 450 - i);
line(380, 400 - i, 430, 450 - i); line(300, 400 - i, 380, 400 - i);
setcolor(RED);
line(295, 525 - i, 295, 430 - i); line(340, 450 - i, 340, 550 - i);
line(380, 430 - i, 380, 525 - i);
fashe();
stars();
}
printf("\n\t\t\t\tPlease press 'B',BACK!");
if (_getch() == 'b')
{
for (i = 300; i < 1000; i++)
{
setcolor(YELLOW);
line(300, i - 300, 380, i - 300); line(300, i - 300, 300, i - 400);
line(300, i - 400, 250, i - 450); line(380, i - 300, 380, i - 400);
line(340, i - 400, 430, i - 450); line(340, i - 400, 250, i - 450);
line(380, i - 400, 430, i - 450); line(300, i - 400, 380, i - 400);
setcolor(RED);
line(295, i - 525, 295, i - 430); line(340, i - 450, 340, i - 550);
line(380, i - 430, 380, i - 525);
fashe();
stars();
}
printf("\n\n\n\t\t\t\tSUCCESS!");
Sleep(1000);
}
}
closegraph();
return 0;
}
代码解读
逻辑分析
初始化
int mode, i;
initgraph(960, 720);
setbkcolor(BLACK);
stars();
setcolor(YELLOW);
line(300, 300, 380, 300); line(300, 300, 340, 260);
line(380, 300, 340, 260); line(300, 300, 300, 400);
line(300, 400, 250, 450); line(380, 300, 380, 400);
line(340, 400, 430, 450); line(340, 400, 250, 450);
line(380, 400, 430, 450); line(300, 400, 380, 400);
setcolor(GREEN);
line(250, 450, 430, 450); line(250, 450, 150, 600);
line(430, 450, 630, 600);
代码解读
绘制逻辑
if (_getch() == 's')
{
printf("\n\n\n\n\n\t\t\t\t\tSTART!");
Sleep(1000);
for (i = 10; i <= 550; i++)
{
setcolor(YELLOW);
line(300, 300 - i, 380, 300 - i); line(300, 300 - i, 340, 260 - i);
line(380, 300 - i, 340, 260 - i); line(300, 300 - i, 300, 400 - i);
line(300, 400 - i, 250, 450 - i); line(380, 300 - i, 380, 400 - i);
line(340, 400 - i, 430, 450 - i); line(340, 400 - i, 250, 450 - i);
line(380, 400 - i, 430, 450 - i); line(300, 400 - i, 380, 400 - i);
setcolor(RED);
line(295, 525 - i, 295, 430 - i); line(340, 450 - i, 340, 550 - i);
line(380, 430 - i, 380, 525 - i);
fashe();
stars();
}
printf("\n\t\t\t\tPlease press 'B',BACK!");
if (_getch() == 'b')
{
for (i = 300; i < 1000; i++)
{
setcolor(YELLOW);
line(300, i - 300, 380, i - 300); line(300, i - 300, 300, i - 400);
line(300, i - 400, 250, i - 450); line(380, i - 300, 380, i - 400);
line(340, i - 400, 430, i - 450); line(340, i - 400, 250, i - 450);
line(380, i - 400, 430, i - 450); line(300, i - 400, 380, i - 400);
setcolor(RED);
line(295, i - 525, 295, i - 430); line(340, i - 450, 340, i - 550);
line(380, i - 430, 380, i - 525);
fashe();
stars();
}
printf("\n\n\n\t\t\t\tSUCCESS!");
Sleep(1000);
}
}
代码解读
在这里插入代码片
代码解读
资源释放
closegraph();
代码解读
结束语
今天就绪了这么多话。但愿能让朋友们对学习内容有所收获吧。同时也能尽力帮助那些正在艰难学习C语言的小伙伴吧。看到大家的成长是我的主要幸福。感谢您抽出时间阅读我的文章哦!
全部评论 (0)
还没有任何评论哟~
