C++实验指导书.docx

上传人:b****6 文档编号:8454727 上传时间:2023-01-31 格式:DOCX 页数:86 大小:398.27KB
下载 相关 举报
C++实验指导书.docx_第1页
第1页 / 共86页
C++实验指导书.docx_第2页
第2页 / 共86页
C++实验指导书.docx_第3页
第3页 / 共86页
C++实验指导书.docx_第4页
第4页 / 共86页
C++实验指导书.docx_第5页
第5页 / 共86页
点击查看更多>>
下载资源
资源描述

C++实验指导书.docx

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

C++实验指导书.docx

C++实验指导书

 

 

C++上机实验指导书

(2015版)

 

南阳理工学院软件学院编制

前言

《C++程序设计》是软件工程、网络工程等相关专业最重要的一门专业基础课程,内容庞大,涉及面广,知识点多,涵盖“过程化设计”、“面向对象程序设计”二大部分,其中过程化程序设计使用的是功能抽象,而面向对象程序设计不仅能进行功能抽象,而且能进行数据抽象。

“对象”和“类”是C++语言的基础,数组、指针、类和多文件结构的使用是编程的核心技术。

因而教、学难度都非常大,往往费了大量时间而达不到预期教学效果。

俗语说:

学习的最好方法是实践。

本实验课程正是基于此,力求为学生提供一个理论联系实际的机会,通过实践,锻炼编写程序、调试程序的能力,学习报告编写规范,培养独立学习的习惯,帮助学生从全局角度把握课程体系,提高学生实际动手能力,完成“知识+实践=技能”的整个学习过程。

本指导书提供了六个实验项目,前三个主要覆盖过程化设计部分,后三个则侧重于面向对象设计体系。

前三个实验为小型训练题目,后三个实验为大型综合实验。

任课教师在实际使用时,根据具体的教学大纲要求,有目的地选择实验项目,未选做部分可作为学生课后提高的练习题。

本书的前三个实验内容涉及四个部分,即“实验目的和要求”、“实验设备及分组”、“实验内容和步骤”、“课后作业”等。

其中“实验内容和步骤”中又设立二个模块:

“验证分析程序”和“完成实验项目”模块。

“验证实验程序”模块中针对该次实验的具体要求与实验的目的,列了一些典型的例题,并给出了详细的解法,有时故意留了一些漏洞,提了一些问题,帮助同学们理解要掌握的内容。

“完成实验项目”模块要求同学们在读懂、验证过例题之后,独立完成题目要求,写出代码,调试通过。

“课后作业”部分的题目留作同学们自行练习,可以作为理论课作业或课堂提问。

其中打“*”的为选做题,教师可根据实际情况自行选择。

本实验课程的主要成果之一就是实验报告,要严格按照附录C中的格式书写,内容详实,实验数据的采集要准确合理,实验结果的分析及时、全面。

目录

前言I

实验一C++开发环境及流操作实践1

一、实验目的和要求1

二、实验设备及分组1

三、实验内容和步骤1

四、课后作业7

实验二数组与结构体8

一、实验目的和要求8

二、实验设备及分组8

三、实验内容和步骤8

四、课后作业12

实验三函数重载13

一、实验目的和要求13

二、实验设备及分组13

三、实验内容和步骤13

四、课后作业13

实验四C++函数使用实践14

一、实验目的和要求14

二、实验设备及分组14

三、实验内容和步骤14

四、课后作业14

实验五类和对象15

一、实验目的和要求15

二、实验设备及分组15

三、实验内容和步骤15

四、课后作业15

实验六继承与多态16

一、实验目的和要求16

二、实验设备及分组16

三、实验内容和步骤16

四、课后作业16

附录AVisualC++6.0简介17

附录BC/C++常用函数33

附录C实验报告格式70

实验一C++开发环境及流操作实践

一、实验目的和要求

1.学习VC++6.0集成环境,掌握源程序编辑方法;

2.掌握在VC++集成开发环境中编译、调试与运行程序的方法;

3.通过运行简单的C++程序,初步了解C++源程序的特点;

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

5.掌握基本的输入、输出方式及流操作。

二、实验设备及分组

