用C语言写的学生管理系统

本文介绍了如何使用C语言编写一个简单的学生信息管理系统。通过结构体存储学生数据,结合文件操作实现数据的保存和读取,实现了添加、查询、修改和删除学生信息的功能。
摘要由CSDN通过智能技术生成
 /*
 **********************************************************************************
 * 大一第一学期期末成绩管理系统
 *
 *  开发环境: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];   
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值