NYISTC++实验指导书之全面版.docx

上传人:b****5 文档编号:12277501 上传时间:2023-04-17 格式:DOCX 页数:22 大小:279.88KB
下载 相关 举报
NYISTC++实验指导书之全面版.docx_第1页
第1页 / 共22页
NYISTC++实验指导书之全面版.docx_第2页
第2页 / 共22页
NYISTC++实验指导书之全面版.docx_第3页
第3页 / 共22页
NYISTC++实验指导书之全面版.docx_第4页
第4页 / 共22页
NYISTC++实验指导书之全面版.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

NYISTC++实验指导书之全面版.docx

《NYISTC++实验指导书之全面版.docx》由会员分享,可在线阅读,更多相关《NYISTC++实验指导书之全面版.docx(22页珍藏版)》请在冰豆网上搜索。

NYISTC++实验指导书之全面版.docx

NYISTC++实验指导书之全面版

 

ny理工学院

C++上机实验指导书

软件学院·软件工程教研室

 

目录

实验1C++编程环境实践1

实验2基本数据类型、运算符和表达式………………….2

实验3选择和循环结构(*)9

实验4指针与引用(*)11

实验5函数与重载12

实验6类与对象13

实验7运算符重载(*)16

实验8继承17

实验9多继承(*)19

实验10多态与虚函数20

 

注:

带“*”为选做实验,建议学生课后自行完成

实验1C++编程环境实践

一、实验目的

1.熟悉VC++6.0编程环境;

2.编制简单C++程序并运行;

3.熟悉C++的编辑、编译、连接和运行过程。

二、实验内容及步骤

1.使用VisualC++6.0建立一个标准C++程序,编译、运行以下程序:

具体实验步骤:

(1)启动VisualC++6.0开发环境

从“开始”菜单中选择“程序”|MicrosoftVisualStudio6.0|MicrosoftVisualC++6.0,显示VisualC++6.0开发环境主窗口,如图1-1所示。

 

 

图1-1VisualC++6.0的主窗口

在VisualC++主窗口的顶部是菜单栏,左侧为项目工作区窗口,右侧是程序编辑窗口。

工作区窗口用来显示所设定的工作区的信息,程序编辑窗口用来输入和编辑源程序。

(2)建立和运行只包含一个C++源程序的方法

①建立只包含一个C++源程序的方法

一个最简单的C++程序只包含一个源程序的文件,建立这样的一个C++源程序的方法是在MicrosoftVisualC++主窗口的菜单栏中选择“File→New”命令,弹出“New”对话框,单击“Files”选项卡,在其列表框中选择“C++SourceFile”选项,表示要建立一个新的C++源程序文件,然后在对话框右半部分的Location文本框中输入准备编辑的源程序文件的存储路径(假设为F:

\C++),表示准备编辑的源程序文件将存放在F盘C++子目录下,在其上方的File文本框中输入准备编辑的源程序文件的名字(假设为example1.cpp),如图1-2所示。

图1-2Files中New选项卡

单击“OK”按钮回到主窗口,在程序编辑窗口编辑源程序文件,如图1-3所示。

图1-3编辑源文件

选择“File→Save”命令或快捷键Ctrl+S保存源程序文件。

也可以选择“File→SaveAs”命令指定新的文件名和路径,这时输入和编辑的源程序就以example1.cpp为文件名存放在F:

\C++子目录下。

②运行只包含一个C++源程序的方法

若要运行当前的源文件或一个已有的源文件,首先需要对该源文件进行编译,只要选择“Build→Compileexample1.cpp”命令进行编译即可。

在选择编译命令后,屏幕上出现一个对话框,内容是“Thisbuildcommandrequiresanactiveprojectworkspace.Wouldyouliketocreateadefaultprojectworkspace?

”(此编译命令要求有一个有效的项目工作区。

你是否同意建立一个默认的项目工作区?

),如图1-4所示。

图1-4对话框提示信息