1.WindowsXP以上操作系统;

2.VisualC++6.0语言环境;

3.每人一台PC机。

三、实验内容和步骤

(一)C++程序的开发步骤

C++语言是一种编译性的语言,设计好一个C++源程序后,需要经过编译、连接、生成可执行的程序文件,然后执行并调试程序。

一个C++程序的开发步骤可分成如下几个步骤:

(1)分析问题。

根据实际问题,分析需求,确定解决方法,并用适当的工具描述它。

(2)编辑程序。

编写C++源程序,并利用一个编辑器将源程序输入到计算机中的某一个文件中。

文件的扩展名为.cpp。

(3)编译程序。

编译源程序,产生目标程序。

文件的扩展名为.obj。

(4)连接程序。

将一个或多个目标程序与库函数进行连接后,产生一个可执行文件。

文件的扩展名为.exe。

(5)运行调试程序。

运行可执行文件,分析运行结果。

若有错误进行调试修改。

在编译、连接和运行程序过程中,都有可能出现错误,此时要修改源程序,并重复以上过程,直到得到正确的结果为止。

 

(二)C++程序上机操作方法

VisualC++6.0系统包含了许多独立的组件,如编辑器、编译器、调试器以及各种各样为开发Windows环境下的C++程序而设计的工具。

其中最重要的是一个名为DeveloperStudio的集成开发环境(IDE)。

DeveloperStudio把所有的VisualC++工具结合在一起,集成为一个由窗口、对话框、菜单、工具栏、快捷键及宏组成的和谐系统,通过该集成环境,程序员可以观察和控制整个开发进程。

使用VisualC++6.0调试C++程序要经过以下几个步骤:

1.启动VisualC++6.0系统

启动VisualC++6.0系统有很多种方法,最常见的是通过鼠标单击“开始”菜单,选择“程序”,选择“MicrosoftVisualStudio6.0”,选择“MicrosoftVisualC++6.0”启动VisualC++6.0。

如果已经在桌面上建立了“MicrosoftVisualC++6.0”图标,则也可用鼠标双击该图标启动VisualC++6.0。

VisualC++6.0启动成功后,就产生如图1.1所示的VisualC++集成环境。

图1.1典型的DeveloperStudio窗口

图1.1显示了一个典型的DeveloperStudio主窗口。

它分为几个部分:

窗口顶部是菜单和工具栏,其中包括“File(文件)”、“Edit(编辑)”、“View(视图)”、“Insert(插入)”、“Project(项目)”、“Build(编译、连接和运行)”、“Tools(工具)”、“Windows(窗口)”、“Help(帮助)”等菜单,分别对应一个下拉子菜单。

左面的一个子窗口是工作区窗口,工作区的右面是编辑子窗口。

最下面是输出子窗口。

除了各种对话框外,DeveloperStudio显示两种类型的窗口,即文档窗口和停靠窗口。

文档窗口是一般的带边框子窗口,其中含有源代码文本或图形文档。

Window子菜单中列出了在屏幕上以平铺方式还是以层叠方式显示文档窗口的命令。

所有其他的DeveloperStudio窗口,包括工具栏和菜单栏,都是停靠式窗口。

开发环境有两个主要的停靠窗口――Workspace(工作区)窗口和Output(输出)窗口。

另外还有一个Debugger(调试器)停靠窗口,只在调试过程中显示。

停靠窗口可以固定在DeveloperStudio用户区的顶端、底端或侧面,或者浮动在屏幕上任何地方。

停靠窗口,不论是浮动着的或是固定着的,总是出现在文档窗口的上面。

这样,就保证了当焦点从一个窗口移到另一个时,浮动的工具栏一直都是可见的。

但这也意味着,文档窗口偶尔会看起来像消失了似的。

例如,如果正在文本编辑器中编辑源代码,此时打开一个占据整个DeveloperStudio用户区的停靠窗口,源代码文档就会消失,它隐藏在新窗口之下。

解决方法是要么关了覆盖的窗口,要么把它拖到不挡眼的地方去。

值得注意的是,上述各种部件,包括子窗口、菜单栏和工具栏的位置不是一成不变的,可以根据个人的喜好重新安排。

