学生成绩管理系统完整版C程序设计源代码不用链表有添加删除查找修改等功能
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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"); */ 块