刘超七班2015年度205243C(第四次)_第1页
刘超七班2015年度205243C(第四次)_第2页
刘超七班2015年度205243C(第四次)_第3页
刘超七班2015年度205243C(第四次)_第4页
刘超七班2015年度205243C(第四次)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

_LIAOCHENGUNIVERSITY计算机学院实验报告【2015~2016学年第2学期】【一、基本信息】【实验课程】C++语言程序设计【设课形式】独立□非独立☑【课程学分】3【实验项目】多态、友元、虚函数、模板【项目类型】基础☑综合□设计□研究创新□其它[]【项目学时】4【学生姓名】刘超【学号】2015205243【系别专业】软件测试【实验班组】2015级7班组台【同组学生】【实验室名】综合实验楼【实验日期】2016.5.10【报告日期】2016.5.17【二、实验教师对报告的最终评价及处理意见】_实验成绩: (涂改无效)指导教师签名:李寰2016年5月20日注:要将实验项目、实验课程的成绩评定及课程考核办法明确告知学生,并报实验管理中心备案谢谢阅读_【三、实验预习】实验目的和要求:1.理解多态性的概念,掌握虚函数的作用及使用方法。2.理解纯虚函数和抽象类的概念和用法。3.掌握友元的概念、友元函数的定义与使用方法。4.掌握静态数据成员与静态成员函数的定义与使用方法。精品文档放心下载实验内容和原理或涉及的知识点(综合性实验):1.先建立一个职工类Employee,包含数据成员name(职工姓名),ID(职工编号)。以它为基类,感谢阅读派生出经理类Manager和技术人员类Technician,在经理类中增加数据成员salary(代表经理感谢阅读的月工资),在技术人员类中增加数据成员wage(代表每小时的工资数)和hours(月工作时数)。感谢阅读在定义类时,所有类中必须包含有构造函数、析构函数、修改和获取所有数据成员的函数,以及谢谢阅读计算职工工资的虚函数,输出职工信息的虚函数。在主程序中通过Employee指针分别访问经理精品文档放心下载对象和技术人员对象,调用验证相应方法。2.shape类是一个表示形状的抽象类,area()为求图形面积的成员函数,total()则是一个通用的用谢谢阅读以求不同形状的图形面积总和的公共函数。请从 shape类派生三角形类(triangle)、矩形类感谢阅读(rectangle),并在主程序中调用total()函数计算给出shape数组中所有形状的面积之和。谢谢阅读【提示:total函数的原型可以为doubletotal(shape*s[],intcnt);其中,s为shape指针的数组,精品文档放心下载cnt为数组中元素个数。】_3.设计并测试点类Point,其数据成员是直角坐标系的点横坐标和纵坐标,友元函数distance用来感谢阅读计算两点间的距离。定义函数模板,实现数组的冒泡排序。实验条件(实验设备、软件、材料等):1、装有Windows操作系统的微型计算机;2、C++集成开发环境软件。实验设计方案(实验方法、步骤、操作过程、设计型实验、实验数据记录表格):谢谢阅读1、完成实验内容部分题目程序代码的编写。2、调试运行程序,直到程序符合题目要求。3、将程序的源代码和执行结果的截图贴在实验报告的【四】部分。精品文档放心下载4、对实验进行总结,认真填写【五、实验结果分析】部分。感谢阅读实验预习成绩(涂改无效) 合格□ 不合格□_【四、实验过程、数据和实验结果记录】_①实验方法、步骤、操作过程的记录描述或程序代码。②实验过程中输入/输出数据、程序运行结果的记录。(可加附页)感谢阅读1.////1. 先建立一个职工类Employee,包含数据成员name(职工姓名),ID(职工编号)。感谢阅读//以它为基类,派生出经理类Manager和技术人员类Technician,在经理类中增加数据成感谢阅读//员salary(代表经理的月工资),在技术人员类中增加数据成员wage(代表每小时的感谢阅读//工资数)和hours(月工作时数)。在定义类时,所有类中必须包含有构造函数、析构函数、精品文档放心下载//修改和获取所有数据成员的函数,以及计算职工工资的虚函数,输出职工信息的虚函数。感谢阅读//在主程序中通过Employee指针分别访问经理对象和技术人员对象,调用验证相应方法。感谢阅读#include<iostream>#include<string>usingnamespacestd;classEmployee{protected:stringname,Id;public:Employee():name("无"),Id("无")谢谢阅读{}~Employee(){}virtualvoidsetinformation()精品文档放心下载{cout<<"请输入职员的姓名与编号:"<<endl;感谢阅读_}virtualintgongzi(){}virtualvoiddisplay(){}};classManager:publicEmployee谢谢阅读{private:intsalary;public:Manager():salary(0){};~Manager(){}intgongzi(){returnsalary;}voiddisplay(){cout<<"该经理的姓名为:"<<name<<",员工编号为:"<<Id<<",月工资为:感谢阅读"<<gongzi()<<endl;_}voidmodify(){cout<<"请输入经理的姓名、ID以及月工资!"<<endl;精品文档放心下载cin>>name>>Id>>salary;cout<<"信息修改成功"<<endl;}};classTechnicina:publicEmployee谢谢阅读{private:intwage,hours;public:Technicina():wage(0),hours(0)谢谢阅读{}~Technicina(){}intgongzi(){return(wage*hours);}voiddisplay(){_cout<<"该技术人员的姓名为:"<<name<<",技术人员的员工编号为:"<<Id<<",精品文档放心下载月工资为:"<<gongzi()<<endl;}voidmodify(){cout<<"请输入技术人员的姓名、ID、工作时间以及每小时的工资数!"<<endl;精品文档放心下载cin>>name>>Id>>hours>>wage;感谢阅读cout<<"信息修改成功"<<endl;}};intmain(){Employee*p;Employee*q;Technicinaa;Managerb;a.modify();b.modify();p=&a;q=&b;p->display();q->display();_return0;}2.////2.shape类是一个表示形状的抽象类,area()为求图形面积的成员函数,total()精品文档放心下载//则是一个通用的用以求不同形状的图形面积总和的公共函数。请从shape类派生三角感谢阅读//形类(triangle)、矩形类(rectangle),并在主程序中调用total()函数计算给谢谢阅读//出shape数组中所有形状的面积之和。//【提示:total函数的原型可以为doubletotal(shape*s[],intcnt);精品文档放心下载//其中,s为shape指针的数组,cnt为数组中元素个数。】谢谢阅读#include<iostream>#include<string>#include<math.h>usingnamespacestd;classshape{public:virtualdoublearea(){}_};classtriangle:publicshape精品文档放心下载{public:triangle(doublex,doubley,doublez):a(x),b(y),c(z){}谢谢阅读triangle():a(0),b(0),c(0){}voidsetbianchang(){cout<<"请输入三角形的三边长!"<<endl;精品文档放心下载cin>>a>>b>>c;}doublearea(){doublep=0.5*(a+b+c);精品文档放心下载returnsqrt(p*(p-a)*(p-b)*(p-c));感谢阅读}private:doublea,b,c;};classrectangle:publicshape谢谢阅读{_private:doublea,b;public:rectangle():a(0),b(0){}rectangle(doublex,doubley):a(x),b(y){}谢谢阅读doublearea(){return(a*b);}voidsetbianchang(){cout<<"请输入矩形的长与宽!"<<endl;cin>>a>>b;}};doubletotal(shape*s[],intcnt)谢谢阅读{inti=0;doublemianji=0;for(i=0;i<cnt;i++){mianji+=s[i]->area();_}cout<<"所有图形的面积之和为:"<<mianji<<endl;精品文档放心下载}intmain(){shape*p[3];triangles1(6.0,8.0,10.0),s2(6.0,8.0,10.0);谢谢阅读rectanglea(2.0,4.0);p[2]=&a;p[0]=&s1;p[1]=&s2;total(p,3);}_3.#include<iostream>#include<string>#include<math.h>usingnamespacestd;classpoint{private:doubleh,z;public:point(doublea,doubleb):h(a),z(b)感谢阅读{}~point(){}friendvoidd(point&z1,point&z2);精品文档放心下载};voidd(point&z1,point&z2){doubled;d=sqrt((z1.h-z2.h)*(z1.h-z2.h)+(z1.z-z2.z)*(z1.z-z2.z));谢谢阅读cout<<"两点之间的距离为:"<<d<<endl;感谢阅读}intmain()_{pointz1(1,2),z2(2,3);d(z1,z2);return0;}4.//4.定义函数模板,实现数组的冒泡排序。#include<iostream>usingnamespacestd;template<typenameT>voidmaopao(Ta[],intcont)谢谢阅读{inti=0;_Tb;for(i=0;i<cont-1;i++){for(intn=0;n<5-1-i;n++){if(a[n]>a[n+1]){b=a[n];a[n]=a[n+1];a[n+1]=b;}}}for(i=0;i<cont;i++){cout<<a[i]<<" ";}}intmain(){in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论