西华大学《高级语言在测控中的应用》 实验指导书

更新时间:2024-06-05 20:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《西华大学高级语言在测控中的应用》实验指导书

《西华大学高级语言在测控

中的应用》

实验指导书

适用专业: 机电 课程代码: 84018091 学时: 12 学分: 0.5 编写单位: 机械工程及自动化学院 编 写 人: 蒋代君 审 核 人: 审 批 人:

《西华大学高级语言在测控中的应用》实验指导书

目 录

目 录 ............................................................................................................ 1 第一章 C++实验基础知识 ............................................................................. 1 1.1 C++语言实验环境配置 .......................................................................... 1 1.2 VISUAL C++ 6.0 的使用 ........................................................................ 1 1.2.1 Visual C++介绍 ............................................................................. 1 1.2.2 Visual C++的安装和启动 ............................................................... 1 1.2.3 常用功能键及其意义 .................................................................... 2 1.2.4 输入和编辑源程序 ........................................................................ 3 1.2.5 编译、连接和运行 ........................................................................ 5 1.2.6 建立和运行包含多个文件的程序的方法 ....................................... 11 1.3 VISUAL C++ 6.0 工程相关文件介绍 ..................................................... 17 1.4 VISUAL C++ 6.0 错误信息 ................................................................... 18 1.4.1 程序错误的类型 ......................................................................... 18 1.4.2 错误信息的查询 ......................................................................... 19 1.5 VISUAL C++ 6.0 调试工具使用 ............................................................ 21 1.5.1 设置工程的调试属性 .................................................................. 21 1.5.2 学习设置断点进行单步调试 ........................................................ 21 第二章 C++实验要求 .................................................................................. 25 2.1 实验的意义和目的 ............................................................................. 25 2.2 实验过程总体要求 ............................................................................. 25 2.2.1 实验内容总体安排 ...................................................................... 25 2.2.2 实验前的准备工作 ...................................................................... 26 2.2.3 上机实验步骤 ............................................................................. 26 2.2.4 上机代码编写要求 ...................................................................... 26 2.2.5 实验报告编写 ............................................................................. 26 2.2.6 实验数据提交 ............................................................................. 26 2.2.7 实验参考资料 ............................................................................. 27 2.3 实验考核 ........................................................................................... 27 2.3.1 平时实验过程考核 ...................................................................... 27 2.3.2 期末实验上机考试 .......................................... 错误!未定义书签。 2.3.3 实验成绩评定 ............................................................................. 28 第三章 实验内容与指导 .............................................................................. 29 3.1 实验一 数据类型与表达式 ................................................................. 29 3.1.1 实验类型:验证型实验 1 学时 .................................................. 29 3.1.2 实验目的 .................................................................................... 29 3.1.3 知识点介绍 ................................................................................ 29 3.1.4 实验内容 .................................................................................... 29 3.2 实验二 C++程序设计初步 .................................................................. 33 3.2.1 实验类型:设计型实验 2 学时 .................................................. 33

I

《西华大学高级语言在测控中的应用》实验指导书

3.2.3 实验目的 .................................................................................... 33 3.2.3 知识点介绍 ................................................................................ 33 3.2.4 实验内容 .................................................................................... 33 3.3 实验三 函数与程序结构 .................................................................... 38 3.3.1 实验类型:验证型实验 2 学时 .................................................. 38 3.3.2 实验目的 .................................................................................... 38 3.3.3 知识点介绍 ................................................................................ 38 3.3.4 实验内容 .................................................................................... 38 3.4 实验四 数组 ..................................................................................... 42 3.4.1 实验类型:验证型实验 2 学时 .................................................. 42 3.4.2 实验目的 .................................................................................... 42 3.4.3 知识点介绍 ................................................................................ 42 3.4.4 实验内容 .................................................................................... 42 3.5 实验五 指针和引用 ........................................................................... 45 3.5.1 实验类型:验证型实验 2 学时 .................................................. 45 3.5.2 实验目的 .................................................................................... 45 3.5.3 知识点介绍 ................................................................................ 45 3.5.4 实验内容 .................................................................................... 45 3.6 实验六 结构体 .................................................................................. 49 3.6.1 实验类型:验证型实验 2 学时 .................................................. 49 3.6.2 实验目的 .................................................................................... 49 3.6.3 知识点介绍 ................................................................................ 49 3.6.4 实验内容 .................................................................................... 49 3.7 实验七 面向过程程序设计实践 .......................................................... 54 3.7.1 实验类型:设计型实验 4 学时 .................................................. 54 3.7.2 实验目的 .................................................................................... 54 3.7.3 知识点介绍 ................................................................................ 54 3.7.4 实验内容 .................................................................................... 54 3.8 实验八 类和对象 ............................................................................... 58 3.8.1 实验类型:验证型实验 2 学时 .................................................. 58 3.8.2 实验目的 .................................................................................... 58 3.8.3 知识点介绍 ................................................................................ 58 3.8.4 实验内容 .................................................................................... 59 3.9 实验九 继承与派生 ........................................................................... 62 3.9.1 实验类型:验证型实验 2 学时 .................................................. 62 3.9.2 实验目的 .................................................................................... 62 3.9.3 知识点介绍 ................................................................................ 62 3.9.4 实验内容 .................................................................................... 63 3.10 实验十 多态与虚函数 ...................................................................... 66 3.10.1 实验类型:验证型实验 ............................................................. 66 3.10.2 实验目的 .................................................................................. 66 3.10.4 实验内容 .................................................................................. 68 3.11 实验十一 运算符重载 ...................................................................... 69 3.11.1 实验类型:验证型实验 2 学时 ................................................. 69

II

《西华大学高级语言在测控中的应用》实验指导书

3.11.2 实验目的 .................................................................................. 69 3.11.3 知识点介绍 ............................................................................... 69 3.11.4 实验内容 .................................................................................. 69 3.12 实验十二 文件操作 ......................................................................... 72 3.12.1 实验类型:验证型实验 2 学时 ................................................. 72 3.12.2 实验目的 .................................................................................. 72 3.12.4 实验内容 .................................................................................. 73 3.13 实验十三 面向对象程序设计实践 ..................................................... 76 3.13.1 实验类型:设计型实验 6 学时 ................................................. 76 3.13.2 实验目的 .................................................................................. 76 3.13.3 知识点介绍 .............................................................................. 76 3.13.4 实验内容 .................................................................................. 76

III

《西华大学高级语言在测控中的应用》实验指导书

第一章 C++实验基础知识

1.1 C++语言实验环境配置

C++语言实验环境配置要求 硬件配置:586 以上PC 兼容机或品牌机,配有彩色显示器、鼠标、键盘,内存不小于20MB,硬盘自由空间不少于60MB。推荐配置为内存32MB 或64MB(或以上),硬盘自由空间500MB以上。 软件配置:

1、操作系统: Windows98,windows 2000,windows XP,Linux,UNIX 2、集成开发环境:

(1)在Windows98,windows 2000,windows XP 系统下,主要的开发编译环境有Turbo C/C++ 3.0、Borland C++ 3.1、Microsoft Visual C++6.0、DJGPP,其中DJGPP 是GCC 在DOS/Windows 操作系统下的移植。本实验指导书使用的开发环境为Microsoft Visual C++6.0英文版。汉化版本只是把部分菜单汉化了且用词很不准确。

(2)在Linux、UNIX 系统下,采用GCC 编译环境。本实验指导书不涉及相关内容,有兴趣的同学可以自行学习。

1.2 Visual C++ 6.0 的使用 1.2.1 Visual C++介绍

Visual C++是Microsoft 公司的Visual Studio 开发工具箱中的一个C++程序开发包。Visual Studio 提供了一整套开发Internet 和Windows 应用程序的工具,包括Visual C++, Visual Basic,Visual FoxPro,Visual InterDev,Visual J++以及其他辅助工具,如代码管理工具Visual SourceSafe 和联机帮助系统MSDN。Visual C++包中除包括C++编译器外,还包括所有的库、例子和为创建Windows 应用程序所需要的文档。

从最早期的1.0 版本发展6.0 版本,到最新的.NET 版本,Visual C++已经有了很大的变 化,在界面、功能、库支持方面都有许多的增强。6.0 版本在编译器、MFC 类库、编辑器以及联机帮助系统等方面都比以前的版本做了较大改进。Visual C++一般分为三个版本:学习版、专业版和企业版,不同的版本适合于不同类型的应用开发。实验中可以使用这三个版本的任意一种。

1.2.2 Visual C++的安装和启动

如果你的计算机未安装Visual C++6.0,则应先安装Visual C++6.0。Visual C++是Visual Studio 的一部分,因此需要Visual Studio 的光盘,执行其中的setup.exe,并按屏幕上的提示安装即可。安转完毕后,在Windows 的 “开始” 菜单的程序子菜单中会出现“Microsoft visualStudio”子菜单,如图1-1 所示

图1-1 Microsoft visual Studio 启动子菜单

在需要使用Visual C++时,只需从桌面上顺序选择“开始”程序 “Microsoft visual Studio”

1

《西华大学高级语言在测控中的应用》实验指导书

Visual C++6.0 命令即可,此时屏幕上在短暂显示VisualC++6.0 的版权页面后,出现Visual C++6.0 的由窗口、工具条、菜单、工具及其他部分组成的一个主界面。通过这个界面,用 户可以创建、测试、调试应用程序。如图1-2

图1-2 Visual C++6.0 界面

1.2.3 常用功能键及其意义

为了使程序员能够方便快捷地完成程序开发,开发环境提供了大量快捷方式来简化一些 常用操作的步骤。键盘操作直接、简单,而且非常方便,因而程序员非常喜欢采用键盘命令 来控制操作。下面是一些最常用的功能键,希望在实验中逐步掌握。 操作类型 文件操作 功能键 Ctrl+N Ctrl+O Ctrl+S Ctrl+X Ctrl+C Ctrl+V Ctrl+Z Ctrl+Y Ctrl+A Del Ctrl+F5 F7 F5 F5 对应菜单 File|New File|Open File|Save Edit|Cut Edit|Copy Edit|Paste Edit|Undo Edit|Redo Edit|Select All Edit|Del Build|Run exe Build|Build exe Build|Start Debugging Debug|Go 2

含义 创建新的文件、项目等 打开项目、文件等 保存当前文件 剪切 复制 粘贴 撤消上一个操作 重复上一个操作 全选 删除光标后面的一个字符 运行当前项目 建立可执行程序 启动调试程序 继续运行 编辑操作 调试 建立程序操作 Ctrl+F7 Build| Compiler current file 编译当前源文件 《西华大学高级语言在测控中的应用》实验指导书

F11 F10 F9 Ctrl+F10 shift+F9 Shift + F5 Debug|Step into Debug|Step over Debug|Run to cursor Debug|QuickWatch Debug|Stop debugging 进入函数体内部 从函数体内部运行出来 执行一行语句 设置/清除断点 运行到光标所在位置 快速查看变量或表达式的值 停止调试 Break shift+F11 Debug|Step out 注:这些快捷键命令都有对应的菜单和工具条按钮,如图1.3: Compile (Ctrl+F7) Go Build excute Stop Build

Rebuild all 图 1-3 快捷键命令菜单与按钮

1.2.4 输入和编辑源程序

先介绍最简单的情况,即程序只由一个源程序文件组成,即单文件程序(有关对多文件程序的操作在本章的稍后介绍)。 1、新建一个C++源程序的方法

如果要新建一个C++源程序,可采取以下的步骤:

在Visual C++主窗口的主菜单栏中选择File(文件)命令,然后选择New(新建)命令,如图1-4。

3

《西华大学高级语言在测控中的应用》实验指导书

图1-4 选择File 菜单中的New 操作

图1-5 创建一个C++源文件

这时,展幕上出现一个New(新建)对话框,单击此对话框的上方的Files(文件)属性页,在列表中选择“C++ Source File”项,表示要建立新的C++源程序文件,然后在对话框右半部分的Location(目录)文本框中输入准备编辑的源程序文件的存储路径(假设为D:\\计算机0501-20060405-张三\\实验一),表示准备编辑的源程序文件将存存放在“D:\\计算机

0501-20060405-张三\\实验一”子目录下。在其上方的File(文件)文本框中输入准备编辑的源程序文件的名字(输入MyFirstC),如图1-5。这样,即将进行输入和编辑的源程序就以MyFirstC.cpp 为文件名存放在D 盘的“\\计算机0501-20060405-张三\\实验一”目录下,如图1-6。当然,读者完全可以指定其他路径名和文件名。

图 1-6 C++文件建立成功

在单击OK 按钮后,回到Visual C++主窗口,由于在前面已指定了路径(D:\\计算机

0501-20060405-张三\\实验一)和文件名(MyFirstC.cpp),因此在窗口的标题栏中显示出MyFirstC.cpp。可以看到光标在程序编辑窗口闪烁,表示程序编辑窗口已激活,可以输入和编辑源程序了。这里输入如图1-7 窗口中所示的程序。检查无误后,则将源程序保存在前面指定的文件中,方法是:在主菜单栏中选择File(文件)命令,并在其下拉菜单中选择Save(保存)命令。也可以用快捷键Ctrl+S 来保存文件。如果不想将源程序存放到原先指定的文件中,可以不选择Save 命令,而选择Save As(另存为)命令,并在弹出的Save As(另存为)对话框中指定文件路径和文件名。

