《C语言程序设计》综合实习报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课题一:用指针优化学生成绩排名
一、目得
1.熟悉变量得指针与指向变量得得指针变量得概念与使用
2.熟悉数组得指针与指向数组得得指针变量得概念与使用
3、掌握冒泡法或选择法排序得算法
4、掌握函数得定义、调用、声明,以及参数得两种传递方式
二、实习环境
个人计算机,Windows操作系统,Turbo C2、0或 WinTC或Vis ual C++等编译开发环境
三、实习内容与步骤
1。定义一个数组stu[10]存放10个学生得成绩,从键盘输入数据,要求用指针实现
2.将数组stu[10]得内容输出到屏幕上,要求用指针实现
3.将成绩数组按照从高到低进行排序,要求用指针实现
4。将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,
输出排序后得成绩单
5。采用指针方法,输入字符串“student score ",复制该字符串并输出(复制
字符串采用库函数或用户自定义函数)
6.在实习报告中画出程序流程图,说明程序设计得算法,附主要程序段运行结果(屏幕截图)。
7、在实习报告中说明知识点.
8。在实习报告中说明程序设计过程中得难点、解决办法及编程小结或体会。
四、程序流程图、算法及运行结果
1、程序流程图:
2、算法:
先定义一个函数接收10个学生得成绩,利用指针将数据保存在数组中,再定义第二个函数输出所以学生得成绩,同样也就是使用指针,最后定义一个函数用选择排序法对成绩进行由大到小得排序,将指针指向得就是数组中得第一个地址,在主函数中依次调用这两个函数;
定义一个字符指针指向字符串,利用库函数中得st rcpy 将student score 复制给字符指针,输出字符串 3、程序:
#include "stdio 、h” #in clu de"str ing 、h" struct stude nt {
int g ra de ;
ﻩint num ; }st u[10];
void inp ut (s truc t stu dent *p ) { int i ;
for(i=0;i<10;i ++,p ++)
ﻩ{ printf(”请输入第 %-2d 个学生得成绩:",i+1);
sca nf ("%d %d”,&p->num,&p-〉gr ade); }
}
void printout(struct student *p)
{ int i;
ﻩfor(i=0;i<10;i++,p++)
ﻩprintf("第%-2d个学生得成绩为:%d\n",i+1,p-〉grade);
}
void arrow (int *p1,int *p2,int *px,int *py)
{ int t,m;
t=*px;*px=*py;*py=t;
m=*p1; *p1=*p2; *p2=m;
}
void place(struct student stu[])
{ int i,j;
for(i=1;i〈10;i++ )ﻩ
for(j=0;j<10-i;j++)
if(stu[j]、grade arrow(&stu[j]、num,&stu[j+1]、num,&stu[j]、grade,&stu[j+1]、grade); } int main(void) {structstudent stu[10],*ptr; ﻩint i; charstring[100],*s; ﻩs=string;ptr=stu; input(ptr); ﻩprintout(ptr); ﻩplace(stu); printf("排序后得成绩单为:\n”); ﻩfor(i=0;i〈10;i++) printf("第 %—2d名 %-2d %-5d\n”,i+1,stu[i]、num,st u[i]、grade); ﻩprintf("\n”); strcpy(s,"student score"); ﻩprintf("%s\n",string); } 4、运行结果: 五、知识点、难点及解决办法。 主要考察得就是利用指针作为函数参数以及指针数组得知识点,如何使指针指向数组并能将值返回给主函数就是一个难点 首先定义一个整型指针指向数组stu[]得首地址,在自定义函数中运用循环结构实现指针得移动并分别存储各个学生得成绩返回给主函数 六、编程小结或体会。 编程时除了注意指针与函数如何调用外,还要注意细节问题,比如自定义变量类型得统一,循环结构得循环次数等等,要谨慎对待 课题二:学生成绩单制作 一、目得 1.掌握结构体变量及数组得定义、赋值、初始化、输入、输出 2.结构体数组得操作. 二、实习环境 个人计算机,Windows操作系统,Turbo C 2、0或 WinTC或Visual C++等编译开发环境 三、实习内容与步骤 1。定义一个结构体数组,存放10个学生得学号,姓名,三门课得成绩 2.从键盘输入10个学生得以上内容 3。输出单门课成绩最高得学生得学号、姓名、以及该门课程得成绩 4.输出三门课程得平均分数最高得学生得学号、姓名及其平均分 5.将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:number name math Chinese English average103 tom 90 90 100 95 101alice 90 8070 80 6.在实习报告中画出程序流程图,说明程序设计得算法,附主要程序段及运行结 果(屏幕截图)。 7.在实习报告中说明知识点。 8.在实习报告中说明程序设计过程中得难点、解决办法及编程小结或体会 四、程序流程图、算法及运行结果 1、程序流程图: 2、算法: 先定义一个结构体,存储学生得各项信息,定义一个结构体指针指向结构体数组,第一个函数比较每个学生单门课得成绩,返回每一门课最高分学生得stu得下标;第二个函数比较每个学生得平均分,返回平均分最高得