内蒙古工业大学信息工程学院
实 验 报 告
课程名称: 高级语言程序设计(C) 实验名称:循环、数组、函数和结构体程序设计 实验类型: 验证性□ 综合性√ 设计性□ 实验室名称: 校计算中心 班级:机电12-4 学号: 201230102040 姓名: 潘柏婷 组别: 同组人: 成绩: 实验日期: 2013-05-14
实验报告撰写要求
一、 实验前用预习报告纸撰写预习报告,预习报告包括以下内容
1. 实验目的
2. 实验用仪器设备、器材或软件环境
3. 实验原理、方案设计、程序框图、预编程序等 4. 实验过程中需要记录的实验数据表格 二、 实验过程中,要认真观察,仔细记录
三、 完成实验后用实验报告纸撰写实验报告,包括以下内容
1. 仪器设备型号及编号 2. 实验器材或软件环境 3. 实验步骤、程序调试方法 4. 实验数据处理及结果分析 5. 实验中存在的问题 6. 体会及思考题
四、 报告撰写时,要求格式规范、书写整齐
1
内蒙古工业大学信息工程学院
预习报告成绩: 指导教师审核(签名): 年 月 日
预习报告
实验题目:
有10个学生,每个学生的数据包括学号、姓名及4门课的成绩、总成绩和平均成绩,从键盘输入10个学生的数据(包括学号、姓名及4门课的成绩),要求打印出每位学生的学号、姓名、4门课的成绩、总成绩和平均成绩,最后再打印出4门课的总平均成绩以及最高分的学生的数据(包括姓名和总成绩)。 实验要求:
(1)根据学生信息定义一个结构体类型,再说明一个该结构体类型的数组。
(2)用input函数从键盘上输入10个学生的数据;
(3)用average函数求出每个学生总成绩、平均成绩和所有学生的总平均成绩;
(4)用maximum函数找出最高分的学生的数据;
(5)在主函数中输出每位学生的学号、姓名、4门课的成绩、总成绩和平均成绩以及总平均分和最高分学生的数据。 三、实验用仪器设备:计算机。
软件环境:TurboC 四、实验原理:
根据学生信息定义一个结构体类型,再定义一个该结构体类型的数组。
五、实验方案:
(1)定义一个input函数用于从键盘上输入10个学生的数据。 (2)定义一个average函数用于求每个学生总成绩、平均成绩和所有学生的总平均成绩。
(3)定义一个maximum函数用于找出最高分的学生的数据。 (4)在主函数中输出每位学生的学号、姓名、4门课的成绩、总
成绩和平均成绩,最后再输出最高分的学生的数据和总平均成绩。
2
内蒙古工业大学信息工程学院
程序框图:
开始 调用input函数输入学生的信息(学号、姓名、四门课的成绩。) 调用average函数求总成绩、平均成绩。 调用maximum函数求最大成绩学生的位置。 输出每个学生的信息,成绩最大学生的信息。 结束
3
内蒙古工业大学信息工程学院
预编程序: #include printf(\"Input the students'information(FORMAT LIKE: NO NAME score1 score2 score3 score4):\\n\"); for(i=0;i<10;i++) {printf(\"Input%d:\",i+1); scanf(\"%s%s%d%d%d%d\",stu[i].stuNo,stu[i].stuName,&stu[i].stuScore[0],&stu[i].stuScore[1],&stu[i].stuScore[2],&stu[i].stuScore[3]); } } float average() {int i=0; 4 内蒙古工业大学信息工程学院 float totalAve_score=0; while(i<10) {stu[i].totalScore=stu[i].stuScore[0]+stu[i].stuScore[1]+stu[i].stuScore[2]+stu[i].stuScore[3]; stu[i].aveScore=stu[i].totalScore/4; totalAve_score+=stu[i].aveScore; i++; } return(totalAve_score/10); } int maximum() {int i=0,tmp=stu[0].totalScore,k=0; while(++i<10) {if(tmp float totalAve_score; 5 内蒙古工业大学信息工程学院 input(); totalAve_score=average(); hNo=maximum(); printf(\"No.\Name\Score1\Score2\Score3\Score4\Total\average\\n\"); for(i=0;i<10;i++) printf(\"%s\%s\%d\%d\%d\%d\%.2f\%.2f\\n\",stu[i].stuNo,stu[i].stuName,stu[i].stuScore[0],stu[i].stuScore[1],stu[i].stuScore[2],stu[i].stuScore[3],stu[i].totalScore,stu[i].aveScore); printf(\"average=%.2f\\n\",totalAve_score); printf(\"maximum=%s %s %d %d %d %d %.2f %.2f\\n\",stu[highestNo].stuNo,stu[hNo].stuName,stu[hNo].stuScore[0],stu[hNo].stuScore[1],stu[hNo].stuScore[2],stu[hNo].stuScore[3],stu[hNo].totalScore,\\ stu[htNo].aveScore); } 6 内蒙古工业大学信息工程学院 实验报告成绩: 指导教师审核(签名): 年 月 日 实验报告 实验题目: 有10个学生,每个学生的数据包括学号、姓名及4门课的成绩、总成绩和平均成绩,从键盘输入10个学生的数据(包括学号、姓名及4门课的成绩),要求打印出每位学生的学号、姓名、4门课的成绩、总成绩和平均成绩,最后再打印出4门课的总平均成绩以及最高分的学生的数据(包括姓名和总成绩)。 实验要求: (1)根据学生信息定义一个结构体类型,再说明一个该结构体类型的数组。 (2)用input函数从键盘上输入10个学生的数据; (3)用average函数求出每个学生总成绩、平均成绩和所有学生的总平均成绩; (4)用maximum函数找出最高分的学生的数据; (5)在主函数中输出每位学生的学号、姓名、4门课的成绩、总成绩和平均成绩以及总平均分和最高分学生的数据。 三、实验用仪器设备:计算机。 软件环境:TurboC 四、实验原理: 根据学生信息定义一个结构体类型,再定义一个该结构体类型的数组。 五、实验方案: (1)定义一个input函数用于从键盘上输入10个学生的数据。 (2)定义一个average函数用于求每个学生总成绩、平均成绩和所有学生的总平均成绩。 (3)定义一个maximum函数用于找出最高分的学生的数据。 (4)在主函数中输出每位学生的学号、姓名、4门课的成绩、总 成绩和平均成绩,最后再输出最高分的学生的数据和总平均成绩。 7 内蒙古工业大学信息工程学院 流程图: 开始 调用input函数输入学生的信息(学号、姓名、四门课的成绩。) 调用average函数求总成绩、平均成绩。 调用maximum函数求最大成绩学生的位置。 输出每个学生的信息,成绩最大学生的信息。 结束 8 内蒙古工业大学信息工程学院 程序: #include printf(\"Input the students'information(FORMAT LIKE: NO NAME score1 score2 score3 score4):\\n\"); for(i=0;i<10;i++) {printf(\"Input%d:\",i+1); scanf(\"%s%s%d%d%d%d\",stu[i].stuNo,stu[i].stuName,&stu[i].stuScore[0],&stu[i].stuScore[1],&stu[i].stuScore[2],&stu[i].stuScore[3]); } } float average() {int i=0; float totalAve_score=0; 9 内蒙古工业大学信息工程学院 while(i<10) {stu[i].totalScore=stu[i].stuScore[0]+stu[i].stuScore[1]+stu[i].stuScore[2]+stu[i].stuScore[3]; stu[i].aveScore=stu[i].totalScore/4; totalAve_score+=stu[i].aveScore; i++; } return(totalAve_score/10); } int maximum() {int i=0,tmp=stu[0].totalScore,k=0; while(++i<10) {if(tmp float totalAve_score; input(); 10 内蒙古工业大学信息工程学院 totalAve_score=average(); hNo=maximum(); printf(\"No.\Name\Score1\Score2\Score3\Score4\Total\average\\n\"); for(i=0;i<10;i++) printf(\"%s\%s\%d\%d\%d\%d\%.2f\%.2f\\n\",stu[i].stuNo,stu[i].stuName,stu[i].stuScore[0],stu[i].stuScore[1],stu[i].stuScore[2],stu[i].stuScore[3],stu[i].totalScore,stu[i].aveScore); printf(\"average=%.2f\\n\",totalAve_score); printf(\"maximum=%s %s %d %d %d %d %.2f %.2f\\n\",stu[highestNo].stuNo,stu[hNo].stuName,stu[hNo].stuScore[0],stu[hNo].stuScore[1],stu[hNo].stuScore[2],stu[hNo].stuScore[3],stu[hNo].totalScore,\\ stu[htNo].aveScore); } 11 内蒙古工业大学信息工程学院 运行结果图: 实验中存在的问题: 1.定义变量时所定义的类型不正确,以至于无法输出; 2.定义的输出数量与所需输出的数量不一致; 3调用的函数容易调用错误; 4使用套用时套用的格式不正确; 体会: C语言需要有耐心,认真细心,有一点错误就得不到结果。需要我们倍加努力的去学习,才能有收获。 12 因篇幅问题不能全部显示,请点此查看更多更全内容