C语言学生管理系统代码用到文件,学生表包括学号姓名,初始化的时候会在代码中包含一部分学生信息如{20200001,张三},{20200002,李四}直接写入文件,不用在终端输入,增加学生操作时再用终端输入,要求对学生进行计数
时间: 2024-04-17 14:25:29 浏览: 108
学生管理系统代码C语言
下面是一个使用文件存储学生信息的示例代码,其中包括学生表的初始化和增加学生的操作,并且对学生进行了计数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100
struct Student {
char studentID[10];
char name[50];
};
struct Student students[MAX_STUDENTS];
int studentCount = 0;
void initializeStudents() {
FILE *file = fopen("students.txt", "w");
if (file == NULL) {
printf("Failed to open students.txt file!\n");
return;
}
fprintf(file, "20200001,张三\n");
fprintf(file, "20200002,李四\n");
fclose(file);
}
void addStudent() {
if (studentCount == MAX_STUDENTS) {
printf("Maximum number of students reached!\n");
return;
}
struct Student newStudent;
printf("Enter student ID: ");
scanf("%s", newStudent.studentID);
printf("Enter student name: ");
scanf("%s", newStudent.name);
strcpy(students[studentCount].studentID, newStudent.studentID);
strcpy(students[studentCount].name, newStudent.name);
studentCount++;
FILE *file = fopen("students.txt", "a");
if (file == NULL) {
printf("Failed to open students.txt file!\n");
return;
}
fprintf(file, "%s,%s\n", newStudent.studentID, newStudent.name);
fclose(file);
printf("Student added successfully!\n");
}
int main() {
initializeStudents();
int choice;
do {
printf("\nStudent Management System\n");
printf("1. Add Student\n");
printf("2. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch(choice) {
case 1:
addStudent();
break;
case 2:
printf("Exiting...\n");
break;
default:
printf("Invalid choice! Please try again.\n");
}
} while(choice != 2);
printf("Total number of students: %d\n", studentCount);
return 0;
}
```
在这个示例代码中,学生信息存储在名为 `students.txt` 的文件中。在 `initializeStudents` 函数中,我们打开文件并直接写入一部分学生信息,然后关闭文件。在 `addStudent` 函数中,我们从终端获取新学生的学号和姓名,并将其添加到 `students` 数组和文件中。每次增加学生时,都会将新学生的信息追加到文件的末尾。
请确保在程序运行前,已经在 `students.txt` 文件中初始化了一部分学生信息。这样,在程序运行时,即可读取并显示已经存在的学生信息,并能够通过终端输入添加新的学生信息。最后,程序会输出学生的总人数。
记得根据自己的需求进一步修改和完善代码。
阅读全文