单击“是(Y)”按钮,表示同意由系统建立一个默认的项目工作区,然后开始编译。

在进行编译时,编译系统检查源程序文件有无语法错误,然后在主窗口下部的调试信息窗口输出编译的信息。

如果有错误,就会指出错误的位置和性质,如图1-5所示。

图1-5编译提示信息

如果存在致命错误(error)和警告性错误(warning),则需要修改并重新编译;没有错误,则编译成功,生成一个example1.obj文件。

编译成功后,就可以对程序文件进行连接了。

选择主菜单中的“Build→Buildexample1.exe”命令,表示要求连接并建立一个可执行文件example1.exe。

运行该文件,在屏幕就可以看到输出结果。

2.建立一个多文件的程序,求最大值。

主函数放在一个文件中,Max函数放在另一个文件中。

如果一个程序中包含多个文件,则需要建立一个projectfile(项目文件),projectfile是放在Workspace(项目工作区)中,并在项目工作区的管理下工作的,因此,如果有多个项目文件存在时,还需要建立一个项目工作区。

在编译时,先分别对每个文件进行编译,然后将项目文件中的文件连接成一个整体,再与系统的有关资源进行连接,生成一个可执行文件,最后执行这个文件。

在实际操作时有两种方法:

一种是由用户建立项目工作区和项目文件;另一种是用户只建立项目和文件,而不建立项目工作区,由系统自动建立项目工作区。

后一种方法比前一种方法操作更简单。

由用户建立项目工作区和项目文件的具体操作为:

(1)分别编辑好同一个程序的多个源程序文件,并存放在指定的目录下。

如一个程序包含两个源程序文件file1.cpp和file2.cpp,如图1-6、1-7所示,并已经把它们保存在F:

\C++子目录下。

图1-6file1.cpp源文件

图1-7file2.cpp源文件

(2)建立一个项目工作区

建立一个项目工作区需要在MicrosoftVisualC++6.0的主窗口中选择“File→New”命令,然后单击此对话框上方的Workspace选项卡,在对话框右部Workspacename和Location中分别输入工作区名ws1和路径名F:

\C++\ws1,如图1-8所示。

图1-8选择File→New命令Workspace选项卡

单击“OK”按钮,返回主窗口。

此时在屏幕左部的工作区窗口中显示了“Workspace‘ws1’:

0project(s)”,说明当前的工作区名是ws1,其中没有放入项目文件,如图1-9所示。

图1-9新建工作区ws1

(3)建立项目文件

选择“File→New”命令,然后单击此对话框上方的Project选项卡,在对话框左部的列表中选择“Win32ConsoleApplication”项,在右部Projectname和Location中分别输入项目文件名Project和路径名F:

\C++\ws1\project1,并按需要选中是否加入当前工作区,还是创建一个新的工作区单选按钮(假设选择加入当前已有工作区),如图1-10所示。

图1-10选择File→New命令Project选项卡

单击“OK”按钮后,在弹出的对话框上选中“Anemptyproject”单选按钮,单击“Finish”按钮,则系统弹出一个工程信息对话框,单击“OK”按钮,出现图1-11所示对话框。

可以看到在屏幕左部的工作区窗口中显示了“Workspace‘ws1’:

1project(s)”,说明当前的工作区名是ws1,其中已经放入了项目文件project1。

图1-11新建的项目文件project1

项目文件建好后,选择将源程序文件加入到该项目文件中。

选择“Project→AddToProject→Files”命令,找到要加入的源程序文件file1.cpp和file2.cpp,把他们加入到项目文件project1中,其显示结果如图1-12所示。

此时可以对加入多个源程序文件的项目文件进行编译和连接了。

方法是:

单击主菜单中的“Build→BuildProject1.exe”命令,系统将对整个项目文件进行编译和连接,在窗口下部会显示编译和连接的信息。

如果程序有错,会显示出错信息,这时需要进行修改;如果没错,则生成可执行文件Project1.exe。

选择主菜单中的“Build→ExecuteProjrct1.exe”命令就可以执行project1.exe。

