c语言程序设计实习报告程序_第1页
c语言程序设计实习报告程序_第2页
c语言程序设计实习报告程序_第3页
c语言程序设计实习报告程序_第4页
c语言程序设计实习报告程序_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include"stdio.h"/*定义学生结构体 */structStudent{charID[20];charName[20];floatMark1;/*计算机*/floatMark2;/*英语*/floatMark3; /*数学*/floatZongfen;/*总分*/floatAverage;};/*平均分*//*声明学生数组及学生数量 */structStudentstudents[2000];intnum=0;/*求总分*/float Zong(structStudentstu){return(stu.Mark1+stu.Mark2+stu.Mark3);}/*求平均值*/floatAvg(structStudentstu){return(stu.Mark1+stu.Mark2+stu.Mark3)/3;}/*通过学号返回数组下标 */intStudent_SearchByIndex(charid[]){inti;for(i=0;i<num;i++){if(strcmp(students[i].ID,id)==0){returni;}}return-1;}/*通过姓名返回数组下标 */intStudent_SearchByName(charname[]){inti;for(i=0;i<num;i++){if(strcmp(students[i].Name,name)==0){returni;}}return-1;}/*通过学号返回数组下标 */intStudent_SearchID(charid[]){inti;for(i=0;i<num;i++){if(strcmp(students[i].ID,id)==0){returni;}}return-1;}/*显示单条学生记录 */voidStudent_DisplaySingle(intindex){printf("%10s%10s%8s%8s%8s%8s%10s\n","学号","姓名","计算机","英语","数学","总分","平均成绩");printf("-------------------------------------------------------------\n");rintf("%10s%10s%8.0f%8.0f%8.0f%8.0f%10.2f\n",students[index].ID,students[index].Name,students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Zongfen,students[index].Average);}voidStudent_DisplaySingle1(intindex){printf("-------------------------------------------------------------\n");rintf("%10s%10s%8.0f%8.0f%8.0f%8.0f%10.2f\n",students[index].ID,students[index].Name,students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Zongfen,students[index].Average);}/*插入学生信息 */voidStudent_Insert(){while(1){printf("请输入学号:");scanf("%s",&students[num].ID);getchar();printf("请输入姓名:");scanf("%s",&students[num].Name);getchar();printf("请输入计算机成绩:");scanf("%f",&students[num].Mark1);getchar();printf("请输入英语成绩:");scanf("%f",&students[num].Mark2);getchar();printf("请输入数学成绩:");scanf("%f",&students[num].Mark3);getchar();students[num].Average=Avg(students[num]);students[num].Zongfen=Zong(students[num]);num++;printf("是否继续?(y/n)");if(getchar()=='n'){break;}}}voidexit();/*修改学生信息 */voidStudent_Modify(){floatmark1,mark2,mark3;while(1){charid[20];intindex;printf("请输入要修改的学生的学号 :");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if(index==-1){printf("学生不存在!\n");}else{printf("你要修改的学生信息为 :\n");Student_DisplaySingle(index);printf("-- 请输入新值--\n");printf("请输入学号:");scanf("%s",&students[index].ID);getchar();printf("请输入姓名:");scanf("%s",&students[index].Name);getchar();printf("请输入成绩:");scanf("%f",&students[index].Mark1);getchar();printf("请输入成绩:");scanf("%f",&students[index].Mark2);getchar();printf("请输入成绩:");scanf("%f",&students[index].Mark3);getchar();students[index].Zongfen=Zong(students[index]);students[index].Average=Avg(students[index]); }printf("是否继续?(y/n)");if(getchar()=='n'){break;}}}/*删除学生信息 */voidStudent_Delete(){inti;while(1){charid[20];intindex;printf("请输入要删除的学生的学号 :");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if(index==-1){printf("学生不存在!\n");}else{printf("你要删除的学生信息为 :\n");Student_DisplaySingle(index);printf("是否真的要删除 ?(y/n)");if(getchar()=='y'){for(i=index;i<num-1;i++){students[i]=students[i+1];}num--;}getchar();}printf("是否继续?(y/n)");if(getchar()=='n'){break;}}}/*按姓名或学号查询 */voidStudent_Select(){intsel;printf("1-------------------- 按姓名查询\n");printf("2-------------------- 按学号查询\n");scanf("%d",&sel);if(sel==2){while(1){charid[20];intindex;printf("请输入要查询的学生的学号 :");scanf("%s",&id);getchar();index=Student_SearchID(id);if(index==-1){printf("学生不存在!\n");}else{printf("你要查询的学生信息为 :\n");Student_DisplaySingle(index);}printf("是否继续?(y/n)");if(getchar()=='n'){break;}}}elseif(sel==1){while(1){charname[20];intindex;printf("请输入要查询的学生的姓名 :");scanf("%s",&name);getchar();index=Student_SearchByName(name);if(index==-1){printf("学生不存在!\n");}else{printf("你要查询的学生信息为 :\n");Student_DisplaySingle(index);}printf("是否继续?(y/n)");if(getchar()=='n'){break;}}}elseprintf("信息错误!\n");}/*排序*/voidStudent_SortByAverage(){inta,sel;printf("1--------------------printf("2--------------------printf("3--------------------printf("4--------------------printf("5--------------------printf("6--------------------printf("7--------------------

按学号排序\n");按姓名排序\n");按计算机排序\n");按英语排序\n");按数学排序\n");按总分排序\n");按平均分排序\n");scanf("%d",&sel);if(sel==1){inti,j;structStudenttmp;for(i=0;i<num;i++){for(j=1;j<num-i;j++){if(strcmp(students[j-1].ID,students[j].ID)>0){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}elseif(sel==2){inti,j;structStudenttmp;for(i=0;i<num;i++){for(j=1;j<num-i;j++){if(strcmp(students[j-1].Name,students[j].Name)>0){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}elseif(sel==3){inti,j;structStudenttmp;for(i=0;i<num;i++){for(j=1;j<num-i;j++){if(students[j-1].Mark1>students[j].Mark1){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}elseif(sel==4){inti,j;structStudenttmp;for(i=0;i<num;i++){for(j=1;j<num-i;j++){if(students[j-1].Mark2>students[j].Mark2){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}elseif(sel==5){inti,j;structStudenttmp;for(i=0;i<num;i++){for(j=1;j<num-i;j++){if(students[j-1].Mark3>students[j].Mark3){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}elseif(sel==6){inti,j;structStudenttmp;for(i=0;i<num;i++){for(j=1;j<num-i;j++){if(students[j-1].Zongfen>students[j].Zongfen){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}elseif(sel==7){inti,j;structStudenttmp;for(i=0;i<num;i++){for(j=1;j<num-i;j++){if(students[j-1].Average>students[j].Average){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}elseprintf("信息错误!\n");}/*显示学生信息 */voidStudent_Display(){inti;printf("%10s%10s%8s%8s%8s%8s%10s\n","学号","姓名","计算机","英语","数学","总分","平均成绩"); printf("-------------------------------------------------------------\n");for(i=0;i<num;i++){rintf("%10s%10s%8.0f%8.0f%8.0f%8.0f%10.2f\n",students[i].ID,students[i].Name,students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Zongfen,students[i].Average);}}/*将学生信息从文件读出 */voidIO_ReadInfo(){FILE*fp;inti;if((fp=fopen("Database.txt","rb"))==NULL){printf("不能打开文件!\n");return;}if(fread(&num,sizeof(int),1,fp)!=1){num=-1;}else{for(i=0;i<num;i++){fread(&students[i],sizeof(struct Student),1,fp);}}fclose(fp);}/*将学生信息写入文件 */voidIO_WriteInfo(){FILE*fp;inti;if((fp=fopen("Database.txt","wb"))==NULL){printf("不能打开文件!\n");return;}if(fwrite(&num,sizeof(int),1,fp)!=1){printf("写入文件错误!\n");}for(i=0;i<num;i++){if(fwrite(&students[i],sizeof(struct Student),1,fp)!=1){printf("写入文件错误!\n");}}fclose(fp);}/*统计不同分数段的学生 */voidStudent_TJ(){while(1){inta,sel;floatm,n;printf("1--------------------

按计算机统计不同分数段的学生

\n");printf("2--------------------

按英语统计不同分数段的学生

\n");printf("3--------------------

按数学统计不同分数段的学生

\n");printf("4--------------------

按总分统计不同分数段的学生

\n");printf("5--------------------

按平均分统计不同分数段的学生

\n");scanf("%d",&sel);printf("输入所需查询的分数段 [m,n]");scanf("%f%f",&m,&n);printf("%10s%10s%8s%8s%8s%8s%10s\n","学号","姓名","计算机","英语","数学","总分","平均成绩");if(sel==1){intj;for(j=0;j<=num;j++){if(students[j].Mark1>=m&&students[j].Mark1<=n)Student_DisplaySingle1(j);}}elseif(sel==2){intj;for(j=0;j<=num;j++){if(students[j].Mark2>=m&&students[j].Mark2<=n)Student_DisplaySingle1(j);}}elseif(sel==3){intj;for(j=0;j<=num;j++){if(students[j].Mark3>=m&&students[j].Mark3<=n)Student_DisplaySingle1(j);}}elseif(sel==4){intj;for(j=0;j<=num;j++){if(students[j].Zongfen>=m&&students[j].Zongfen<=n)Student_DisplaySingle1(j);}}elseif(sel==5){intj;for(j=0;j<=num;j++){if(students[j].Average>=m&&students[j].Average<=n)Student_DisplaySingle1(j);}}elseprintf("信息错误!\n");printf("是否继续?(y/n)");a=getchar();if(ge

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论