**
C语言
**
第一章 学生信息管理系统 多文件开发 基于数组 支持存取到文本文件
前言
这是C语言第一篇,记录学生信息管理系统从0开始到功能实现
一、学生信息管理系统是什么?
是记录学生的:学号、姓名、年龄、性别、第一科成绩、第二科成绩、第三科成绩…的系统。
二、开发步骤
1.Visual Studio 2019解决方案截图
2.按照上图准备一下文件
del.c:
#include “Student.h”
///
/// 删除学生信息
///
void del()
{
int i, j, flag = 0;
char s1[LEN + 1];
printf(“请输入要删除学生的学号:\n”);
scanf(“%s”, s1);
for (i = 0; i < n; i++)
{
if (strcmp(students[i].id, s1) == 0)
{
flag = 1;
//要删除学生后面的学生往前移1位
for (j = i; j < n; j++)
{
students[j] = students[j + 1];
}
}
}
//查找失败
if (flag == 0)
{
printf(“该学号不存在!!!\n”);
}
if (flag == 1)
{
printf(“删除成功!!!\n”);
//删除成功,学生人数减1
n–;
}
system(“pause”);
}
display.c
#include “Student.h”
///
/// 显示全部信息
///
void display()
{
int i;
printf(“共有%d位学生的信息:\n”, n);
if (n != 0)
{
printf(“学号\t姓名\t年龄\t性别\tC语言成绩\t数学\t英语\n”);
printf(“---------------------------------------------\n”);
for (i = 0; i < n; i++)
{
printf(“%s\t%s\t%d\t%c\t%d\t%d\t%d\n”, students[i].id, students[i].name,
students[i].age, students[i].gender, students[i].score[0], students[i].score[1],
students[i].score[2]);
}
}
system(“pause”);
}
flush.c
#include “Student.h”
///
/// 刷新文件
///
///
int flush()
{
char filename[LEN + 1];
int i = 0;
printf(“请输入要刷新学生信息的文件名:\n”);
scanf(“%s”, filename);
int j = 0;
FILE* fp;
fp = fopen(filename, “r”);
if (fp == NULL) return 0;
//从文件读取信息
while (fscanf(fp, “%s %s %d %c %d %d %d”, &students[j].id, &students[j].name, &students[j].age,
&students[j].gender, &students[j].score[0], &students[j].score[1], &students[j].score[2]) == 7)
{
printf(“学号\t姓名\t年龄\t性别\tC语言\t数学\t英语\n”);
printf(“%s\t%s\t%d\t%c\t%d\t%d\t%d\n”, students[j].id, students[j].name, students[j