实验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;整型,天数实验结果:(程序运行结果) 实验中遇到得问题及解决得方法四、实验体会(心得、收获)此次实验我们学习了如何运用结构体来解决一些问题。学会结构体类型变量得定义与使用方法。并且运用结构体数组来进行编程。注意结构体得嵌套使用。并且学会使用带结构指针得参数得函数。在定义变量时要注意附初值,在定义指针时要注意初始化。