您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 实验09结构体实验报告
一、实验目的1.学会结构体类型变量的定义和使用方法。2.能够运用结构体数组编写程序。3.学会结构体指针的定义使用方法。4.能够运用结构体指针作函数参数编写程序。二、实验环境(调试程序所使用的软硬件环境)软件环境:VC++6.0硬件环境:宏基Intel奔4主频2.8GHz,内存256MB三、实验内容、结果及分析1、题目1.建立一个有n(3n≤10)个学生成绩的结构记录,包括学号、姓名和3门课程的成绩,输出总分最高的学生的姓名和总分。源程序清单:(调试好的源程序代码)#includestdafx.h#includeiostream#includestring#includecstringusingnamespacestd;constintN=10;structrem{Stringnum;stringname;doublemark[3];doubleall;};intmain(){intn,i,m;doublemax;remloq[N];cout请输入人数endl;cinn;for(i=0;in;i++){cout请输入第i+1名同学的学号、姓名和第一二三门课程的成绩endl;cinloq[i].numloq[i].nameloq[i].mark[0]loq[i].mark[1]loq[i].mark[2];}for(i=0;in;i++){loq[i].all=loq[i].mark[0]+loq[i].mark[1]+loq[i].mark[2];}max=loq[0].all;for(i=0;in;i++){if(loq[i].allmax){max=loq[i].all;m=i;}}cout总分最高的学生为loq[m].name总分为loq[m].allendl;return0;}主要标识符说明:(源程序中主要标识符含义说明)声明结构体类型rem,包括学号(string类型)、姓名(string类型)、成绩(双精度型)、总成绩(双精度类型)structrem{Stringnum;stringname;doublemark[3];doubleall;};remloq[N]定义结构体类型rem变量loqintn,i,m;定义三个整型变量n代表人数,i代表循环变量,m高成绩的学生成绩的角标doublemax,双精度型,最大成绩;实验结果:(程序运行结果)实验中遇到的问题及解决的方法M应付初值2、题目2.通讯录排序。建立一个通讯录的结构记录,包括姓名、生日、电话号码。输入n(n10)个朋友的信息,再按他们的姓名从大到小的顺序依次输出其信息。源程序清单:(调试好的源程序代码)#includestdafx.h#includeiostream#includestring#includecstringusingnamespacestd;constintN=15;structdate{intyear;intmonth;intday;};structcorre{stringname;datebir;stringtel;};intmain(){correa[N];intn,i,j;stringm;cout请输入人数endl;cinn;for(i=0;in;i++){cout请输入第i+1个人的姓名endl;cina[i].name;cout输入生日endl;cina[i].bir.yeara[i].bir.montha[i].bir.day;cout请输入电话endl;cina[i].tel;}for(i=0;in-1;i++){for(j=0;jn-1-i;j++){if(a[j].namea[j+1].name){m=a[j].name;a[j].name=a[j+1].name;a[j+1].name=m;}}}cout姓名'\t'生日'\t'电话endl;for(i=0;in;i++){couta[i].name'\t'a[i].bir.year/a[i].bir.month/a[i].bir.day/'\t'a[i].telendl;}return0;}主要标识符说明:(源程序中主要标识符含义说明)声明结构体类型date,包括年份(整型)、月份(整型)、天(整型)structdate{intyear;intmonth;intday;};声明结构体类型corre,包括姓名(string型)、生日(date结构类型型)、电话号码(string型)structcorre{stringname;datebir;stringtel;};correa[N]定义结构体corre类型数组a[]intn,i,j;定义三个整型变量n为人数,i,j均为循环变量stringm;string型变量m用于交两个人的姓名实验结果:(程序运行结果)实验中遇到的问题及解决的方法3、题目3.编写程序,输入一个日期(年、月、日),计算并输出该日是该年中的第几天。要求编写函数计算某日是该年中的第几天,用结构指针作为函数参数,注意闰年问题。源程序清单:(调试好的源程序代码)#includestdafx.h#includeiostreamusingnamespacestd;structnian{intyear;intmonth;intday;};intfind(nian*p);intmain(){structniana={1,1,1};nian*p=&a;intn;cout请输入年份endl;cina.year;cout请输入月份endl;cina.month;cout请输入第几日endl;cina.day;n=find(p);cout你输入的日期为a.year/a.month/a.dayendl;cout是a.year年的第n天endl;return0;}intfind(nian*p){intn=0,i,j,b[2][13]={0,31,28,31,30,31,30,31,31,30,31,30,31,0,31,29,31,30,31,30,31,31,30,31,30,31};if((p-year%4==0&&p-year%100!=0)||p-year%400==0){i=1;}elsei=0;for(j=0;jp-month;j++){n=n+b[i][j];}n=n+p-day;returnn;}主要标识符说明:(源程序中主要标识符含义说明)声明结构体类型nian,包括年(整型)、月份(整型)、天(整型)structnian{intyear;intmonth;intday;};intfind(nian*p);定义一个函数,其参数为结构指针。用于算出输入的日期是第多少天structniana={1,1,1};定义结构nian类型的变量anian*p=&a;定义指针P并初始化指向aintn;整型,天数实验结果:(程序运行结果)实验中遇到的问题及解决的方法四、实验体会(心得、收获)此次实验我们学习了如何运用结构体来解决一些问题。学会结构体类型变量的定义和使用方法。并且运用结构体数组来进行编程。注意结构体的嵌套使用。并且学会使用带结构指针的参数的函数。在定义变量时要注意附初值,在定义指针时要注意初始化。
本文标题:实验09结构体实验报告
链接地址:https://www.777doc.com/doc-4445384 .html