目录
项目六、黑客攻击系统的优化、功能实现
为看书困难的小伙伴推荐视频教程:百度网盘 提取码:r59a
第1节 项目需求、项目实现
项目需求
项目5, 仅实现了登录, 菜单的显示.
缺少:
菜单的选择
具体菜单功能的实现
项目优化1
1. 封装login函数,实现登录
2. 封装菜单显示代码
3. 添加主循环,以实现反复操作
#include <iostream>
#include <Windows.h>
#include <string>
using namespace std;
void login(void) {
string name;
string pwd;
while (1) {
system("cls");
std::cout << "请输入账号:";
std::cin >> name;
std::cout << "请输入密码:";
std::cin >> pwd;
if (name == "54hk" && pwd == "123456") {
//break;
return;
} else {
cout << "用户名或密码错误!" << endl;
system("pause");
}
}
}
void menuShow(void) {
system("cls");
std::cout << "1.网站404攻击" << std::endl;
std::cout << "2.网站篡改攻击" << std::endl;
std::cout << "3.网站攻击修复" << std::endl;
std::cout << "4.查看攻击记录" << std::endl;
std::cout << "5.退出" << std::endl;
}
int menuChoise(void) {
int n = 0;
while (1) {
cin >> n;
if (cin.fail()) {
cin.clear();
cin.sync();
cout << "无效输入. 请重新输入." << endl;
system("pause");
} else {
break;
}
}
return n;
}
void attack404(void) {
system("cls");
cout << "404攻击...";
system("pause");
}
void siteEdit(void) {
system("cls");
cout << "网站篡改攻击...";
system("pause");
}
void siteRepair(void) {
system("cls");
cout << "网站修复...";
system("pause");
}
void attckRecord(void) {
system("cls");
cout << "查看攻击记录";
system("pause");
}
int main(void) {
// 登录
login();
while (1) {
menuShow();
int n = menuChoise();
switch (n) {
case 1:
attack404();
break;
case 2:
siteEdit();
break;
case 3:
siteRepair();
break;
case 4:
attckRecord();
break;
case 5:
//break;
return 0;
default:
cout << "无效输入. 请重新输入." << endl;
system("pause");
break;
}
}
system("pause");
return 0;
}
项目优化2
调整终端大小
优化成“居中显示”
#include <iostream>
#include <Windows.h>
#include <string>
using namespace std;
#define WIDTH 40
#define HEIGHT 15
void init(void) {
//mode con cols=80 lines=40
char cmd[128];
sprintf(cmd, "mode con cols=%d lines=%d", WIDTH, HEIGHT);
system(cmd);
}
void printInMiddle(string msg) {
int space = (WIDTH - msg.length()) /2 ;
for (int i=0; i<space; i++) {
cout << " ";
}
cout << msg << endl;
}
void menuShow(void) {
string menu[] = {
"1.网站404攻击",
"2.网站篡改攻击",
"3.网站攻击修复",
"4.查看攻击记录",
"5.退出"
};
system("cls");
printInMiddle("---黑客攻击系统---");
// 计算菜单最大长度:
int max = 0;
int menuCount = sizeof(menu)/sizeof(menu[0]);
for (int i=0; i< menuCount; i++) {
if (menu[i].length() > max) {
max = menu[i].length();
}
}
int leftSpace = (WIDTH - max) / 2;
for (int i=0; i<menuCount; i++) {
for (int i=0; i<leftSpace; i++){
printf(" ");
}
cout << menu[i] << endl;
}
}
int main(void) {
init();
......
}
项目优化3
实现具体的功能。
1)导入库文件hacker.lib
把hack.lib拷贝到源代码同目录下。
![](https://img-blog.csdnimg.cn/img_convert/f29edf4347f196ac1f434e266a81b92c.png)
再配置项目属性:
![](https://img-blog.csdnimg.cn/img_convert/7b1ce2ebb1a444b1a510c8aac5cce93c.png)
输入hacker.lib:
2)修改为Release模式
因为使用lib文件是release模式生成,所以该项目也要修改为release模式。
3)添加头文件
把hacker.lib对应头文件hacker.h拷贝到源代码目录下
4)调用接口实现功能
void attack404(void) {
char response[MAXSIZE] ;
char id[64];
memset(response, 0, sizeof