零基础学习C++系列课程(二) 持续更新中
目录
项目一、黑客攻击系统-功能菜单
第 1 节:项目介绍
第 2 节:项目需求
第 3 节:项目实现
3.1执行方式 1(开发时使用)
3.2执行方式 2
3.3执行方式 3
3.4执行方式 4
第 4 节:项目精讲
4.1编程的本质
4.2极简的 C/C++ 语言语法规则
4.3头文件的使用
4.4程序从哪里开始执行-main 函数
4.5使用其他函数
4.6 不变的誓言-“字符串常量” 编辑
4.7 让计算机说话:cout 和 printf 的使用
4.8 韩信谋反解密-命名空间的使用
4.9 软件是怎样炼成的: C++程序的编译过程
4.10 血的教训:程序的注释
4.11 常见错误总结
4.12 计算机英语加油站
第 5 节: 项目拓展
5.1 拓展 1:开发图形登录菜单
5.2 拓展 2: 宅男福利-在控制台上跳极乐净土(音频版)
第 6 节: 项目修炼
6.1 编程思维修炼
6.2 职场修炼
6.3 逼格提升
第 7 节: 项目练习
项目一、黑客攻击系统-功能菜单
第 1 节:项目介绍
为看书困难的小伙伴推荐视频教程:百度网盘 提取码:r59a
黑客/骇客/红客
- 黑客: 精于计算机技术的计算机专家或程序员(有伤害能力,但是不做任何伤害)
- 骇客: 恶意或非法地破解、破坏程序、系统及网络安全的人, 又称“黑帽黑客”。
- 红客,为捍卫中国主权而战的黑客(或骇客)
汪正扬,中国最小黑客,13岁向360提交多个系统漏洞
中美黑客大战
说明:为提升中国南海的国防实力,研发了广州军区南海无线微波系统. 实现了南海主要岛屿在恶劣气候下的稳定通信,该项目的主体架构将在本课程的后续项目中带大家学习.
黑客攻击系统拓扑图
开发要求
配置要求:
1. 系统要求: windows7/8/10 系统, 或 Mac 系统
第 2 节:项目需求
第 3 节:项目实现
#include <iostream>
#include <Windows.h> /*1.网站 404 攻击 2.网站篡改攻击 3.网站攻击记录4.DNS 攻击5.服务器重启攻击
*/ 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; system("pause"); return 0; }
3.1执行方式 1(开发时使用)
使用调试模式执行:
1、选择 Debug 模式(默认);2、单击开始按钮
3.2执行方式 2
直接双击运行调试模式下的可执行文件:
3.3执行方式 3
使用发布模式:
3.4执行方式 4
直接运行发布模式下编译后的可执行文件:
第 4 节:项目精讲
4.1编程的本质
电影:骇客帝国
完全由程序控制的虚拟世界
电影《源代码》:多个平行世界
已投入使用的家庭服务机器人:
编程的本质
“程序员”预先编写一系列命令,控制程序执行特定的任务。
“程序员”就是“上帝
|
4.2极简的 C/C++ 语言语法规则
不做孔乙己,要做说干就干的平头哥
以上风格的代码, 常见于报价低但是由要求给源码的外包软件中.(目的:让人看不懂)
高逼格的代码: (推荐)
4.3头文件的使用
小咖见小咖, 互不认识. 不聊显得没礼貌, 强聊又太尴尬...
粉丝见蒙面偶像...
拜年走亲戚,分不清七大姑、八大姨...
得预先介绍他们, 知道他们各自的名号和用法
4.4程序从哪里开始执行-main 函数
4.5使用其他函数
4.6 不变的誓言-“字符串常量”
4.7 让计算机说话:cout 和 printf 的使用
沉默不是金,爱需要表达。暗恋永远不会有结果。
“打印”是计算机最原始的表达方式。
4.8 韩信谋反解密-命名空间的使用
韩信到底有没有谋反?
读《史记》:
#include <iostream>#include <string>namespace China {float population = 14.1; //单位: 亿 std::string capital = "北京";}namespace Japan {float population = 1.27; //单位: 亿 std::string capital = "东京";}using namespace Japan;int main(void) { std::cout << "首都:" << capital << std::endl; std::cout << "人口:" << population << std::endl;std::cout << "首都:" << China::capital << std::endl; std::cout << "人口:" << China::population << std::endl;system("pause");return 0;}
用法2 :
#include <iostream>#include <string>namespace China { float population = 14.1; //单位: 亿 std::string capital = "北京";}namespace Japan {float population = 1.27; //单位: 亿 std::string capital = "东京"; }//注意:没有 namespace//直接指定命名空间中的标识符,而不是整个域名using China::capital;using Japan::population;int main(void) {std::cout << "首都:" << capital << std::endl;std::cout << "人口:" << population << std::endl; system("pause"); return 0;}
用法3:
#include <iostream>#include <string>namespace China {float population = 14.1; //单位: 亿 std::string capital = "北京";}namespace Japan {float population = 1.27; //单位: 亿 std::string capital = "东京";}using namespace China;using Japan::population;int main(void) {std::cout << "首都:" << capital << std::endl;std::cout << "人口:" << population << std::endl; //出错!system("pause");return 0;}
......
int main(void) { std::cout << "首都:" << capital << std::endl;std::cout << "人口:" << Japan::population << std::endl; //出错! system("pause"); return 0;}
4.9 软件是怎样炼成的: C++程序的编译过程
使用 vs, 只需单击一下,就把源代码转换成“软件”。
背后实际经历了一下 4 个处理阶段:
4.10 血的教训:程序的注释
......
int i; //定义了一个变量 i
......
4.11 常见错误总结
错误 1:VS 的中文乱码问题
#pragma execution_character_set("gbk")
定位到文件:C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
在单击“属性设置”,勾选“中文时使用英文标点”
4.12 计算机英语加油站
IDE
|
集成开发环境
|
fatal error
|
fatal 致命的
error 错误
fatal error 致命的错误
|
main | 主要的 |
include | 包含 |
io |
input 输入
output 输出
input output 输入输出
io 输入输出的简写
|
stream |
流
iostream 输入输出流
|
system
|
系统
system() 函数, 用来执行控制台的各种命令
例如:
system("pause");
system("ping www.baidu.com");
|
return
|
返回 |
void
|
空,空的 |
int | 整数类型 |
windows | 窗口 |
pause | 暂停 |
打印
printf C 语言的输出语句
|
|
cout
|
console 控制台
output 输出
console output 控制台输出
cout 是”console output”的简写
|
cin
|
console 控制台
input 输入
console input 控制台输入
cin 是 ”console input”的简写
|
endl
|
end 结束
line 行
endl 行结束符(回车换行)
|
debug
|
调试
|
release
|
发布 |
use |
使用
using : use 的分词形式, “正在使用”
|
namespeace |
name 名称
space 空间
namespace 命名空间
|
第 5 节: 项目拓展
5.1 拓展 1:开发图形登录菜单
搭建图形开发环境
#include <graphics.h> // 引用 EasyX 图形库#include <Windows.h>int main(void) { initgraph(640, 480); // 初始化图形界面, 画布大小为 640x480 //画一个圆 circle(320, 240, 200); //画圆,圆心(320, 240),半径为 200system("pause");closegraph(); // 关闭图形界面 }
把新项目 G1 设置为找个解决方案的“启动项目”
运行:
把新项目 G1 设置为找个解决方案的“启动项目”并运行。
图形开发进阶
可参考 easyx 图形库的文档手册, 学习各个接口的用法.
分析:
背景色:用“画图”的拾色器获取。
#include <graphics.h> // 引用 EasyX 图形库
#include <Windows.h>int main(void)
{ initgraph(640, 480); // 初始化图形界面, 画布大小为 640x480 setbkcolor(RGB (64, 128, 128)); //设置背景色 cleardevice(); //用背景色清空整个屏幕(整个画布) //画一个圆 setlinecolor(RGB (255, 0, 0)); //设置划线(画笔)的颜色 setlinestyle( PS_SOLID, 10); //设置线条为实线, 设置线宽为 10 像素 circle(320, 240, 200); //画圆,圆心(320, 240),半径为 200 //输出文本settextcolor(RGB(255,255,0)); //设置字体颜色 //设置字体样式: 字体高度为 100 像素, 宽度不指定, 字体名称为"微软雅黑" settextstyle(100, 0, "微软雅黑");outtextxy(170, 190, ("无码高清")); //在指定位置输出文本 //画一条斜线 line(180, 380, 460, 100); //从(180,380) 到 (460, 100)画一条直线 system("pause"); closegraph(); // 关闭图形界面}
黑客攻击系统-图形界面实现
效果:
分析:
#include <graphics.h> // 引用 EasyX 图形库
#include <Windows.h>
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-查看攻击记录"); //在指定位置输出文本 rectangle(300, 280, 550, 320); outtextxy(310, 285, "5-退出"); //在指定位置输出文本 system("pause"); closegraph(); // 关闭图形界面
}
但鼠标在这个菜单上点击时,菜单项再次变色,并播放一个短暂的音效。
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 编程思维修炼
编程闯关
- 程序的执行效率,普通解法和最优解法的区别。
- 函数参数的使用
// 只调用了一次 moveUp, 效率更高
hero.moveUp(2); // 调用了两次 moveUp, 比调用一次开销更大。
hero.moveUp();
hero.moveUp();
- 直线不一定最短,在失败中前进
- 螺旋式开发方式
- 在失败中寻找解决方案,使用函数参数优化代码
- 使用策略突破关“概念挑战”。
Scratch 初体验
6.2 职场修炼
6.3 逼格提升
第 7 节: 项目练习
零基础学习C++系列课程(二) 持续更新中相关推荐
- 零基础学习C++系列课程(一) 持续更新中
目录 第 1 节:课程目标 项目 1:C++基础编程-黑客攻击系统(含 6 个子项目) 项目 2:C++基础编程-人工智能之地形导航系统 项目 3:C++基础编程-人工智能之双色球预测系统 项目 4: ...
- 零基础学习C++系列课程(三) 持续更新中
目录 项目二.黑客攻击系统-输入账号 第 1 节 项目需求 第 2 节 项目实现 第 3 节 项目精讲 3.1 C++的数据类型 3.2 构建 IT 大厦的砖块:变量 3.3 用于计数的整数类型 3. ...
- 零基础学习C++系列课程(五) 持续更新中
目录 项目四.路由器管理系统-权限判断 第 1 节 项目需求.项目实现 第 2 节 项目精讲-string 字符串的比较 第 3 节 项目精讲-表示真假的布尔类型 第 4 节 项目精讲-C 语言字符串 ...
- 视频教程-零基础JS入门系列课程(2)之JS语法基础精讲-JavaScript
零基础JS入门系列课程(2)之JS语法基础精讲 螺钉课堂讲师,擅长Vue.React.ReactNative.NodeJS等前端框架及技术 邓老师 ¥59.00 立即订阅 扫码下载「CSDN程序员学院 ...
- C++学习笔记目录链接(持续更新中)
学习目标: C++学习笔记目录链接(持续更新中,未完待续) 学习内容: 序号 链接 0 C++ 常见bug记录(持续记录中) 1 C++学习笔记1[数据类型] 2 C++学习笔记2[表达式与语句] 3 ...
- 零基础学习SVN之(二):CVS与SVN的区别
相信大家看了零基础学习SVN之(一):SCM与SVN的使用(基础篇)这篇博客之后,对版本控制就有了一定的理解,同时也应该知道SVN与CVS是比较流行的两款SCM工具.那么到底这两款工具有什么区别呢? ...
- Ambari源码二次开发实战课程(持续更新中)
如果大家想基于 ambari 开发一套自己的大数据平台,那么 ambari 二次开发的相关知识就必须具备.比如:ambari 整体编译,ambrai 汉化,ambari 页面开发,ambari api ...
- YOLO 3/4/5/6/7/x、Efficient、MaskRcnn、FasterRcnn、FCOS、SSD、M2Det、Retina、CenterNet、PicoDet等系列数据模型汇总持续更新中
做了很长时间的CV领域的任务了,见到了很多不错的项目,很多时候也是会选择直接拿来开源的项目去使用,自己也做过了很多项目,后面就萌生了一个想法,将看到的不错的文章或者是数据集或者是项目汇总记录一下,以便 ...
- 图谱(学习地图)系列总结,持续更新中
目录 1.2022年最新前端学习路线图 2.2022年最新大数据学习路线图 3.2022年最新javaEE学习路线图 4.2022年最新UI/UE学习路线图 5.2022年java学习路线指南 6.J ...
- 技术文章系列汇总(持续更新中)并附博客上树状列表源代码
系统架构系列 在多台服务器上简单实现Redis的数据主从复制 利用Nginx做负载均衡 软件设计系列 项目分析 [项目分析]ASP.NET MVC路由匹配检测组件的代码分析 [项目分析]保持你的网站激 ...
最新文章
- ldap导入mysql_openLDAP 部署(亲测可用)
- visual studio 设计器不显示_面向国际市场的装置开发运维软件设计与实现
- Python 之网络编程基础
- 50种方法巧妙优化你的SQLServer数据库(转)
- numpy中数组的简单运算以及使用
- s3c6410 nand初始化
- 优酷宠爱剧场发布新片单 包括近30部待播精品剧
- 用于打开和创建SQLite,Microsoft SQL Server,PostgreSQL和MySQL SQL数据库的WPF对话框
- 参加平安的笔试+喜欢古天乐的坚持+想拍自己的电影+人生的无奈
- Dreamweaver开发人员工作区 标准工作区的区别
- spss软件测试题题库,spss期末考试试题及答案
- 基于三星 bada 手机操作系统 的打泡泡游戏
- android 仿qq 功能,Android仿QQ、新浪相册的实现
- 本机电脑清除DNS缓存+浏览器清除DNS缓存
- 工作流开源系统--DRAKE
- Gson解析空字符串异常的处理
- 轨迹规划 trajectory planning
- Proxy和Reflect详解
- 阿里云服务器通用算力u1性能测评CPU处理器网络PPS
- java 分班_CoreJava分班测试试卷答案