0
点赞
收藏
分享

微信扫一扫

Week04-项目5-重复验证

素的盐 2022-03-11 阅读 30

文章目录


前言

提示:这里可以添加本文要记录的大概内容:


提示:以下是本篇文章正文内容,下面案例可供参考

1.重复输入用户名和密码

1.1 项目需求

  在上一个项目的基础上允许多次输入用户名和密码

1.2 项目实现

#include <iostream>
#include <string>
#include <Windows.h>

using namespace std;

int main005(void) {
	string loginName;
	string pwd;
	while (true)
	{
		cout << "请输入用户名:";
		cin >> loginName;
		cout << "请输入密码:";
		cin >> pwd;
		if (loginName == "54hk" && pwd == "123456")
		{
			break;
		}
		else
		{
			cout << "用户名或密码错误!" << endl;
			system("pause");
			system("cls");
		}
	}

	system("cls");
	cout << "1.网站404攻击" << endl;
	cout << "2.网站篡改攻击" << endl;
	cout << "3.网站攻击记录" << endl;
	cout << "4.DNS攻击" << endl;
	cout << "5.服务器重启攻击" << endl;
	cout << "6.退出" << endl;
	system("pause");
	return 0;
}


2.while 循环、for 循环和do while循环

2.1 while循环

在这里插入图片描述
;while 循环的使用:

#include <iostream>
#include <Windows.h>

using namespace std;

int main(void) {
	//计算1+...+100
	//while循环
	int i = 1;
	int sum = 0;
	while (i <= 100)
	{
		sum += i;
		i++;
	}
	cout << sum << endl;
	system("pause");
	return 0;
}

2.2 for 循环

在这里插入图片描述
for循环的使用:

#include <iostream>
#include <Windows.h>

using namespace std;

int main(void) {
	//for循环 已经确定循环次数时建议使用for循环
	sum = 0;
	for (size_t i = 1; i <= 100; i++)//在c89标准中,表达式1不能定义变量,需要提前定义
	{
		sum += i;
	}
	cout << sum << endl;
	system("pause");
	return 0;
}

2.3 do while循环

在这里插入图片描述
do while 的使用

#include <iostream>
#include <Windows.h>

using namespace std;

int main(void) {
	//do while循环
	sum = 0;
	i = 1;
	do
	{
		sum += i;
		i++;
	} while (i <= 100); //满足条件则继续循环
	cout << sum << endl;
	system("pause");
	return 0;
}

2.4 continue 与 break循环控制

2.4.1continue

continue 跳出本次循环接着执行下一次循环
(1)for中的continue

在这里插入图片描述

(2)while中的continue
在这里插入图片描述

2.4.2 break

break 结束本层循环
在这里插入图片描述

2.5 循环的嵌套

使用嵌套的循环简单的模拟时钟

while (true)
	{
		for (size_t i = 0; i < 24; i++)
		{
			for (size_t j = 0; j < 60; j++)
			{
				for (size_t k = 0; k < 60; k++)
				{
					system("cls");
					cout << i << "时" << j << "分" << k << "秒" << endl;
					Sleep(1000); //休眠一秒
				}
			}
		}
	}


3.goto语句

无条件转移语句:goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加半角冒号“:”。语句标号起标识语句的作用,与 goto 语句配合使用。
但在在普通的开发中并不推荐使用。

#include <iostream>
#include <string>
#include <Windows.h>

using namespace std;

int main0502(void) {
	string say;

	for (size_t i = 0; i < 3; i++)
	{
		cout << "开启第" << i+1 << "次相亲" << endl;
		cout << "你喜欢打LOL吗?" << endl;
		cin >> say;
		if (say.find("no") == say.npos && say.find("不") == say.npos)
		{
			cout << "我喜欢打ADC,KD9.9,你觉得我怎么样?" << endl;
			cin >> say;
			if (say.find("不怎么样") == say.npos && say.find("你是个好人") == say.npos)
			{
				goto Happy;  //goto 语句的使用
			}
			else
			{
				continue;
			}
		}
		else
		{
			continue;
		}
	}
	system("pause");
	return 0;

Happy:   //这里设置goto语句的标志为Happy
	cout << "一起撸去吧!" << endl;
	system("pause");
	return 0;
}


4.练习

4.1 输入函数打印*号三角形

(1)项目需求:
  在控制台输入整形的行数,根据行数打印*号三角形
(2)项目实现:

    /*
		 *       
		***
	   *****
	   分析:
	   最外层循环循环 rows 次
	   第1行需要循环 rows 次,rows前的位置打印空格,rows位置打印 * 
	   第2行需要循环 rows + 1次,rows-1前的位置打印空格,rows-1及以后的位置打印 *
	   .
	   .
	   .
	   第rows行则需要循环 rows + (rows-1)次,rows - (rows-1)前的位置打印空格(没有空格),1及之后的位置打印*
	   索引位置从0开始,则内层循环的次数为 j <= rows + i 次
	   判断打印空格的条件为 j < rows - i
	*/	
	cout << "打印三角形的*" << endl;
	cout << "请输入行数:";
	cin >> rows;
	for (size_t i = 0; i < rows; i++)
	{
		for (size_t j = 0; j <= rows + i; j++)
		{
			if (j < rows - i)
			{
				cout << " ";
			}
			else
			{
				cout << "*";
			}
		}
		cout << endl;
	}

4.2 打印九九乘法表

(1)项目需求:
  在控制台打印九九乘法表
(2)项目实现:

//打印乘法表
	/*
		setw(width) 是下一个数据的输出宽度为width, 
		仅对下一个数据的输出有效, 即只有一次效果
		std::left 使数据在自己规定的宽度内左对齐,默认是右对齐, 持续有效

	*/
	//int width;
	cout << "打印九九乘法表" << endl;
	for (size_t i = 1; i < 10; i++)
	{
		for (size_t j = 1; j <= i; j++)
		{
			cout << j << "*" << i << "=" << i * j << "\t";
			/*width = (j == 1) ? 1 : 2;
			cout << j << "*" << i<< "=" << i * j << setw(width) << left << " ";*/
 		}
		cout << endl;
	}

4.3 十进制与二进制的相互转换

(1)项目需求:
  <1>输入10进制数转换为2进制数输出
  <2>输入2进制数转换为10进制数输出
(2)项目实现:

	//输入一个10进制的正整数,把它转换为2进制输出。
	/*
		除2取余存储,逆序输出
		循环结束条件为num = 0
	*/
	int num;
	int bit[255];
	int i = 0;
	cout << "请输入一个正整数:";
	cin >> num;
	while (num)
	{
		bit[i] = num % 2;
		num = num / 2;
		i++;
	}
	for (int j = i - 1; j >= 0; j--)
	{
		cout << bit[j];
	}
	//二进制转十进制
	//存储在字符串中,通过字符串位数来计算
	
	string bNum;
	int dNum = 0;
	int mul = 1;
	cout << "请输入一个二进制数:";
	cin >> bNum;
	for (int i = 0; i < bNum.length(); i++)
	{
		int temp = bNum[bNum.length() - i - 1] - '0';// '1'-'0' = 1    '0'-'0' = 0
		dNum += temp * mul;
		mul *= 2;
	}
	cout << dNum << endl;
举报

相关推荐

0 条评论