收藏 分销(赏)

实验09结构体实验报告.doc

上传人:天**** 文档编号:4354632 上传时间:2024-09-12 格式:DOC 页数:8 大小:162KB 下载积分:6 金币
下载 相关 举报
实验09结构体实验报告.doc_第1页
第1页 / 共8页
实验09结构体实验报告.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
一、实验目得 1.学会结构体类型变量得定义与使用方法。 2.能够运用结构体数组编写程序。 3.学会结构体指针得定义使用方法。 4.能够运用结构体指针作函数参数编写程序。 二、实验环境 (调试程序所使用得软硬件环境) 软件环境:VC++6、0 硬件环境:宏基 Intel 奔4 主频 2、8GHz,内存256MB 三、实验内容、结果及分析 1、题目1.建立一个有n(3<n≤10)个学生成绩得结构记录,包括学号、姓名与3门课程得成绩,输出总分最高得学生得姓名与总分。 源程序清单:(调试好得源程序代码) #include "stdafx、h" #include <iostream> #include <string> #include <cstring> using namespace std; const int N=10; struct rem { String num; string name; double mark[3]; double all; }; int main () { int n,i,mM应赋初值! ; double max; rem loq[N]; cout<<"请输入人数"<<endl; cin>>n; for(i=0;i<n;i++) { cout<<"请输入第"<<i+1<<"名同学得学号、姓名与第一二三门课程得成绩"<<endl; cin>>loq[i]、num>>loq[i]、name >>loq[i]、mark[0] >>loq[i]、mark[1] >>loq[i]、mark[2]; } for(i=0;i<n;i++) { loq[i]、all=loq[i]、mark[0]+loq[i]、mark[1]+loq[i]、mark[2]; } max=loq[0]、all; for(i=0;i<n;i++) { if(loq[i]、all>max) { max=loq[i]、all; m=i; } } cout<<"总分最高得学生为"<<loq[m]、name <<"总分为"<<loq[m]、all<<endl; return 0; } 主要标识符说明:(源程序中主要标识符含义说明) 声明结构体类型rem,包括学号(string类型)、姓名(string类型)、成绩(双精度型)、总成绩(双精度类型) struct rem { String num; string name; double mark[3]; double all; }; rem loq[N] 定义结构体类型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 date { int year; int month; int day; }; struct corre { string name; date bir; string tel; }; int main () { corre a[N]; int n,i,j; string m; cout<<"请输入人数"<<endl; cin>>n; for(i=0;i<n;i++) { cout<<"请输入第"<<i+1<<"个人得姓名"<<endl; cin>>a[i]、name; cout<<"输入生日"<<endl; cin>>a[i]、bir、year>>a[i]、bir、month>>a[i]、bir、day; cout<<"请输入电话"<<endl; cin>>a[i]、tel; } for(i=0;i<n-1;i++) { for(j=0;j<n-1-i;j++) { if(a[j]、name<a[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;i<n;i++) { cout<<a[i]、name<<'\t' <<a[i]、bir、year<<"/"<<a[i]、bir、month<<"/"<<a[i]、bir、day<<"/"<<'\t' <<a[i]、tel<<endl; } return 0; } 主要标识符说明:(源程序中主要标识符含义说明) 声明结构体类型date,包括年份(整型)、月份(整型)、天(整型) struct date { int year; int month; int day; }; 声明结构体类型corre,包括姓名(string型)、生日(date结构类型型)、电话号码(string型) struct corre { string name; date bir; string tel; }; corre a[N]定义结构体corre类型数组a[] int n,i,j;定义三个整型变量n为人数,i,j均为循环变量 string m;string型变量m用于交两个人得姓名 实验结果:(程序运行结果) 实验中遇到得问题及解决得方法 3、题目 3.编写程序,输入一个日期(年、月、日),计算并输出该日就是该年中得第几天。要求编写函数计算某日就是该年中得第几天,用结构指针作为函数参数,注意闰年问题。 源程序清单:(调试好得源程序代码) #include "stdafx、h" #include <iostream> using namespace std; struct nian { int 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,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; } else i=0; for(j=0;j<p->month;j++) { n=n+b[i][j]; } n=n+p->day; return n; } 主要标识符说明:(源程序中主要标识符含义说明) 声明结构体类型nian,包括年(整型)、月份(整型)、天(整型) struct nian { int year; int month; int day; }; int find(nian *p); 定义一个函数,其参数为结构指针。用于算出输入得日期就是第多少天 struct nian a={1,1,1};定义结构nian类型得变量a nian *p=&a;定义指针P并初始化指向a int n;整型,天数 实验结果:(程序运行结果) 实验中遇到得问题及解决得方法 四、实验体会(心得、收获) 此次实验我们学习了如何运用结构体来解决一些问题。学会结构体类型变量得定义与使用方法。并且运用结构体数组来进行编程。注意结构体得嵌套使用。并且学会使用带结构指针得参数得函数。在定义变量时要注意附初值,在定义指针时要注意初始化。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服