给我一个C语言样例,要求是:该系统主要包括管理员用户和普通用户。其中管理员模块功能主要包括账户密码管理模块,其中账户管理模块可以修改密码;普通用户模块功能主要包括账号注册登录模块.
时间: 2023-08-10 12:09:38 浏览: 47
好的,以下是一个简单的 C 语言示例,可以实现你所描述的功能:
```c
#include <stdio.h>
#include <string.h>
// 定义用户结构体
struct user {
char username[20]; // 用户名
char password[20]; // 密码
int is_admin; // 是否管理员,1是,0否
};
// 定义用户数据
struct user users[100]; // 最多支持100个用户
int user_count = 0; // 当前用户数量
// 用户注册函数
void register_user() {
struct user new_user;
printf("请输入用户名:");
scanf("%s", new_user.username);
printf("请输入密码:");
scanf("%s", new_user.password);
printf("请选择用户类型(1-管理员,0-普通用户):");
scanf("%d", &new_user.is_admin);
users[user_count++] = new_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(username, users[i].username) == 0 &&
strcmp(password, users[i].password) == 0) {
printf("登录成功!\n");
if (users[i].is_admin) {
printf("欢迎管理员 %s 登录系统!\n", username);
// 管理员账户密码管理模块
int choice;
printf("请选择操作:\n");
printf("1. 修改密码\n");
printf("2. 返回主菜单\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入新密码:");
scanf("%s", users[i].password);
printf("密码修改成功!\n");
break;
case 2:
break;
default:
printf("无效操作,请重新选择!\n");
break;
}
} else {
printf("欢迎普通用户 %s 登录系统!\n", username);
}
return;
}
}
printf("用户名或密码错误!\n");
}
int main() {
int choice;
while (1) {
printf("请选择操作:\n");
printf("1. 用户注册\n");
printf("2. 用户登录\n");
printf("3. 退出系统\n");
scanf("%d", &choice);
switch (choice) {
case 1:
register_user();
break;
case 2:
login();
break;
case 3:
printf("谢谢使用,再见!\n");
return 0;
default:
printf("无效操作,请重新选择!\n");
break;
}
}
}
```
这个程序中,我们定义了一个 `user` 结构体,用于存储用户信息,包括用户名、密码和是否管理员。我们还定义了一个 `users` 数组,用于存储所有的用户数据,以及一个 `user_count` 变量,用于记录当前用户数量。
程序中包含两个主要函数,`register_user` 和 `login`。`register_user` 函数用于实现用户注册功能,它会提示用户输入用户名、密码和用户类型,然后将新用户添加到 `users` 数组中。`login` 函数用于实现用户登录功能,它会提示用户输入用户名和密码,然后遍历 `users` 数组查找匹配的用户,如果找到了对应的用户,就会显示登录成功信息,并根据用户类型执行不同的操作。
在 `login` 函数中,如果登录用户是管理员,会显示一个额外的菜单,让管理员选择执行修改密码操作或返回主菜单。如果选择修改密码操作,会提示管理员输入新密码,并将密码更新到用户数据中。
在 `main` 函数中,我们使用一个循环来不断地显示菜单,根据用户的选择执行不同的操作。当用户选择退出系统时,程序结束。