4

《西华大学高级语言在测控中的应用》实验指导书

图1-7 C++程序输入

2、打开一个已有的程序

如果你已经编辑并保存过C++源程序,而希望打开你所需要的源程序文件,并对它进行 修改,方法是:

(1)在“资源管理器”或“我的电脑”中按路径打到已有的C++程序名(如C1-1.cpp)。 (2)双击此文件名,则进入Visual C++集成环境,并打开了该文件,程序已显示在编辑窗口中。也可以用Ctrl+O 或单击工具栏中的小图标 来打开文件。

(3)如果修改后仍想保存在原来的文件中,可以选择File(文件)→Save(保存)命令,或用快捷键Ctrl+S,或单击工具栏中的小图标 来保存文件。 3、通过已有的程序建立一个新程序的方法

如果你已编辑并保存过C++源程序(而不是第一次在该计算机上使用Visual C++)的话,则可以通过一个已有的程序来建立一个新程序,这样做比重新输入一个新文件省事,因为可以利用原有程序的部分内容。方法是:

(1)打开任何一个已有的源文件,(例cl-1.cpp)

(2)利用该文件的基础修改成新的文件然后通过选择File(文件)→Save as(另存为)命令将它以另一文件名另存(如以test.cpp 名字另存),这样就生成了一个新文件test.cpp。用这种方法很方便,但应注意:

(1)保存新文件时,不要错用File→Save(保存)操作,否则原有文件(cl-1.cpp)的内容就被修改了。

(2)在编译新文件前,应先选择File(文件)→Close Workspace(关闭工作区)命令将原有的工作区关闭,以免新文件在原有的工作区进行编译。

1.2.5 编译、连接和运行

1、程序的编译

在编辑和保存了源文件以后,需要对该源文件进行编译。单击主菜单栏中的Build(编译),

5

《西华大学高级语言在测控中的应用》实验指导书

在其下拉菜单中选择Compile MyFirstC.cpp(编译MyFirstC.cpp)命令。由于建立(或保存)文件时已指定了源文件的名字MyFirstC.cpp,因此在Build 菜单的Compile 命令中显示了现在要编译的源文件名MyFirstC.cpp。见图1-8:

图1-8 编译C++程序

在选择“编译”命令后,屏幕上出现一个对话框,内容是“This build command repuires an active project workspace.Would you like to creat a default project workspace?”(此编译命令要求一个有效的项目工作区。你是否同意建立一个默认的项目工作区),见图1-9。单击Yes(是)按钮,表示同意由系统建立默认的项目工作区,然后开始编译。也可以不用选择菜单的方法,而用Ctrl+F7 或小图标 来完成编译。

图1-9 建立默认工作区提示

在进行编译时,编译系统检查源程序中有无语法错误,然后在主窗口下部的调试信息窗 口输出编译的信息,如果有错,就会指出错误的位置和性质,见图1-10。

6

《西华大学高级语言在测控中的应用》实验指导书

图1-10 编译错误信息提示

2、程序的调试

程序调试的任务是发现和改正程序中的错误,使程序能正常运行。编译系统能检查出程序中的语法错误。语法错误分两类:一类是致命错误,以error 表示,如果程序中有这类错误,就通不过编译,无法形成目标程序,更谈不上运行了。另一类是轻微错误,以warning(警告)表示,这类错误不影响生成目标程序和可执行程序,但有可能影响运行的结果。因此也应当尽量改正,使程序既无error,又无warning。

在图1-10 中的调试信息窗口中可以看到编译的信息,指出源程序有一个error 和一个warning。第7 行有致命错误,错误的种类是:在“}”之前漏了“;”。检查图1-10 中的程序,果然发现在第6 行末漏了分号。同学们可能要问:明明是第6 行有错,怎么在报错时说成是第7 行的错呢?这是因为C++允许将一个语句分写成几行,因此检查完第6 行末尾无分号时还不能判定该语句有错,必须再检查下一行,直到发现第7 行的“}”前都没有“;”,才能判定出错。因此在第7 行报错。在根据编译报错信息检查程序时,应检查其上下行。此外编译信息指出第7 行还有一个warning,指出main 函数需要有一个返回值,程序中缺少一个“return 0;”语句。

进行改错时,双击调试信息窗口中的某个报错信息的第1 行,光标就自动移到程序窗口中被报错的程序行,并用粗箭头指向该行。见图1-11。

7

《西华大学高级语言在测控中的应用》实验指导书

图1-11 发现错误位置

图1-12 错误修改

8

《西华大学高级语言在测控中的应用》实验指导书

在第6 行末加上分号。再增加新的一行return 0; 如图1-12。再选择Compile MyFirstC.cpp 命令重新编译,此时编译信息提示:“0 error(s),0warning(s)”,即没有致使错误(error)和警告性错误(warning),编译成功,这时产生一个MyFirstC.obj 文件。见图1-13 中的下部调试信息窗口。

图1-13 语法编译通过

3、程序的连接

在得到目标程序后,就可以对程序进行连接了。此时应选择Build(构建)→Build MyFirstC.exe(构建MyFirstC.exe)命令,见图1-14。表示要求连接并建立一个可执行文件MyFirstC.exe。

图1-14 连接建立可执行文件

9

《西华大学高级语言在测控中的应用》实验指导书

在执行连接后,在调试输出窗口显示连接时的信息,说明没有发现错误,生成了一个可 执行文件MyFirstC.exe。见图1-15。

图1-15 可执行文件建立成功

以上介绍的是分别进行程序的编译与连接,也可以选择Build→命令(或按F7 键)一次完成编译与连接。对于初学者来说,还是建议分步进行程序的编译与连接,有利于对程序编译、解释、连接过程的理解。今后积累一定经验后,可以一步完成编译与连接。 4、程序的执行

在得到可执行文件MyFirstC.exe 后,就可以直接执行MyFirstC.exe 了。选择Build →!Execute test.exe(执行MyFirstC.exe)命令。见图1-16。

图1-16 运行程序可执行文件

10

《西华大学高级语言在测控中的应用》实验指导书

在选择“!Execute test.exe”命令后,即开始执行MyFirstC.exe。也可以不通过选择菜单命令,而且Ctrl+F5 来实现程序的执行。程序执行后,屏幕切换到输出结果的窗口,显示出运行结果,见图1-17。

图1-17 程序运行结果

可以看到,在输出结果的窗口中的第1 行是程序的输出结果:This is a C++ program.第2 行“Press any key to continue”并非程序所指定的输出,而是Visual C++在输出完运行结果后由Visual V++6.0 系统自动加上的一行信息,通知用户“按任何一键以便继续”。当你按下任何一键后,输出窗口消失,回到Visual C++的主窗口,你可以继续对源程序进行修改补充或进行其他工作。

