【从入门到精通2】项目经理带你-零基础学习C/C++
5.2拓展2: 宅男福利-在控制台上跳极乐净土(音频版)
效果:
代码:
#include <graphics.h> // 引用 EasyX 图形库 #include <Windows.h> #include <mmsystem.h> // mci库头文件 #pragma comment(lib, "winmm.lib") int main(void) { initgraph(800, 513); loadimage(0, "jile.jpg"); mciSendString("play 极乐净土.mp3 repeat", 0, 0, 0); //重复播放 system("pause"); closegraph(); }
说明: 后续升级为“动画版”。
第6节: 项目修炼
6.1 编程思维修炼
6.1.1 编程闯关
第2关:收集宝石
- 程序的执行效率 普通解法和最优解法的区别。
- 函数参数的使用。
// 只调用了一次moveUp, 效率更高 hero.moveUp(2); // 调用了两次moveUp, 比调用一次开销更大。 hero.moveUp(); hero.moveUp();
第3关 地狱幽灵
- 直线不一定最短,在失败中前进
- 螺旋式开发方式
使用策略突破第4关
- 在失败中寻找解决方案,使用函数参数优化代码
- 使用策略突破关“概念挑战”。
6.1.2 积木式编程训练
Scratch介绍
Scratch是一款由美国麻省理工学院(MIT) 设计开发的开源的图形化编程工具。
直接用图形化、积木式的方法开发应用程序。
目的:
1)忽略语言细节,专注编程的本质:编程思维
2)快速掌握编程技能。
应用:
1)可直接开发各种游戏、应用。
2)结合Arduino开发板(一种开源硬件),可开发各种极客项目、机器人项目。
适用于:
初学编程的所有人群。
不适用于:
已经具备丰富编程经验的程序员。
Scratch版本
Scratch2.0
Scratch3.0 ((2019年1月正式发布,更新了部分功能,使用方法相同)
Scratch使用方式
1.网页方式
国外网站,受网速影响严重。
https://scratch.mit.edu/
2.离线式
需安装Scratch, 在QQ群可直接下载,直接双击安装即可。
3.0离线版,要求Windows10系统。
双击安装后,弹出如下窗口,单击“No thanks”
Scratch初体验
舞台大小 :(480 x 360)
Scratch进阶
分享:
版本1
https://scratch.mit.edu/projects/286365442/fullscreen/
版本2(Rock版)
https://scratch.mit.edu/projects/286883048/fullscreen/
注册账号,分享自己的作品,用手机的浏览器即可打开(也可用微信打开)
6.2 职场修炼
工作遇到困难怎么办, 问还是不问?
问题:
做任何有难度的项目,必定会遇到困难,甚至瓶颈。
顾虑:
1.问同事,会不会显得自己的水平不行,有损个人的逼格形象。
2.问领导(项目经理、主管等),会不会影响自己在公司的技术地位
3.憋着不问,可能搞不定,会不会影响项目进度。
案例:南京研究所,某卫星通信项目的芯片移植,进度严重受阻,被迫更换芯片。
职场陷阱:
遇到困难,诉苦,说“我不会”。
试用期,如果常常说“我不会”,将严重影响考评,甚至会被辞退。
案例:某名校(华南理工)毕业生试用期被辞退。
解决方案:
1.提出具体的问题,越具体越好。
案例:某嵌入式设备的WEB服务器不会做。
就问:在xxx设备,xxx操作系统,提供xxx功能的WEB服务器,怎么做?
2.同时提出几个备选方案,更好。
6.3 逼格提升
排错的最后武器-代码对比工具
明明文档或代码是一样的,为什么还是出错?
使用场合:
1.学习时,和参考代码做比较
2.开发时,在多个版本之间做比较。
第7节: 项目练习
练习1:增加功能选项
DNS攻击
控制台实现
#include <iostream> #include <Windows.h> /* 新增需求: DNS攻击 */ int main(void) { std::cout << "1.网站404攻击" << std::endl; std::cout << "2.网站篡改攻击" << std::endl; std::cout << "3.网站攻击记录" << std::endl; std::cout << "4.DNS攻击" << std::endl; std::cout << "5.服务器重启攻击" << std::endl; // 新增功能: std::cout << "6. DNS攻击" << std::endl; system("pause"); return 0; }
图像界面实现:
#include <graphics.h> // 引用 EasyX 图形库 #include <Windows.h> /* 新增需求: DNS攻击 */ 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-网站404攻击"); //在指定位置输出文本 rectangle(300, 100, 550, 140); outtextxy(310, 105, "2-网站篡改攻击"); //在指定位置输出文本 rectangle(300, 160, 550, 200); outtextxy(310, 165, "3-网站攻击修复"); //在指定位置输出文本 rectangle(300, 220, 550, 260); outtextxy(310, 225, "4-查看攻击记录"); //在指定位置输出文本 // 新增功能 (x坐标不变, y坐标增加60) rectangle(300, 280, 550, 320); outtextxy(310, 285, "5-DNS攻击"); // 修改最后的"退出"菜单的位置, 和菜单序号 //rectangle(300, 280, 550, 320); rectangle(300, 340, 550, 380); //outtextxy(310, 285, "5-退出"); outtextxy(310, 345, "6-退出"); //在指定位置输出文本 system("pause"); closegraph(); // 关闭图形界面 }
练习2:程序员的套路: 约会5步骤
自由发挥.
- 点赞
- 收藏
- 分享
- 文章举报
- 项目经理带你-零基础学习C++_新手学习笔记VS2010_1 项目2-黑客攻击系统-输入账户(一)-38项目精讲-两种类型的常量
- 项目经理带你-零基础学习C++_新手学习笔记VS2010_1 项目3-黑客攻击系统-输入的优化-49.字符串的概念
- 项目经理带你-零基础学习C++_新手学习笔记VS2010_1_ 项目1-黑客攻击系统-功能菜单(三) 项目联系-增加功能菜单
- 项目经理带你-零基础学习C++_新手学习笔记VS2010_1 项目3-黑客攻击系统-输入的优化-57.数组的初始化
- 项目经理带你-零基础学习C++_新手学习笔记VS2010_1 项目3-黑客攻击系统-输入的优化-48.项目需求-项目实现
- 项目经理带你-零基础学习C++_新手学习笔记VS2010_1 项目3-黑客攻击系统-输入的优化-56.数组的概念和定义
- 项目经理带你-零基础学习C++_新手学习笔记VS2010_1 项目2-黑客攻击系统-输入账户(二)-40项目精讲-常见错误总结4-5
- 项目经理带你-零基础学习C++_新手学习笔记VS2010_1 -项目2-黑客攻击系统-输入账户(一)-36项目精讲-浮点数据的输出
- C/C++基础到高级入门到精通的学习…
- 项目经理带你-零基础学习C++_新手学习笔记VS2010_1 项目3-黑客攻击系统-输入的优化-52.string变量读取一行
- 项目经理带你-零基础学习C++_新手学习笔记VS2010_1 项目2-黑客攻击系统-输入账户(二)-47.项目练习-练习2-无符号数的诡异
- 项目经理带你-零基础学习C++_新手学习笔记VS2010_1 项目3-黑客攻击系统-输入的优化(2)-60.C语言字符串的输入输出
- Java学习从入门到精通 2书籍篇-Java基础-Java-编程开发
- 学习C++从入门到精通的十本最经典书籍
- 学习C++从入门到精通的的十本最经典书籍
- C++入门之基础语法学习教程
- 学习C++从入门到精通的十本最经典书籍
- C++基础学习教程(六)----类编写的前情回顾以及项目实战(1)
- C++学习1:C++入门基础学习
- Yii2.0基础框架从入门到精通项目实战(完整)