请用c语言写一个登陆注册界面的代码,请实现以下功能:首先进入功能选择界面,输入1,2,3可以分别进行登陆,注册,退出3个功能。进行登陆操作时,输入账户和密码后可以登陆成功,否则提示账户或密码有误;进行注册操作时,需要填写账户和密码,其中密码需要2次确认,若2次密码相同,提示注册成功,返回功能选择界面。注意,每次注册好的账户和密码都需要保存,方便下一次的登录使用
时间: 2023-09-29 13:10:55 浏览: 188
以下是一个简单的登陆注册界面的 C 语言代码,具体实现方式可能有所不同,仅供参考:
```c
#include <stdio.h>
#include <string.h>
#define MAX_USERS 100 // 最大用户数
#define MAX_USERNAME 20 // 用户名最大长度
#define MAX_PASSWORD 20 // 密码最大长度
struct User {
char username[MAX_USERNAME];
char password[MAX_PASSWORD];
};
struct User users[MAX_USERS]; // 用户数据数组
int numUsers = 0; // 当前用户数
// 显示功能选择界面,并返回用户选择的功能编号
int showMenu() {
int choice;
printf("1. 登陆\n");
printf("2. 注册\n");
printf("3. 退出\n");
printf("请选择功能:");
scanf("%d", &choice);
return choice;
}
// 检查用户名是否已经存在
int isUsernameExists(char *username) {
for (int i = 0; i < numUsers; i++) {
if (strcmp(users[i].username, username) == 0) {
return 1;
}
}
return 0;
}
// 检查密码是否匹配
int isPasswordMatch(char *password1, char *password2) {
return strcmp(password1, password2) == 0;
}
// 注册新用户
void registerUser() {
char username[MAX_USERNAME];
char password1[MAX_PASSWORD];
char password2[MAX_PASSWORD];
printf("请输入用户名:");
scanf("%s", username);
if (isUsernameExists(username)) {
printf("用户名已存在,请重新输入!\n");
return;
}
printf("请输入密码:");
scanf("%s", password1);
printf("请再次输入密码:");
scanf("%s", password2);
if (!isPasswordMatch(password1, password2)) {
printf("两次输入的密码不一致,请重新输入!\n");
return;
}
struct User newUser;
strcpy(newUser.username, username);
strcpy(newUser.password, password1);
users[numUsers++] = newUser;
printf("注册成功!\n");
}
// 登陆系统
void loginUser() {
char username[MAX_USERNAME];
char password[MAX_PASSWORD];
printf("请输入用户名:");
scanf("%s", username);
printf("请输入密码:");
scanf("%s", password);
for (int i = 0; i < numUsers; i++) {
if (strcmp(users[i].username, username) == 0 && strcmp(users[i].password, password) == 0) {
printf("登陆成功!\n");
return;
}
}
printf("用户名或密码错误!\n");
}
int main() {
int choice;
do {
choice = showMenu();
switch (choice) {
case 1:
loginUser();
break;
case 2:
registerUser();
break;
case 3:
printf("谢谢使用!\n");
break;
default:
printf("无效的选择,请重新输入!\n");
break;
}
} while (choice != 3);
return 0;
}
```
这个代码中使用结构体 `User` 来保存每个用户的用户名和密码,使用全局数组 `users` 来存储所有用户的数据。具体的实现细节见代码注释。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)