用C语言实现,用户登录注册排名功能代码
时间: 2024-03-14 14:46:58 浏览: 24
以下是一个简单的用C语言实现用户登录注册排名功能的代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_USERS 100 // 最大用户数
#define MAX_NAME_LENGTH 20 // 用户名的最大长度
// 用户结构体
typedef struct {
char name[MAX_NAME_LENGTH];
int score;
} User;
// 用户数组
User users[MAX_USERS];
// 用户数
int userCount = 0;
// 注册用户
void registerUser() {
User user;
printf("请输入用户名:");
scanf("%s", user.name);
user.score = 0;
users[userCount] = user;
userCount++;
printf("注册成功!\n");
}
// 用户登录
void login() {
char name[MAX_NAME_LENGTH];
printf("请输入用户名:");
scanf("%s", name);
for (int i = 0; i < userCount; i++) {
if (strcmp(users[i].name, name) == 0) {
printf("欢迎回来,%s!\n", name);
return;
}
}
printf("用户不存在!\n");
}
// 更新用户分数
void updateUserScore(char* name, int score) {
for (int i = 0; i < userCount; i++) {
if (strcmp(users[i].name, name) == 0) {
users[i].score += score;
return;
}
}
}
// 排名用户
void rankUsers() {
// 按照分数从高到低排序
for (int i = 0; i < userCount - 1; i++) {
for (int j = 0; j < userCount - i - 1; j++) {
if (users[j].score < users[j + 1].score) {
User temp = users[j];
users[j] = users[j + 1];
users[j + 1] = temp;
}
}
}
// 输出排名
printf("用户排名:\n");
for (int i = 0; i < userCount; i++) {
printf("%d. %s(%d分)\n", i + 1, users[i].name, users[i].score);
}
}
int main() {
while (1) {
printf("1. 注册\n2. 登录\n3. 更新分数\n4. 排名\n5. 退出\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
registerUser();
break;
case 2:
login();
break;
case 3:
char name[MAX_NAME_LENGTH];
int score;
printf("请输入用户名:");
scanf("%s", name);
printf("请输入分数:");
scanf("%d", &score);
updateUserScore(name, score);
break;
case 4:
rankUsers();
break;
case 5:
exit(0);
default:
printf("无效的选项!\n");
break;
}
}
return 0;
}
```
这个程序实现了以下功能:
1. 用户注册:用户可以输入用户名进行注册,注册成功后会将用户信息存储在一个用户数组中。
2. 用户登录:用户可以输入用户名进行登录,如果用户名存在,则输出欢迎回来的消息;如果用户名不存在,则输出用户不存在的消息。
3. 更新用户分数:用户可以输入用户名和分数,程序会查找对应的用户并更新其分数。
4. 排名用户:用户可以查看按照分数从高到低排序后的用户排名。
5. 退出程序。
这个程序只是一个示例,仅供参考。实际的用户登录注册排名功能需要根据具体需求进行设计和实现。