如果已完成对一个程序的操作,不再对它进行其他处理,应当选择File(文件)→Close Workspace(关闭窗口)命令,以结束对该程序的操作。

1.2.6 建立和运行包含多个文件的程序的方法

上面介绍的是最简单的情况,一个程序只包含一个源程序文件。如果一个程序包含多个源程序文件,则需要建立一个项目文件(project file),在这个项目文件中包含多个文件(包括源文件和头文件)。项目文件是放在项目工作区(Workspace)中并在项目工作区的管理之下工作的,因此需要建立项目工作区,一个项目工作区可以包含一个以上的项目。在编译时,先分别对每个文件进行编译,然后将项目文件中的文件连接成为一个整体,再与系统的有关资源连接,生成一个可执行文件,最后执行这个文件。

在实际操作时有两种方法:一种是由用户建立项目工作区和项目文件;另一种是用户只建立项目文件而不建立项目工作区,由系统自动建立项目工作区。 1、由用户建立项目工作区和项目文件

(1)、先用前面介绍过的方法分别编辑好同一程序中的各个源程序文件,并存放在自己指定的目录下,例如有一个程序包括filel.cpp 和file2.cpp 两个源文件,并已把它们保存在“D:\\ 计算机0501-20060405-张三\\实验一”子目录下。

(2)、建立一个项目工作区。在如图1-4 所示的Visual C++主窗口中选择File(文件)→New(新建)命令,在弹出的New(新建)对话框中选择上部的选择属性页Workspace name(工作区名字),表示要建立一个新的项目工作区。在对话框中右部Workspace name(工作区名字)文本框中输入你指定的工作区的名字(如wsl),见图1-18。

11

《西华大学高级语言在测控中的应用》实验指导书

图1-18 建立工作区

然后单击右下部的OK 按钮。此时返回Visual C++主窗口,见图1-19。

图1-19 一个空的工作区

可以看到在左部的工作区窗口中显示了“Workspace ws1:0 project(s)”,表示当前的工作区名是wsl,其中有0 个project(没有在其中放入项目文件)。

(3)、建立项目文件。选择File(文件)→New(新建)命令,在弹出的New(新建)对话框中选择上部的选择属性页Projects(项目,中文Visual C++把它译为“工程”),表示要建立一个项目文件。见图1-20。

12

《西华大学高级语言在测控中的应用》实验指导书

图1-20 建立一个新的项目

在对话框中左部的列表中选择“Win32 Console Application”项,并在右部的location(位 置)文本框中输入项目文件的位置(即文件路径),在Project name(中文界面中显示为“工 程”)文本框中输入你指定的项目文件名,假设输入projectl。在窗口右部选中Add to current workspace(添加至现有工作区)单选钮,表示新建的项目文件是放到刚才建立的当前工作 区中的。然后单击OK(确定)按钮。此时弹出一个如图1-21 所示的对话框,在其中选中 An empty project 单选钮,表示新建立的是一个空的项目。

图1-21 项目类型选择

单击Finish(完成)按钮。系统弹出一个New Project Information(新建工程信息)对话 框(图1-22),显示了刚才建立的项目的有关信息。

13

《西华大学高级语言在测控中的应用》实验指导书

图1-22 新建项目的信息

在其下方可以看到项目文件的位置(文件路径)。确认后单击OK(确定)按钮。此时又回到Visual C++主窗口,可以看到:左部窗口中显示了“Workspace’wsl’:1project(s)”其下一行为“project1 files”,表示已将项目文件project1 加到项目工作区wsl 中,见图1-23。图1-23 工作区中加入一个新项目

(4)、将源程序文件放到项目文件中。方法是:在Visual C++主窗口中依次选择Project(工程)→Add To Project(添加到项目中,在中文界上显示为“添加工程”)→“Files?”命令,见图1-24。

14

《西华大学高级语言在测控中的应用》实验指导书

图1-24 文件加入到项目中

在选择“Files?”命令后,屏幕上出现Insert Files into Project 对话框。在上部的列表框中按路径找到源文件file1.cpp 和file2.cpp 所在的子目录,并选中file1.cpp 和file2.cpp,见图1-25。

图1-25 加入文件选择

单击OK(确定)按钮,就把这两个文件添加到项目文件project1 中了。

(5)、编译和连接项目文件。由于已经把file1.cpp 和file2.cpp 两个文件添加到项目文件project1 中,因此只须对项目文件project1 进行统一的编译和连接。方法是:在Visua1 C++主窗口中选择Build(编译)→Build project1.exe(构建project1.exe)命令。在选择Build project1.exe 命令后,系统对整个项目文件进行编译和连接,在窗口的下部会显示编译和连接的信息。如果程序有错,会显示出错信息,如果无错,会生成可执行文件project1.exe。见图1-26。

15

《西华大学高级语言在测控中的应用》实验指导书

图1-26 项目的编译和连接

执行可执行文件。选择Build(编译)→Execute project1.exe(执行project1.exe)命令,即可。 2、用户只建立项目文件

上面介绍的方法是先建立项目工作区,再建立项目文件,步骤比较多。可以采取简化的方法,即用户只建立项目文件,而不建立项目工作区,由系统自动建立项目工作区。在本方法中,保留上一节中介绍的第(1)、(4)、(5)、(6)步,取消第(2)步,修改第(3)步。具体步聚如下:

(1)分别编辑好同一程序中的各个源程序文件。同上一节中的第(1)步。 (2)建立一个项目文件(不必先建立项目工作区)。

在 Visual C++主窗口中选择File(文件)→New(新建)命令,在弹出的New(新建)对话框中选择上部的选项卡projects(项目),表示要建立一个项目文件。见图1-27。在对话框中左部的列表中选择“Win32 Console Application”项,在project name(中文Visual C++中显示为“工程”)文本框中输入你指定的项目文件名(project1)。可以看到:在右部的中间的单选钮处默认选定了Create new workspace(创建新工作区),这是由于用户未指定工作区,系统会自动开辟新工作区。

图1-27 建立一个新的Win32 Console Application 项目

单击OK(确定)按钮,出现“Win32 Console Application-step 1 of 1”对话框,选中右部的An empty project 单选钮,单击Finish(完成)按钮后,出现“New project information”(新建工程信息)消息框。从它的下部可以看到项目文件的路径。单击OK(确定)按钮,在弹出的Visual C++ 主窗口的左部窗口的下方单击File View 按钮, 窗口中显示

“Workspace`project1`:1 project(s)”,见图1-28。说明系统已自动建立了一个工作区,由于用户未指定工作区名,系统就将项目文件名project1 同时作为工作区名。

16

《西华大学高级语言在测控中的应用》实验指导书

图1-28 建立新项目成功

