欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C++实验一-类与简单对象.doc

    • 资源ID:23967963       资源大小:192KB        全文页数:63页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++实验一-类与简单对象.doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC+实验一-类与简单对象天津理工大学实验报告天津理工大学实验报告学院(系)名称:计算机与通信工程学院姓名 学号 专业 计算机科学与技术班级教学 班实验项目实验一 类与简单对象课程名称高级程序设计语言II课程代码0667026实验时间2016年9月6日 第7、8节实验地点计算机软件实验室7-219批改意见成绩教师签字: 实验目的:(1)理解类和对象的概念;(2)掌握类与对象的定义方法;(3)理解类的成员的访问控制的含义,公有和私有成员的区别;(4)掌握构造函数和析构函数的含义与作用、定义方式和实现;(5)能够根据给定的要求定义类并实现类的成员函数;(6)掌握string类的使用方法(7)了解C+面向对象程序设计的基本思想、基本方法和基本步骤;(8)掌握MS Visual C+6.0或DEV C+调试C+程序的基本方法、基本步骤。实验内容:一、 实验名称:类和简单对象。二、 实验目的:(1)理解类和对象的概念;(2)掌握类与对象的定义方法;(3)理解类的成员的访问控制的含义,公有和私有成员的区别;(4)掌握构造函数和析构函数的含义与作用、定义方式和实现;(5)能够根据给定的要求定义类并实现类的成员函数;(6)掌握string类的使用方法(7)了解C+面向对象程序设计的基本思想、基本方法和基本步骤;(8)掌握MS Visual C+6.0或DEV C+调试C+程序的基本方法、基本步骤。三、 练习项目1.输入下列程序,按要求进行实验,并记录实验的结果。#include <iostream>using namespace std;class Coordinatepublic:Coordinate(int x1, int y1)x=x1; y=y1;Coordinate(Coordinate &p);Coordinate()cout<<"Destructor is called."<<endl;int getx()return x;int gety()return y;private:int x, y;Coordinate:Coordinate(Coordinate &p)x=p.x; y=p.y;cout<<"Copy initianization constructor is called."<<endl;int main()Coordinate p1(3,4);Coordinate p2(p1);Coordinate p3=p2;cout<<"p3=("<<p3.getx()<<","<<p3.gety()<<")"<<endl;return 0;(1) 记录程序的运行结果(2) 将Coordinate类中带有两个参数的构造函数进行修改,在函数体内增加如下语句:cout<<”Constructor is called.”<<endl;重新记录程序的运行结果,并解释输出结果。(3) 按下列要求进行测试。在主函数体内,添加如下语句:Coordinate p4;Coordinate p5(2);测试程序会出现什么错误?为什么?如何对已有的构造函数进行适当的修改?(4) 结合第(2)和第(3)步的修改和运行结果:分析创建不同的对象时如何调用适当的构造函数?1. .2.调用一次构造函数。3.Coordinate p4;Coordinate p5(2);错误,因为类没有默认的构造函数,也没有无参数的构造函数和一个参数的构造函数;改正可为: 将Coordinate(int x1, int y1)x=x1; y=y1; 改为Coordinate(int x1=0, int y1=0)x=x1; y=y1;4.系统会自动根据参数的类型和参数的个数,调用合适的函数。2.根据注释语句的提示实现类Date的成员函数,并将完整的程序编译、连接成功以保证程序能够正确运行。#include <iostream.h>class Datepublic:void printDate();/显示日期void setDay(int);/设置日的值void setMonth(int); /设置月的值void setYear(int); /设置年的值private:int day, month, year;int main()Date testDay;testDay.setDay(5);testDay.setMonth(10);testDay.setYear(2010);testDay.printDate();return 0;完整如下:#include <iostream.h>class Datepublic:void printDate();/显示日期void setDay(int);/设置日的值void setMonth(int); /设置月的值void setYear(int); /设置年的值private:int day, month, year;void Date:setDay (int a)day=a;void Date:setMonth (int b)month=b;void Date:setYear (int c)year=c;void Date:printDate()cout<<year<<"."<<month<<"."<<day<<endl;int main()Date testDay;testDay.setDay(5);testDay.setMonth(10);testDay.setYear(2010);testDay.printDate();return 0;运行结果:3.下面是一个计算器类的定义,请完成该类的成员函数的实现,并设计一个主函数使用该类和相关成员函数以测试该类设计的正确性。#include <iostream>using namespace std;class coutnerpublic:counter(int number);/构造函数void increment();/给value原值加1void decrement();/给value原值减1int getvalue();/计数器值void print();/显示计数privat取得e:int value;/数据成员;int main()./定义counter类的几个对象并调用有关成员函数return 0;程序如下:#include <iostream>using namespace std;class coutnerpublic:coutner(int number):value(number) /构造函数void increment(); /给value原值加1void decrement();/给value原值减1 int getvalue(); /取得计数器值 void print(); /显示计数 private:int value; /数据成员;void coutner:increment() /给value原值加1value=value+1; void coutner:decrement()/给value原值减1value=value-1;int coutner:getvalue() /取得计数器值return value; void coutner:print() /显示计数cout<<value<<endl;int main()int s;cin>>s;coutner o1(s);/定义counter类的几个对象并调用有关成员函数o1.increment();o1.print();coutner o2(s);/定义counter类的几个对象并调用有关成员函数o2.decrement();o2.print();return 0;4.定义一个类ClsName,要求该类设计如下:(1)该类有两个整型数据成员x和y;(2)为该类重载三个不同的构造函数:分别为无参数、带一个参数和带两个参数的构造函数,要求在构造函数中输出必要的信息以示区别;(3)设计2个成员函数用来读取数据成员x和y;(4)设计2个成员函数用来设置数据成员x和y;(5)设计1个成员函数用来在屏幕上打印输出数据成员x和y;(6)在main()函数中用三个不同的构造函数创建3个对象,并使用所有的成员函数对这些对象进行必要的操作。程序如下:#include <iostream>using namespace std;class ClsName private:int x,y;public:ClsName(int a,int b)x=a;y=b;ClsName(int c)x=c;y=0;ClsName()x=1;y=1;int getx()return x;int gety()return y;void print();void ClsName:print()cout<<x<<" "<<y<<endl;int main()ClsName o1,o2(3),o3(4,5); o1.print(); o2.print(); o3.print(); return 0;运行结果:5.建立类cylinder,包括两个数据成员radius和height,分别表示圆柱体的半径和高度, cylinder类的构造函数被传递了两个double值来初始化这两个成员;定义成员函数area()和volume用来求圆柱体的表面积和体积,定义成员函数print()打印cylinder类的相关信息。最后,在主函数中对cylinder类的设计进行测试。程序如下:#include <iostream>using namespace std;class cylinderprivate:double radius,height,a,v;public:cylinder(double a,double b)radius=a;height=b;double area();double volume();void print(cylinder & t);double cylinder:volume() double v;v=height*radius*radius*3.14;return v;double cylinder:area()double a;a=2*radius*3.14*height;return a;void cylinder:print(cylinder & t)cout<<"area="<<t.area()<<" "<<"volume="<<t.volume()<<endl;int main()cylinder o1(3,3);o1.print(o1);return 0;运行结果:6.定义一个学生类CStudent实现简单的学籍管理功能,要求该类至少实现以下功能:(1) 录入学生的基本信息(包括姓名,学号,性别,年龄,专业,入学时间,各门功课成绩)(2) 输出学生的基本信息(3) 选课(输入时间和所选的课程)(4) 统计每门课的学分绩点(5) 统计每学期的平均学分绩点(6) 统计重考科目(7) 统计重修科目程序如下:#include <iostream>#include <string>using namespace std;class CStudentpublic:CStudent(string n,string nu ,string s,int a,string z,int y,int m,int d,int ma,int e,int cyy) /构造函数 name=n;number=nu;sex=s;age=a;zy=z;year=y;month=m;day=d;math=ma;english=e;c=cyy;void print() /打印出学生信息cout<<"姓名:"<<name<<'n'<<"学号:"<<number<<'n'<<"性别:"<<sex<<'n'<<"年龄:"<<age<<'n'<<"专业:"<<zy<<'n'<<"入学年月日:"<<year<<"."<<month<<"."<<day<<'n'<<"数学成绩:"<<math<<" "<<"英语成绩:"<<english<<" "<<"c成绩:"<<c<<'n'<<endl; void xuanke(); /声明选课日期,课程函数 float jsjidian(float fenshu) /由分数算绩点函数 float jd; if(fenshu<60) jd=0;else if(60<=fenshu&&fenshu<65) jd=1;else if(65<=fenshu&&fenshu<70) jd=1.5;else if(70<=fenshu&&fenshu<75) jd=2;else if(75<=fenshu&&fenshu<80) jd=2.5;else if(80<=fenshu&&fenshu<85) jd=3;else if(85<=fenshu&&fenshu<90) jd=3.5;else if(90<=fenshu&&fenshu<96) jd=4;else jd=4.5;return jd;void jidian(CStudent & t); /声明分别计算每科的绩点函数private: string name,sex,zy,number;int age,year,month,day,math,english,c;float mj,ej,cj;void CStudent:xuanke() /定义选课日期,课程函数int nian,yue,ri;cout<<"输入选课年月日"<<endl;cin>>nian>>yue>>ri;cout<<'n'<<endl;string kecheng;cin>>kecheng;cout<<"选课日期为:"<<nian<<"."<<yue<<"."<<ri<<" "<<kecheng<<endl;void CStudent:jidian(CStudent & t) /分别计算每科的绩点函数,平均绩点,并打印出来,若绩点为0,则为重考科目,并打印出来 float mjd,ejd,cjd,avejd;mjd=t.jsjidian(math);ejd=t.jsjidian(english);cjd=t.jsjidian(c);cout<<"数学绩点:"<<mjd<<" "<<"英语绩点:"<<ejd<<" "<<"c绩点:"<<cjd<<endl;avejd=(mjd*6+ejd*4+cjd*4)/(6+4+4);cout<<"平均绩点为:"<<avejd<<'n'<<endl;if(mjd=0) cout<<"数学为重考科目"<<endl;if(ejd=0) cout<<"英语为重考科目"<<endl;if(cjd=0) cout<<"c为重考科目"<<endl;int main()CStudent o1("raven","20091945","男",21,"计算机科学与技术",2009,9,12,94,76,91);o1.print();o1.xuanke();o1.jidian(o1);CStudent o2("calar","20091999","男",21,"计算机科学与技术",2009,9,12,34,36,91);o2.print();o2.xuanke();o2.jidian(o1);return 0;运行结果:注意:(1)新设计的类中所需要的数据成员需要根据所要实现的功能自行设计;(2)用一个演示程序完成对所设计的新类的功能测试,并给出测试数据和实验结果;(3)为增加程序可读性,请在程序中对类成员进行适当注释说明;实验要求:(1)实验前做好预习,并写出预习报告。(2)实验期间禁止做与实验无关的项目、以及浏览网页、打游戏等。(3)认真完成并按时提交实验报告。-

    注意事项

    本文(C++实验一-类与简单对象.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开