用C语言写一个学费信息管理系统
时间: 2024-10-18 17:14:41 浏览: 16
用C++建工程的方式编写一个学费信息管理系统
在C语言中创建一个简单的学费信息管理系统通常会涉及数据结构、文件操作以及用户界面设计。以下是一个基础的框架示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[50];
int id;
float tuition; // 学费金额
} Student;
// 创建新学生并保存到文件
void add_student(Student *students, FILE *file) {
printf("请输入学生的姓名: ");
fgets(students->name, sizeof(students->name), stdin);
students->id = get_positive_integer("请输入学生ID: ");
students->tuition = get_float("请输入学费: ");
fprintf(file, "Name: %s\nID: %d\nTuition: %.2f\n", students->name, students->id, students->tuition);
}
// 从文件读取学生信息
void load_students(Student *students, FILE *file) {
rewind(file); // 将文件指针移动到开头
while (fgets(students->name, sizeof(students->name), file)) {
students++;
}
}
// 主函数
int main() {
const int MAX_STUDENTS = 100;
Student students[MAX_STUDENTS];
FILE *file = fopen("tuition_data.txt", "a+"); // 打开或创建文件
if (!file) {
perror("打开文件失败");
return 1;
}
int num_students = 0;
while (num_students < MAX_STUDENTS) { // 添加学生直到达到最大数量
add_student(&students[num_students], file);
num_students++;
}
fclose(file); // 关闭文件
load_students(students, file); // 从文件加载所有学生
for (int i = 0; i < num_students; i++) {
printf("学生%02d - 名称: %s, ID: %d, 学费: %.2f\n", i + 1, students[i].name, students[i].id, students[i].tuition);
}
return 0;
}
// 辅助函数获取正整数输入
int get_positive_integer(const char *prompt) {
int number;
while (scanf("%d", &number) != 1 || number <= 0) {
printf("请输入一个正整数: ");
clear_input_buffer(stdin);
}
return number;
}
// 辅助函数获取浮点数输入
float get_float(const char *prompt) {
float number;
while (scanf("%f", &number) != 1) {
printf("请输入一个数字: ");
clear_input_buffer(stdin);
}
return number;
}
// 清除输入缓冲区
void clear_input_buffer(FILE *stream) {
char ch;
while ((ch = fgetc(stream)) != EOF && ch != '\n')
ungetc(ch, stream);
}
```
阅读全文