图1-12加入file1.cpp和file2.cpp的project1

在程序运行时,根据要求输入所需的数据,回车后即得到程序的输出结果。

 

实验2基本数据类型、运算符和表达式

一、实验目的

1.熟练掌握基本的数据类型、基本的算术运算符和表达式。

2.掌握键盘输入和屏幕输出方式。

3.能够运用基本的编程知识编写简单的程序。

二、实验内容及步骤

1、三个简单的求值计算

分别输入圆柱体的半径和高,求体积;输入球半径,求其表面积;输入长方体的长、宽、高、求其体积。

2、编写一个程序,完成以下内容:

(1)累计和显示整1~5的和。

(2)计算1~5相加的平均值

3.设有变量定义如下:

inti=8,j=12;

doublex=3.14,y=90

希望得到如下的输出结果:

i=10j=c

x=6.28000y=90

请编程实现。

4.设有如下语句:

floatx=100,y=3.14;

chara=’\t’,b=’s’;

cout<<”xis”<

cout<

cout<

则最终的输出结果是什么?

5、请编程提示并接收用户输入的三角形的三条边长,然后用三边面积公式计算三角形的面积,最后输出求的的面积值。

计算方法:

设a、b、c为三条边长,

实验3选择和循环结构(*)

一、实验目的

1、熟练掌握if语句、switch语句、while语句、dowhile语句和for语句。

2、掌握选择结构和循环结构程序设计。

二、实验内容及步骤

1.求三个整数的最大值和最小值。

1)定义三个整形变量x1、x2、x3,并通过cin输入变量值

2)用if-else语句对三个整数进行比较,求出最大值和最小值

3)用cout显示计算结果

2.下面程序统计字符数组c中0、1、2及其他字符出现的次数,分别存放在变量i0、i1、i2中,统计结束后输出它们的值。

要求:

分析出现结果的原因,如何修改使结果正确。

 

3.增加实验3的功能,判断用户输入的正整数n是否为素数,直到用户输入1为止。

4)用while循环读入正整数n

5)对于每个正整数n,采用for循环判断是否为素数。

6)打印输出判断结果

4.编写一个程序实现两个数之间简单的四则运算。

在程序中,提示用户按表达式顺序输入操作数与运算符。

5.增加实验5的功能,是程序运行时,能一次完成多个运算,直至用户输入字符“N”(在程序中,提示用户输入“Y”或“N”以决定是否继续进行四则运算)。

6.编一程序,输出以下图形:

*******

*****

***

*

*

***

*****

*******

7.求

(即求1!

+2!

+…+10!

)。

实验4数组、指针、引用(*)

一、实验目的

1.掌握指针的声明、使用和运算;

2.学会数组与指针、函数与指针的使用方法。

3.掌握c++string的声明和使用方法。

4.熟悉引用的声明与特点。

二、实验内容及步骤

1.在主函数中输入一个字符串str1,调用函数将str1中的小标为奇数的字符取出构成一个新的字符串放入字符串str2中,(要求被调函数参数为str1和str2),在主函数中输出字符串str2.

2.编写程序:

任意输入10个整数放于数组中,利用指针访问数组,求出该数组中的最大数max以及最小数min。

3.编写程序:

输入一个字符串,将其中所有数字删除,并输出改动后的字符串及其长度,例如输入ab123df354adfx,输出abdfadfx.

4.输入一个字符串,将将它们按照字母由小到大地顺序排列并输出。

(用string方法)。

5.编写程序:

定义一个变量,一个指针,建立该变量的引用。

对变量进行初始化,并将指针指向该变量,分别通过指针和引用改变该变量的值,并输出结果进行比较分析。

6.输入一个字符串,把其中的字符按照逆序输出。

如输入LIGHT,则输出THGIL。

(用string方法)。

 

实验5函数与重载

一、实验目的

1.掌握函数的声明、调用、实参与形参的值传递关系、返回值;

