用结构体完成图书馆管理系统的注册登录
时间: 2023-07-18 20:45:11 浏览: 72
图书信息管理系统(C语言)(结构体数组)
5星 · 资源好评率100%
以下是一个使用结构体完成图书馆管理系统的注册和登录的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_USER 100 // 最大用户数
// 定义用户结构体
struct User {
char username[20];
char password[20];
};
// 定义用户数组
struct User users[MAX_USER];
// 用户数
int user_count = 0;
// 注册函数
void register_user() {
char username[20];
char password[20];
char confirm_password[20];
printf("请输入用户名:");
scanf("%s", username);
printf("请输入密码:");
scanf("%s", password);
printf("请再次输入密码:");
scanf("%s", confirm_password);
// 检查两次密码是否一致
if (strcmp(password, confirm_password) != 0) {
printf("两次输入的密码不一致,请重新输入。\n");
register_user();
} else {
// 将用户名和密码写入用户数组
struct User user;
strcpy(user.username, username);
strcpy(user.password, password);
users[user_count++] = user;
printf("注册成功!\n");
}
}
// 登录函数
void login() {
char username[20];
char password[20];
printf("请输入用户名:");
scanf("%s", username);
printf("请输入密码:");
scanf("%s", password);
// 检查用户名和密码是否匹配
int i;
for (i = 0; i < user_count; i++) {
if (strcmp(users[i].username, username) == 0 && strcmp(users[i].password, password) == 0) {
printf("登录成功!\n");
return;
}
}
// 如果没有匹配的用户名和密码,提示用户重新输入
printf("用户名或密码错误,请重新输入。\n");
login();
}
int main() {
int choice;
do {
printf("1. 注册\n");
printf("2. 登录\n");
printf("3. 退出\n");
printf("请选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
register_user();
break;
case 2:
login();
break;
case 3:
printf("退出程序。\n");
break;
default:
printf("无效选择,请重新选择。\n");
break;
}
} while (choice != 3);
return 0;
}
```
这里使用了结构体来表示用户信息,将所有用户存储在一个用户数组中。在注册函数中,需要先检查两次输入的密码是否一致,然后将用户名和密码存储在一个新的用户结构体中,再将该结构体添加到用户数组中。在登录函数中,需要遍历用户数组,找到匹配的用户名和密码。如果没有找到匹配的用户名和密码,则提示用户重新输入。
阅读全文