2.创建项目文件

通常都是使用项目的形式来控制和管理C++程序文件的,C++的项目中存放特定程序的全部信息,包含源程序文件、库文件、建立程序所用的编译器和其他工具的清单。

C++的项目以项目文件的形式存储在磁盘上。

图1.2新建项目对话框

图1.3新建项目向导对话框

生成项目的操作步骤为:

(1)选择集成环境中的“File”菜单中的“New”命令,产生“New”对话框,如图1.2所示。

(2)选择对话框中的“Projects”标签,以便生成新的项目。

在产生新项目时,系统自动生成一个项目工作区,并将新的项目加入到该项目工作区中。

(3)在项目类型清单中,选择“Win32ConsoleApplication”项目,表示要生成一个Windows32位控制台应用程序的项目。

(4)在“Location”文本框中输入存放项目文件的文件夹路径,如“C:

\DOCUMENTSANDSETTINGS\YUYONGYAN\桌面\新建文件夹”。

(5)在“ProjectName”文本框中输入项目名。

例如:

Exe1_1。

(6)检查“Platforms”文件框中是否已显示“Win32”,表示要开发32位的应用程序。

(7)单击“New”对话框中的“OK”按钮。

产生一个对话框向导,如图1.3所示。

选“Anemptyproject”,按下“Finish”按钮,显示验证对话框,直接按“OK”按钮,这时就产生了一个项目文件。

系统自动加上文件扩展名“.dsw”。

3.创建C++源程序文件并将其加入到项目文件

(1)选择“File”菜单中的“New”命令,则产生“New”对话框,如图1.4所示。

图1.4新建文件对话框

(2)选择对话框中的“Files”标签。

(3)在文件类型清单中,选择“C++SourceFile”项目,表示要生成一个C++源程序。

(4)在“File”文本框中输入C++源程序文件名。

系统自动加上文件扩展名“.cpp”。

例如:

Exe1_1_1.cpp。

(5)若“Addtoproject”复选框没有选中,则单击该复选框使其选中,表示系统要将指定的源程序文件加入到当前的项目文件中。

(6)单击“OK”按钮。

这时就建立了一个新的C++源程序文件,并已加入到了当前的项目文件中。

产生如图1.5所示的窗口。

该窗口有三个子窗口,左边的子窗口为项目工作区窗口;右边的子窗口为源程序编辑窗口,用于输入或编辑源程序;下边的窗口为信息输出窗口,用来显示出错信息或调试程序的信息。

4.输入和编辑源程序

在源程序编辑窗口输入例1.1中的源程序代码,如图1.5所示。

5.保存源程序文件

选择“File”菜单中的“Save”命令,将源程序保存到相应的文件中。

6.编译和连接

图1.5VisualC++6.0工作窗口

选择“Build”菜单中的“Compile”或“Build”命令,将源程序编译或编译连接,产生可执行文件。

系统自动加上文件扩展名“.exe”。

例如:

Exe1_1_1.exe。

在编译和连接期间,若出现错误,则在信息输出窗口给出错误或警告信息。

改正错误后,重新编译或编译连接源程序,直到没有错误为止。

7.运行

选择“Build”菜单中的“Execute”命令,则在VC++集成环境的控制下运行程序。

被启动的程序在控制台窗口下运行,与Windows中运行DOS程序的窗口类似。

见下图。

图1.6运行结果

注意:

也可以单击工具栏中的“!

”按钮(BuildExecute)或者按快捷键“Ctrl+F5”,直接编译与运行源程序。

8.打开已存在的项目文件

可用两种方法打开已存在的项目文件:

(1)选择“File”菜单中的“Openworkspace”命令,然后在弹出的对话框中选择要打开的项目文件。

(2)选择“File”菜单中的“Recentworkspaces”命令,然后再选择相应的项目文件。

特别提醒:

在调试一个应用程序时,VisualC++集成环境一次只能打开一个项目文件。

当一个程序调试完成后,要开始输入另一个程序时,必须先关闭当前的项目文件,然后为新源程序建立一个新的项目文件。

否则将出现不可预测的错误。

