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

下载本文档

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

文档简介

1、C 语言程序设计综合实习报告课题一:用指针优化学生成绩排名一、目的1. 熟悉变量的指针和指向变量的的指针变量的概念和使用2. 熟悉数组的指针和指向数组的的指针变量的概念和使用3. 掌握冒泡法或选择法排序的算法4. 掌握函数的定义、调用、声明,以及参数的两种传递方式二、实习环境个人计算机,Wi n dows操作系统,Turbo C 2. 0或 W i nTC或 Visua 1 C+等编译开发环境三、实习内容与步骤1. 定义一个数组 stu 1 0存放 10 个学生的成绩,从键盘输入数据,要求用指针实现2. 将数组 st u 10的内容输出到屏幕上,要求用指针实现3. 将成绩数组按照从高到低进行排

2、序,要求用指针实现4. 将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单5 .采用指针方法,输入字符串“stu d ent score ”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)6. 在实习报告中画出程序流程图, 说明程序设讣的算法,附主要程序段运行结果(屏幕截图)。7.在实习报告中说明知识点。8.在实习报告中说明程序设计过程中的难点、解决办法及编程小结或体会。四、程序流程图、算法及运行结果1.程序流程图:开始C 语言程序设计综合实习报告结朿2. 算法:先定义一个函数接收 10 个学生的成绩,利用指针将数据保存在数组中,再定义第二个函数输出

3、所以学生的成绩,同样也是使用指针,最后定义一个函数用选择排序法对成绩进行山大到小的排序,将指针指向的是数组中的第一个地址,在主函数中依次调用这两个函数;定义一个字符指针指向字符串,利用库函数中的 s tr c p y 将 st u de n tscore复制给字符指针,输出字符审3. 程序:#i n elude stdi o . h#incl u destri n g . h stru ct s t u den tint g r a d e;int num;stu 1 01;v oid inpu t (str u c t s tuden t *p) inti;of or(i=0;in u m,

4、 & p -g r ade) ;void p r into u t (struct s t ud e n t *p) int i;for (i=0;i g r a de);void a rrow (in t *p 1 , in t *p2, int *px, int * p y) int t, m;t =*px;*p x = *py; *p y =t;m=*pl;*pl=*p2;*p2=m;void pl a ce (struct s t ude n t s t u ) int i, j;for(i=l;il0 ;i+ )。for(j二 0; j10-i; j+)i f (st u j

5、 . grad e s t u j+ 1 . gra d e)a r r ow (& s tu j n u m, &stuj+ 1 num, &s t uj grade, &stuj+ 1 g rade);i n t ma i n(voi d ) st r uct s t ud e nt s t u 10,水 pt r ;di n t i ;c har string 1 0 0, * s ;ds=str i n g ;ptr=stu;input(p t r);0p rintout(ptr);p 1 a ce(stu);oprintf(排序后的成绩单为:n );o

6、for(i=0 ; i 1 0: i卄)o p r i n t f (第 %- 2 d 名 -2 d %-5d n ”, i + 1, stu i . n u m, stui g r ad e );print f (n);C 语言程序设计综合实习报告s trcpy(s, student sc o r e ); p r int f (%sn , st r ing);4.运行结果:score11_Li五、知识点、难点及解决办法。主要考察的是利用指针作为函数参数以及指针数组的知识点,如何使指针指向数组并能将值返回给主函数是一个难点首先定义一个整型指针指向数组 s tu的首地址,在自定义函数中运用循环

7、结构实现指针的移动并分别存储各个学生的成绩返回给主函数六、编程小结或体会。编程时除了注意指针与函数如何调用外,还要注意细节问题,比如自定义变量类型的统一,循环结构的循环次数等等,要谨慎对待课题二:学生成绩单制作一、目的1. 掌握结构体变量及数组的定义、赋值、初始化、输入、输出2. 结构体数组的操作。二、实习环境个人计算机,W i n dows 操作系统,Tu r bo C 2. 0 或 W i nTC 或 Visual C+等编译开发环境三、实习内容与步骤主w8756567232学成咸咸成成成咸成成翳98y,.rvsml%Lr*ci-lHumryuHIE-.0444444444匕4444444

