编写一个程序,在已设置好若干个用户名/密码后,通过输入用户名,查找对应的口令,连续执行这一过程直到用户输入结束标记“end”为止。要求: 1. 设计一个User类,成员变量包含用户名和密码,成员函数自定义,需完成初始化用户名、密码,查找用户名和查找密码的功能。 2. 在主函数中设计一个对象数组,当用户输入一个用户名后,在对象数组中查找,找到后输出对应的密码,找不到时输出相应的提示信息。输入第一行任意组用户名和密码,以空格分隔,用户名和密码都不含空格 第二行任意个用户输入的用户名用以测试程序,以空格分
时间: 2024-02-24 21:59:20 浏览: 101
根据一个帖子做的程序(密码输入问题)
隔,最后以输入“end”结束程序。
以下是实现该程序的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
const int MAX_USERS = 10; // 最大用户数
class User {
private:
string username; // 用户名
string password; // 密码
public:
User() {} // 默认构造函数
User(string u, string p) { // 构造函数
username = u;
password = p;
}
string getUsername() { // 获取用户名
return username;
}
string getPassword() { // 获取密码
return password;
}
bool findUsername(string u) { // 查找用户名
return (username == u);
}
bool findPassword(string p) { // 查找密码
return (password == p);
}
};
int main() {
User users[MAX_USERS]; // 用户对象数组
int n = 0; // 用户数
// 输入用户名和密码
cout << "请输入用户名和密码(用户名和密码之间用空格隔开,一行可输入多组,最多输入" << MAX_USERS << "组):" << endl;
while (n < MAX_USERS) {
string u, p;
cin >> u >> p;
users[n] = User(u, p);
n++;
if (cin.get() == '\n') break; // 按下回车键退出
}
// 查找用户名和密码
cout << "请输入要查找的用户名(输入end结束程序):" << endl;
string u;
while (cin >> u && u != "end") {
bool found = false;
for (int i = 0; i < n; i++) {
if (users[i].findUsername(u)) { // 查找用户名
cout << "请输入密码:" << endl;
string p;
cin >> p;
if (users[i].findPassword(p)) { // 查找密码
cout << "登录成功!" << endl;
found = true;
break;
}
else { // 密码错误
cout << "密码错误!" << endl;
break;
}
}
}
if (!found) { // 用户名不存在
cout << "该用户名不存在!" << endl;
}
cout << "请输入要查找的用户名(输入end结束程序):" << endl;
}
return 0;
}
```
注意:为了方便输入,用户名和密码之间只能用空格隔开,不能用其他字符(如冒号、逗号等)隔开。如果需要用其他字符隔开,需要相应地修改代码。
阅读全文