C++上机实验报告 .pdf
《C++上机实验报告 .pdf》由会员分享,可在线阅读,更多相关《C++上机实验报告 .pdf(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+上机实验报告实验名称:自定义数据类型类和对象专业班级:姓名:学号:实验日期:名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 36 页 -目录1.实验目的2.实验内容3.程序代码4.调试结果5.实验心得名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 36 页 -1.实验目的实验 7(1)掌握结构体类型变量的定义和使用;(2)掌握结构体类型组的概念和应用;(3)了解链表的概念,初步学会对简单链表进行操作。实验 8(1)掌握声明类的方法,类和类的成员的概念以及定义对象的方法;(2)初步掌握用类和对象编制基于对象的程序;(3)学习检查和调试基于对象的程序。2.实验内容实
2、验 7 编程序,然后上机调试。(1)定义一个结构体变量(包括年,月,日),编程序,要求输入年,月,日,程序能计算并输出该日在本年中是第几天。注意闰年问题。(2)编写一个函数 print,打印一个学生的成绩数组,该数组中有5个学生的数据,每个学生的数据包括num(学号),name(姓名),score3(3 门课的成绩)。用主函数输入这些数据,用 print函数输出这些数据。(3)有 10 个学生,每个学生的数据包括学号,姓名,3 门课的成绩,从键盘输入 10 个学生的数据,要求打印出 3 门课总平均成绩,名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 36 页 -以及最高分的学生的
3、数据(包括学号,姓名3 门课的成绩,平均分数)。要求用一个 cin 语句输入 10 个学生数据;用一个average 函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主程序中输出。(4)建立单向动态链表,并对它,删除和输出等操作。包括以下任务:.写一个函数 creat,用来建立一个动态链表。各结点的数据有键盘输入。.写一个函数 print,将上题建立的链表中各结点的数据依次输出。.写一个函数 del,用来删除动态链表中一个指定的结点(由实参指定某一学号,表示要删除该学生结点)。.写一个函数 insert,用来向动态链表插入一个结点。.将以上 4 个函数组成一个程
4、序,由主程序先后调用这些函数,实现链表的建立,输出,删除和插入,在主程序中指定需要删除和插入的结点。实验 8(1)有以下程序:#include using namespace std;class Time /定义 Time 类名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 36 页 -public:/数据成员为公用的int hour;int minute;int sec;int main()Time t1;/定义 t1 为 Time 类对象cint1.hour;/输入设定的时间cint1.minute;cint1.sec;coutt1.hour:t1.minute:t1.sece
5、ndl;/输出时间return 0;改写程序,要求:.将数据成员改为私有的;.将输入和输出的功能改为由成员函数实现;.在类体内定义成员函数。然后编译和运行程序。(2)分别给出如下的3 个文件:.含类定义的头文件student.h 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 36 页 -/student.h (这是头文件,在此文件中进行类的声明)class Student /类声明public:void display();/公用成员函数原型声明 private:int num;char name20;char sex;.包含成员函数定义的源文件student.cpp/stud
6、ent.cpp 在此文件中进行函数的定义#include#includestudent.h /不要漏写此行,否则编译通不过void Student:display()/在类外定义 display类函数coutnum:numendl;coutname:nameendl;coutsex:sexendl;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 36 页 -.包含主函数的源文件main.cpp/mian.cpp 主函数模块#include#includestudent.h /将类声明头文件包含进来int main()Student stud;/定义对象stud.display()
7、;/执行 stud 对象的 display函数return 0;请完善该程序,在类中增加一个对数据成员赋初值的成员函数set_value,上机调试并运行。(3)需要求 3 个长方柱的体积,请编一个基于对象的程序。数据成员 length(长),width(宽),height(高)。要求用成员函数实现以下功能:.由键盘分别输入 3 个长方柱的长,宽,高;.计算长方柱的体积;.输出 3 个长方柱的体积。请编写程序,上机调试并运行。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 36 页 -3.程序代码实验 7(1)#include using namespace std;struct
8、int year;int month;int day;date;int main()int days;coutdate.yeardate.monthdate.day;switch(date.month)case 1:days=date.day;break;case 2:days=date.day+31;break;case 3:days=date.day+59;break;case 4:days=date.day+90;break;case 5:days=date.day+120;break;case 6:days=date.day+151;break;case 7:days=date.day
9、+181;break;名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 36 页 -case 8:days=date.day+212;break;case 9:days=date.day+243;break;case 10:days=date.day+273;break;case 11:days=date.day+304;break;case 12:days=date.day+334;break;if(date.year%4=0&date.year%100!=0)|date.year%400=0)&date.month=3)days+=1;coutdate.month/date.d
10、ayis thedaysth day in date.year.endl;return 0;(2)#include#include using namespace std;const int n=5;struct student char num6;char name8;名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 36 页 -int score4;stun;int main()void print(student stu);int i,j;for(i=0;in;i+)coutinput score of studenti+1:endl;coutstui.num;coutstu
11、i.name;for(j=0;j3;j+)coutscorej+1stui.scorej;coutendl;print(stu);return 0;void print(student stu)名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 36 页 -int i,j;coutNO.name score1 score2 score3endl;for(i=0;in;i+)coutstui.num setw(10)stui.name ;for(j=0;j3;j+)coutsetw(3)stui.scorej ;coutendl;(3)#include#include using n
12、amespace std;const int n=3;struct student char num6;char name8;int score4;float avr;stun;名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 36 页 -int main()int i,j,max,maxi,sum;float average;for(i=0;in;i+)coutinput scores of studenti+1endl;coutstui.num;coutstui.name;for(j=0;j3;j+)coutscorej+1stui.scorej;coutendl;avera
13、ge=0;max=0;maxi=0;for(i=0;i,n;i+)sum=0;for(j=0;jmax)max=sum;maxi=i;average/=n;cout NO.name score1 score2 score3 averageendl;for(i=0;jn;i+)coutsetw(8)stui.num setw(10)stui.name ;for(j=0;j3;j+)coutsetw(3)stui.scorej ;coutstui.avrendl;coutaverage=averageendl;coutThe highest score is:stumaxi.name,score
14、total:maxendl;return 0;名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 36 页 -(4).写一个函数 creat,用来建立一个动态链表。各结点的数据有键盘输入。#include using namespace std;#define NULL 0 struct student long num;float score;student*next;int n;studnt*creat(void)student*head;student*p1,*p2;n=0;p1=p2=new student;cinp1-nump1-score;head=NULL;while
15、(p1-num!=0)n=n+1;if(n=1)head=p1;名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 36 页 -else p2-next=p1;p2=p1;p1=new student;cinp1-nump1-score;p2-next=NULL;return(head);.写一个函数 print,将上题建立的链表中各结点的数据依次输出。void print(student*head)student*p;coutNow,Thesenrecords are:endl;p=head;if(head!=NULL)do coutnum scorenext;while(p!=
16、NULL);.写一个函数del,用来删除动态链表中一个指定的结点(由实参名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 36 页 -指定某一学号,表示要删除该学生结点)。#include using namespace std;#define NULL 0 struct student long num;float score;student*next;int n;student*del(student*head,long,num)student*p1,*p2;if(head=NULL)coutlist null!num&p1-next!=NULL)p2=p1;p1=p1-ne
17、xt;if(num=p1-num)if(p1=head)head=p1-next;else p2-next=p1-next;coutdelete:numendl;n=n-1 名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 36 页 -else coutcannot findnext=NULL;else while(p0-nump1-num)&(p1-next!=NULL)p2=p1;p1=p1-next;if(p0-numnum)if(head=p1)head=p0;else p2-next=p0;p0-next=p1;else p1-next=p0;p0-next=NULL;
18、名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 36 页 -n=n+1;return(head);.将以上 4 个函数组成一个程序,由主程序先后调用这些函数,实现链表的建立,输出,删除和插入,在主程序中指定需要删除和插入的结点。#include using namespace std;#define NULL 0 struct student long num;float score;student*next;int n;int main()student*creat(void);student*del(student*,long);student*insert(student
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+上机实验报告 2022 C+ 上机 实验 报告
限制150内