向此项目文件添加内容。步骤与方法一中的第(4)步相同。编译和连接项目文件。步骤与方法一中的第(4)步相同。执行可执行文件。步骤与方法一中的第(6)步相同。显然,这种方法比前一种方法简单一些。在介绍单文件程序时,为了尽量简化手续,这里没有建立工作区,也没有建立项目文件,而是直接建立源文件,实际上,在编译每一个程序时都需要一个工作区,如果用户未指定,系统会自动建立工作区,并赋予它一个默认名(此时以文件名作为工作区名。

1.3 Visual C++ 6.0 工程相关文件介绍

序号 文件名 描述

1 *.dsw VC 工作区文件

2 *.dsp (Developer Studio Project)项目文件,文本格式。不熟悉的话不要手工修改

3 *.ncb 无编译浏览文件。当自动完成功能出问题时,可以删除此文件,编译工程后会自动生成。

4 *.opt 工程关于开发环境的参数文件,如VC 工具条位置信息等。 5 *.h C/C++程序头文件,可用文本编辑器打开 6 *.cpp C++源程序文件,可用文本编辑器打开 7 *.exe 程序可执行文件 8 *.plg 编译信息文件。编译时的error 和warning 信息文件(实际上是一个html文件),一般用处不大。在Tools",Options",Build 里面的选项可以控制这个文件的生成。

9 *.pch (Pre-Compiled File)是预编译文件。可以加快编译速度,但是文件非常大

10 *.pdb (Program Database)记录了程序有关的一些数据和调试信息,在调试的时候有用 11 *. obj 源程序文件的目标文件,编译后生成

12 *. ilk 源程序文件的连接文件,连接后生成注在VC 下建立一个工程后,会自动产生1~4 类型的文件。加入*.h、*.cpp 文件编译后产生7~12 类型的文件。其中8~12 类型的文件位于

17

《西华大学高级语言在测控中的应用》实验指导书

工程目录下的Debug 目录下。

1-4 类型的文件都是工程相关的文件,一般不要删除,因为删除后,必须手动的重新建立工程(1.2.6 详细描述了如何建立一个工程)。对于大型项目来说,删除这些文件的后果很严重。5~6 类型的文件还有什么可说的,不仅不能删除这些文件,还要备份这些文件。失去这些文件是灾难性的。7~12 类型的所有文件都是可以删除的,因为再次编译连接运行程序时,会再次自动生成这些文件。

1.4 Visual C++ 6.0 错误信息 1.4.1 程序错误的类型

1、严重错误(fatal error)

很少出现,通常是内部编译器出错。造成编译立即停止。 2、语法错误(error)

语法错误是指源程序中存在不符合C/C++语言语法规定的语句,例如将int 写成Int,括 号不匹配等。这些错误不改正是不能通过编译的。如图1-29

图1-29 语法错误

3、警告错误(warning)

对于一些在语法上有轻微毛病但不影响程序运行的错误(如定义了变量但始终未使用),编译时会发出警告信息,虽然程序能通过编译、连接、运行,但警告类的错误常常带来程序非法操作、运行错误等问题。所以,尽量改正警告错误。如图1-30

图1-30 警告错误

4、连接错误(Link error)

程序语法上没有问题,但是在连接时出现错误。这类问题常常是因为程序依赖函数、库不匹配造成的。如图1-31

图1-31 连接错误

18

《西华大学高级语言在测控中的应用》实验指导书

5、逻辑错误

逻辑错误是指程序无语法错误,也能正常运行,但结果不对。这类错误常常是设计算法时的错误,计算机无法检查出来。逻辑错误是最难改正的错误之一,引起错误的原因往往可能很不起眼,比如就是一个变量没有初始化等,所以改正这类错误常常需要投入大量的精力。 6、运行错误

有时程序既无语法和逻辑错误,但是程序就是不能正常运行。多数情况下是输入数据和程序要求的数据不匹配造成的,也可能是系统的支持问题。在C++中,语法、连接错误相对较为容易改正。而逻辑错误是最隐蔽的错误,比较难以改正。运行错误则主要是在程序强壮性、兼容性上可能存在问题,可以通过提高程序的适应能力来修正。而最容易让程序开发人员忽略的就是警告错误了,因为警告错误不一定会影响程序的运行,但是正是这种不确定性也传递给了程序的执行,你不知道程序什么时候会出问题,也许永远不会有问题,也许问题马上出现,也许问题n 年后出现,谁知道。所以,一定要重视警告错误。

表1-1 C++错误的前缀描述

错误等级 错误前错误编号范围 示例

001~999 严重错误 C1 C2065: The specified identifier was not

declared.(标识符,比如一个变量,未申明)。

001~999 编译错误 C2 如图 1-29,coutt没有申明过。 001~999 警告错误 C4 C4101: 'main' : unreferenced local variable(局

部变量申明后从未使用过)。如图 1-30,

其中的 i变量从未使用过。

LNK2001: unresolved external symbol 链接错误 LNK 1000~6026

\(连接指定的函数或库异常)。如图 1-31,程序找不到 main函数。

表1-1 是C++错误的前缀描述,在遇到错误时可以根据其前缀就知道错误等级了。

1.4.2 错误信息的查询

只有详细地了解了错误的原因,才能正确地改正错误。Microsoft 的MSDN Library(Microsoft 开发帮助文档库,如图1-32)提供了查询错误信息的功能。对于遇到的不明白的错误,同学们应该学习使用MSDN 帮助文档库进行错误信息查询,获得错误信息的解释和可能的改正方法。具体方法如下:

(1)选择MSDN Library(如图1-32)的索引属性页,在“键入要查找的关键字:”中输入错误号(由错误前缀和编号组成),比如输入C2065,如图1-33 所示。

19

《西华大学高级语言在测控中的应用》实验指导书

图1-32 MSDN Library

(2)、在索引列表框中双击选择匹配的错误后,错误类型、可能原因、改正方法等信息则显示在窗口的右边部分。如图1-33 所示:

图1-33 在MSDN Library 中查找错误信息

20

《西华大学高级语言在测控中的应用》实验指导书

1.5 Visual C++ 6.0 调试工具使用

在开发程序的过程中,需要不断地调试自己的程序,或检查错误,或测试程序的稳定性,这就需要借助调试工具来进行。选择一个好的调试工具并能够熟练地使用它,将会使程序开发变得更加容易,从而大大提高程序开发的效率。目前有许多调试工具,集成在Visual C++中的调试工具便具有相当强大的功能。

1.5.1 设置工程的调试属性

在Visual C++中建立一个工程(Project)时,Visual C++都会自动创建一个Debug 目录,在该目录下存放在开发过程进行调试时生成的文件以及生成的可执行文件(不同类型文件的解释见1.3 节 Visual C++ 6.0工程相关文件介绍),不妨将此时生成的可执行文件称为Debug版本。在Debug 版本当中,包含着Microsoft 格式的调试信息,而且不进行任何代码优化。一般情况下,在程序的开发过程中使用Debug 模式。

在应用程序开发完成之后,要将程序发行时,需要编译形成另一种版本的可执行文件,称为Release 版本,在Release 版本中对可执行程序的二进制代码进行了优化,其中不包含任何的调试信息。要建立Release 版本的可执行文件,可以选择菜单Project 中的Setting 命令,这时屏幕上面弹出Project Settings 对话框,如图1-34 所示。在Settings For 下拉列表中选择Release,按OK 按钮退出。

如果要在Visual C++中调试程序,则工程的应设为Debug 版本。一般Visual C++建立一个工程(Project)时,默认采用Debug 版本。

图1-34 设置工程的调试属性

1.5.2 学习设置断点进行单步调试

通常,一个应用程序是连续运行的,但是在程序调试的过程中,往往需要在程序的运行过程的某一阶段来观测应用程序的状态,所以必须使程序在某一地点停下来。在Visual C++中,可以通过设置断点来达到这样的目的。在设置好断点之后,当程序运行到设立断点处时

21

《西华大学高级语言在测控中的应用》实验指导书

就停止运行,此时就可以利用各种工具来观察程序的状态,也可以设置各种条件使程序按要求继续运行,这样就可以进一步观测程序的流向。

在Visual C++中,可以设置多种类型的断点,这些断点起作用的方式各不相同,可以将它们分为三类,即:位置断点、逻辑断点以及与Windows 消息有关的断点。下面我们只介绍简单位置断点的设置方法,其它高级断点的设置可以在今后进一步学习中掌握。 1、设置位置断点

位置断点,这是一类最简单的断点类型,其设置方法也最为简单,只要把光标移到要设 断点的位置(当然这一行必须包含一条有效语句);然后按工具条上的add/remove breakpoint 按钮或按快捷键F9;如图1-35:

图1-35 设置断点按钮

这时将会在屏幕上看到在这一行的左边出现一个红色的圆点,表示在该位置设立了一个断点,如图1-36 所示。如果你想取消断点,将光标移动到设置断点的代码行,按F9。

图1-36 设置一个断点

2、启动调试

按F5 或者在Build 菜单中,选择Start Debug 然后选择Go,就可以启动调试程序。程序会一直运行到需要用户输入或者有断点的代码处。如图1-37 处的小黄箭头,表明程序运行到该处停止下来,等待下一步调试命令。

22

《西华大学高级语言在测控中的应用》实验指导书

图1-37 启动调试

3、查看变量值

查看变量值有多种方式,你可以选择你喜欢的方式进行。

(1) 你可以将鼠标移动到程序的变量名处,系统会自动为你显示变量的值;

(2)复杂变量(如对象)可以通过QuickWatch 查看,方法是:将光标定位到所要查看值的变量处,按鼠标右键,选择QuickWatch 菜单,就可以看到变量值。

(3)启动调试程序后,屏幕下方将会出现两个输出窗口,一个是Watch,另一个是Variable。Watch 窗口显示变量名和变量值,你可以在Watch 窗口中加上你想观察值的变量名,也可直接从源代码中选择变量名,并把它拖动到Watch 窗口中。Variable 窗口显示程序当前运行上下文涉及的变量的值。 如图1-38:

23

《西华大学高级语言在测控中的应用》实验指导书

图1-38 查看变量数据

4、控制程序执行

你可以控制程序单步执行(F10)、跟踪到一个函数内部(F11)、从一个函数运行出来(shift+F11)、运行到光标所在位置(Ctrl+F10),以便方便地调试程序。这些命令用于在某个局部范围详细地调试程序。你也可以通过设置断点(F9)然后用直接运行(GO 或者F5)来控制程序直接运行到断点位置。如果你设置了多个断点,程序将会在遇到的第一个断点处停下来。要从断点处继续运行,可以用上面所说的各种命令(F5, F10, F11, Shift+F11,Ctrl+F10)。

图1-39 调试控制工具条

5、结束调试

要结束调试,可以按shift+F5 或者选择菜单Debug|Stop Debugging。当结束调试后,所有调试窗口会自动关闭,Debug 菜单也会自动还原为Build 菜单。

24

《西华大学高级语言在测控中的应用》实验指导书

第二章 C++实验要求

2.1 实验的意义和目的

程序设计是计算机专业的本,计算机专业大量的理论和实践学习,比如,从《数据结构》、《面向对象的系统分析与设计》、《操作系统》到毕业设计,都会用到程序设计,而C++程序设计语言则是进行程序设计的基础工具。正如我们在学习语言时,不能仅仅停留在“听得懂”,而要学会能说会道,才能有效地和别人进行交流。类似的,学习C++程序设计不能仅满足于“懂得了”,满足于了解语法和能看懂书上的程序,而应当掌握程序设计的全过程,即能独立编写源程序,独立调试运行程序,独立分析运行结果,学会利用C++程序设计语言和计算机进行交流。

程序设计是一门实践性很强的课程,必须以实践为重,许多实践知识不是靠听课和看书学到的,而是通过长时间的实践积累起来的,切忌只看书,不上机实践。不仅要纸上谈兵,更要沙场比试。正是如此,C++实验给同学提供了一个实践的机会。

C++实验的目的,绝不仅是为了验证教材和讲课的内容,或者验证自己所编写的程序正确与否。其目的更在于:

1、加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,不足于掌握理解。通过多次上机,就能自然地、熟悉地掌握,所谓熟能生巧。 2、熟练掌握并使用C++程序开发的环境。

3、学会独立调试和运行程序。任何程序都不是一蹴而就的,需要多次的更改调试,对初学者来说更是如此。因此,要在调试过程中积累经验,再利用经验高效、快速地调试程序。调试程序的能力是每个程序设计人员应当掌握的一项基本功。

4、养成良好的编程习惯,编写良好风格的代码。编写程序应遵循良好的编程规范,使程序具有良好的可读性、可维护性。正如写文章一样,不仅要写得一手好字,更要格式规范,段落分明,思路清晰。

5、培养独立编写程序的能力。程序设计最终的目的是使用计算机解决实际问题,问题是什么,如何解决,解决方法是什么,如何编写程序解决问题才是核心。因此,在做实验的时候应多问为什么,多观察,多分析,多动手。

2.2 实验过程总体要求

2.2.1 实验内容总体安排

序号 1 2 3 4 5 6 7 8

实验名称

数据类型与表达式 C++程序设计初步 函数与程序结构 数组

指针和引用 结构体

面向过程的程序设计 类和对象

25

实验类型 验证型 验证型 验证型 验证型 验证型 验证型 设计型 验证型 实验学时 1 1 2 1 2 1 0 2 题目数 2+1 2+1 2+1 2+1 2+1 2+1 3 2+1

《西华大学高级语言在测控中的应用》实验指导书

9 继承与派生 10 多态与虚函数 11 运算符重载 12 文件操作 13 面向对象的程序设计 注 2+1 中的1 指扩展选作题

验证型 验证型 验证型 验证型 设计型 2 2 0 0 0 2+1 2+1 2+1 2+1 3

2.2.2 实验前的准备工作

1、预习、思考实验内容;

2、复习和掌握与本实验有关的知识内容;

3、准备好上机所需的程序代码。实验课内时间主要是解决问题、调试程序、运行程序、 测试程序和分析结果的时间。切忌不编写程序或抄袭别人程序去上机;

4、对程序中自己有不懂或疑问的地方,应做出记录,以便在实验课上集中解决; 5、准备好调试和运行所需的数据;

2.2.3 上机实验步骤

上机实验时应该是一人一组,独立上机。上机过程中出现的问题,尽量先独立思考和解决,尤其是语法错误问题,应善于独立分析判断,这是提高程序调试能力最主要的途径;对于难以解决的问题可以和同学交流或问老师。具体的上机步骤是: 1、在磁盘上建立自己的工作目录,比如D:\\张三\\C++实验\\实验一 2、进入C++工作环境,如Visual C++ 6.0 集成开发环境; 3、输入自己编好的程序; 4、检查输入是否有错;

5、编译和连接。如果出现错误,首先记录错误信息,然后根据提示的出错信息查找出错位置和原因,加以改正。再进行编译??,如此反复直到正确编译和连接为止通过为止。 6、运行程序,输入测试数据,记录程序运行结果; 7、分析结果是否正确,并改进程序;

2.2.4 上机代码编写要求

1、认真阅读参考资料《华为编程规范和范例》;

2、实验代码书写规范清晰,如缩进、空行、程序块对齐等; 3、书写的代码有必要的注释;

注意:代码的规范性将作为实验(过程和期末)考核的一个重要部分

2.2.5 实验报告编写

实验后,应及时整理出实验报告,实验报告提交电子文档,实验报告具体内容见附录A实验报告

2.2.6 实验数据提交

1、提交内容

每次实验需要提交的数据主要有以下几项:

(1)、实验代码:实验代码必须按照《华为编程规范》编写,不良代码不予接收。 (2)、实验可执行文件 2、提交方法

26

《西华大学高级语言在测控中的应用》实验指导书

每次实验的数据均需要按时提交到指导教师指定的服务器上。提交的方法如下:

(1)、把实验的内容(见1)统一放入一个文件夹中。文件夹以学生的班级、学号、姓名 组合命名,比如:计算机-20060405-张三。如下图2-1:

图2-1 实验数据整理

(2)、把(1)整理的个人实验数据文件夹提交到服务器,具体服务器由指导教师根据实验室环境情况确定。

2.2.7 实验参考资料

[1] 华为编程规范

[2] 林锐. 高质量C++C 编程指南. 2001, 7

[3] 谭浩强. C++ 程序设计. 北京:清华大学出版社. 2004

[4] 谭浩强. C++程序设计题解与上机指导. 北京:清华大学出版社. 2004

2.3 实验考核

2.3.1 平时实验过程考核

平时实验过程考核主要是三个方面:

1、上机实验考勤。每次上机应主动在指导老师处签到,冒签等不诚信行为一旦发现,取消本次实验成绩。累计缺席实验课5 次及5 次以上者(共12 课),取消期末考试资格。 2、实验数据提交。应根据指导教师要求按时提交每次实验的数据(不知道提交什么?见2.2.6 实验数据提交)。抄袭代码或实验报告等不诚信行为一旦发现,取消本次实验成绩。实验数据未交5 次及5 次以上者(共13 个实验),取消期末考试资格。

27

《西华大学高级语言在测控中的应用》实验指导书

3、指导教师每次实验课根据实验过程情况,随机抽查5~10 名同学进行当次实验的答辩。 4、实验课请假,请出据学办老师签字的正规请假条。

2.3.2 实验成绩评定

C++程序设计语言实验考核成绩将兼顾平时实验过程考核和上机出勤等考试成绩。

28

《西华大学高级语言在测控中的应用》实验指导书

第三章 实验内容与指导

3.1 实验一 数据类型与表达式

3.1.1 实验类型:验证型实验 1 学时 3.1.2 实验目的

1、熟悉并学习使用C++程序编译平台VC6.0;

2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的C++程序; 3、掌握C++语言基础数据类型,熟悉变量定义和赋值方法; 4、学会使用C++算术运算符和算术表达式;

3.1.3 知识点介绍

1、C++程序的结构。

一个c++程序有多个程序单位构成,每一个程序单位作为一个文件,编译系统分别对 每个程序文件分别编译,然后连接起来形成可执行程序。在一个程序单位中包含以下几部分: 预处理命令、全局声明部分、函数(有函数首部和函数体组成),一个C++必须有一个(而且只能有一个)main()函数。 2、C++数据类型和表达式

C++有多种数据类型,数据类型隐含着该类数据的表示、存储及处理规则。C++运算符丰富,使用十分灵活。有运算符和括号将运算对象(操作数)连接起来,构成表达式。表达式中混合运算式要注意运算符的优先级和结合性。此外,不同数据类型运算时,存在类型转换(隐式自动转换和强制转换)。 3、C++程序的编写实现

用C++语言编写程序——对源程序文件进行编译声称目标文件——对目标文件连接形 成可执行程序——运行程序得到结果——分析结果。

3.1.4 实验内容

题目1 最简单的C++程序

按提示的操作步骤,输入下面程序代码,编译连接并执行。

[实验提示]

1、按照1.2.4、1.2.5 节操作步骤创建第一个应用: (1)编辑你的第一个C++源程序

29

《西华大学高级语言在测控中的应用》实验指导书

(2)保存你的源文件

(3)编译、连接得到可执行程序 (4)改正源程序中的错误 (5)运行你的第一个程序

2、你可以有三种方式运行你的程序: (1)在开发环境中运行程序

选择Build|Execute hello.exe(或者Ctrl+F5),在开发环境中执行你的程序。程序运行以后 将显示一个类似于DOS 的窗口,在窗口中输出一行“hello”,紧接着在下面显示“Press any key to continue”,这句话是系统提示你按任意键退出当前运行的程序,回到开发环境中。按

任意键,窗口关闭,退回到Visual C++开发环境。我们实验中将用这种方式运行程序。 (2)在DOS 环境下运行程序

打开DOS 窗口,改变工作路径到项目目录,该目录是你在创建目录时指定的。如果你 不记得了,可以在Developer Studio 中的工作区窗口中选择项目名称(这里是“hello files”), 然后选择菜单View|Properties,将可以显示出项目路径。

切换到debug 子目录下,运行hello.exe,程序将输出:’hello’。 (3)在Windows 环境下运行程序

打开Windows 的资源管理器,找到程序所在的目录,运行它。你看到的结果是怎样的? [思考与扩展]

1、如果程序中大小写输入错误如main 写成Main,结果会怎样?

2、编译运行通过后,本程序输出了一行字符,如果还想输出一行字符: \

程序代码该如何修改添加?

提示:注意使用换行控制符 ’\\n’或输出控制符endl。

题目2 阅读并编译程序

30

《西华大学高级语言在测控中的应用》实验指导书

1、读懂程序,添加必要的注释,并编译运行。 2、将程序第1行 #include

#include 代替并删除第2 行语句 using namespace std;

后编译运行程序,结果会改变么? [实验提示]

由于刚才已建立了一个名为Hello.cpp 的源程序,如果你的Microsoft Visual C++6.0 还没有关闭,你可以关闭你的第一个项目(project):从主菜单中选择close workspace ,以便建立下一个新程序。

按照第一题的操作步骤新建工程,输入代码,编译连接,执行程序,输入测试数据分析结果是否正确,如有错误改正后再重新编译连接,直到没有错误为止。 [测试数据] 运行时输入:

第一次 80 80 第二次 97 97 第三次 870 670 [思考与扩展] 1、第8 行输出语句 cout << \的输出结果是多少,为什么会出现这种结果。编译时有错误或警告提示信息是什么意思?编译中的警告信息影响你程序的运行吗? 2、Sizeof()功能是求变量或类型的字节长度,程序输出结果iv1 和cv1 的字节长度分别为4 和1,如有有一条语句:cout << sizeof(double); 其输出结果是多少。在程序中加入这一行语句

31

《西华大学高级语言在测控中的应用》实验指导书

并编译执行,观察输出结果。

3、程序输出结果和你预期的结果有什么不同?分析说明程序结果。

题目3 简单应用—求圆柱体的体积

输入下面程序代码,编译运行。

[实验提示]

按照第一题的操作步骤新建工程,输入代码,编译连接,执行程序,输入测试数据分析 结果是否正确,如有错误改正后再重新编译连接,直到没有错误为止。 在输入代码的过程中要细心,注意中西文输入法的区别。 [测试数据] 运行时输入: 5 8 -2 1

[思考与扩展]

1、#define PI 3.14159 是符号常量,用const 常量定义PI。 2、如果运行时输入 3.8 5

程序的输出结果是什么,正确吗?将程序中变量radius, high 改为double 类型,然后输 入上面的测试数据,结果怎么样?说明原因。

3、注意 输入提示和输出提示语句,尝试修改输入数出提示语句。

32

《西华大学高级语言在测控中的应用》实验指导书

3.2 实验二 C++程序设计初步

3.2.1 实验类型:设计型实验 1 学时 3.2.3 实验目的

1、掌握C++程序的赋值和输入输出语句的使用方法;

2、掌握C++程序控制的3 种基本结构:顺序结构、选择结构和循环结构的实现; 3、掌握简单C++程序的编写和调试

3.2.3 知识点介绍

1 关系运算、逻辑预算,关系表达式和逻辑表达式。 2、程序的三种结构:顺序、选择和循环。 3、选择结构:if 语句,switch 语句的应用。

4、循环结构:while 语句、do-while 语句、for 语句的应用。

3.2.4 实验内容 题目1 计算员工周工资

编写一个程序,输入某雇员的每周工作时间(以小时计)和每小时的工资数,计算并输出他的工资。若雇员周工作小时超过40 小时,则超过部分按原工资的1.5 倍的加班工资来计算。若雇员每周工作小时超过60 小时,则超过60 的部分按原工资的3 倍的加班工资来计算,而40 到50 小时的工资仍按照原工资的1.5 倍的加班工资来计算。

1、要求有输入提示和输出提示,如要输入雇员的工作时间和每小时的工资值时,可以 提示:

“Please input employee’s work time and wage_per_hour:” 输出时,提示:

“The employee’s wage :”。

2、给你的程序加上注释,并注意排版格式,使得其清晰可读。 [实验提示]

1、从本次实验开始,我们开始编写稍微复杂的程序,涉及到一些简单的算法,请务必按实验要求养成良好编程的习惯,再次强调:代码要写整齐,注意排板规范,请再次仔细研读附录〈〈编程规范〉〉。给你的变量起个好名字,不要什么变量都用a,b,c?等,变量最好用英文单词或单词的缩写命名,变量名字要体现变量在程序的含义和作用。要有必要的注释!!,养成这一良好的习惯很重要,请记住,“代码只被书写一次,而它被修改和阅读的次数可能是无限的”

2、本程序可以使用if 语句和switch 语句分别实现流程图分别如下:

33

《西华大学高级语言在测控中的应用》实验指导书

[测试数据] 输入:30 4 输入:45 4.5 输入:60 5 [思考与扩展]

1、尝试分别用if 和switch 语句实现选择结构语句

2、如果程序运行时循环输入并给出计算结果,并当当用户输入0 时程序结束,程序该如何修改? 3、测试数据的选择应该考虑选择结构中的每一种情况都被执行一次,也就是选择的测试数

34

《西华大学高级语言在测控中的应用》实验指导书

据应该具有代表性,对本题来说,选择的数据因该分几种情况: 1)小于40 的数据

