学生成绩管理系统完整版-C程序设计源代码-不用链表-有添加-删除-查找-修改等功能

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

/*4. 定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩,编写一程序。应用简单菜单和子函数调用方式实现下面的功能:

(1)从键盘输入10个学生的以上内容,存入文件stud.txt

(2)浏览显示成绩表(要求显示格式成绩时,格式较规范)

(3)将10个学生按照平均分数从高到低进行排序,结果存入文件stud1.txt (4)输入任意的一个课程名,分数从高到低进行排序,结果存入文件stud2.txt (5)向文件stud1.txt中插入一个记录,成绩排序不变,结果存入文件stud1.txt */

#include "stdio.h" /*头文件名*/

#include "stdlib.h" /*头文件名,因为程序中用到了exit(结束程序)和函数*/ #include "string.h" /*头文件名,因为程序中用到了字符串函数*/

#define N 1000

/******************************************************************** *****************************/

/*****************************************定义结构体模块******************************************/

struct student {

long num; /*定义学生学号为长整型*/

char name[20]; /*定义姓名为字符型,占12个字符*/

float math,English,physics,total,average;

float TOT_math,TOT_English,TOT_physics,TOT_total,TOT_aver;

float aver_math,aver_English,aver_physics,aver_total,aver_average;

}student; /*定义结构体名称为student*/

/******************************************************************** *****************************/

/****************************************输入初始值模块*******************************************/

void input(struct student *p,int size){

int i;

for(i=0;i

printf("请输入学号:");

while(1){scanf("%ld",&p[i].num);

if(long(p[i].num)!=p[i].num||long(p[i].num)<=0){ /*输入判断*/

printf("输入错误,学号必须为整数,请重新输入: ");

fflush(stdin);}

else{break;}}

printf("请输入姓名:");scanf("%s",p[i].name);

printf("请输入数学成绩:");

while(1){scanf("%f",&p[i].math);

if(float(p[i].math)!=p[i].math||float(p[i].math)<=0||p[i].math>100||p[i].math <0){

printf("输入错误,数学成绩必须为0~100之间的数,请重新输入: ");

fflush(stdin);}

else{break;}}

printf("请输入英语成绩:");

while(1){scanf("%f",&p[i].English);

if(float(p[i].English)!=p[i].English||float(p[i].English)<=0||p[i].English>100||p[i ].English<0){

printf("输入错误,英语成绩必须为0~100之间的数,请重新输入: ");

fflush(stdin); }

else{break;}}

printf("请输入物理成绩:");

while(1){scanf("%f",&p[i].physics);

if(float(p[i].physics)!=p[i].physics||float(p[i].physics)<=0||p[i].physics>100||p[ i].physics<0){

printf("输入错误,英语成绩必须为0~100之间的数,请重新输入: ");

fflush(stdin);}

else{break;}}

printf("\n");

}

printf("信息录入成功!\n\n");

}

/******************************************************************** ****************************************/

/*************************************保存初始值到"初始二进制值.txt"模块*************************************/

void save(struct student *p,int size){ /*保存模块*/ FILE *fp;int i;

if((fp=fopen("初始值二进制值.txt","wb+"))==NULL){ /*建立文件*/

printf("cannot open the file\n");

}

for(i=0;i

fwrite(&p[i],sizeof(student),1,fp);} /*快写函数,写到磁盘中为二进制数*/ fclose(fp); /*关闭文件*/

}

相关文档
最新文档