目录
项目一、黑客攻击系统-功能菜单
第 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 节: 项目练习
为看书困难的小伙伴推荐视频教程:百度网盘 提取码:r59a
黑客/骇客/红客
汪正扬,中国最小黑客,13岁向360提交多个系统漏洞
中美黑客大战
说明:为提升中国南海的国防实力,研发了广州军区南海无线微波系统. 实现了南海主要岛屿在恶劣气候下的稳定通信,该项目的主体架构将在本课程的后续项目中带大家学习.
黑客攻击系统拓扑图
开发要求
配置要求:
1. 系统要求: windows7/8/10 系统, 或 Mac 系统
#include
#include
/*
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;
}
使用调试模式执行:
1、选择 Debug 模式(默认);2、单击开始按钮
直接双击运行调试模式下的可执行文件:
使用发布模式:
直接运行发布模式下编译后的可执行文件:
电影:骇客帝国
完全由程序控制的虚拟世界
电影《源代码》:多个平行世界
已投入使用的家庭服务机器人:
编程的本质
“程序员”预先编写一系列命令, 控制 程序执行特定的任务。
“程序员”就是“上帝
|
不做孔乙己,要做说干就干的平头哥
以上风格的代码, 常见于报价低但是由要求给源码的外包软件中.(目的:让人看不懂)
高逼格的代码: (推荐)
小咖见小咖, 互不认识. 不聊显得没礼貌, 强聊又太尴尬...
粉丝见蒙面偶像...
拜年走亲戚,分不清七大姑、八大姨...
得预先介绍他们, 知道他们各自的名号和用法
沉默不是金,爱需要表达。暗恋永远不会有结果。
“打印”是计算机最原始的表达方式。
韩信到底有没有谋反?
读《史记》:
#include
#include
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
#include
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
#include
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;
}
使用 vs, 只需单击一下,就把源代码转换成“软件”。
背后实际经历了一下 4 个处理阶段:
......
int i; //定义了一个变量 i
......
错误 1:VS 的中文乱码问题
#pragma execution_character_set("gbk")
定位到文件:C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
在单击“属性设置”,勾选“中文时使用英文标点”
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 命名空间
|
搭建图形开发环境
#include // 引用 EasyX 图形库
#include
int main(void)
{
initgraph(640, 480); // 初始化图形界面, 画布大小为 640x480
//画一个圆 circle(320, 240, 200); //画圆,圆心(320, 240),半径为 200
system("pause");
closegraph(); // 关闭图形界面
}
把新项目 G1 设置为找个解决方案的“启动项目”
运行:
把新项目 G1 设置为找个解决方案的“启动项目”并运行。
图形开发进阶
可参考 easyx 图形库的文档手册, 学习各个接口的用法.
分析:
背景色:用“画图”的拾色器获取。
#include // 引用 EasyX 图形库
#include
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 // 引用 EasyX 图形库
#include
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(); // 关闭图形界面
}
但鼠标在这个菜单上点击时,菜单项再次变色,并播放一个短暂的音效。
效果:
代码:
#include // 引用 EasyX 图形库
#include
#include // 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();
}
说明: 后续升级为“动画版”。
编程闯关
// 只调用了一次 moveUp, 效率更高
hero.moveUp(2);
// 调用了两次 moveUp, 比调用一次开销更大。
hero.moveUp();
hero.moveUp();
Scratch 初体验