2.理解函数重载,掌握函数重载的方法;

3.理解递归的概念,掌握递归函数的定义与使用;

二、实验内容及步骤

1.求三个数中最大的数(分别考虑整数、双精度数、长整数的情况)。

2.定义一个函数,判断三个整形边长能否构成三角形,如果是三角形,则判断它是否是直角三角形。

1)声明函数judge;

2)实现函数judge,根据输入的三个边长判断是否可以构成一个三角形;

3)在main中调用judge;

4)在main中根据judge的返回值判断是否是三角形,如果构成三角形则判断是否为直角三角形,并给出结论。

3.用重载函数实现两个整数和三个整数的排序,按照从小到大的顺序将排序结果输出。

1)声明函数sort为重载函数,并根据参数个数的不同分别进行定义;

2)在main中用cin分别输入两个整数和三个整数;

3)根据参数个数的不同,调用不同的函数,从而实现重载。

4.用递归法将一个整数n转换成字符串。

例如,输入483,应输出字符串“483”。

n的位数不确定,可以是任意位数的整数。

5.在主函数中输入一个字符串str,调用函数统计字符串中出现的字母,(含大小写)、数字、空格以及其他字符出现的次数,在主函数中输出统计结果。

要求写两个版本的程序:

(1)用指针作参数带回统计结果。

(2)用引用作参数带回统计结果。

实验6类与对象

一、实验目的

1.掌握C++类的概念和基本组成,学会设计类,掌握类对象的声明和使用方法;

2.熟悉各种成员函数包括构造函数、析构函数、内嵌函数的定义与使用;

3.掌握静态数据成员的使用。

二、实验内容及步骤

1.阅读下面程序,分析其执行过程,写出输出结果。

#include<.iostream>

usingnamespacestd;

classStudent

{

public:

student(intn,floats):

num(n),scorce(s){}

voidchange(intn,floats){num=n;scorc=s;}

voiddisplay(){cout<<””<

private:

intnum;

floatscore;};

intmain()

{

studentstd(101,78.5);

stud.display();

stud.change(101,80.5);

stud.display();

return0;

}

2.声明一个Circle类,有

1)数据成员Radius(半径)

2)成员函数GetArea()计算圆的面积

3)构造函数Circle(floatradius)进行初始化

4)析构函数

在主函数中创建一个Circle类的对象进行测试(输入一个数值,作为Circle类对象的半径,调用该对象的GetArea()求以该数值为半径的圆的面积)。

3.声明一个tree类,有

1)数据成员ages(树龄)

2)成员函数grow(intyears)对ages加上years

3)成员函数age()显示对象的数据成员ages的值

4)构造函数tree(intn=0)进行初始化

5)析构函数

在主函数中创建一个tree类的对象进行测试(创建一个树龄为18的对象,调用age()显示树龄,之后调用grow(4),生长4年,再显示树龄)。

4.改正以下程序中的错误,并分析错误原因。

提示:

该程序中point类的构造函数定义不正确,在main()中对数据成员的访问不正确。

要求修改程序后,在主函数中创建一个对象并初始化为坐标(5,5),然后输出这个点的X,Y坐标。

5.声明一个名为Rectangle的矩形类,其属性为矩形的左下角和右上角两点的坐标,并有成员函数计算矩形的周长及面积。

编程实现求左下角与右上角坐标分别为(2.1,3.2),(5.2,6.3)的矩形周长及面积。

6.人员信息管理系统:

以一个小型公司的人员管理为例,说明类及成员函数的设计。

提示:

1)类的设计:

某小型公司,需要存储雇员的编号、级别、月薪,并显示全部信息。

根据这些需求,设计一个类employee,在该类中,包括的数据成员有:

编号(intindividualEmpNo)

级别(intgrade)

月薪(floataccumPay)

成员函数有:

设置编号(voidsetEmpNo(intsteps)):

编号顺序加1(利用静态变量实现)

提取编号(voidgetEmpNo)

