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

    面向对象程序设计资料实验册.doc

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

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

    面向对象程序设计资料实验册.doc

    ,.学 生 实 验 报 告 册(理工类)课程名称:面向对象程序设计 专业班级: _13计统2班_ 学生学号:_1305103038 学生姓名: 曹亚孟 _ _ 所属院部: 计算机工程学院 指导教师: 吴刚 20 15 20 16 学年 第 一 学期 金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验项目名称: C+基础程序设计 实验学时: 3 同组学生姓名: 无 实验地点: A107 实验日期: 9.18 实验成绩: 批改教师: 吴刚 批改时间: 一、实验目的和要求1.了解Visual C+6.0或者Visual C+2005以上版本的特点。2.学会Visual C+6.0或者Visual C+2005以上版本的开发环境,来创建和调试标准的C+控制后台应用程序。3.学会使用Visual C+6.0或者Visual C+2005以上版本的开发环境中的程序调试功能,例如单步执行、设置断点、观察变量值等。4.掌握string类型的用法。5.掌握C+语言编程时输入和输出格式控制。6.掌握多文件结构的使用。7.掌握重载函数的使用。二、实验设备和环境1.计算机每人一台。2.安装WindowsXP或者以上版本操作系统。3.安装Visual C+6.0或者Visual C+2005以上版本。三、实验内容及步骤1.给出Visual C+调试一个简单应用程序的步骤,要求程序输出字符串“Hello!Welcome to C+!”。程序:#include<iostream>using namespace std;int main() cout<<"Hello!"<<endl; cout<<"Welcome to C+!"<<endl; return 0;运行结果:2.调试以下程序,观察运行结果。#include<iostream>using namespace std;void main()int a,b=10;int&ra=a;a=20;cout<<a<<endl;cout<<ra<<endl;cout<<&a<<endl;cout<<&ra<<endl;ra=b;cout<<a<<endl;cout<<ra<<endl;cout<<b<<endl;cout<<&a<<endl;cout<<&ra<<endl;cout<<&b<<endl;运行结果及结果分析:3.编写一程序,实现九九乘法表的2中格式输出,格式如下:(1) 1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 3 3 6 4 4 8 5 5 10 6 6 12 7 7 14 8 8 16 9 9 18 (2) 1 2 3 4 5 6 7 8 9 1 1 2 2 4 3 3 6 9 4 4 8 12 16 5 5 10 15 20 25 6 6 12 18 24 30 36 7 7 14 21 28 35 42 49 8 8 16 24 32 40 48 56 64 9 9 18 27 36 45 54 63 72 81注:要求每种输出格式均写成函数形式程序:#include <iostream>using namespace std;int main()int i,j; cout<<"显示1:"<<endl;for(i=1;i<10;i+)for(j=1;j<10;j+)cout<<i*j<<"t"cout<<endl;cout<<endl<<"显示2:"<<endl;for(i=1;i<10;i+) for(j=1;j<=i;j+) cout<<j*i<<"t" cout<<endl; return 0;运行结果:4将第3题改成多文件结构实现。要求该工程中有3个.cpp文件和1个.h文件。程序:.h:#include <iostream>using namespace std;int cfb1(int x,int y);int cfb2(int x,int y);.cpp:(1)#include "3head.h"void main()int i,j;cout<<cfb1(i,j)<<endl;cout<<cfb2(i,j)<<endl;(2)#include "3head.h"int cfb1(int i,int j)cout<<"显示1:"<<endl;for(i=1;i<10;i+)for(j=1;j<10;j+)cout<<i*j<<"t"cout<<endl;return 0;(3)#include "3head.h"int cfb2(int i,int j)cout<<"显示2:"<<endl;for(i=1;i<10;i+) for(j=1;j<=i;j+) cout<<j*i<<"t" cout<<endl; return 0;5.编程实现比较两个数的大小,求较大值(要求使用重载函数实现)。程序:#include<iostream>using namespace std;int max(int a,int b)return a>b?a:b;int main()int m,n;cout<<"Enter two integer:"cin>>m>>n;cout<<"The bigger is:"<<max(m,n)<<endl;return 0;运行结果:6.编写一个程序,判断一个字符串是否为另一个字符串的子串,若是,返回字串在主串中的位置。要求不适用strstr函数,自己编写一个子函数实现。(建议使用string类型,而非字符数组。)程序:#include <iostream>#include "string.h"using namespace std;void main()char a="how are you?"char b="are"int i=0,j,na,nb,flag;na=strlen(a);nb=strlen(b);flag=1;for(i=0;i!=0;i+)if(ai=bj) j+;运行结果:四、实验体会熟悉了C+开发环境的使用,对C+编程有了初步的了解,能够编写一些简单的和C类似的程序。实验项目名称: 类与对象 实验学时: 3 同组学生姓名: 无 实验地点: A107 实验日期: 9.25 实验成绩: 批改教师: 吴刚 批改时间: 一、实验目的和要求1.掌握类和对象的概念、定义方法以及类与对象的简单用法。2.掌握成员函数的实现与调用方法。3.深刻领会类与对象的区别。4.理解类实现数据隐藏和封装的原理。5.掌握构造函数、拷贝构造函数、分析构造函数的定义和使用,尤其注意组合类中它们的调用顺序。二、实验设备和环境1.计算机每人一台。2.安装WindowsXP或者以上版本操作系统。3.安装Visual C+6.0或者Visual C+2005以上版本。三、实验内容及步骤1.用面向对象的程序设计方法实现栈的操作。栈又叫堆栈,是一个常用的数据结构,它是一种运算受限的线性表,仅允许在表的一端进行插入和删除运算,是一种后进先出表。提示:栈用一维整型数组来表示,栈的大小定义为10;栈定义为一个类stack;实现栈的创建、进栈和出栈、栈的消亡。进栈函数:void push(int n);出栈函数:int pop(void);程序:#include<iostream>using namespace std;const int maxsize=10;class stackpublic:void init()top=-1;void push(int n);int pop();void dead();private:int top;int datamaxsize;void stack:push(int n)if(top=maxsize)cout<<"栈已满!"<<endl;elsetop+;datatop=n;int stack:pop()if(top<0)cout<<"栈下溢!"<<endl;return 0;elsetop-;return datatop+1;void stack:dead()if(top<0)cout<<"栈下溢!"<<endl;elsetop-;cout<<"栈中还剩"<<(top+1)<<"个元素"<<endl;int main()stack seqstack;int i,x,m;seqstack.init();cout<<"请输入10个数字:"for(i=0;i<maxsize;i+)cin>>x;seqstack.push(x);cout<<"请输入你所需要的操作:"<<endl;cout<<1<<""<<"元素出栈!"<<endl;cout<<2<<""<<"栈的消亡!"<<endl;cin>>m;switch(m) case 1: for(i=0;i<maxsize;i+) cout<<""<<seqstack.pop(); break; case 2: for(i=0;i<maxsize;i+) seqstack.dead(); break; return 0;运行结果:2.将第1题中的实验内容改为多文件结构实现。程序:#include <iostream>using namespace std;#define N 10class stackstatic int top;int aN;public:void push(int n);void pop();void die();#include <head.h>int stack:top=0;void stack:push(int n)if(top<N)atop+=n;cout<<"进栈数据:"<<n<<endl;elsecout<<"堆栈已经满了,不能再加数进去了!"<<endl;void stack:pop()if(top<=0)cout<<"堆栈已经空了,没有数据了!"<<endl;elsecout<<"出栈数据:"cout<<a-top<<endl;void stack:die()int i;for(i=0;i<N;i+)ai=0;cout<<"消亡堆栈!"<<endl;#include "head.h"void main()int n,m;cout<<"输入两个你要输入的数据N和M:"cin>>n>>m;stack s;s.push(n);s.push(m);s.pop();s.pop();s.pop();s.die();3.设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和折构函数、拷贝构造函数、内联成员函数、组合类等。程序:#include <iostream>#include <string>using namespace std;class Dateprivate: int year;int month; int day; public: Date()Date(int y,int m,int d)year=y; month=m; day=d; void set() cin>>year>>month>>day; void display() cout<<year<<"年"<<month<<"月"<<day<<"日" ; class Personprivate: int num; char sex; Date birthday; char ID18;public:Person()Person(int n,int y,int m,int d,char id18,char s=m):birthday(y,m,d) num=n; sex=s; strcpy(ID,id);Person(Person& p)num=p.num;sex=p.sex;birthday=p.birthday;strcpy(ID,p.ID); void input()cout<<"录入数据:"<<endl;cout<<"编号:" cin>>num;cout<<"性别(m/f):"cin>>sex;cout<<"生日:"birthday.set();cout<<"身份证号:"cin>>ID; ID18=0;cout<<endl;void output()cout<<"编号:"<<num<<endl;cout<<"性别:"<<sex<<endl;cout<<"生日:"birthday.display();cout<<endl;cout<<"身份证号:"<<ID<<endl; Person()cout<<" "<<num<<"号人员已经录入"<<endl;int main()Person p1;p1.input();p1.output();return 0;运行结果:4.设计一个计算薪水的类Payroll,它的数据成员包括:单位小时的工资、已经工作的小时数、本周应付工资数。在主函数定义一个具有10个元素的对象数组(代表10个雇员)(可以定义普通对象数组,也可以定义堆对象数组)。程序询问每个雇员本周已经工作的小时数,然后显示应得的工资。要求:输入有效性检验:每个雇员每周工作的小时数不能大于60,同时也不能为负数。程序:#include<string.h>#include<stdio.h>class Payrollprivate:double money;double total;public:int time;int GetTime()doprintf("input time:");scanf("%d",&time); while(time< 0 && time >60 ); money = 100; return 0;int GetTotalMoney()return (total =time * money); void Print()printf("total:%lfn",total); ;main()Payroll p10;p0.GetTime();p0.GetTotalMoney();p0.Print();运行结果:四、实验体会对多文件有了更深了解,能够熟练的掌握多文件的使用方法。学习了C+的构造函数,以及拷贝构造函数,接触友元组合类等新知识,需要课后多加练习。实验项目名称: 静态成员与友元 实验学时: 3 同组学生姓名: 无 实验地点: A107 实验日期: 10.09 实验成绩: 批改教师: 吴刚 批改时间: 一、实验目的和要求1.掌握类中静态成员的定义的方法。2.掌握静态数据成员初始化的方法。3.掌握静态数据成员和数据函数成员的访问和使用方法。4.掌握友元函数的定义和使用方法。5.了解友元类的使用方法。二、实验设备和环境1.计算机每人一台。2.安装WindowsXP或者以上版本操作系统。3.安装Visual C+6.0或者Visual C+2005以上版本。三、实验内容及步骤1.任意输入10个数,计算器总和及平均值。设计程序测试该功能(要求用类、静态友员实现)。程序:#include<iostream>#include<string>using namespace std;class numberint No;int figure;static double sum; static int sumpeople;public:number(int n,int ifigure)No=n;figure=ifigure;sum+=figure;sumpeople+;static int Sum()return sum;static double Average()return sum/sumpeople;int number:sumpeople=0;double number:sum=0;void main()int i,j;cout<<"The ten number is:"<<endl;for(i=1;i<=10;i+)cin>>j;number(i,j);cout<<"The sum is:"<<number:Sum()<<endl;cout<<"The average is:"<<number:Average()<<endl;运行结果: 2.求两点之间的距离(要求定义点Point类,并用友员函数实现)。程序:#include <iostream>#include <cmath>using namespace std;class Pointdouble x,y;public:Point(double m,double n):x(m),y(n)friend double Distance(Point& px,Point& py);double Distance(Point& px,Point& py)double d;d=sqrt(px.x-py.x)*(px.x-py.x)+(px.y-py.y)*(px.y-py.y);return d;void main()Point p1,p2;int a1,b1,a2,b2;cin>>a1>>b1>>a2>>b2;p1=Point(a1,b1);p2=Point(a2,b2);cout<<"the distance is"<<Distance(p1,p2)<<endl;运行结果:3.定义一个经理类Manager,其成员数据包括编号id,姓名name和年龄age,均声明为private访问属性。再定义一个员工类Employee,其成员数据及访问属性与经理类相同。将Manager类声明为Employee类的友员函数,并在Manager类中定义一个函数访问Employee类的私有数据成员并进行输出。程序:#include<stdlib.h>#include<iostream>using namespace std;class Employeefriend class Manager; private: int id; char *n; int age;public:Employee()id = 1;n = "abc"age = 20;class Managerprivate:int id;char name10;int age;public:Manager()Employee e; void Print(Employee &e) cout<<e.id<<endl;cout<<e.n<<endl;cout<<e.age<<endl; ;void main()Employee e;Manager m;m.Print(e);system("pause"); 运行结果:四、实验体会懂得了静态成员的使用、静态成员的作用域和使用方法。理解并掌握友元的使用。实验项目名称: 继承与派生 实验学时: 3 同组学生姓名: 无 实验地点: A107 实验日期: 10.16 实验成绩: 批改教师: 吴刚 批改时间: 一、实验目的和要求1.掌握利用单继承和多重继承的方式定义派生类的方法。2.理解在各种继承方式下构造函数和析构函数的执行顺序。3.理解和掌握public、protected、private对基类成员的访问机制。4.理解虚基类的概念,引入虚基类的目的和作用。5. 理解在虚基类时的构造函数和析构函数的执行顺序。二、实验设备和环境1.计算机每人一台。2.安装WindowsXP或者以上版本操作系统。3.安装Visual C+6.0或者Visual C+2005以上版本。三、实验内容及步骤1.分析以下程序,写出运行结果。#include<iostream>using namespace std;class Basepublic:Base() cout<<"执行基类构造函数"<<endl;Base() cout<<"执行基类折构函数"<<endl;class Derive:public Basepublic:Derive() cout<<"执行派生类构造函数"<<endl;Derive() cout<<"执行派生类折构函数"<<endl;void main()Derive d;运行结果:2. 分析以下程序,写出运行结果。#include<iostream.h>calss Basepublic: Base()cout<<”基类构造函数”<<endl;Base()cout<<”基类析构函数”<<endl;class Derive:public Base public:Derive()cout<<”派生类构造函数”<<endl;Derive()cout<<”派生类析构函数”<<endl;;void main()Derive *p=new Derive;Delete p;运行结果:3.求一个三角形物体的面积,同时求一个圆形物体的面积(要求使用继承)。#include <iostream>#include <cmath>using namespace std;class Objectpublic:void getData()cout<<"Input x,y,z:"cin>>x>>y>>z;protected:int x,y,z;class Triangle:public Objectpublic:void getData()cout<<"triangle:"Object:getData();double Area()double d=(x+y+z)/2;double s=sqrt(d*(d-x)*(d-y)*(d-z);return s;class Circle:public Objectpublic:void getData()cout<<"circle:(only radius=x)"<<endl;Object:getData();double Area()double s=x*x*3.1415;return s;void main()Triangle t;t.getData();cout<<"The results:"<<t.Area()<<endl;Circle c;c.getData();cout<<"The results:"<<c.Area()<<endl;运行结果:4.一个三口之家,大家知道父亲会开车,母亲会唱歌。但其父亲还会修电视机,只有家里人知道。小孩既会开车又会唱歌,甚至也会修电视机。母亲瞒着任何人在外面做小工以补贴家用。此外小孩还会打乒乓球。编写程序输出者三口之家一天从事的活动:先是父亲出去开车,然后母亲出去工作(唱歌),母亲下班后去做两个小时的小工。小孩在俱乐部打球,在父亲回家后,开车玩,后又高兴地唱歌。晚上,小孩和父亲一起修电视机。程序:#include<iostream>using namespace std;class father protected:void repairTV()cout<<"Repairing TV."<<endl; public: void drive ()cout<<"Father is driving."<<endl; friend main();class mother void dootherJob()cout<<"Mother is doing other job!"public: virtual void sing()cout<<"Mother is singing songs."<<endl; friend main();class child:public father,public motherpublic: void drive() cout<<"Child is driving ."<<endl; void sing()cout<<"Child is singing."<<endl; void repair()cout<<"Child is repairing tv."<<endl; void playingPingPang()cout<<"Child is playing pingpang."int main() cout<<"main: "<<endl; father f; mother m; child c; f.drive(); m.sing(); m.dootherJob(); c.playingPingPang(); c.drive(); c.sing(); f.repairTV(); c.repair(); return 0;运行结果:5.设计定义一个哺乳动物类Mammal,再由此派生出狗类Dog和猪类Pig,从狗类Dog和猪类Pig又派生出PigDog类。定义一个PigDog类的对象,观察基类与各派生类的构造函数和析构函数的调用顺序。程序:#include <iostream>using namespace std;class Mammalpublic:Mammal()cout<<"调用mammal构造函数"<<endl;Mammal()cout<<"调用mammal析构函数"<<endl;class Dog:public Mammalpublic:Dog()cout<<"调用dog构造函数"<<endl;Dog()cout<<"调用dog析构函数"<<endl;class Pig:public Mammalpublic:Pig()cout<<"调用pig构造函数"<<endl;Pig()cout<<"调用pig析构函数"<<endl;class PigDog:public Dog,public Pigpublic:PigDog()cout<<"调用pigdog构造函数"<<endl;PigDog()cout<<"调用pigdog析构函数"<<endl;

    注意事项

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

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




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

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

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

    收起
    展开