C++基础笔记之编程思维修炼

项目修炼

编程思维修炼

编程闯关

程序的执行效率

普通解法和最优解法的区别。

函数参数的使用。

// 只调用了一次moveUp, 效率更高

hero.moveUp(2);

 

// 调用了两次moveUp,  比调用一次开销更大。

hero.moveUp();

hero.moveUp();

 

 

 

直线不一定最短,在失败中前进

l  螺旋式开发方式

 

使用策略突破

在失败中寻找解决方案,使用函数参数优化代码

使用策略突破关概念挑战”。

   

积木式编程训练

Scratch介绍

Scratch是一款由美国麻省理工学院(MIT) 设计开发的开源的图形化编程工具。

直接用图形化、积木式的方法开发应用程序。

 

目的:

1)忽略语言细节,专注编程的本质:编程思维

2)快速掌握编程技能。

 

应用:

1)可直接开发各种游戏、应用。

2)结合Arduino开发板(一种开源硬件),可开发各种极客项目、机器人项目。

 

适用于:

初学编程的所有人群。

 

不适用于:

已经具备丰富编程经验的程序员。

 

Scratch版本

Scratch2.0

Scratch3.0 (20191月正式发布,更新了部分功能,使用方法相同)

 

Scratch使用方式

  1. 网页方式

国外网站,受网速影响严重。

https://scratch.mit.edu/

 

  1. 离线式

需安装Scratch,

3.0离线版,要求Windows10系统。

双击安装后,弹出如下窗口,单击No thanks

 

Scratch初体验

舞台大小 :(480 x 360

 

Scratch进阶

分享:

版本1

https://scratch.mit.edu/projects/286365442/fullscreen/

 

版本2Rock版)

https://scratch.mit.edu/projects/286883048/fullscreen/

 

 

工作遇到困难怎么办, 问还是不问?

 

问题:

做任何有难度的项目,必定会遇到困难,甚至瓶颈。

 

顾虑:

  1. 问同事,会不会显得自己的水平不行,有损个人的逼格形象。
  2. 问领导(项目经理、主管等),会不会影响自己在公司的技术地位
  3. 憋着不问,可能搞不定,会不会影响项目进度。

  案例:南京研究所,某卫星通信项目的芯片移植,进度严重受阻,被迫更换芯片。

 

职场陷阱:

遇到困难,诉苦,说“我不会”。

试用期,如果常常说“我不会”,将严重影响考评,甚至会被辞退。

案例:某名校(华南理工)毕业生试用期被辞退。

 

解决方案:

  1. 提出具体的问题,越具体越好。

案例:某嵌入式设备的WEB服务器不会做。

就问:在xxx设备,xxx操作系统,提供xxx功能的WEB服务器,怎么做?

  1. 同时提出几个备选方案,更好。

6.3 逼格提升

排错的最后武器-代码对比工具

 

明明文档或代码是一样的,为什么还是出错?

 

使用场合:

  1. 学习时,和参考代码做比较
  2. 开发时,在多个版本之间做比较

 

 

控制台实现

#include <iostream>

#include <Windows.h>

 

/*

 新增需求:

new xxxx

*/

 

int main(void) {

std::cout << "1.xxxxxx" << std::endl;

std::cout << "2.xxx" << std::endl;

std::cout << "3.xxxxx" << std::endl;

std::cout << "4.xxxxx" << std::endl;

std::cout << "5.xxxxx" << std::endl;

 

// 新增功能:

std::cout << "6. xxxx" << std::endl;  

 

system("pause");

return 0;

}

 

图形界面实现

#include  <graphics.h> // 引用 EasyX 图形库

#include  <Windows.h>

 

/*

 新增需求:

 xxxxx

*/

 

int main(void)

{

initgraph(600, 400); // 初始化图形界面, 画布大小为640x480

 

loadimage(0,  ("bg.jpg"));

 

settextcolor(RGB(255,255,0));      //设置字体颜色

settextstyle(30, 0, "微软雅黑");    

 

rectangle(300, 40, 550, 80);     //(左上角x,左上角y, 右上角x,右上角

outtextxy(310, 45, "1-xxxx"); //在指定位置输出文本

 

rectangle(300, 100, 550, 140);

outtextxy(310, 105, "2-xxxx"); //在指定位置输出文本

 

rectangle(300, 160, 550, 200);

outtextxy(310, 165, "3-xxxxx"); //在指定位置输出文本

 

rectangle(300, 220, 550, 260);

outtextxy(310, 225, "4-xxxxx"); //在指定位置输出文本

 

// 新增功能 (x坐标不变, y坐标增加60)

rectangle(300, 280, 550, 320);

outtextxy(310, 285, "xxxxx");

 

// 修改最后的"退出"菜单的位置, 和菜单序号

//rectangle(300, 280, 550, 320);

rectangle(300, 340, 550, 380);

//outtextxy(310, 285, "5-退出");

outtextxy(310, 345, "6-退出"); //在指定位置输出文本

 

system("pause");

closegraph();    // 关闭图形界面

}

posted @ 2020-06-26 11:27  Hydraxx  阅读(333)  评论(0编辑  收藏  举报