8、44匕444.44甥14二-u -a-4-4二-u-a-v-4二-gr a dem;num=0;fo r (q=0; q g r a de m a )0 a= (p+q)-gra d em;num =q;return num;int h a nshu_ave r age (struct student *p) int im in d e x ;0f 1 oa t a;of o r (m=0;maverage:=0;f o r ( i =0;i a ver a ge=p- a ve r ag e + p -g r a dei;C 语言程序设计综合实习报告p a v erage=p-avera g

9、 e * 1. 0/3;a=p average;for (m=O; maverag e a)0 a=p average:inde x =m;elsea in de x =0;return in d e x;void hansh u_plac e ( s true t student s t u) i n t i , j ;s t ruct stu d en t t;for ( i 二 0; i N; i + + )f or(j=i; jst u i aver a ge)6 t 二 s t u j+1; stuj+l二 s t u i ; st u i =t;void main()s t r u

10、 ct stude n t s t u10, *pt r ;6int i, j, ind e x, m, num ;float avera g e;ptr = st u ;for (i = 0; iN ; i+) pri n t f (请输入第%(1个学生的学号、姓名及三科成绩:n “,i+ 1 );sea nf (%ld%s, &stu i numb e r , s tui.n a me);0 f or( j =0; j3; j+)a sea n f&stui. grad e jj) ;print f (n);旺 o r (m=0;m3; m+)C 语言程序设计综合实习报告叫

11、 nu m=hanshu_be s t (ptr, m);printf C 学号Id 姓名:%10s 最高分 - 8 . 2fn, st u num. n um b e r , stu num, n a me, stu num . grad em) ;i n dex=h a n shu_averag e ( p tr);P r i ntfCn 三门课平均分最高的学生信息是: n );p r intf (” 学号Id 姓名:%-1 Os 平均分% - 8.2 f n , s t u index numb e r , stuEinde x name, s t u i ndex aver a ge)

12、;pr i ntf Cn 1 0 个学生由高分到低分排名为:n);p r intf (n umbern ameMat hChineseEng lish ave rage n,z);ha n s h u_ p 1 a c e ( p tr );of o r( i =0: iN; i +) printf (z,%-10 1 d%-10s%zz, stui. number, stu i . n a me);o f or ( j =0; j 3;j+)r in t f (%T0. 2 f, s tui. gr a de j );printf (n%-10. 2 fn,z, s tu i a verag

13、e) ; 4 运行结果:五、知识点、难点及解决办法。吕、号学sss0C 语言程序设计综合实习报告主要考察的是结构体指针的运用,比较难的地方也就是如何将指针指向结构体并返回我们所要的数值先定义一个结构体数组, 再定义一个结构体指针, 令指针指向数组的首地址,在自定义函数中通过指针的运算实现数组的运算,并返回相应的值六、编程小结或体会。在输出我们所需要的数据时候可以通过一些小技巧使程序看起来更好看。掌握结构体指针的技巧可以解决很多问题, 使自己的程序具有解决多个复杂问题的能力,以后多练习此类的程序设计问题,使自己更加熟练课题三:学生成绩文件管理一、目的1. 掌握文件指针的概念和运用2. 掌握文件的

14、相关操作:打开、读、写、关闭3. 掌握文件的定位操作二、实习环境个人计算机,Wind o ws 操作系统,Tur b o C 2.0 或 WinTC 或 Visua 1 C+ 等编译开发环境三、实习内容与步骤1.定义一个结构体数组,存放 10 个学生的学号,姓名,三门课的成绩2 从键盘输入 10个学生的以上内容,存入文件 stud, txt,关闭文件3打开 stud, txt 文件,将数据读出,查看是否正确写入,关闭文件。4. 打开文件 s t ud. txt文件,读出数据,将 10 个学生按照平均分数从高到低进行排序,分别将结果输出到屏幕上和另一文件 stud s or t txt中。5.

15、在实习报告中画出程序流程图, 说明程序设讣的算法, 附主要程序段及运行结果(屏幕截图)。6 在实习报告中说明知识点。7在实习报告中说明程序设计过程中的难点、解决办法及编程小结或体会。四、程序流程图、算法及运行结果1 程序流程图:C 语言程序设计综合实习报告开始键入每个学生的信息2 算法:首先创建一个可读可写的新文件 s tud. tx t ,键入十个学生的信息并储 存在文件中,关闭程序;打开文件 stud, t xt,读出文件中的信息并输出,检 查有无错漏,并按照平均分通过选择排序法对学生山高到低排序,关闭程序; 将排好序的信息输出并存储在新的可写文件 Stud sort, tx t 中3.程

