学生成绩管理系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/*学生成绩管理主要要求:

(1)能按学期、按班级完成对学生成绩的录入、修改

(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序

(3)能查询学生成绩,不及格科目及学生名单

(4)能按班级输出学生的成绩单

(5)系统以菜单方式工作

*/

/*

思路:学生成绩包括主要包括3门成绩数学,英语,C语言,以及学生本人的信息:

即姓名以及班级号,同时需要用学期来定义每学期的成绩。于是可以

定义结构体来实现上述信息。

采用模块化程序设计思想,按照题目要求,对功能模块进行划分,

设计多个函数分别实现各个功能,减少交叉使用,便于功能的实现和编程调试实现。

主要功能有:

void Print(char *File)//在屏幕上输出文件中的信息

void Insert(char *File)//实现插入某个学生相关信息的功能

void Luru(char *File)//实现对学生成绩的录入功能,并完成计算总分,和平均分的功能

void Delete(char *File)//实现删除学生相关信息的功能

void Modify(char *File) //修改学生的信息

void Search_number(char *File)//按学号查找学生成绩

void Search_Fail(char *File)//查找出不及格学生的成绩

void export_class(char * File)//按班级输出学生信息

void main()//调用其他函数,实现各个功能选择

int IsEmpty(FILE *fp)//判断文件是否为空文件

void PrintMenu()//输出修改选项菜单

void Menu() //输出主程序选择菜单

void Sort(char *File) //按成绩由小到大排序并输出

*/

#include"stdio.h"

#include"malloc.h"

#include"string.h"

#include"stdlib.h"

#include"conio.h"

#define N 20

//函数的声明

void PrintMenu();

void Print(char *File);

void Insert(char *File);

void Luru(char *File);

int IsEmpty(FILE *fp);

void Sort(char *File);

typedef struct student //定义结构体,记录学生信息

{

int term[6];

long xuehao;

int Class[3];

char name[N];

float score[3];

double average;

float sum;

}stu;//使用stu代表struct student 结构类型

void Print(char *File)//在屏幕上输出文件中的信息

{

stu temp;

FILE *fp=fopen(File,"r");

if(fp==NULL)

{

printf("打开文件%s失败!\n",File);

return;

}

fseek(fp,0,SEEK_SET); //从文件开始读取

printf(" 学号姓名高数英语C语言平均分总分:\n");

while(fread(&temp,sizeof(stu),1,fp))

printf("%10d%10s%10.2f%10.2f%10.2f%10.2lf%10.2f\n",temp.xuehao,,temp.sco re[0],temp.score[1],temp.score[2],temp.average,temp.sum);

printf("\n");

fclose(fp);

}

//实现排序功能

void Sort(char *File)

{

int i,j,k,len;

stu s[N],temp;

FILE *fp=fopen(File,"r");

if(fp==NULL)

{

printf("文件打开失败!");

return;

}

if(IsEmpty(fp))

{

printf("文件为空,不需要排名,请先录入信息!");

return;

}

fseek(fp,0,SEEK_END);

len=ftell(fp)/sizeof(stu);

fseek(fp,0,SEEK_SET);

for(i=0;i

fread(s+i,sizeof(stu),1,fp);

fclose(fp);

for(i=0;i

{

k=i;

for(j=i+1;j

if(s[j].average

k=j;

if(k!=i)

{

temp=s[i];

s[i]=s[k];

s[k]=temp;

}

}

printf("以下是按学生平均成绩排序的学生信息:\n");

printf(" 学号姓名高数英语C语言\n");

for(i=0;i

相关文档
最新文档