学生成绩管理系统完整版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" /* 头文件名*/

*/

#inelude "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("请输入数学成绩 :");

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

************************************

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].Eng lish>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].phy sics>100||p[ i].physics<0){

printf("输入错误 ,英语成绩必须为 0~100 之间的数 ,请重新输入 : "); fflush(stdin);} else{break;}} printf("\n");

}

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

}

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

}

*/ 块

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

************************************

******************************************************************

void save0(struct student *p,int size){ /* 保存模块 */

FILE *fp;int i;

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

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

}

for(i=0;i

保存初始值到可浏览文件模块

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

FILE *fp;

int i,b=0; char name[20];

printf("请输入保存初始值的可浏览文件名 : "); scanf("%s",name); if((fp=fopen(name,"w+"))==NULL){ printf("文件名输入错误 !!\n");

}

fprintf(fp,"\n\t\t -------------------------------- \n"); fprintf(fp,"\t\t 序号 学号 姓名 数学 英语 物理 \n"); fprintf(fp,"\t\t --------------------------------- "); fprintf(fp,"\n"); for(i=0;i

fprintf(fp,"\t\t %-6d%-12d%-12s%-8.2f%-8.2f%-8.2f\n",b,p[i].num,p[i].n ame,p[ i].math,p[i].English,p[i].physics);

fprintf(fp,"\t\t -------------------------------- \n"); }

fclose(fp);

printf("\n 文件保存成功

!\n\n");

*/ 块

相关文档
最新文档