零基础学习C++系列课程(七) 持续更新中

目录

项目六、黑客攻击系统的优化、功能实现

第1节 项目需求、项目实现

项目需求

项目优化1

项目优化2

项目优化3

项目优化4

第2节 项目精讲-为什么要使用函数

第3节 项目精讲-函数的定义

第4节 项目精讲-函数的调用和声明

第5节 项目精讲-函数参数的传递方式

第6节 项目精讲-使用数组作为函数参数

第7节 项目精讲-沉默是金之默认参数

第8节 项目精讲-同名不同命之函数的重载

第9节 函数的栈空间

第10节 项目精讲-极速调用之内联函数

第11节 项目精讲-多重梦境之递归函数

第12节 项目精讲-常见错误总结

第13节 英语不是障碍:计算机英语加油站

第14节 逼格提升-制作自己的静态库

第15节: 项目练习


项目六、黑客攻击系统的优化、功能实现

为看书困难的小伙伴推荐视频教程:百度网盘 提取码: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拷贝到源代码同目录下。

​再配置项目属性:

​输入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
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐成书院

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值