2)大于40 而小于50 的数据 3)大于50 的数据

4)不合理的数据比如负数或大于7*24 数,(注意一周最多只有7*24 小时) 设计一组你的测试数据。

题目2 设计一个计算+、-、*、/的程序

程序循环从标准输入读入表达式: 输入: 4+2 回车 则输出:4+2=6 输入: 4*2 回车 则输出:4*2=8 ………

当用户输入:0 0 0 回车时程序退出 实现要求:

1、有输入提示和输出提示,如要输入表达式时,可以提示: \输出时,提示: \。

计算在用户输入的表达式为0 0 0 时程序结束。 2、为你的程序加上注释,使得其清晰可读。 3、尝试利用调试程序来修改你程序的逻辑错误。 [实验提示]

1、程序流程图:

35

《西华大学高级语言在测控中的应用》实验指导书

2、具体计算可采用switch 语句实现 switch(operator) //判断运算符 {

case '+':

result = operand1 + operand2;

cout<

default:?? }

[测试数据]

自己设计一组测试数据,要求覆盖switch 选择结构的中所有路径即每条case 语句都被 执行一次。 [思考与扩展]

1、为什么要在while 循环体中输入三个数据(表达式)? 2、使用switch 语句中的break 起什么作用? 3、你还有更好的实现方法么?

36

本文来源:https://www.bwwdw.com/article/7ih6.html

Top