




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
天津理工大学计算机与通信工程学院实验报告2013 至 2014 学年 第 二 学期课程名称高级语言程序设计实验( 2 )实验名称复杂形式的对象实验时间 2014 年 4 月 14 日 第 3 节 至 第 6 节学号姓名专业信息安全主讲教师唐召东辅导教师唐召东软件环境VC+6硬件环境PC机实验目的(1)掌握对象数组、对象指针的使用方法;(2)掌握对象数组、对象指针和对象引用作为函数参数的使用方法;(3)掌握类对象作为成员的使用方法;(4)掌握友元的概率和使用方法;(5)掌握静态数据成员和静态成员函数的使用方法;(6)进一步了解C+面向对象程序设计的基本思想、基本方法和基本步骤;实验内容(应包括实验题目、实验要求、实验任务等)二、练习项目:1. Time类的框架定义如下:class Time/声明Time类public:Time( int = 0, int = 0, int = 0 ); / 带默认参数的构造函数/ set functionsvoid setTime( int, int, int );/ 设置hour, minute, second void setHour( int );/ 设置hour (确保数据在合理范围) void setMinute( int );/ 设置minute (确保数据在合理范围) void setSecond( int );/ 设置second (确保数据在合理范围) / get functions int getHour();/ 返回 hour int getMinute();/ 返回 minute int getSecond();/ 返回 second void printUniversal();/ 按24小时格式输出时间:23:56:12 void printStandard();/ 按12小时格式输出时间:11:56:12 (PM) 或 9:23:55(AM)private: int hour;/ 0 - 23 (24小时格式)int minute; / 0 - 59int second; / 0 - 59; / Timel类定义结束(1) 按照注释的要求完成所有成员函数的定义;(2) 在主程序中定义Time类对象,通过对象指针或引用调用上述成员函数以测试其正确性。2.设计一个用来表示直角坐标系的Location类,在主程序中创建类Location的两个对象A和B,要求A的坐标在第3象限,B的坐标点在第2象限,分别采用成员函数和友元函数计算给定两个坐标点之间的距离,要求按如下格式输出结果:A(x1, y1), B(x2, y2)Distance1=d1Distance2=d2其中:x1, x2, y1, y2为指定的坐标值,d1和d2为两个坐标点之间的距离。Location类框架可参考如下:class Location/声明类Locationpublic:Location(double,double);/构造函数double Getx();/成员函数,取x坐标的值double Gety();/成员函数,取y坐标的值double distance1(Location&);/成员函数,求两坐标点之间的距离friend double distance2(Location&, Location&);/友元函数,求两坐标点之间的距离 private:double x,y;3.使用C+的string类,将5个字符串按逆转后的顺序显示出来。例如,逆转前的5个字符串是:Germany Japan America Britain France逆转后的顺序输出字符串是:France Britain America Japan Germany4.设计一个模仿类magic来实现4*4的魔方阵。类的框架如下:class magic/声明魔方阵类magicpublic:void getdata();/输入初值成员函数void setfirstmagic();/设置初始魔方成员函数int generate();/生成最终魔方成员函数int printmagic();/显示魔方成员函数private:int m44;int step;int first;int sumj;所谓4*4的魔方阵,是指该矩阵的各行值的和等于各列值的和,并等于两对角线值的和,如:,其各行、各列以及对角线值的和都是64。求4*4的魔方阵的一般步骤提示如下:(1) 设置初始魔方的起始值和相邻元素之间的差值。例如上述魔方阵的初始魔方的起始值和相邻元素之间的差值分别为:first=1, step=2(2) 设置初始魔方元素的值。例如上述魔方的初始魔方阵为: (3) 生成最终魔方阵。方法如下:求最大元素和最小元素的和sum,本例为1+31=32。用32减去初始魔方阵所有对角线上元素的值,然后将结果放在原来的位置,即可求得最终的魔方阵。本例最终魔方阵为:(4)编写主程序,通过对象指针或引用调用上述成员函数以测试所设计的魔方类的正确性.5.声明一个Employee类,数据成员包括:一个long型的id,两个字符指针成员,代表职员的姓名和家庭住址,一个double数据,代表月薪。成员函数有:构造函数、析构函数、set_salary()和get_salary()代表修改和获取薪资、set_name()和get_name()代表修改和获取姓名、set_address()和get_address()代表修改和获取家庭住址,set_id()和get_id()用来修改获取当前职员的id号。在主程序中,创建对象数组调用上述函数以测试Employee类设计的正确性。Employee类的框架可参考:class Employee/声明Employee类public:Employee(long, char*, char*, double ); / 构造函数Employee();/ 析构函数/ set functionsvoid set_id(long);/ 设置idvoid set_salary(double);/ 设置salary void set_name(char * );/ 设置name void set_address(char* );/ 设置adress / get functionslong get_id();/ 返回id double get_salary();/ 返回 salary char* get_name();/ 返回 name char* get_addressSecond();/ 返回 address void print();/ 打印输出Employee的相关信息 private: long id;/ 工号 char *name;/ 姓名 char *address;/ 家庭住址 double salary;/ 月薪; / Employee类声明结束6.声明一个Student类,在该类中包括一个数据成员:score(代表课程成绩)、两个静态数据成员:total_score(代表总分),count(代表学生总人数)。成员函数有:构造函数、析构函数、account(int)用于设置分数、静态成员函数sum()返回所有学生的总成绩、静态成员函数average()返回所有学生的平均成绩、print()用于打印当前学生对象的成绩等。在主程序中,输入某班同学的成绩,并调用上述函数打印全班同学的成绩、求出全班学生的成绩之和与平均分等。Student类的框架可参考:class Student/声明Student类public:Student(int );/ 构造函数Student();/ 析构函数void account(int);/ 设置分数static int sum();/ 返回总成绩static double average();/ 返回平均成绩void print();/ 打印输出Student的相关信息private: int score;/ 分数 static int total_score;/ 总分 static int count;/ 总人数; / Student类声明结束注意:静态成员和非静态成员的初始化方式的区别。实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)1. 源代码:#includeusing namespace std;class Timepublic:Time(int = 0,int = 0,int = 0);void setTime(int,int,int);void setHour(int);void setMinute(int);void setSecond(int);int getHour()return hour;int getMinute()return minute;int getSecond()return second;void printUniversal();void printStandard();private:int hour;int minute; int second;Time:Time(int h,int m,int s)setTime(h,m,s);void Time:setTime(int h,int m,int s)setHour(h);setMinute(m);setSecond(s); void Time:setHour(int h)if(h = 0)&(h = 23)hour = h;elsehour = 0;cout小时输入错误!默认值为0= 0)&(m = 59)minute = m;elseminute = 0;cout分钟输入错误!默认值为0= 0)&(s = 59)second = s;else second = 0;cout秒钟输入错误!默认值为0endl; void Time:printUniversal()cout二十四小时制:endl;coutgetHour():getMinute():getSecond()endl;void Time:printStandard()cout十二小时制:endl;if(getHour() = 12)coutgetHour():getMinute():getSecond()(AM)endl;elsecoutgetHour()-12:getMinute():getSecond()(PM)endl;int main()int h,m,s;cout请输入小时:h;cout请输入分钟:m;cout请输入秒钟:s;Time A(h,m,s);A.printUniversal();A.printStandard();return 0;输出结果:2.源代码:#include#includeusing namespace std;class Locationpublic:Location(double,double);double getx();double gety();double distance1(Location&);friend double distance2(Location&,Location&);private:double x,y;double Location:distance1(Location &B)return sqrt(this-getx()-B.getx()*(this-getx()-B.getx()+(this-gety()-B.gety()*(this-gety()-B.gety();Location:Location(double a,double b)x = a;y = b;double distance2(Location &A,Location &B)return sqrt(A.getx()-B.getx()*(A.getx()-B.getx()+(A.gety()-B.gety()*(A.gety()-B.gety();double Location:getx()return x;double Location:gety()return y;int main()double a,b;cout请输入A点坐标:a;cinb;Location A(a,b);cout请输入B点坐标:a;cinb;Location B(a,b);coutDistance1=A.distance1(B)endl;coutDistance2=distance2(A,B)endl;return 0;输出结果:3.源代码:#include#includeusing namespace std;int main()string s100;string a;int i = 0;couta)si=a;i+;for(int i=i-1;i=0;i-)coutsi ;coutendl;return 0;输出结果:4.源代码:#includeusing namespace std;class magicpublic:void getdata(int,int);void setfirstmagic();void generate();void printmagic();private:int m44;int step;int first;int sum;void magic:getdata(int a,int b)step = b;first = a;void magic:setfirstmagic()int a = first;for(int i = 0;i 4;i+)for(int n = 0;n 4;n+)min = a;a = a+step;void magic:generate()sum = m00+m33;m00 = sum-m00;m03 = sum-m03;m30 = sum-m30;m33 = sum-m33;void magic:printmagic()for(int i = 0;i 4;i+)for(int n = 0;n 4;n+)coutmint;coutendl;int main()int a,b;cout请输入魔方起始值:a;cout请输入相邻元素差值:b;coutendl; magic A;A.getdata(a,b);A.setfirstmagic();A.generate();A.printmagic();return 0;输出结果:5.源代码:include#includeusing namespace std;class Employeepublic:Employee(long,string,string,double);void setId(long i)id = i;void setSalary(double s)salary = s;void setName(string n)name = n;void setAddress(string a)address = a;long getId()return id;double getSalary()return salary;string getName()return name;string getAddress()return address;void print();private:long id;string name;string address;double salary;Employee:Employee(long i,string n,string a,double s)setSalary(s);setName(n);setAddress(a);setId(i); void Employee:print()cout工号:tgetId()endl;cout姓名:tgetName()endl;cout地址:tgetAddress()endl;cout工资:tge
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年养老护理员高级面试必-备知识点与模拟题
- 2025年中国烟花爆竹安全技术规范解析及模拟题集
- 2025年高精度压力、差压变送器项目合作计划书
- 2025年低温多效海水淡化装置项目建议书
- 抢救药品培训课件
- 2025秋苏教版六年级上册数学教学计划
- 2025年保险中介服务项目建议书
- 抢救制度课件
- 2025年洗涤剂用4A沸石项目合作计划书
- 河北省部分示范高中2024-2025学年高三下学期三模化学试题(含答案)
- 铁路退休人员乘车优惠政策
- T-CACM 1212-2019 中医妇科临床诊疗指南 产后小便不通
- 人工智能导论课件 第十三章 类脑智能
- 2025年高考化学总复习《同分异构体的书写及数目判断》专项测试卷(带答案)
- (高清版)DB5134∕T 15.1-2021 康养中心建设与管理规范 第1部分:建设要求
- 2025春季学期国开电大本科《管理英语3》一平台在线形考综合测试形考任务试题及答案
- 光伏发电合作合同协议书8篇
- 医疗机构水电气设备维护流程
- 数据的形式与记录载体(教学设计)2024-2025学年清华版信息技术四年级上册
- 合规管理战略规划范文
- 餐饮服务与数字化运营 习题及答案 项目一
评论
0/150
提交评论