1、项目一、黑客攻击系统-功能菜单
现在我们要边开始做项目边开始学习,可能对0基础这种方式不友好,但是效果比循循渐进学习方式好很多。
小拓展:
黑客/骇客/红客
黑客: 精于计算机技术的计算机专家或程序员(有伤害能力,但是不做任何伤害)骇客: 恶意或非法地破解、破坏程序、系统及网络安全的人, 又称“黑帽黑客”。红客,为捍卫中国主权而战的黑客(或骇客)实际上,界限非常模糊,常常统称为黑客.
开发要求
配置要求
:
1. 系统要求 : windows7/8/10 系统 , 或 Mac 系统2. 开发工具 : visual c++ 2010 Express, 或其他 IDE 。
推荐配置
:
1. 系统要求 : windows7/8/10 系统2. 开发工具 : visual c++ 2010 Express 或其他 VS 版本
项目说明
1. 直接从项目需求入手 , 搞清需求后 , 直接开发项目 , 在项目实现中学习 C++2. 通过 6 个子项目迭代代码 , 实现黑客攻击功能 .3. 联系 Rock 老师 (QQ: 2156489609), 为每位学员定制一个网站 , 以作为后面的攻击对象 .
第
2
节:项目需求
黑客打开这个攻击系统后,首先看到的就是一个“功能菜单”。以便让黑客选择所需要的功能。假设需求如下:1. 网站 404 攻击2. 网站篡改攻击3. 网站攻击记录4. DNS 攻击5. 服务器重启攻击
第 3 节:项目实现
创建一个空项目,添加源文件teat.cpp文件:
代码如下:
#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;}
运行结果:
补充一下运行的细节:
执行方式 1(开发时使用)
使用调试模式执行:
选择 Debug 模式(默认), 再单击按钮
执行方式 2
直接双击运行调试模式下的可执行文件:
执行方式 3
使用发布模式:
执行方式 4
直接运行发布模式下编译后的可执行文件:
发布模式和调试模式的区别
调试模式中会生成很多调试信息,便于排查错误,但是对执行效率有影响。确认程序正确后,使用发布模式生成可执行文件 。
2、C/C++语法规则
编程的本质:就是控制!(素养提升名言)
原始的规则:
1. 各“语法单位”(组成部分)使用任意个(至少 1 个)分隔符隔开。
分隔符有:空格,或 tab
键,或换行符。
1、int main(void)2、intmain(void)1和2两种写法都是合法的。3、intmain(void)但 是3是非法的
2.
必须使用英文输入法输入
(仅双引号括起来的“字符串”中可使用中文)
3.
每条代码的后面使用
;
表示这个指令代码结束。
4. #include
等预处理指令
,
必须一条指令占一行
其他规则不需记忆,在后面的项目实践中掌握。
以下代码也能编译运行
.
这样的代码很难阅读,因此学习时,建议按照标准的风格来写。如下面这个代码是一个比较规范的风格:
无论如何,只要遵循最基本的原则, 代码就是合法的, 就能编译执行.
懂得最基本的规则之后, 再追求优雅风格的代码(高逼格风格)
再次强调:
不要刻意记忆 C++的语法规则(记也没有意义)
初学时,仅掌握最基本的语法规则即可!
3、头文件的使用
程序如戏 ,程序中有很多元素(std::cout, system),
都是一个个演员 。但是他们之间都互不认识,
但是却要一起合作, 强行编译
,
就会导致错误
! 得预先介绍他们,
知道他们各自的名号和用法。
解决方案
:
包含相应的头文件
! (
头文件中
,
含有相关元素的介绍说明
)
std::cout 头文件: iostreamsystem 头文件: Windows.h#include <Windows.h> 表示把文件 Windows.h 中的所有内容拷贝(复制)到“这里”
头文件查找路径(重点,企业面试题):
使用 C++标准库的头文件使用该方式。
#include <Windows.h>
<>表示,从编译器默认的路径中去找文件 stdio.h ,
这个默认路径,取决于编译器。不同平台下不同编译器的路径都不相同。 这个默认路径下,已经包含了 c
标准库所需要的所有头文件。
使用用户自定义的头文件使用该方式。
#include “mytest.h”
" "表示从当前目录下寻找文件 mytest.h
如果在当前目录下找不到,再从编译器默认的路径中查找
。
头文件的位置:
要求放在文件的最前面。 #include 的作用是,把相关的声明拷贝到这个文件内, 所以都习惯把#include 放到文件的最前面。 如果放到后面,当 include 之前出现了相关的函数,就会有问题,例如:
发生编译错误。
4、程序从哪里开始执行?
人生,就是一个程序。在不同的阶段,做不同的事。 每件事,就是一个函数。每个人的人生都不相同, 以不同的顺序,做不同的事(相当于调用不同的“函数”), 但是都是从“出生”开始。程序也一样,
在C++、C、java程序中,默认从main函数开始执行。大多数语言都是从main函数处开始执行。
main函数的要求:
1. 返回类型2. 参数3. 返回值
main函数的作用:
1、main 函数是程序的唯一入口。2、也就是说,程序运行时,首先从 main 函数开始执行。3、一个程序, 必须要有一个 main 函数,而且也只能有一个 main 函数 。
main函数的格式:
格式
1
:
int main(void) {}
格式
2
:
具体用法在后面的函数部分,再详细讲解
int main(int argc , char* argv) {}
main 函数的返回:
main
函数应该用
return
返回一个
int
类型数据,也就是说,必须返回一个整数。 一般用法:
程序成功结束,则 main 函数返回 0程序有异常,则返回一个大于 0 的整数。
使用其他函数:
真正强大的人,总是善于使用各种资源。 使用已有的函数,来完成自己的工作,而不是一切都由自己来实现。
IT 格言:不要重复制造轮子 ---《人月神话》 ,
解读:尽可能使用已经开发好的函数。 有哪些“其它函数”?
1) C 标准库2 ) C++ 标准库3 )第三方开源框架4 )公司内已经开发好的函数5 )程序员自己定义的函数