# C语言小项目:学生信息管理系统
一、项目概述
本系统旨在实现一个简单的学生信息管理系统,包括学生信息的录入、查询、修改和删除等功能。通过该系统,教师可以方便地管理学生信息,学生也可以查询自己的成绩和考勤情况。
二、功能模块划分
1. 用户登录模块:用于验证用户身份,确保只有授权用户才能访问系统。
2. 学生信息录入模块:用于添加新学生的信息,包括姓名、学号、性别、年龄、专业等。
3. 学生信息查询模块:用于根据学号或姓名查询学生信息。
4. 学生信息修改模块:用于修改已存在的学生信息。
5. 学生信息删除模块:用于删除已存在的学生信息。
6. 系统设置模块:用于设置系统参数,如密码加密方式、数据备份频率等。
三、代码实现
1. 用户登录模块
```c
#include
#include
int main() {
char user[20];
char pass[20];
printf("请输入用户名:");
scanf("%s", user);
printf("请输入密码:");
scanf("%s", pass);
if (strcmp(user, "admin") == 0 && strcmp(pass, "123456") == 0) {
printf("欢迎,管理员!
");
} else {
printf("请先登录!
");
}
return 0;
}
```
2. 学生信息录入模块
```c
#include
#include
void addStudent(char name[], int age, char gender, char major[]) {
FILE *file = fopen("students.txt", "a");
if (file == NULL) {
printf("文件打开失败!
");
return;
}
fprintf(file, "%s %d %c %s
", name, age, gender, major);
fclose(file);
}
```
3. 学生信息查询模块
```c
#include
#include
void queryStudent(char name[]) {
FILE *file = fopen("students.txt", "r");
if (file == NULL) {
printf("文件打开失败!
");
return;
}
char line[100];
while (fgets(line, sizeof(line), file)) {
if (strcmp(line, name) == 0) {
printf("学号:%s,姓名:%s,性别:%s,专业:%s
- ", line + strlen(line), line + strlen(name), line[strlen(line)
- 1], line + strlen(major));
return;
}
}
fclose(file);
}
```
4. 学生信息修改模块
```c
void updateStudent(char old_name[], char new_name[], int age, char gender, char major[]) {
FILE *file = fopen("students.txt", "a");
if (file == NULL) {
printf("文件打开失败!
");
return;
}
fprintf(file, "%s %d %c %s
", old_name, age, gender, major);
fclose(file);
}
```
5. 学生信息删除模块
```c
void deleteStudent(char name[]) {
FILE *file = fopen("students.txt", "a");
if (file == NULL) {
printf("文件打开失败!
");
return;
}
fprintf(file, "%s
", name);
fclose(file);
}
```
6. 系统设置模块
```c
void systemSetting(char *setting[]) {
FILE *file = fopen("settings.txt", "a");
if (file == NULL) {
printf("文件打开失败!
");
return;
}
for (int i = 0; setting[i] != NULL; i++) {
fprintf(file, "%s ", setting[i]);
}
fclose(file);
}
```
四、测试与运行
1. 编译并运行项目,分别测试用户登录、学生信息录入、查询、修改和删除功能。
2. 在系统设置模块中设置不同的参数,观察是否生效。