c++代码;设计一个宿舍电话查询系统 要求:(1)用户输入用户名及口令,然后在已有的用户名及口令中检查是否合法,合法进入查询界面;对于不合法的用户或口令最多出错3次,超出3次后自动退出程序;(2)进入系统的用户可以浏览所有用户的电话号码及相关资料(如下图所示);(3)参考所给出的程序,自行设定数据库(要求至少包括:宿舍号、班级、电话号码三个字段,其它字段可选),系统菜单及其未说明功能可自行添加设计。
时间: 2024-04-05 12:34:17 浏览: 16
下面是一个简单的 C++ 代码示例,实现了宿舍电话查询系统的基本功能:
```
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
// 定义用户结构体
struct User {
char username[20];
char password[20];
};
// 定义电话号码结构体
struct Phone {
char dorm[10];
char cls[10];
char number[20];
};
// 用户名和口令
User users[] = {
{"user1", "password1"},
{"user2", "password2"},
{"user3", "password3"},
};
// 电话号码列表
Phone phones[] = {
{"101", "class1", "12345678"},
{"102", "class2", "23456789"},
{"103", "class3", "34567890"},
};
// 最大尝试次数
const int MAX_TRIES = 3;
// 登录函数
bool login() {
char username[20];
char password[20];
int tries = 0;
do {
cout << "请输入用户名:";
cin >> username;
cout << "请输入口令:";
cin >> password;
for (int i = 0; i < sizeof(users) / sizeof(users[0]); i++) {
if (strcmp(username, users[i].username) == 0 && strcmp(password, users[i].password) == 0) {
return true;
}
}
cout << "用户名或口令不正确,请重新输入!" << endl;
tries++;
} while (tries < MAX_TRIES);
cout << "连续输入错误超过" << MAX_TRIES << "次,程序自动退出!" << endl;
return false;
}
// 查询函数
void query() {
cout << "宿舍号\t班级\t电话号码" << endl;
for (int i = 0; i < sizeof(phones) / sizeof(phones[0]); i++) {
cout << phones[i].dorm << '\t' << phones[i].cls << '\t' << phones[i].number << endl;
}
}
// 主函数
int main() {
if (!login()) {
return 1;
}
cout << "登录成功,欢迎使用宿舍电话查询系统!" << endl;
query();
return 0;
}
```
这个代码示例中,我们定义了一个 `User` 结构体和一个 `Phone` 结构体,分别表示用户和电话号码。我们在代码中预先定义了一些用户和电话号码,实际情况中可能需要从数据库或文件中读取。
在 `login` 函数中,我们让用户输入用户名和口令,并在已有的用户名和口令中查找是否存在匹配项。如果连续输入错误超过最大次数,程序会自动退出。
在 `query` 函数中,我们打印出所有电话号码的宿舍号、班级和电话号码。
在 `main` 函数中,我们首先调用 `login` 函数进行登录,如果成功则打印欢迎消息,并调用 `query` 函数显示电话号码列表。