关闭当前的项目文件的方法是:

选择“File”菜单中的“Closeworkspace”命令。

9.退出VisualC++集成环境

选择“File”菜单中的“Exit”命令,可以退出集成环境。

(三)验证分析程序

1.设计一个C++程序,输出以下信息:

***************

Hello!

***************

解:

#include

main()

{cout<<"***************"<<'\n';

cout<<"Hello!

"<<'\n';

cout<<"***************"<<'\n';

}

运行结果:

***************

Hello!

***************

2.设计一个程序,从键盘输入一个圆的半径,求其周长和面积。

解:

#include

main()

{floats,r;

cout<<"请输入圆的半径:

"<

cin>>r;

s=3.14159*r*r;

cout<<"圆的面积为:

" <

}

运行结果:

请输入圆的半径:

5

圆的面积为:

78.53975

(四)完成实验项目

设计一个程序,从键盘输入一个小写字母,将它转换成大写字母。

四、课后作业

熟悉VC++6.0集成调试环境,掌握编写简单的应用程序的步骤与方法。

实验二数组与结构体

一、实验目的和要求

1.掌握一维数组、二维数组、字符数组的定义、初始化赋值、数组元素的引用方法;

2.掌握结构体类型、结构体变量的基本概念。

二、实验设备及分组

1.WindowsXP以上操作系统;

2.VisualC++6.0语言环境;

3.每人一台PC机。

三、实验内容和步骤

(一)验证分析程序

例1:

应用一维数组,对10个数进行冒泡排序,使其按照从大到小的顺序输出。

分析:

n个数冒泡排序的方法是将第一个数与其后面的数逐个进行比较,发现大者进行交换,完成后最大的数就放到了第一个的位置;第二个数与其后面的数逐个进行比较,发现大者进行交换,完成后次大的数就放到了第二个的位置;如此循环,直到第n-1个数与第n个数进行比较,发现大者进行交换。

解:

#include

voidmain()

