内蒙古工业大学C语言实验报告新1.docx
- 文档编号:30716967
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:11
- 大小:49.40KB
内蒙古工业大学C语言实验报告新1.docx
《内蒙古工业大学C语言实验报告新1.docx》由会员分享,可在线阅读,更多相关《内蒙古工业大学C语言实验报告新1.docx(11页珍藏版)》请在冰豆网上搜索。
内蒙古工业大学C语言实验报告新1
内蒙古工业大学信息工程学院
实验报告
课程名称:
高级语言程序设计(C)
实验名称:
循环、数组、函数和结构体程序设计
实验类型:
验证性□综合性√设计性□
实验室名称:
校计算机中心机房
班级:
学号:
姓名:
组别:
同组人:
成绩:
实验日期:
实验报告撰写要求
一、实验前用预习报告纸撰写预习报告,预习报告包括以下内容
1.实验目的
2.实验用仪器设备、器材或软件环境
3.实验原理、方案设计、程序框图、预编程序等
4.实验过程中需要记录的实验数据表格
二、实验过程中,要认真观察,仔细记录
三、完成实验后用实验报告纸撰写实验报告,包括以下内容
1.仪器设备型号及编号
2.实验器材或软件环境
3.实验步骤、程序调试方法
4.实验数据处理及结果分析
5.实验中存在的问题
6.体会及思考题
四、报告撰写时,要求格式规范、书写整齐
预习报告成绩:
指导教师审核(签名):
年月日
预习报告
一、实验目的:
(1)掌握结构体类型变量的定义和使用。
(2)掌握结构体类型变量的概念和使用。
(3)掌握联合体类型变量的定义和使用。
(4)掌握用指针访问结构体的方法。
(5)掌握利用结构体进行函数参数的传递。
二、实验题目:
有10个学生,每个学生的数据包括学号,姓名,及三门课成绩,总成绩和平均成绩,从键盘输入10个学生的数据(包括学号,姓名及3门课成绩),要求打印出每位学生的学号,姓名,三门课的成绩,总成绩和平均成绩,最后再打印出3门课的总平均成绩以及最高分的学生的数据(包括姓名和总成绩)。
三、实验要求:
(1)根据学生信息定义一个结构体类型,在说明一个该结构体类型的数组;
(2)用input函数从键盘上输入10个学生的数据;
(3)用average函数求出每个学生总成绩、平均成绩和所有学生的总平均成绩;
(4)用maximum函数找出最高分的学生的数据;
(5)在主函数中输出每位学生的学号、姓名、三门课的成绩、总成绩和平均成绩以及总平均分和最高分学生的数据。
输出形式如下:
NO.namescore1score2score3totalaverage
101wang80798124080.00
102li91908927090.00
Average=85.00
Thehighestscore:
li,scoretotal:
270
四:
实验用仪器设备、器材或软件环境:
TC2.0
五:
实验原理及设计方案:
利用结构体、函数的调用和指针的传输。
定义一个结构体,定义一个主函数,;定义一个input函数;定义一个average函数;定义一个maximum函数;然后,主函数进行调用,得到数据。
六:
程序流程图:
七:
预编程序:
#include
#defineN10
structstu
{
intnumber,score1,score2,score3,total;
floataverage;
charname[10];
}students[N],stud[N],*p1;
floataver;
inta;
main()
{
average(students);
maximum(students[N]);
input(students);
average(students);
maximum(students[N]);
printf("No.namescore1score2score3totalaverage\n");
for(p1=students;p1 printf("%5d%8s%10d%10d%10d%9d%11.2f\n",p1->number,p1->name,p1->score1,p1->score2/ p1->score3,p1->total,p1->average); printf("average=%0.2f",aver); printf("\nThehighestscore: %s,scoretotal: %d\n",students[a].name,students[a].total); } input(structstu*p1) { for(p1=students;p1 { scanf("%d%d%d%d",&p1->number,&p1->score1,&p1->score2,&p1->score3); gets(p1->name); } } average(structstu*p1) { floatave=0.0; for(p1=students;p1 { p1->total=p1->score1+p1->score2+p1->score3; p1->average=p1->total/3.0; } for(p1=students;p1 ave+=(p1->average); aver=ave/3.0; { } maximum(structstu*p2) {inttemp,i; for(i=0;i if(students[i].total>students[i+1].total) { temp=students[i].total; students[i].total=students[i+1].total; students[i+1].total=temp; } for(i=0;i if(students[i].total==temp) a=i; } 实验报告成绩: 指导教师审核(签名): 年月日 实验报告 一、实验目的: (1)掌握结构体类型变量的定义和使用。 (2)掌握结构体类型变量的概念和使用。 (3)掌握联合体类型变量的定义和使用。 (4)掌握用指针访问结构体的方法。 (5)掌握利用结构体进行函数参数的传递。 二、实验题目: 有10个学生,每个学生的数据包括学号,姓名,及三门课成绩,总成绩和平均成绩,从键盘输入10个学生的数据(包括学号,姓名及3门课成绩),要求打印出每位学生的学号,姓名,三门课的成绩,总成绩和平均成绩,最后再打印出3门课的总平均成绩以及最高分的学生的数据(包括姓名和总成绩)。 三、实验要求: (1)根据学生信息定义一个结构体类型,在说明一个该结构体类型的数组; (2)用input函数从键盘上输入10个学生的数据; (3)用average函数求出每个学生总成绩、平均成绩和所有学生的总平均成绩; (4)用maximum函数找出最高分的学生的数据; (5)在主函数中输出每位学生的学号、姓名、三门课的成绩、总成绩和平均成绩以及总平均分和最高分学生的数据。 输出形式如下: NO.namescore1score2score3totalaverage 101wang80798124080.00 102li91908927090.00 Average=85.00 Thehighestscore: li,scoretotal: 270 四: 实验用仪器设备、器材或软件环境: TC2.0 五: 实验步骤、程序调试方法: 定义一个结构体,用来存储信息;定义一个主函数,用来输出各项结果;定义一个input函数用于输入各项信息;定义一个average函数用于求平均值和总分;定义一个maximum用于求总的平均值;输入各项数据,利用主函数分别调用input和average和maximum函数,对数据进行处理,得到处理后的数据,最后输出数据。 六: 试验流程图: 七: 正确程序: #include #defineN10 structstu { intnumber,score1,score2,score3,total; floataverage; charname[10]; }students[N],*p1,*p2; floataver; inta; main() { input(students); average(students); maximum(students); printf("No.namescore1score2score3totalaverage\n"); for(p1=students;p1 printf("%3d%8s%10d%10d%10d%9d%11.2f\n",p1->number,p1->name,p1->score1,p1->score2,p1->score3,p1->total,p1->average); printf("average=%0.2f",aver); printf("\nThehighestscore: %s,scoretotal: %d\n",students[a].name,students[a].total); } input(structstu*p1) { for(p1=students;p1 { floatave=0.0; for(p1=students;p1 scanf("%d%d%d%d",&p1->number,&p1->score1,&p1->score2,&p1->score3); gets(p1->name); } } average(structstu*p1) { floatave=0.0; for(p1=students;p1 { p1->total=p1->score1+p1->score2+p1->score3; p1->average=p1->total/3.0; } for(p1=students;p1 ave+=(p1->average); aver=ave/N; } maximum(structstu*p2) { inti,temp; temp=students[0].total; for(p2=students+1;p2 if(p2->total>temp) temp=p2->total; for(i=0;i { if(temp=students[i].total) a=i; } } 八: 程序运行结果截图: 九: 实验中存在的问题: (1)在定义结构体的时候,弄不清楚该定义那些变量,用什么类型定义更容易编程 (2)流程图真的很难画,但画出来后,他会是编程变得简单 (3)编程也许不是很难,但编一个简单的程序确实很难 (4)终于把程序答题编完,能够有一处错误,发现不了, 十: 实验心得体会: 经过本次试验,我学到了不少东西。 确实,把从书本上学到的知识应用到实践中还是有些困难的, 而我对书本上的知识并没有真正的掌握,所以在编程的过程中遇到很多的麻烦。 在一个试验中,有很多问题出现。 让我感受最深的一点是: 如果想把一个程序编好,那么你就应该掌握这个实验中涉及的任何知识点,而这些知识点贯穿了我们错学的全部内容,也就是说,你必须把我们所学的全部知识掌握,才会把程序设计好。 当然在编程之前,把结构先确定下来是很重要的,然后再对每个部分进行设计,这样会很节省时间。 同时我也真正感受到了c语言的特点与魅力,希望将来我能熟练的掌握这门技术,对将来的工作有所帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 内蒙古 工业大学 语言 实验 报告