您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > C语言结构体实验报告
《高级语言程序设计》实验报告实验序号:8实验项目名称:结构体学号姓名专业、班级实验地点指导教师实验时间一、实验目的及要求1、掌握结构体变量的定义和使用;2、掌握结构体数组的定义和使用;3、了解结构指针的定义和使用二、实验设备(环境)及要求使用turboc2.0+windows系列操作系统的环境。三、实验内容与步骤1.学生成绩管理:有5个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入5个学生数据,要求打印出每个学生三门课的平均成绩,以及每门课程平均分、最高分学生数据(包括学号、班级、姓名、三门课成绩,平均分)。【实验要求】(1)定义学生结构体。(2)用一个函数实现5个学生数据的输入,用另一个函数负责求每个学生三门课程的平均成绩,再用一个函数求出平均分最高的学生并输出该学生的数据。要求平均分和平均分最高的学生数据都在主函数种输出。【实验提示】(1)结构体定义structStudent{intnum;//学号charname[20];//班级注意字节长度charclassname[20];//班级floatscore[3];//三门课程成绩floataver_score;//平均分}(2)数据组织提示:在主函数中定义一个结构体数组。Studentstu[20]//定义有20个变量的元素的结构体数组(根据需要确定数组的大小)。(3)结构体数组使用①循环输入学生信息:②平均分计算函数,以数组名作参数voidaveragescore(studentstu[],intnumber){inti;for(i=0;i=number;i++){Stu[i]=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0}}③求平均分最高的学生intaveragescore(studentstu[],intnumber){intk=0;//查找最高平均分并记录在数组中的下标值for(inti=0;i=number;i++){………}returnk;//返回最高平均分数组元素的下标}【测试数据】自己设计一组测试数据。运行结果截图:【思考与扩展】如果这样定义结构体typedefstructStudent{intnum;//学号charname[20];//姓名注意字节长度charclassname[20];//班级floatscore[3];//三门课程成绩floataver_score;//平均分}STU,*pSTU;说明如下三条语句的含义:studentstu1;STUstu2;pSTUpstu;2.采用结构体数组编写程序,定义一个含职工姓名、工作年限、工资总额的结构体类型,初始化5名职工的信息,最后再对工作年限超过30年的职工加100元工资,然后分别输出工资变化之前和之后的所有职工的信息。运行结果截图3.定义一个结构体变量(包括年、月、日)。计算某年某月某日是本年中第几天?注意闰年问题。运行结果截图:四、分析与讨论对上机实践结果进行分析,上机的心得体会。五、教师评语签名:日期:成绩附源程序清单:1.#includestdio.hstructstudent{intnum;charname[20];charclassname[20];floatscore[3];floataver_score;}stu[5];voidinput(){inti;for(i=1;i6;i++){printf(第%d个同学,i);printf(请输入学号名字班级三门课程成绩:\n);scanf(%d%s%s%f%f%f,&stu[i].num,stu[i].name,stu[i].classname,&stu[i].score[1],&stu[i].score[2],&stu[i].score[3]);}};voidaveragescore(){inti;for(i=1;i=5;i++)stu[i].aver_score=((stu[i].score[1]+stu[i].score[2]+stu[i].score[3])/3);printf(平均成绩:);for(i=1;i6;i++)printf(第%d个同学的平均成绩%f:\n,i,stu[i].aver_score);printf(\n);};voidmax(){inti,k=0;floattemp=stu[1].aver_score;for(i=2;i=5;i++)if(stu[i].aver_scoretemp){temp=stu[i].aver_score;k=i;};printf(成绩最好的同学:\n);printf(%d%s%s%4.2f%4.2f%4.2f%4.2f\n,stu[k].num,stu[k].name,stu[k].classname,stu[k].score[1],stu[k].score[2],stu[k].score[3],stu[k].aver_score);};voidmain(){input();averagescore();max();}2.#includestdio.hstructworker{charname[20];intworkyear;floatsalary;}work[5];voidinput(){inti;for(i=1;i=5;i++){printf(第%d个工人:,i);printf(请输入名字工作年限工资总额:\n);scanf(%s%d%f,&work[i].name,&work[i].workyear,&work[i].salary);}};voidmain(){inti;input();printf(初始化5名职工的信息:\n);for(i=1;i=5;i++)printf(%s%d%f\n,work[i].name,work[i].workyear,work[i].salary);for(i=1;i=5;i++)if(work[i].workyear30)work[i].salary+=100;printf(最后5名职工的信息工:\n);for(i=1;i=5;i++)printf(%s%d%f\n,work[i].name,work[i].workyear,work[i].salary);}3.#includestdio.hstructyears{intyear;intmonth;intdate;}ye;intdata[12]={31,28,31,30,31,30,31,31,30,31,30,31};voidmain(){inti,sum=0;intleap=0;printf(请输入改天的年月日:\n);scanf(%d%d%d,&ye.year,&ye.month,&ye.date);if(((ye.year%4)==0)&&((ye.year%100)!=0))leap=1;if(((ye.year%4)==0)&&((ye.year%400)==0))leap=1;if(leap=1)data[1]=29;for(i=0;i(ye.month-1);i++){sum+=data[i];}sum+=ye.date;printf(\nitisthe%dday.\n,sum);}
本文标题:C语言结构体实验报告
链接地址:https://www.777doc.com/doc-2594013 .html