{

inta[10];//A

inti,j,t;

cout<<"输入数据:

"<

for(i=0;i<10;i++)//B

{

cout<<"a["<

cin>>a[i];

}

for(i=0;i<=8;i++)

{

for(j=i+1;j<=9;j++)

{

if(a[i]

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

}

cout<<"排序结果为:

"<

for(i=0;i<=9;i++)cout<<"a["<

}

思考:

●将A行改为下列程序段:

intn;

cin>>n;

inta[n]”

观察运行结果?

分析原因。

●将B行改为“for(i=1;i<=10;i++)”,观察现象。

例2:

应用二维数组打印如图6-1所示杨辉三角形。

分析:

由杨辉三角形可以看出每行数存在以下规律:

每行数据的个数与行序相同;每行的第一个数和最后一个数均为1;中间的数为上一行同一列的数和其前一列的数之和。

1

11

121

1331

14641

图6-1杨辉三角形

解:

#include

voidmain()

{

inty[5][5];

inti,j,n=5;

for(i=0;i

{

y[i][i]=1;

y[i][0]=1;

1

11

121

1331

14641

图6-2杨辉三角形

}

for(i=2;i

{

for(j=1;j

y[i][j]=y[i-1][j-1]+y[i-1][j];

}

cout<<"杨辉三角形:

"<

for(i=0;i

{

cout<<"";

for(j=0;j<=i;j++)cout<

cout<

}

}

思考:

●添加语句输出如图6-2所示杨辉三角形。

例3:

用三种方式定义职工、学生、日期等结构体变量。

解:

#include

#include

structemployee//定义职工结构体数据类型

{

intno;//职工编号

charname[8];//职工姓名

charaddr[40];//家庭地址

};

structstudent//定义学生结构体数据类型

{

intno;//学号

floateng,phy,math,ave;//英语、数学、物理成绩、平均成绩

}stu1,stu2;//定义结构体同时定义结构体变量stu1、stu2

voidmain()

{

employeeemp1,emp2;//定义employ类型的结构体变量emp1、emp2。

struct

{

intyear,month,day;

}date1,date2;//直接定义日期结构体类型变量。

emp1.no=100;//赋职工号

strcpy(emp1.name,"zhangsa");//赋职工姓名

strcpy(emp1.addr,"Nanging");//赋家庭地址

emp2=emp1;//将职工emp1的信息赋给emp2

cout<<"no="<

<<"name="<

<<"addr="<

stu1.no=101;//输入学号与成绩

stu1.eng=90;//输入成绩

stu1.phy=95;

stu1.math=100;

cout<<"eng="<

<<"phy="<

<<"math="<

date1.year=1999;//输入入学日期

date1.month=09;

date1.day=01;

cout<<"year="<

<<"month="<

<<"day="<

}

例4:

编写程序完成一名职工的姓名、出生年月、奖惩、基本工资的初始化。

从键盘输入奖金金额,输出对应职工的姓名、工龄、奖惩、领取金额等信息。

分析:

姓名、出生年月、奖惩、基本工资为不同的数据类型,组成一个有机整体,可以用结构体进行处理,其中出生年月也用结构体来定义。

解:

一个完整的参考程序如下:

#include

structDate

{

intyear;

intmonth;

};//A

structPerson

{

charname[20];

Datebirth;

charaward[20];

floatmoney;

floatsalary;

}p={"南苯",{1966,10},"五一劳动奖章",896,0};

voidmain()

{

floatnum;

cout<

cout<<",基本工资:

"<

";

cin>>num;

p.salary=p.money+num;

cout<

cout<<",应领"<

}

思考:

●删去A行的“;”号,运行程序,观察结果,分析原因;

●修改程序,将结构体变量的定义放在main()函数内,再运行程序,观察结果,分析原因;

●修改程序,将结构体类型定义保存为头文件Person.h,采用#include命令实现本程序的功能。

●修改程序输出三名职工的姓名、工龄、奖惩、领取金额等信息。

(二)完成实验项目

1.某班有10个学生,进行了“数学”、“语文”、“英语”、“C++语言”等科目的考试,编写程序:

(1)将考试成绩输入一个二维数组;

(2)求每门课的平均成绩、每门课的不及格学生的人数及每门课的最高分与最低分;

(3)求每个学生的平均成绩、总分、不及格门数;

(4)按学生平均成绩的高低排序并输出。

2.定义一个学生成绩结构体类型,包含“学号”、“姓名”、“性别”、“年龄”、“班级”、“英语”、“数学”、“物理”、“总分”、“名次”等信息。

编写6个函数分别用于:

(1)使用结构体数组,输入全班10名学生的上述信息;

(2)计算每一个学生的总分、平均分;

(3)计算每一门课程的平均分;

(4)查找成绩有不及格的学生信息;

(5)按学生成绩总分降序排序;

(6)输出全班学生的学号、总分及名次。

四、课后作业

1.设A、B、C为m行n列矩阵。

设计矩阵加法程序,能完成C=A+B的操作。

m与n用define定义为常量,其值由用户自定义。

2.撰写实验报告。

实验三函数重载

一、实验目的和要求

1.

二、实验设备及分组

1.WindowsXP以上操作系统;

2.VisualC++6.0语言环境;

3.每人一台PC机。

三、实验内容和步骤

(一)验证分析程序

(二)完成实验项目

1.

四、课后作业

1.

实验四C++函数使用实践

一、实验目的和要求

二、实验设备及分组

1.WindowsXP以上操作系统;

2.VisualC++6.0语言环境;

3.每人一台PC机。

三、实验内容和步骤

四、课后作业

撰写实验报告。

实验五类和对象

一、实验目的和要求

二、实验设备及分组

1.WindowsXP以上操作系统;

2.VisualC++6.0语言环境;

3.每人一台PC机。

三、实验内容和步骤

四、课后作业

撰写实验报告。

实验六继承与多态

一、实验目的和要求

1.

二、实验设备及分组

1.WindowsXP以上操作系统;

2.VisualC++6.0语言环境;

3.每人一台PC机。

三、实验内容和步骤

四、课后作业

附录AVisualC++6.0简介

考虑到目前大多数初学者使用的都是PC机和Windows操作系统,我们以Visua

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

当前位置:首页 > 解决方案 > 学习计划

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

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