|
发表于 2023-11-27 15:55:01
|
显示全部楼层
好的,我可以帮你编写一个简单的程序来实现这个功能。首先,我们需要定义两个结构体:一个存储管理员信息的结构体,另一个存储超级管理员信息的结构体。
- #include <stdio.h>
- #include <string.h>
- #define MAX_ADMIN 10
- typedef struct {
- char username[20];
- char password[20];
- } Admin;
- typedef struct {
- char username[20];
- char password[20];
- } SuperAdmin;
复制代码
接下来,我们需要实现以下功能:
- 添加新的管理员
- 删除现有的管理员
- 验证管理员身份
我们可以通过一个数组来存储管理员的信息,并通过循环来进行添加和删除的操作。现在我来给你写一个示例:
- int main() {
- Admin admins[MAX_ADMIN];
- SuperAdmin superAdmin;
- // 初始化超级管理员账号
- strcpy(superAdmin.username, "superadmin");
- strcpy(superAdmin.password, "123456");
- int numAdmins = 0; // 管理员数量
- int i; // 循环变量
- // 添加新的管理员
- for (i = 0; i < MAX_ADMIN; i++) {
- printf("请输入管理员%d的用户名:", i+1);
- scanf("%s", admins[i].username);
- printf("请输入管理员%d的密码:", i+1);
- scanf("%s", admins[i].password);
- numAdmins++;
- }
- // 删除现有的管理员
- char deleteUsername[20];
- printf("请输入要删除的管理员的用户名:");
- scanf("%s", deleteUsername);
- for (i = 0; i < MAX_ADMIN; i++) {
- if (strcmp(admins[i].username, deleteUsername) == 0) {
- // 将该管理员后面的管理员依次向前移动一个位置
- for (int j = i; j < numAdmins - 1; j++) {
- admins[j] = admins[j+1];
- }
- numAdmins--;
- printf("删除成功!\n");
- break;
- }
- }
- // 验证管理员身份
- char inputUsername[20], inputPassword[20];
- printf("请输入用户名:");
- scanf("%s", inputUsername);
- printf("请输入密码:");
- scanf("%s", inputPassword);
- // 首先检查是否为超级管理员
- if (strcmp(inputUsername, superAdmin.username) == 0 && strcmp(inputPassword, superAdmin.password) == 0) {
- printf("欢迎,超级管理员!\n");
- } else {
- // 检查是否为普通管理员
- int isAdmin = 0; // 表示是否为管理员的标志位
- for (i = 0; i < numAdmins; i++) {
- if (strcmp(inputUsername, admins[i].username) == 0 && strcmp(inputPassword, admins[i].password) == 0) {
- isAdmin = 1;
- break;
- }
- }
- if (isAdmin) {
- printf("欢迎,管理员!\n");
- } else {
- printf("用户名或密码错误!\n");
- }
- }
- return 0;
- }
复制代码
以上是一个简单的示例,实现了添加、删除和验证管理员身份的功能。请注意,在实际应用中,你可能需要更加完善的错误处理和安全机制,以及存储管理员信息的方式。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 |
|