#include <iostream>
#include <windows.h>
#include <string>
using namespace std;
//定义宏
#define WIDTH 60 //宽度
#define HIEGHT 20 //高度
//设置控制台大小
void The_console(void) {
//设置终端窗口的大小
// cols=宽度 lines=高度
//mode con cols=80 lines=25
char print[128]; //打印
sprintf(print,"mode con cols=%d lines=%d", WIDTH, HIEGHT); //用宏代替高度跟宽度
//system(" mode con cols=80 lines=20");
system(print);//把宽度跟高度用字符串方式打印进终端
}
//初始化
void Initialize_the(void) {
string name; //名字
string password; //密码
while (1) {
system("cls");
cout << "请输入账号:";
cin >> name;
cout << "请输入密码:";
cin >> password;
//判断密码是否正确
if( name =="dandan" && password =="123456") {
break;
} else {
cout << "账号或密码错误!!!" << endl;
cout << "请重新输入。。。" << endl;
system("pause");
}
}
}
/**
//菜单选项
void The_menu(void) {
system("cls");
//登录菜单?
cout << "---黑客攻击系统---" << endl;
cout << "1.404攻击" << endl;
cout << "2.篡改攻击" << endl;
cout << "3.攻击修复" << endl;
cout << "4.查看攻击记录" << endl;
cout << "5.退出" << endl;
cout << "请选择:";
}
**/
//居中打印标题
void The_title(string print) {
int blank = (WIDTH - print.length()) /2;
for(int i=0; i<blank; ++i) {
printf(" ");
}
cout << print << endl;
}
//登路菜单 居中打印
void Print_center(void) {
//定义一个人字符串 计算长度
string lienth[] ={
"1。404攻击",
"2.篡改攻击",
"3.攻击恢复",
"4.攻击查看",
"5.退出",
"请选择:",
};
system("cls");
The_title("---黑客攻击系统---");
int storage = 0; //存储
//计算单个字符长度 循环读取并计算
int long1 = sizeof(lienth)/sizeof(lienth[0]);
for(int i=0; i<long1; ++i) {
if(lienth[i].length() > storage) {
storage = lienth[i].length();
}
}
//打印空格
int blank = (WIDTH - storage) /2;
for(int i=0; i<long1; ++i) {
for(int i=0; i<blank; ++i) {
printf(" ");
}
cout << lienth[i] << endl;
}
}
int Menu_options(void) {
int n = 0;
while (1) {
cin >> n;
if (cin.fail()) {
cin.clear();
cin.clear();
cout << "无效输入. 请重新输入." << endl;
system("pause");
} else {
break;
}
}
return n;
}
void The_menu1(void) {
system("cls");
cout << "404攻击" << endl;
cout << "待实现。。。" << endl;
system("pause");
}
void The_menu2(void) {
system("cls");
cout << "篡改攻击" << endl;
cout << "待实现。。。" << endl;
system("pause");
}
void The_menu3(void) {
system("cls");
cout << "攻击修复" << endl;
cout << "待实现。。。" << endl;
system("pause");
}
void The_menu4(void) {
system("cls");
cout << "查看攻击记录" << endl;
cout << "待实现。。。" << endl;
system("pause");
}
void The_menu6(void) {
system("cls");
cout << "输入错误请重新输入..;...." << endl;
system("pause");
}
int main(void) {
The_console(); //设置控制台终端大小
Initialize_the(); //初始化
while(1) {
//The_menu(); //菜单
Print_center(); //居中打印菜单
int p = Menu_options(); //菜单选项
switch (p) {
case 1:
The_menu1();
break;
case 2:
The_menu2();
break;
case 3:
The_menu3();
break;
case 4:
The_menu4();
break;
case 5:
return 0;
break; //结束
default:
The_menu6();
break;
}
}
system("pause");
return 0;
}
/**
项目优化2
调整终端大小
优化成“居中显示”
**/
项目优化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();
......
}