C语言报告.docx
- 文档编号:23812117
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:12
- 大小:68.57KB
C语言报告.docx
《C语言报告.docx》由会员分享,可在线阅读,更多相关《C语言报告.docx(12页珍藏版)》请在冰豆网上搜索。
C语言报告
内蒙古工业大学信息工程学院
实验报告
课程名称:
高级语言程序设计(C)
实验名称:
循环、数组、函数和结构体程序设计
实验类型:
验证性□综合性√设计性□
实验室名称:
校计算中心
班级:
学号:
姓名:
组别:
(本项填机号)
同组人:
成绩:
实验日期:
实验报告撰写要求
一、实验前用预习报告纸撰写预习报告,预习报告包括以下内容
1.实验目的
2.实验用仪器设备、器材或软件环境
3.实验原理、方案设计、程序框图、预编程序等
4.实验过程中需要记录的实验数据表格
二、实验过程中,要认真观察,仔细记录
三、完成实验后用实验报告纸撰写实验报告,包括以下内容
1.仪器设备型号及编号
2.实验器材或软件环境
3.实验步骤、程序调试方法
4.实验数据处理及结果分析
5.实验中存在的问题
6.体会及思考题
四、报告撰写时,要求格式规范、书写整齐
预习报告成绩:
指导教师审核(签名):
年月日
预习报告
实验一:
循环,数组,函数和结构体程序设计
一:
实验目的:
《1》掌握结构体类型变量的定义和使用
《2》掌握结构体类型数组的概念和使用
《3》掌握联合体类型变量的定义和使用
《4》掌握用指针访问结构体与联合体的方法
《5》掌握利用结构体进行函数参数的传递
二:
实验题目:
输入10个学生,每个学生的数据包括学号,姓名及3门课的成绩,总成绩和平均成绩,从键盘输入10个学生的数据(包括学号,姓名及3门课的成绩),要求打印出每位学生的学号,姓名,3门课的成绩和平均成绩,最后再打印出3门课的平均成绩以及最高分的学生的数据(包括姓名和总成绩)。
三:
实验要求:
⑴根据学生信息定义一个结构体类型,并定义一个该结构体类型
的数组。
⑵用input函数从键盘上输入学生的数据。
⑶用average函数求出每个学生的总成绩,平均成绩和所有学生的总平均成绩。
⑷用maximum函数找出最高分的学生的数据。
⑸在主函数中输出每位学生的学号,姓名,三门课的成绩,总成绩和平均成绩以及总平均成绩和最高分的数据。
四:
实验使用仪器设备器材或软件环境
仪器设备:
PC机,WindowsXP,Turbo2.0.软件环境:
Turob.c2.0
五:
实验原理:
《1》由于学生信息中包含的学号,姓名,分数等信息。
分别属于不同的基本数据类型,所以定义了一个结构体。
《2》由于要依次输入10个学生的数据,为了简便所以使用for循环。
《3》使用maximum函数找最高分学生数据时,用交换法换最后一个数为最大的数。
相应的该数所对应的结构体数组量为最高分学生的数据。
六:
设计方案:
《1》首先进行编译预处理
《2》根据学生信息定义一个结构体,并定义一个该结构体类型的数组
《3》用input函数从键盘上输入学生的数据
《4》用average函数求出每个学生的总成绩,平均成绩和所有学生的总平均成绩
《5》用maximum函数找出最高分的学生的数据
《6》在主函数中输出每位学生的学号,姓名,三门课的成绩,总成绩和平均成绩以及总平均成绩和最高分的数据
结构图:
预编程序:
#include
structstudent
{unsignedintno;
charname;
intscore;
floattotal;
floataverage;}student[10],*p=student;
inti;
main()
{input();
average();
maximum();
printf(“average=%f\n”,average());
printf(“Thehighestscore:
student[j].name,\
scoretotal:
t”,maximum);}
input()
{printf(“No.namescore1score2\
score3totalaverage\n”)
for(p=student;p scanf(“%4d%4s%4d%4d%4d%4d%4d”,&p->no,\ &p->score1,&p->score2,&p->score3,&p->total\ &p->average); for(i=0;i<10;i++) {student[i].total=student[i].score1+student[i].score2\ +student[i].score3; student[i].average=student[i].total/3;}} intaverage() {intsum,average; for(i=0;i<10;i++) {sum+=average; average=sum/10;} return(average);} intmaximum() {intj,t; if(student[i].total maximum=student[j].total; else maximum=student[i].total; for(i=0;i<10;i++) for(j=0;j<10;j++) {t=student[i].total; student[i].total=student[j].total; student[j].total=t;} reture(t);} 实验报告成绩: 指导教师审核(签名): 年月日 实验报告 实验一: 循环,数组,函数和结构体程序设计 一: 实验目的: 《1》掌握结构体类型变量的定义和使用 《2》掌握结构体类型数组的概念和使用 《3》掌握联合体类型变量的定义和使用 《4》掌握用指针访问结构体与联合体的方法 《5》掌握利用结构体进行函数参数的传递 二: 实验题目: 输入10个学生,每个学生的数据包括学号,姓名及3门课的成绩,总成绩和平均成绩,从键盘输入10个学生的数据(包括学号,姓名及3门课的成绩),要求打印出每位学生的学号,姓名,3门课的成绩和平均成绩,最后再打印出3门课的平均成绩以及最高分的学生的数据(包括姓名和总成绩)。 三: 实验要求: ⑴根据学生信息定义一个结构体类型,并定义一个该结构体类型的数组。 ⑵用input函数从键盘上输入学生的数据。 ⑶用average函数求出每个学生的总成绩,平均成绩和所有学生的总平均成绩。 ⑷用maximum函数找出最高分的学生的数据。 ⑸在主函数中输出每位学生的学号,姓名,三门课的成绩,总成绩和平均成绩以及总平均成绩和最高分的数据。 四: 实验使用仪器设备器材或软件环境 仪器设备: PC机,WindowsXP,Turbo2.0. 软件环境: Turob.c2.0 五: 实验原理: 《1》由于学生信息中包含的学号,姓名,分数等信息。 分别属于不同的基本数据类型,所以定义了一个结构体。 《2》由于要依次输入10个学生的数据,为了简便所以使用for循环。 《3》使用maximum函数找最高分学生数据时,用交换法换最后一个数为最大的数。 相应的该数所对应的结构体数组量为最高分学生的数据。 六: 设计方案: (1)首先进行编译预处理 (2)根据学生信息定义一个结构体,并定义一个该结构体类型的数组 (3)用input函数从键盘上输入学生的数据 (4)用average函数求出每个学生的总成绩,平均成绩和所有学生的总平均成绩 (5)用maximum函数找出最高分的学生的数据 (6)在主函数中输出每位学生的学号,姓名,三门课的成绩,总成绩和平均成绩以及总平均成绩和最高分的数据 实验程序: #include #defineN10 structstudent {unsignedintnumber; charname[10]; floatscore[3]; floatsum; floataverage;}student[N]; average() {inti,j; floatm=0,average; for(i=0;i {student[i].sum=student[i].score[0]+student[i].score[1]+student[i].score[2]; student[i].average=student[i].sum/3; m+=student[i].sum;} average=m/N; return(average);} input() {inti,j; floatp; for(i=0;i {scanf("%d%s",&student[i].number,&student[i].name); for(j=0;j<3;j++) {scanf("%f",&p); student[i].score[j]=p;} } } maximum() {inti,k=0; for(i=1;i if(student[k].sum k=i; return(k);} main() {inti,j,m; floatx; input(); x=average(); m=maximum(); printf("No.namescore1score2score3totalaverage\n"); for(i=0;i {printf("%5d%-7s",student[i].number,student[i].name); for(j=0;j<3;j++) printf("%8.2f",student[i].score[j]); printf("%6.2f%6.2f\n",student[i].sum,student[i].average); } printf("average=%f\n",a); printf("Thehighestscore: %s,scoretotal: %f\n",student[m].name,student[m].sum);} 输入数据: No. name score1 score2 score3 01 a 98 85 78 02 b 89 75 57 03 c 78 57 69 04 f 87 56 87 05 l 58 98 100 06 r 87 89 75 07 e 85 74 54 08 q 87 59 65 09 j 58 57 45 10 z 89 57 42 运行结果: 实验步骤: 根据实验要求写预习报告,上机调试预编译的程序之后,如果能够运行,写实验报告。 总结出实验中存在的问题并将其下来,分析产生错误的原因。 程序调试方法: 输入预编译的程序,发现有错误时及时纠正,看是不是定义错误,循环没有意义,若出现定义错误则重新定义。 实验中存在的问题: 定义的变量类型有错,循环没有在程序中执行,输出的格式不正确,学号、姓名、成绩不能对齐,定义的结构体中的变量类型错误。 结果分析: 输入数据后,程序运行出运行出预想的结果,说明编译程序的思路“先定义结构体,用scanf在定义max,average函数,在主函数中调用所定义的函数,并输出结果”正确。 说明经过程序的反复修改,明确了程序编译的正确顺序。 体会及思考: 1.课上认真听讲,课前积极去预习. 2.把书本上的基本知识先看懂并记住。 之后要多去编程序,不要怕难。 3.编号程序后要上机去调试知道程序能正确运行为止,并记住自己先前写的程序和调试后的差距在哪里。 4.C语言是一门要求人们十分细心的课程,因此我们要细心对带C语言。 5.最重要的是学以致用,学习时要多于实际联系,明白这段程序可以解决现实中的哪些问题,达到学习的目的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 报告