博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【实验报告】输入学生信息,创立文件,实现排序,插入
阅读量:5335 次
发布时间:2019-06-15

本文共 3800 字,大约阅读时间需要 12 分钟。

#include
#include
struct student{ char name[10]; int num; float score_1; float score_2; float score_3; float aver;}stu[6],temp; void save(){FILE*fp;int i;if((fp=fopen ("stu.dat","wb"))==NULL) { printf("cannot open file1\n"); return;}for(i=0;i<5;i++)if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("file write error\n");fclose(fp);}void save_1(){FILE*fp;int i;if((fp=fopen ("stu_sort.dat","wb"))==NULL) { printf("cannot open file4\n"); return;}for(i=0;i<5;i++)if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("file write error\n");fclose(fp);} void save_2(){FILE*fp;int i;if((fp=fopen ("aver.dat","wb"))==NULL) { printf("cannot open file7\n"); return;}for(i=0;i<5;i++)if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("file write error\n");fclose(fp);}void print(){
int i;FILE*fp;if((fp=fopen("stu.dat","rb"))==NULL){ printf("cannot open file2\n"); exit(0);}for(i=0;i<5;i++){ fread(&stu[i],sizeof(struct student),1,fp); printf("%s\t%d\t%.2lf\t%.2lf\t%.2lf\t%.2lf\n",stu[i].name,stu[i].num,stu[i].score_1,stu[i].score_2,stu[i].score_3,stu[i].aver);}fclose(fp);} void print_1(){
int i;FILE*fp;if((fp=fopen("stu_sort.dat","rb"))==NULL){ printf("cannot open file5\n"); exit(0);}printf("the aver is\n");for(i=0;i<5;i++){ fread(&stu[i],sizeof(struct student),1,fp); printf("%s\t%d\t%.2lf\t%.2lf\t%.2lf\t%.2lf\n",stu[i].name,stu[i].num,stu[i].score_1,stu[i].score_2,stu[i].score_3,stu[i].aver);}fclose(fp);} void print_2(){
int i;FILE*fp;if((fp=fopen("aver.dat","rb"))==NULL){ printf("cannot open file8\n"); exit(0);}for(i=0;i<5;i++){ fread(&stu[i],sizeof(struct student),1,fp); printf("%s\t%d\t%.2lf\t%.2lf\t%.2lf\t%.2lf\n",stu[i].name,stu[i].num,stu[i].score_1,stu[i].score_2,stu[i].score_3,stu[i].aver);}fclose(fp);} void aver(){
int i,j,k,l,m;FILE*fp;if((fp=fopen("stu.dat","rb"))==NULL){ printf("cannot open file3\n"); exit(0);}for(i=0;i<5;i++)fread(&stu[i],sizeof(struct student),1,fp);fclose(fp);for(j=0;j<4;j++){ k=j; for(l=j+1;l<5;l++) if(stu[k].aver>stu[l].aver)k=l; if(k!=j) { temp=stu[j]; stu[j]=stu[k]; stu[k]=temp; }}} void insert(){int i,j,k,l;FILE*fp;if((fp=fopen("stu_sort.dat","rb"))==NULL){ printf("cannot open file6\n"); exit(0);}for(i=0;i<5;i++)fread(&stu[i],sizeof(struct student),1,fp);fclose(fp);printf("please insert data of students num,score_1,score_2,score_3,name\n");scanf("%d,%f,%f,%f,%s",&stu[5].num,&stu[5].score_1,&stu[5].score_2,&stu[5].score_3,stu[5].name);stu[5].aver=(stu[5].score_1+stu[5].score_2+stu[5].score_3)/3;for(j=0;j<4;j++){ k=j; for(l=j+1;l<6;l++) if(stu[k].aver>stu[l].aver)k=l; if(k!=j) { temp=stu[j]; stu[j]=stu[k]; stu[k]=temp; }}}void main(){ int i; printf("please enter data of students num,score_1,score_2,score_3,name\n"); for(i=0;i<5;i++) { scanf("%d,%f,%f,%f,%s",&stu[i].num,&stu[i].score_1,&stu[i].score_2,&stu[i].score_3,stu[i].name); stu[i].aver=(stu[i].score_1+stu[i].score_2+stu[i].score_3)/3; } save(); print(); aver(); save_1(); print_1(); insert(); save_2(); print_2();}

 

转载于:https://www.cnblogs.com/guangluwutu/p/4221688.html

你可能感兴趣的文章
NYOJ458 - 小光棍数
查看>>
java中常用方法
查看>>
【Programming Clip】06、07年清华计算机考研上机试题解答(个别测试用例无法通过)...
查看>>
canvas动画
查看>>
4,7周围玩家
查看>>
关于webpack升级过后不能打包的问题;
查看>>
vue - 生命周期
查看>>
Python正则表达式
查看>>
Linux进程间通信--命名管道
查看>>
UVa 10970 - Big Chocolate
查看>>
js输出
查看>>
H5多文本换行
查看>>
HAL层三类函数及其作用
查看>>
Odoo 去掉 恼人的 "上午"和"下午"
查看>>
web@h,c小总结
查看>>
java编程思想笔记(一)——面向对象导论
查看>>
Data Structure 基本概念
查看>>
Ubuntu改坏sudoers后无法使用sudo的解决办法
查看>>
NEYC 2017 游记
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>