/*
**********************************************************************************
* 大一第一学期期末成绩管理系统
*
* 开发环境:VC++6.0
*
* 将全班学生成绩以记录的形式存储在文件中
* 记录包含每个学生的姓名、学号、性别、三科(高等数学、大学英语、C语言)成绩
* 程序功能:1.求各门课程总分、平均分; 2.求各个学生总分、平均分;
* 3.按姓名、学号查找学生记录并显示; 4.浏览全部学生成绩;
*
* Author: 啊杜
*
**********************************************************************************
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SUBJECT_NUMBER 3 //课程数目
#define SUBJECT_LENGTH 20 //课程名最大长度
#define NAME_LENGTH 20 //姓名最大长度
#define CODE_LENGTH 10 //学号最大长度
#define SEX 5 //性别长度
#define FILE_LENGTH 80 //文件名最大长度
#define BUFFER_LENGTH 80 //缓冲区最大长度
char subjectName[SUBJECT_NUMBER][SUBJECT_LENGTH] = {"高等数学", "大学英语", "C语言"}; //课程名称
int total[SUBJECT_NUMBER]; //各课程总分
char fileName[FILE_LENGTH]; //文件名
//结构——学生记录
struct record
{
char name[NAME_LENGTH+1]; //姓名
char code[CODE_LENGTH+1]; //学号
char sex[SEX]; //性别
int mark[SUBJECT_NUMBER+1]; //各科成绩
int total; //总分
}student;
//从指定文件读入一个记录
int ReadRecord (FILE *fpt, struct record *ppt)
{
char buf[BUFFER_LENGTH];
int i;
if (1 != fscanf (fpt, "%s", buf))
{
printf ("文件 %s 无法打开!\n", fpt);
return 0;
}
strncpy (ppt->name, buf, NAME_LENGTH); //存储学生姓名
fscanf (fpt, "%s", buf);
strncpy (ppt->code, buf, CODE_LENGTH); //存储学生学号
fscanf (fpt, "%s", buf);
strncpy (ppt->sex, buf, SEX); //存储学生性别
for (i = 0; i < SUBJECT_NUMBER; i++)
fscanf(fpt, "%d", &ppt->mark[i]); //存储学生各科成绩
for (ppt->total = 0, i = 0; i < SUBJECT_NUMBER; i++)
ppt->total += ppt->mark[i];
用C语言写的学生管理系统
最新推荐文章于 2023-07-08 21:35:32 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)