《面向对象程序设计》实验册精编版

  • 格式:docx
  • 大小:315.65 KB
  • 文档页数:41

(理工类)课程名称:面向对象程序设计专业班级: _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 91 12345678 92 2 4 6 8 10 12 14 16 183 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 91 12 2 43 3 6 94 4 8 12 165 5 10 15 20 256 6 12 18 24 30 367 7 14 21 28 35 42 498 8 16 24 32 40 48 56 649 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(a[i]==b[j]) 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 stack{public:void init(){top=-1;}void push(int n);int pop();void dead();private:int top;int data[maxsize];};void stack::push(int n){if(top==maxsize){cout<<"栈已满!"<<endl;}else{top++;data[top]=n;}}int stack::pop(){if(top<0){cout<<"栈下溢!"<<endl;return 0;}else{top--;return data[top+1];}}void stack::dead(){if(top<0){cout<<"栈下溢!"<<endl;}else{top--;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题中的实验内容改为多文件结构实现。