图书管理系统密码设置c语言
时间: 2023-09-15 08:19:06 浏览: 37
以下是一个简单的图书管理系统密码设置程序示例,使用了文件读写操作和字符串处理函数:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_PASSWORD_LEN 20
#define PASSWORD_FILE "password.txt"
int main() {
char password[MAX_PASSWORD_LEN+1]; // 密码字符串
FILE *fp; // 文件指针
// 读取旧密码
fp = fopen(PASSWORD_FILE, "r");
if (fp == NULL) {
// 如果文件不存在则新建一个
fp = fopen(PASSWORD_FILE, "w");
if (fp == NULL) {
printf("Error creating password file.\n");
return 1;
}
printf("No password set yet. Please enter a new password: ");
scanf("%s", password);
fprintf(fp, "%s", password);
printf("Password set successfully.\n");
fclose(fp);
return 0;
}
fscanf(fp, "%s", password);
fclose(fp);
// 验证密码
printf("Please enter the old password: ");
scanf("%s", password);
if (strcmp(password, "") == 0) {
printf("Invalid password.\n");
return 1;
}
if (strcmp(password, password) != 0) {
printf("Incorrect password.\n");
return 1;
}
// 设置新密码
printf("Please enter a new password: ");
scanf("%s", password);
if (strlen(password) > MAX_PASSWORD_LEN) {
printf("Password too long. Maximum length is %d.\n", MAX_PASSWORD_LEN);
return 1;
}
fp = fopen(PASSWORD_FILE, "w");
fprintf(fp, "%s", password);
printf("Password set successfully.\n");
fclose(fp);
return 0;
}
```
这个程序首先尝试读取密码文件,如果文件不存在则新建一个,并要求用户输入新密码。如果文件存在,则读取旧密码并要求用户输入旧密码以验证身份。如果验证通过,则要求用户输入新密码并将其写入密码文件中。注意,此示例仅适用于一个密码,如果需要支持多个密码,则需要进行相应的修改。另外,为了安全起见,密码应该使用加密存储。