《C语言程序设计》综合实习报告Word格式.docx

上传人:b****2 文档编号:15173705 上传时间:2022-10-28 格式:DOCX 页数:16 大小:98.76KB
下载 相关 举报
《C语言程序设计》综合实习报告Word格式.docx_第1页
第1页 / 共16页
《C语言程序设计》综合实习报告Word格式.docx_第2页
第2页 / 共16页
《C语言程序设计》综合实习报告Word格式.docx_第3页
第3页 / 共16页
《C语言程序设计》综合实习报告Word格式.docx_第4页
第4页 / 共16页
《C语言程序设计》综合实习报告Word格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

《C语言程序设计》综合实习报告Word格式.docx

《《C语言程序设计》综合实习报告Word格式.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》综合实习报告Word格式.docx(16页珍藏版)》请在冰豆网上搜索。

《C语言程序设计》综合实习报告Word格式.docx

先定义一个函数接收10个学生的成绩,利用指针将数据保存在数组中,再定义第二个函数输出所以学生的成绩,同样也是使用指针,最后定义一个函数用选择排序法对成绩进行由大到小的排序,将指针指向的是数组中的第一个地址,在主函数中依次调用这两个函数;

定义一个字符指针指向字符串,利用库函数中的strcpy将studentscore复制给字符指针,输出字符串

3.程序:

#include"

stdio.h"

string.h"

structstudent

{

intgrade;

intnum;

}stu[10];

voidinput(structstudent*p)

{inti;

for(i=0;

i<

10;

i++,p++)

{printf("

请输入第%-2d个学生的成绩:

"

i+1);

scanf("

%d%d"

&

p->

num,&

grade);

}

}

voidprintout(structstudent*p)

printf("

第%-2d个学生的成绩为:

%d\n"

i+1,p->

voidarrow(int*p1,int*p2,int*px,int*py)

{intt,m;

t=*px;

*px=*py;

*py=t;

m=*p1;

*p1=*p2;

*p2=m;

}

voidplace(structstudentstu[])

{inti,j;

for(i=1;

i++)

for(j=0;

j<

10-i;

j++)

if(stu[j].grade<

stu[j+1].grade)

arrow(&

stu[j].num,&

stu[j+1].num,&

stu[j].grade,&

stu[j+1].grade);

intmain(void)

{structstudentstu[10],*ptr;

inti;

charstring[100],*s;

s=string;

ptr=stu;

input(ptr);

printout(ptr);

place(stu);

printf("

排序后的成绩单为:

\n"

);

i++)

第%-2d名%-2d%-5d\n"

i+1,stu[i].num,stu[i].grade);

strcpy(s,"

studentscore"

%s\n"

string);

4.运行结果:

五、知识点、难点及解决办法。

主要考察的是利用指针作为函数参数以及指针数组的知识点,如何使指针指向数组并能将值返回给主函数是一个难点

首先定义一个整型指针指向数组stu[]的首地址,在自定义函数中运用循环结构实现指针的移动并分别存储各个学生的成绩返回给主函数

六、编程小结或体会。

编程时除了注意指针与函数如何调用外,还要注意细节问题,比如自定义变量类型的统一,循环结构的循环次数等等,要谨慎对待

课题二:

学生成绩单制作

1.掌握结构体变量及数组的定义、赋值、初始化、输入、输出

2.结构体数组的操作。

1.定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩

2.从键盘输入10个学生的以上内容

3.输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩

4.输出三门课程的平均分数最高的学生的学号、姓名及其平均分

5.将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:

numbernamemathChineseEnglishaverage

103tom909010095

101alice90807080

6.在实习报告中画出程序流程图,说明程序设计的算法,附主要程序段及运行结果(屏幕截图)。

7.在实习报告中说明知识点。

8.在实习报告中说明程序设计过程中的难点、解决办法及编程小结或体会

先定义一个结构体,存储学生的各项信息,定义一个结构体指针指向结构体数组,第一个函数比较每个学生单门课的成绩,返回每一门课最高分学生的stu的下标;

第二个函数比较每个学生的平均分,返回平均分最高的学生;

第三个函数主要按照平均分高低对学生进行排序,通过循环和选择排序法实现指针的移动以及重新排列,主函数中依次调用这三个函数

#defineN10

longnumber;

charname[20];

floatgrade[3];

floataverage;

inthanshu_best(structstudent*p,intm)

{intq,num;

floata;

a=p->

grade[m];

num=0;

for(q=0;

q<

N-1;

q++)

if((p+q)->

grade[m]>

a)

{a=(p+q)->

num=q;

returnnum;

inthanshu_average(structstudent*p)

{inti,m,index;

for(m=0;

m<

N;

p++,m++)

{p->

average=0;

for(i=0;

3;

p->

average=p->

average+p->

grade[i];

p->

average*1.0/3;

average;

if(p->

average>

{a=p->

index=m;

else

index=0;

returnindex;

voidhanshu_place(structstudentstu[])

structstudentt;

for(j=i;

if(stu[j+1].average>

stu[i].average)

{t=stu[j+1];

stu[j+1]=stu[i];

stu[i]=t;

voidmain()

structstudentstu[10],*ptr;

inti,j,index,m,num;

ptr=stu;

请输入第%d个学生的学号、姓名及三科成绩:

scanf("

%ld%s"

stu[i].number,stu[i].name);

for(j=0;

scanf("

%f"

stu[i].grade[j]);

m++)

{num=hanshu_best(ptr,m);

printf("

学号%ld姓名:

%-10s最高分%-8.2f\n"

stu[num].number,stu[num].name,stu[num].grade[m]);

index=hanshu_average(ptr);

\n三门课平均分最高的学生信息是:

%-10s平均分%-8.2f\n"

stu[index].number,stu[index].name,stu[index].average);

\n10个学生由高分到低分排名为:

numbernameMathChineseEnglishaverage\n"

hanshu_place(ptr);

{printf("

%-10ld%-10s%"

stu[i].number,stu[i].name);

printf("

%-10.2f"

stu[i].grade[j]);

%-10.2f\n"

stu[i].average);

主要考察的是结构体指针的运用,比较难的地方也就是如何将指针指向结构体并返回我们所要的数值

先定义一个结构体数组,再定义一个结构体指针,令指针指向数组的首地址,在自定义函数中通过指针的运算实现数组的运算,并返回相应的值

在输出我们所需要的数据时候可以通过一些小技巧使程序看起来更好看。

掌握结构体指针的技巧可以解决很多问题,使自己的程序具有解决多个复杂问题的能力,以后多练习此类的程序设计问题,使自己更加熟练

课题三:

学生成绩文件管理

1.掌握文件指针的概念和运用

2.掌握文件的相关操作:

打开、读、写、关闭

3.掌握文件的定位操作

2.从键盘输入10个学生的以上内容,存入文件stud.txt,关闭文件

3.打开stud.txt文件,将数据读出,查看是否正确写入,关闭文件。

4.打开文件stud.txt文件,读出数据,将10个学生按照平均分数从高到低进行排序,

分别将结果输出到屏幕上和另一文件studsort.txt中。

5.在实习报告中画出程序流程图,说明程序设计的算法,附主要程序段及运行结果(屏幕截图)。

6.在实习报告中说明知识点。

7.在实习报告中说明程序设计过程中的难点、解决

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1