实验09结构体实验报告.doc
精选优质文档-倾情为你奉上一、实验目的1学会结构体类型变量的定义和使用方法。2能够运用结构体数组编写程序。3学会结构体指针的定义使用方法。4能够运用结构体指针作函数参数编写程序。二、实验环境 (调试程序所使用的软硬件环境)软件环境:VC+6.0硬件环境:宏基 Intel 奔4 主频 2.8GHz,内存256MB三、实验内容、结果及分析1、题目1建立一个有n(3<n10)个学生成绩的结构记录,包括学号、姓名和3门课程的成绩,输出总分最高的学生的姓名和总分。源程序清单:(调试好的源程序代码) #include "stdafx.h"#include <iostream>#include <string>#include <cstring>using namespace std;const int N=10;struct remString num;string name;double mark3;double all;int main ()int n,i,mM应赋初值!;double max;rem loqN;cout<<"请输入人数"<<endl;cin>>n;for(i=0;i<n;i+)cout<<"请输入第"<<i+1<<"名同学的学号、姓名和第一二三门课程的成绩"<<endl;cin>>loqi.num>>loqi.name>>loqi.mark0 >>loqi.mark1 >>loqi.mark2;for(i=0;i<n;i+)loqi.all=loqi.mark0+loqi.mark1+loqi.mark2;max=loq0.all;for(i=0;i<n;i+)if(loqi.all>max)max=loqi.all;m=i;cout<<"总分最高的学生为"<<loqm.name<<"总分为"<<loqm.all<<endl;return 0;主要标识符说明:(源程序中主要标识符含义说明) 声明结构体类型rem,包括学号(string类型)、姓名(string类型)、成绩(双精度型)、总成绩(双精度类型)struct remString num;string name;double mark3;double all;rem loqN 定义结构体类型rem变量loq int n,i,m;定义三个整型变量n代表人数,i代表循环变量,m高成绩的学生成绩的角标double max,双精度型,最大成绩; 实验结果:(程序运行结果) 实验中遇到的问题及解决的方法M应付初值2、题目2通讯录排序。建立一个通讯录的结构记录,包括姓名、生日、电话号码。输入n(n<10)个朋友的信息,再按他们的姓名从大到小的顺序依次输出其信息。源程序清单:(调试好的源程序代码) #include "stdafx.h"#include <iostream>#include <string>#include <cstring>using namespace std;const int N=15;struct dateint year;int month;int day;struct correstring name;date bir;string tel;int main ()corre aN;int n,i,j;string m;cout<<"请输入人数"<<endl;cin>>n;for(i=0;i<n;i+)cout<<"请输入第"<<i+1<<"个人的姓名"<<endl;cin>>ai.name;cout<<"输入生日"<<endl;cin>>ai.bir.year>>ai.bir.month>>ai.bir.day;cout<<"请输入电话"<<endl;cin>>ai.tel;for(i=0;i<n-1;i+)for(j=0;j<n-1-i;j+)if(aj.name<aj+1.name)m=aj.name;aj.name=aj+1.name;aj+1.name=m;cout<<"姓名"<<'t'<<"生日"<<'t'<<"电话"<<endl;for(i=0;i<n;i+)cout<<ai.name<<'t'<<ai.bir.year<<"/"<<ai.bir.month<<"/"<<ai.bir.day<<"/"<<'t'<<ai.tel<<endl;return 0;主要标识符说明:(源程序中主要标识符含义说明) 声明结构体类型date,包括年份(整型)、月份(整型)、天(整型)struct dateint year;int month;int day;声明结构体类型corre,包括姓名(string型)、生日(date结构类型型)、电话号码(string型)struct correstring name;date bir;string tel;corre aN定义结构体corre类型数组aint n,i,j;定义三个整型变量n为人数,i,j均为循环变量string m;string型变量m用于交两个人的姓名实验结果:(程序运行结果) 实验中遇到的问题及解决的方法 3、题目3编写程序,输入一个日期(年、月、日),计算并输出该日是该年中的第几天。要求编写函数计算某日是该年中的第几天,用结构指针作为函数参数,注意闰年问题。源程序清单:(调试好的源程序代码) #include "stdafx.h"#include <iostream>using namespace std;struct nianint year;int month;int day;int find(nian *p);int main ()struct nian a=1,1,1;nian *p=&a;int n;cout<<"请输入年份"<<endl;cin>>a.year;cout<<"请输入月份"<<endl;cin>>a.month ;cout<<"请输入第几日"<<endl;cin>>a.day;n=find(p);cout<<"你输入的日期为"<<a.year <<"/"<<a.month<<"/"<<a.day<<endl;cout<<"是"<<a.year<<"年的第"<<n<<"天"<<endl;return 0;int find(nian *p)int n=0,i,j,b213=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;else i=0;for(j=0;j<p->month;j+)n=n+bij;n=n+p->day;return n;主要标识符说明:(源程序中主要标识符含义说明) 声明结构体类型nian,包括年(整型)、月份(整型)、天(整型)struct nianint year;int month;int day;int find(nian *p);定义一个函数,其参数为结构指针。用于算出输入的日期是第多少天struct nian a=1,1,1;定义结构nian类型的变量anian *p=&a;定义指针P并初始化指向aint n;整型,天数实验结果:(程序运行结果) 实验中遇到的问题及解决的方法四、实验体会(心得、收获)此次实验我们学习了如何运用结构体来解决一些问题。学会结构体类型变量的定义和使用方法。并且运用结构体数组来进行编程。注意结构体的嵌套使用。并且学会使用带结构指针的参数的函数。在定义变量时要注意附初值,在定义指针时要注意初始化。 专心-专注-专业