




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include#include#include#define N 8struct Studentchar num10;/学号 char name8;/姓名 char major10;/专业(computer,software,network) int classNo;/班级(1-2) int score3;/3门课的成绩(高数,离散,c语言);typedef struct Student STU;/-函数声明-void input(STU *p);void save(STU *p,int n);void output(STU *p);void load(STU *p,int n);void
2、fetch();void Max();void sort_select();void sort_buble();void search();/-主函数开始-void main()int j,id; STU studentN,temN;/用于保存输入的N名学生信息 while(1)printf(ttt学生信息管理系统tttnn); printf(1-输入信息n); printf(2-文件存盘n); printf(3-打开文件输出n); printf(4-随机读取n); printf(5-单科成绩最高分的学生n); printf(6-选择法对所有学生平均成绩由低到高排序n); printf(7-起
3、泡法对班级学生平均成绩由高到低排序n); printf(8-综合查找班级分数总分n); printf(其他-退出n); scanf(%d,&id); getchar(); switch(id)case 1:for(j=0;jN;j+)printf(%dn,j+1); input(student+j); /输入信息 break; case 2: save(student,N); /文件存盘 break; case 3:load(tem,N); printf(学号 姓名 专业 班级 高数 离散 c语言 平均分 总分n); for(j=0;jN;j+)output(tem+j); break; /读
4、取文件 case 4:fetch(); /随机读取 break; case 5:Max(); /单科成绩最高分的学生 break; case 6:sort_select(); /选择法对所有学生平均成绩由低到高排序 break; case 7:sort_buble(); /起泡法对班级学生平均成绩由高到低排序 break;case 8:search(); /综合查找班级分数总分 break;default:break; /其他键退出if(id8) break;/-输入函数-void input(STU *p)int i;printf(n请输入学号,回车结束:);scanf(%s,&p-num)
5、;getchar();printf(n请输入姓名,回车结束:);gets(p-name);printf(n请输入专业,回车结束:);gets(p-major);printf(n请输入班级,回车结束:);scanf(%d,&p-classNo);printf(n请输入三科成绩,每门成绩以回车结束:n);for(i=0;iscorei);getchar();/-写文件函数-void save(STU *p,int n)FILE *fp;int i;char filename20;printf(n请输入保存的文件名:n);gets(filename);if(fp=fopen(filename,wb)
6、=NULL) /创建二进制文件printf(cannot open filen);return;for(i=0;inum,p-name,p-major,p-classNo,p-score0,p-score1,p-score2,(*p).score0+(*p).score1+(*p).score2)/3.0, (*p).score0+(*p).score1+(*p).score2);/-读文件函数-void load(STU *p,int n)FILE *fp;char filename20;printf(n请输入打开文件名:n);gets(filename);fp=fopen(filename
7、,rb); /打开二进制文件fread(p,sizeof(STU),n,fp); /从文件中一次读n个结构体量值fclose(fp);/-随机读取-void fetch()FILE *fp;STU tem;char filename20;int i; printf(n请输入打开文件名:n);gets(filename);fp=fopen(filename,rb); /打开二进制文件 printf(请输入要查找的学生的编号: );scanf(%d,&i);fseek(fp,i*sizeof(STU),0);fread(&tem,sizeof(STU),1,fp); /从文件中一次读1个结构体量值
8、printf(学号 姓名 专业 班级 高数 离散 c语言 平均分 总分n);output(&tem);fclose(fp);/-单科成绩最高分的学生-void Max()int i,j;FILE *fp;STU temN,*max;char filename20;printf(n请输入打开文件名:n);gets(filename);if(fp=fopen(filename,rb)=NULL)printf(cannot open file!n);for(i=0;iN;i+)fread(&temi,sizeof(STU),1,fp);printf(请输入要查找的课程编号: );scanf(%d,&
9、j); switch(j)case 0: /输出课程printf(n高数n);break;case 1:printf(n离散n);break;case 2:printf(nc语言n); break;default:break; max=&tem0;for(i=0;iscorejscorej,max-name);fclose(fp);/-选择法对所有学生平均成绩由低到高排序-void sort_select()int i,j;FILE *fp;STU temN,m;char filename20;printf(n请输入打开文件名:n);gets(filename); fp=fopen(filen
10、ame,rb);for(i=0;iN;i+)fread(&temi,sizeof(STU),1,fp);for(i=0;iN-1;i+) /选择法开始 for(j=i+1;j(temj.score0+temj.score1+temj.score2)m=temi; temi=temj; temj=m; /较小数放在前面 /选择法结束printf(n所有学生按平均成绩由低到高进行排序,其顺序为:nn);printf(学号 姓名 专业 班级 高数 离散 c语言 平均分 总分n);for(i=0;iN;i+)output(&temi);fclose(fp);/-起泡法对班级学生平均成绩由高到低排序-v
11、oid sort_buble()FILE *fp;STU stu_class_aveN,m,temN;int count=0;int i,j,n;char filename20;printf(n请输入打开文件名:n);gets(filename);if(fp=fopen(filename,rb)=NULL)printf(cannot open file!n);printf(请输入要查询的班级(1or2): n);scanf(%d,&n); for(i=0;iN;i+)fread(&temi,sizeof(STU),1,fp);for(i=0;iN;i+)if(temi.classNo=n)st
12、u_class_avecount=temi;count+; /实际元素数for(i=0;icount-1;i+) /起泡法开始for(j=0;jcount-1-i;j+)if(stu_class_avej.score0+stu_class_avej.score1+stu_class_avej.score2)(stu_class_avej+1.score0+stu_class_avej+1.score1+stu_class_avej+1.score2)m=stu_class_avej+1;stu_class_avej+1=stu_class_avej;stu_class_avej=m; /较大数
13、放在前面 /起泡法结束 printf(n班级学生按平均成绩由高到低进行排序,其顺序为:nn);printf(学号 姓名 专业 班级 高数 离散 c语言 平均分 总分n); for(i=0;icount;i+)output(&stu_class_avei);fclose(fp);/-综合查找班级分数总分-void search()FILE *fp;int i,j;int count=0;int sumN;intk; /定义要查询的总分STU temN; char filename20;printf(n请输入打开文件名:n);gets(filename); fp=fopen(filename,rb);for(i=0;iN;i+)fread(&temi,sizeof(STU),1,fp); for(i=0;iN;i+)sumi=temi.score0+temi.score1+temi.score2;printf(n请输入要查找的班级,总分下限:nn);scanf(%d %d,&j,&k); for(i=0;i=k)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年移动存储设备产业市场发展分析及前景趋势与投资管理研究报告
- 2025-2030年皮革帽市场前景分析及投资策略与风险管理研究报告
- 深化公共关系学理解的试题及答案
- 2025-2030年水族馆行业发展分析及投资战略研究报告
- 2025-2030年民用航空行业市场发展现状及竞争格局与投资价值研究报告
- 2025年经济法中的法理试题及答案
- 2025-2030年晶体管市场发展现状分析及行业投资战略研究报告
- 2025-2030年无纺布产业行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年新风系统行业市场发展分析与发展趋势预测研究报告
- 2025-2030年工程运输车市场前景分析及投资策略与风险管理研究报告
- 完整,沪教版小学四年级英语上册单词表
- 初中常见化合价、化学式及化学方程式
- GB/T 20933-2021热轧钢板桩
- GB/T 18601-2009天然花岗石建筑板材
- 1-059-职业技能鉴定指导书-继电保护(第二版)11-059职业技能鉴定指导书职业标准试题库
- 【宁波年报】2022年宁波房地产市场年报
- 《野蜂飞舞》阅读测试题及答案
- 2023年海南省财金集团有限公司招聘笔试题库及答案解析
- 2017各科普通高中课程标准(电子版)
- HDI盲孔的可靠性设计分析
- 2022年四川绵竹高发投资有限公司招聘笔试题库及答案解析
评论
0/150
提交评论