学生成绩管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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