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

下载本文档

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

文档简介

《C语言程序设计》综合实习报告学号131842218姓名熊伟班级计1341指导教师陈学进安徽工业大学工商学院2014年6月课题一:根据条件进行学生成绩排名一、目的1.熟悉变量、数组定义、使用、输入、输出等基本操作2.进行选择、循环结构程序设计练习3.掌握冒泡法排序的算法4.掌握函数的定义、调用、声明,以及参数的两种传递方式二、实习环境个人计算机,Windows操作系统,TurboC2.0或WinTC或VisualC++等编译开发环境三、实习内容与步骤1.在函数中进行10个学生成绩从高到低排名sort(inta[10])2.改进第一步的函数为sort(inta[],intn),进行n个学生成绩从高到低排名,3.改进第二步的函数为sort(inta[],intn,charstyle),将n个学生成绩从高到低排名,排名方式根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。(a:ascending升,d:descending降)四、程序流程图、算法及运行结果1,流程图2,算法#include<stdio.h>voidsort(inta[10]){inti,j,temp;for(i=0;i<10;i++)for(j=0;j<9-i;j++){if(a[j]<a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}main(){inta[10]={59,58,74,86,98,88,73,65,95,80};inti;sort(a);for(i=0;i<10;i++){printf("%5d",a[i]);};}结果:(2):#include<stdio.h>voidsort(inta[],intn){inti,j,temp;for(i=0;i<n;i++)for(j=0;j<n-1-i;j++){if(a[j]<a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}main(){inta[1000];inti,n;printf("pleaseinputn:\n");scanf("%d",&n);for(i=0;i<n;i++){scanf("%5d",&a[i]);}sort(a,n);for(i=0;i<n;i++){printf("%5d",a[i]);}getch();}结果:(3)#include<stdio.h>voidsort(inta[],intn,charstyle){inti,j,temp;if(style=='a'){for(i=0;i<n;i++)for(j=0;j<n-1-i;j++){if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}if(style=='d'){for(i=0;i<n;i++)for(j=0;j<n-1-i;j++){if(a[j]<a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}}main(){inta[1000];inti,n;charstyle;printf("pleaseinputstyle:\n");scanf("%c",&style);printf("pleaseinputn:\n");scanf("%d",&n);for(i=0;i<n;i++){scanf("%5d",&a[i]);}sort(a,n,style);for(i=0;i<n;i++){printf("%5d",a[i]);}getch();}结果:上升:下降:五、知识点、难点及解决办法。冒泡法这种方法容易出错,要想做好此题,必须在做这类提前复习好冒泡法。六、编程小结或体会。要熟练的掌握冒泡法排序的算法,要熟练运用if语句,循环语句。要掌握函数的定义、调用、声明,以及参数的两种传递方式课题三:学生成绩单制作1.掌握结构体变量及数组的定义、赋值、初始化、输入、输出2.结构体数组的操作。二、实习环境个人计算机,Windows操作系统,TurboC2.0或WinTC或VisualC++等编译开发环境三、实习内容与步骤1.定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩2.从键盘输入10个学生的以上内容3.输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩4.输出三门课程的平均分数最高的学生的学号、姓名及其平均分5.将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:numbernamemathChineseEnglishaverage103tom909010095101alice908070806.在实习报告中画出程序流程图,说明程序设计的算法,附主要程序段及运行结果(屏幕截图)。7.在实习报告中说明知识点。8.在实习报告中说明程序设计过程中的难点、解决办法及编程小结或体会。四、程序流程图、算法及运行结果1,流程图2,#include<stdio.h>#include<string.h>#defineN,10structstudent{intnum;charname[20];intscore[3];};main(){structstudentst[10];inti,j,k,max1,n,m;floataverage[10],max2,b;charch;printf("Pleaseinputnumnameandthreescores:\n");for(i=0;i<=9;i++){scanf("%d%s",&st[i].num,&st[i].name);for(j=0;j<=2;j++)scanf("%d",&st[i].score[j]);}for(j=0;j<=2;j++){i=0;max1=st[i].score[j];for(i=0;i<=9;i++)if(max1<=st[i].score[j]){max1=st[i].score[j];k=i;}printf("%-10d%-15s%-5d\n",st[k].num,st[k].name,st[k].score[j]);}for(i=0;i<=9;i++){average[i]=0;for(j=0;j<=2;j++)average[i]=average[i]+st[i].score[j];average[i]=1.0*average[i]/3;}max2=average[0];for(i=0;i<=9;i++)if(max2<=average[i]){max2=average[i];k=i;}printf("%-10d%-15s%-5.2f\n",st[k].num,st[k].name,average[k]);for(i=0;i<=9;i++)for(j=0;j<9-i;j++)if(average[j]<average[j+1]){b=average[j];average[j]=average[j+1];average[j+1]=b;k=st[j].num;st[j].num=st[j+1].num;st[j+1].num=k;strcpy(ch,st[j].name);strcpy(st[j].name,st[j+1].name);strcpy(st[j+1].name,ch);for(n=0;n<=2;n++){m=st[j].score[n];st[j].score[n]=st[j+1].score[n];st[j+1].score[n]=m;}}printf("number\tname\tmath\tChinese\tEnlish\taverage\n");for(i=0;i<=9;i++){printf("%-10d\t%-10s\t",st[i].num,st[i].name);for(j=0;j<=2;j++)printf("%-6d\t",st[i].score[j]);

温馨提示

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

评论

0/150

提交评论