Advertisement

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)

还没有任何评论哟~