C语言管理员和用户登录系统
时间: 2024-05-08 17:21:08 浏览: 28
实现一个C语言管理员和用户登录系统的基本步骤如下:
1. 定义用户和管理员的结构体,包括用户名、密码等信息。
2. 定义一个函数用于验证用户输入的用户名和密码是否正确,可以使用数组、文件等方式存储已注册的用户信息。
3. 定义一个函数用于管理员登录,管理员可以添加、删除、修改用户信息等操作。
4. 在主函数中,根据用户选择调用相应的函数。
下面是一个简单的代码示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_USERS 100
struct User {
char username[20];
char password[20];
};
struct Admin {
char username[20];
char password[20];
};
struct User users[MAX_USERS];
struct Admin admin = {"admin", "admin"};
int num_users = 0;
int validate_user(char* username, char* password) {
for (int i = 0; i < num_users; i++) {
if (strcmp(users[i].username, username) == 0 &&
strcmp(users[i].password, password) == 0) {
return 1;
}
}
return 0;
}
int admin_login() {
char username[20], password[20];
printf("Enter admin username: ");
scanf("%s", username);
printf("Enter admin password: ");
scanf("%s", password);
if (strcmp(admin.username, username) == 0 &&
strcmp(admin.password, password) == 0) {
return 1;
}
printf("Invalid admin username or password\n");
return 0;
}
void add_user() {
char username[20], password[20];
printf("Enter username: ");
scanf("%s", username);
printf("Enter password: ");
scanf("%s", password);
strcpy(users[num_users].username, username);
strcpy(users[num_users].password, password);
num_users++;
printf("User added successfully\n");
}
void delete_user() {
char username[20];
printf("Enter username to delete: ");
scanf("%s", username);
for (int i = 0; i < num_users; i++) {
if (strcmp(users[i].username, username) == 0) {
for (int j = i; j < num_users - 1; j++) {
users[j] = users[j+1];
}
num_users--;
printf("User deleted successfully\n");
return;
}
}
printf("User not found\n");
}
void modify_user() {
char username[20], new_password[20];
printf("Enter username to modify: ");
scanf("%s", username);
for (int i = 0; i < num_users; i++) {
if (strcmp(users[i].username, username) == 0) {
printf("Enter new password: ");
scanf("%s", new_password);
strcpy(users[i].password, new_password);
printf("User modified successfully\n");
return;
}
}
printf("User not found\n");
}
int main() {
int choice;
char username[20], password[20];
while (1) {
printf("1. Login\n");
printf("2. Admin login\n");
printf("3. Exit\n");
printf("Enter choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter username: ");
scanf("%s", username);
printf("Enter password: ");
scanf("%s", password);
if (validate_user(username, password)) {
printf("Login successful\n");
} else {
printf("Invalid username or password\n");
}
break;
case 2:
if (admin_login()) {
printf("1. Add user\n");
printf("2. Delete user\n");
printf("3. Modify user\n");
printf("Enter choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
add_user();
break;
case 2:
delete_user();
break;
case 3:
modify_user();
break;
default:
printf("Invalid choice\n");
}
}
break;
case 3:
return 0;
default:
printf("Invalid choice\n");
}
}
return 0;
}
```