16、序:#i n cl u de s t d io. h#includest d 1 ib. h#defi n e N 1 0str u c t stu dentI ong num;char name2 0;i n t g r ad e 3j;stu10;int ma i n ( v o i d) FILE *fp, *fp p ;st ru c t s tudent stu10, t:1 oa t aver age100;int i= 0 , j :i f ( (fp= f open (stud t x w+) = = NULL )将排序后的信息存入另一文件按平均分髙低排序工将文件中的信息读出将

17、学生信息存入文件中C 语言程序设计综合实习报告 print f(该文件打开失败!);a ex i t (0);for( i 二 0;iN; i +) pr i ntfC 第%- 2d 个学生的学号、姓名及三门课成绩: n, i+1);6s ca nF ( %ld%s/,& s t u i. num, stui . name);ofprin tf(fp, ”第-2d 个学生的学号、姓名及三门课成绩:n, i +1);o f p r in t f (fp, %ld %-5s , stu i . num, st u i. name); for(j=0; j 3;j+)o s c a nf (

18、%d , &st u i . g r a de j);6f pr i ntf (f p , %d ”,s t u i . grad e j) ; 6fpr i n tf(fp, ”n“);i f (fclos e (fp)o printf(“该文件无法正常关闭! );o exi t (0) ;i f ( (fp 二 f open(s t u d . tx t , r+ ) ) =NULL)。 printf( ”该文件打开失败!);0exit(0);oprintf( ” n ”);or(i=0;iN;i+)。 printf (“第%d 个学生的学号、 姓名及三门课成绩:n”, i+ l)

19、; fscanf (f p, %ld%s : & s t u i. n um, s tu i . name);printf(%ld %5s, s t u i . num, stui. name);旺 or(j = 0;j3; j+)f s canf ( f p, d , & s t ui . gr a d e j );prin t f(%d”,stui. gr a d e j ) ;pr intf(n);i f (fclose(fp) pr i ntf (z,该文件无法正常关闭!n );C 语言程序设计综合实习报告6exit ( 0); i f ( (fp 二 fopen (s

20、tud, txt, r+)二二 NULL) printfC 该文件打开失败! “);o e x it (0):吐。r (i=0 ; iN;i+) f s c a nf (fp, % 1 d%s, &s t u i. n u m, stu i . n ame);a f o r (j 二 0; j 3 ; j +)6fsc a n f(fp, %d, & s t u i. gradej ) ;for(i = 0;iN;i+)0 fo r (j =0; j 3;j+)a a ver a ge i=averagei +st u i .g r ad e j;o a verageLi =a

21、ver a ge i *1. 0 0 / 3 ;f or(i=0;iavera g e i)6 t = stuj+l; stu j+1 =st u i ; stui=t;6if ( f c 1 o s e (fp)o printff该文件无法正常关闭!n” );a exi t ( 0 ) ;if ( ( f p p =f o p e n( s tud s or t . t xt, w+ ) ) = NULL)X prin tf (该文件打开失败!);exit (0) :P rint f (n 由高到低排序为:n);for(i = 0;iN;i+) pr i n tf ( %ld %- 5 s,

22、 stui .num, stu i . name);fpri nt f (f pp, %ld%-5s,s t u i. num, stu i . n a me);for(j二 0;jnum=number)pri n tfC% 1 5s n,z, p-name);p=p-nex t ; whi 1 e (p! =NULL);C 语言程序设计综合实习报告void c d el e te (stru c t studen t * q ) st r uct studen t *pl, *p2;1 on g c o u nt;printf( ”请输入你要删除的学生学号:”);scanf (,z%ldH,

23、 & count);pl=Q;wh i le ( c ount !=pl- n u m& &p 1 n e xt! =NU L L) p2=pl; p 1 =pl-n e xt; ;i f (count=pl-num) if (pl=q)o q=pl next;Q elseQp2-next = p 1 -n ext;Q print f (de 1 et e : %ldnn, pl-num) ;int m a in (void) st r uct stud e n t *hea d , *tail, *p, *p 1 , *p2, *q;i n t n=0, i ;01 ong num b e r, NUM ;printf (请输入%(1 个学生的信息:n, X);p=t a i 1= (st r u ct st u den t *) mallo c (le n );h e a d = N UL L ;s c a nf (,z% 1 d%sz,, & p - n um, p- n ame);wh i le (p-n u m! = 0 ) n

温馨提示

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

评论

0/150

提交评论