c语言成绩管理系统源代码
C语言成绩管理系统源代码
一、引言
C语言是一门广泛应用于计算机编程领域的高级编程语言,其简洁明了、灵活易学的特点使得其成为了众多程序员的首选。本文将介绍一个C语言成绩管理系统的源代码,该系统可实现学生信息录入、成绩查询、成绩修改等功能。
二、需求分析
1. 学生信息录入:需要输入学生姓名、学号、性别等基本信息,并且需要输入每门课程的成绩。
2. 成绩查询:可以按照学号或者姓名进行查询,查询结果包括学生基本信息和各科成绩。
3. 成绩修改:可以根据学号或者姓名进行修改,修改后需要重新保存。
三、程序设计
1. 结构体定义:定义一个结构体类型student,包含姓名、学号、性别和各科成绩等基本信息。
2. 学生信息录入函数:实现输入每个学生的基本信息和各科成绩,并将其保存到文件中。
3. 成绩查询函数:根据输入的姓名或者学号查对应的学生信息,并输出其基本信息和各科成绩。
4. 成绩修改函数:根据输入的姓名或者学号查对应的学生信息,然后可以选择修改某一科目的成绩或者全部成绩,并将修改后的结果保存到文件中。
四、源代码
以下是C语言成绩管理系统的源代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NUM 100
七夕情人节浪漫诗句
#define FILE_NAME "student.dat"
typedef struct{
    char name[20];
    char id[20];
    char sex[5];
    float score[3];
}student;
潘阳结婚现场void input(student *stu,int num);
void output(student *stu,int num);
void modify(student *stu,int num);
int main(){过油肉的做法
汪东城整容
    student stu[MAX_NUM];
    int num=0,flag=1;
    FILE *fp;
   
    fp=fopen(FILE_NAME,"rb");
    if(fp!=NULL){
        fread(&num,sizeof(int),1,fp);
        fread(stu,sizeof(student),num,fp);
        fclose(fp);
    }
   
    while(flag){法医秦明什么时候更新
        printf("\n\n\t\t学生成绩管理系统\n");
        printf("\t\t1. 学生信息录入\n");
        printf("\t\t2. 成绩查询\n");
        printf("\t\t3. 成绩修改\n");
        printf("\t\t4. 退出系统\n");
        printf("\t\t请选择功能:");
       
        int choice;
        scanf("%d",&choice);
       
        switch(choice){
            case 1:
                input(stu,num);
                break;
            case 2:
                output(stu,num);
                break;
            case 3:
                modify(stu,num);
                break;
            case 4:
                flag=0;
                break;
            default:
                printf("输入有误,请重新输入!");
                break;
        }
       
        fp=fopen(FILE_NAME,"wb");
        fwrite(&num,sizeof(int),1,fp);
        fwrite(stu,sizeof(student),num,fp);
        fclose(fp);
    }
   
    return 0;
}
void input(student *stu,int num){
    printf("\n\n\t\t学生信息录入\n");
    printf("\t\t请输入学生人数:");
   
    int n;
    scanf("%d",&n);
   
    if(num+n<=MAX_NUM){
        for(int i=num;i<num+n;i++){
            printf("\t\t请输入第%d个学生的姓名:",i+1);
            scanf("%s",stu[i].name);
            printf("\t\t请输入第%d个学生的学号:",i+1);
            scanf("%s",stu[i].id);
            printf("\t\t请输入第%d个学生的性别:",i+1);
            scanf("%s",stu[i].sex);
            for(int j=0;j<3;j++){pep小学英语三年级下册期末试卷
                printf("\t\t请输入第%d个学生的第%d门课程成绩:",i+1,j+1);
                scanf("%f",&stu[i].score[j]);
            }
        }
        num+=n;
        printf("\n\n\t\t录入成功!\n");