晋升级别(voidpromote(intincrement)):

提升的级别由参数指定

提取级别(intgetGrade)

设置月薪(voidSetAccumPay(floatpa)):

提取月薪(floatGetAccumPay)

构造函数(用于设置数据成员编号、级别和月薪初值)

析构函数

2)整个程序分为两个独立的文档:

employee.h(包含类的定义和类的实现)和employee.cpp(主函数文件)

3)在主函数main()中创建employee类的两个对象,对它们设计编号、级别和月薪,并输出每个雇员的基本信息。

实验7运算符重载(*)

一、实验目的

掌握C++中运算符重载的机制和运算符重载的方式;

二、实验内容及步骤

1.编写一个简单复数类Scomplex,要求用友元函数重载“+”、“-”运算符,用成员函数重载“=”运算符,使之能够实现整数或浮点数和复数的加法和减法,并且进行测试。

2.空间一点p的坐标为(x,y,z),其中x,y,z为整数。

编写点类Point3D,定义空间两点之间的加”+”,减”-”运算为相应三个坐标值分别进行加、减运算,要求实现空间两点之间的加”+”减”-”赋值”=”运算,空间两点间的比较”==”运算。

要求编写Point3D类的声明定义和测试程序。

3.设计一个时间类Time,包括时、分、秒等私有数据成员。

重载“+”和“-”运算符以实现时间的加法和减法运算,并进行测试。

实验8继承

一、实验目的

1.掌握派生的类别与方式;

2.了解派生类中如何使用基类的成员、基类成员在派生类中的访问控制;

3.掌握继承中构造函数和析构函数的调用过程。

二、实验内容及步骤

1.给出一个Document类,从Document派生出Book类,增加PageCount变量。

在主函数中进行测试,创建Book类对象并进行初始化,输出书名和页数。

2.设计一个单基继承的类层次程序,利用Person类派生出Student类,增加属性xh(学号),Person类中至少有姓名、年龄等数据成员,成员函数中构造函数对其初始化,析构函数释放相应存储单元,输出函数输出其数据成员的值,其它成员函数根据需要添加,在主函数中进行测试。

先定义“高度“类和”圆“类Circle,再由Height类和Circle类多重派生出“圆柱体”类Cylinder。

在主函数中定义一个圆柱体对象,调用成员函数求出圆柱体的体积和表面积。

实验9多继承(*)

一、实验目的

1.掌握多基继承的使用,访问方法;

2.理解类层次中访问规则;

3.掌握虚基类的定义及使用。

二、实验内容及步骤

1.分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。

要求:

1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员.

2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中还包含数据成员wages(工资)。

3)对两个基类中得姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。

4)在类体中声明成员函数,在类外定义成员函数。

5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、电话,然后再用cout语句输出职务和工资。

2.设计一个虚基类Person,包含姓名和年龄私有数据成员以及相关的成员函数;由它派生出领导类Leader,包含职务和部门私有数据成员以及相关的成员函数;再由Person派生出工程师类Engineer,包含职务和专业私有数据成员以及相关的成员函数;再由Leader和Engineer类派生出主任工程师类Chairman。

并采用相关数据进行测试。

实验10多态与虚函数

一、实验目的

1.理解多态的概念

2.掌握如何用虚函数实现运行时多态

3.掌握如何利用抽象类

二、实验内容及步骤

1.设计一个图形类(Shape),由它派生出5个派生类:

三角形类(Triangle)、正方形类(Square)、圆形类(Circle)、矩形类(Rectangle)、梯形类(triangle)类,利用虚函数计算图形面积,用一个函数printArea分别输出以上5者的面积。

2.定义一个教师类,由教师类派生出讲师、副教授、教授类。

教师的工资分别由基本工资、课时费和津贴构成。

假设讲师、副教授、教授的基本工资分别为800、900、1000元,课时费分别为每小时40、45、50元,津贴分别为1300、1800、2300。

定义虚函数来计算教师的工资,并通过主函数来进行验证。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1