c++上机实验指导书.doc_第1页
c++上机实验指导书.doc_第2页
c++上机实验指导书.doc_第3页
c++上机实验指导书.doc_第4页
c++上机实验指导书.doc_第5页
免费预览已结束,剩余44页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 面向对象程序设计面向对象程序设计 实验指导书实验指导书 课程编码:课程编码:609324 课程类别:课程类别:专业方向课 适用专业:适用专业:计算机科学与技术 主要教学内容:主要教学内容:C+与面向对象程序设计思 想 课程总学时:课程总学时:54 课程总学分:课程总学分:3 实验学时:实验学时:24 实验学分:实验学分:1 执笔人:执笔人:* 本实验指导书分为六个实验,任课教师可以根据具体情况对一些实验进行拆分和增删,以 适应不同专业不同课时的需求。本实验指导书适用于计算机学院的三个专业。 2 目录 【实验目标要求实验目标要求】.3 【实验教材及主要参考资料实验教材及主要参考资料】.3 【实验学习要求实验学习要求】.3 【实验准备实验准备】.3 【实验计划实验计划】.6 【实验任务实验任务】.7 实验一、熟悉实验环境以及实验一、熟悉实验环境以及 C+基本要素、程序的基本控制结构、基本数据类型、运算符和表达基本要素、程序的基本控制结构、基本数据类型、运算符和表达 式式.7 【实验目的实验目的】.7 【实验内容】.7 【实例编程】.12 实验二、函数应用与指针实验二、函数应用与指针.15 【实验目的】.15 【实验内容】.15 【实例编程】.20 实验三、类和对象实验三、类和对象.22 【实验目的】.22 【实验内容】.22 【实例编程】.26 实验四、继承和派生实验四、继承和派生.28 【实验目的】.28 【实验内容】.28 实验五、多态、运算符重载与异常实验五、多态、运算符重载与异常.32 【实验目的】.32 【实验内容】.32 实验六、课程设计实验六、课程设计.44 【实验目的实验目的】.44 【实验内容】.44 3 【实验目标要求】 面向对象程序设计是计算机技术专业的一门必修课程。面向对象软件开发方法是吸收 了软件工程领域有益概念和有效的方法而发展起来的一种软件开发方法。它集抽象性、封装性、 继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的,体现信息隐蔽、可 复用、易修改、易扩大等特性的程序。本课程主要介绍面向对象程序设计的方法和 C+语言的 基本概念以及基本 Windows 编程技术,其中以 C+语言中的面向对象机制为主。学习者在学习 过程中可以通过大量的程序实例和相关练习,逐步掌握 C+的面向过程和面向对象的功能,从 而掌握面向对象程序设计的基本知识和基本技能。在学习本课程中,只有通过大量的上机实验, 才能使学生更好的掌握面向对象程序设计的方法,提高学生运用 C+语言和面向对象思想进行 编程来解决实际问题的能力。本课程实验要求学生通过对各部分实验的具体操作练习,能够熟 练的掌握 c+的基本内容,包括控制结构、基本数据类型、表达式、函数、指针和引用、类与 对象的概念以及封装、继承和多态等面向对象程序设计的基础理论,在这些基础理论的基础上, 掌握初步的 Windows 编程技术,包括消息传递机制、MFC 应用程序框架、文档视图结构等。 【参考资料】 参考资料:参考资料: 1.C+语言程序设计 (含实验指导书) ,郑莉著, 清华大学出版社 2.C+程序设计教程 ,钱能主编,清华大学出版社 3.Visual C+程序设计基础 ,戴锋编著,清华大学出版社 4.C+程序设计教程 ,吕日著,清华大学出版社 5.C+语言基础教程题解与上级指导 ,吕凤翥编著,清华大学出版社 6.C+ Primer Plus(第四版中文版),美国 Stephen Prata 著,孙建春 韦强译 7.C+大学教程 ,美国 Harvey M.Deitel 等 【实验学习要求】 认真阅读Visual C+与面向对象程序设计教程教材中的与实验相关的章节内容,提前 做好实验预习,做到在每个实验前明确实验目的、掌握实验的基本内容及操作方法;在实验中 正确使用实验设备,认真观察、分析实验结果;实验后要根据要求做好总结,上交实验报告。 【实验准备】 一、一、VisualVisual C+C+集成开发环境(集成开发环境(IDEIDE)介绍)介绍 集成开发环境集成开发环境(IDE)是一个将程序编辑器、编译器、调试工具和其他建立应用程序的工 具集成在一起的用于开发应用程序的软件系统。Visual C+软件包中的 Developer Studio 就是一 个集成开发环境,它集成了各种开发工具和 VC 编译器。程序员可以在不离开该环境的情况下 编辑、编译、调试和运行一个应用程序。IDE 中还提供大量在线帮助信息协助程序员做好开发 工作。Developer Studio 中除了程序编辑器、资源编辑器、编译器、调试器外,还有各种向导 (如 AppWizard 和 ClassWizard) ,以及 MFC 类库,这些都可以帮助程序员快速而正确地开发 出应用程序。 向导向导(Wizard):向导是一个通过一步步的帮助引导你工作的工具。Developer Studio 中包含 三个向导,用来帮助程序员开发简单的 Windows 程序,它们是: 4 AppWizard:用来创建一个 Windows 程序的基本框架结构。AppWizard 向导会一步步向程 序员提出问题,询问他所创建的项目的特征,然后 AppWizard 会根据这些特征自动生成一个可 以执行的程序框架,程序员然后可以在这个框架下进一步填充内容。AppWizard 支持三类程序: 基于视图/文档结构的单文档应用、基于视图/文档结构的多文档应用程序和基于对话框的应用 程序。也可以利用 AppWizard 生成最简单的控制台应用程序(类似于 DOS 下用字符输入输出的 程序) 。ClassWizardClassWizard:用来定义 AppWizard 所创建的程序中的类。可以利用 ClassWizard 在项 目中增加类、为类增加处理消息的函数等。ClassWizard 也可以管理包含在对话框中的控件, 它可以将 MFC 对象或者类的成员变量与对话框中的控件联系起来。ActiveXActiveX ControlControl WizardWizard: 用于创建一个 ActiveX 控件的基本框架结构。ActiveX 控件是用户自定义的控件,它支持一系 列定义的接口,可以作为一个可再利用的组件。 MFC 库:库:库(library)是可以重复使用的源代码和目标代码的集合。MFC(Microsoft Fundamental Casses)是 Visual C+开发环境所带的类库,在该类库中提供了大量的类,可以帮 助开发人员快速建立应用程序。这些类可以提供程序框架、进行文件和数据库操作、建立网络 连接、进行绘图和打印等各种通用的应用程序操作。使用 MFC 库开发应用程序可以减少很多 工作量。 二、项目开发过程二、项目开发过程 在一个集成的开发环境中开发项目非常容易。一个用 C+开发的项目的通用开发过程可以 用左图表示。 建立一个项目的第一步是利用编辑编辑器建立程序代码文件,包括头文件、代码文件、资源文 件等。然后,启动编译程序,编译程序首先调用预处理预处理程序处理程序中的预处理命令(如 #include,#define 等) ,经过预处理程序处理的代码将作为编译程序的输入。编译对编译对用户程序进行 词法和语法分析,建立目标文件,文件中包括机器代码、连接指令、外部引用以及从该源文件 中产生的函数和数据名。此后,连接连接程序将所有的目标代码和用到的静态连接库的代码连接起 来,为所有的外部变量和函数找到其提供地点,最后产生一个可执行文件。一般有一个 makefile 文件来协调各个部分产生可执行文件。 可执行文件分为两种版本:Debug 和 Release。Debug 版本用于程序的开发过程,该版本产 生的可执行程序带有大量的调试信息,可以供调试程序使用,而 Release 版本作为最终的发行 版本,没有调试信息,并且带有某种形式的优化。学生在上机实习过程中可以采用 Debug 版本, 5 这样便于调试。 选择是产生 Debug 版本还是 Release 版本的方法是:在 Developer Studio 中选择菜单 Build|Set Active Configuration,在弹出的对话框中,选择所要的类型,然后选择 OK 关闭对话框。 Visual C+ 集成开发环境中集成了编辑器、编译器、连接器以及调试程序,覆盖了的开发 应用程序的整个过程,程序员不需要脱离这个开发环境就可以开发出完整的应用程序。 三、使用三、使用 ViVisual C+6.0 集成开发环境集成开发环境 1、进入、进入 Visual C+6.0 单击任务栏中“开始开始”后选择“程序程序” ,找到 Microsoft Visual Studio 6.0 文件夹后,单击其 中的 Microsoft Visual C+6.0 图标,则可以启动 Visual C+。 2、Visual C+6.0 的界面的界面 Visual C+6.0 用户界面是一个由窗口、工具条、菜单、工具及其他部分组成的一个集成 界面(如下图所示) 。通过这个界面,用户可以在同一环境下创建、测试、调试应用程序。主要 部分介绍如下: 工具条和菜单,用于提供用户操作的命令接口,菜单以文字和层次化的方式提供命令接口, 工具条由一系列按钮组成。 工作区窗口,这个窗口包含关于正在开发的这个项目的有关信息,当打开一个项目以后, 工作区窗口将会显示关于当前项目的文件信息和类的信息以及资源的信息。 文档窗口区,这个区域可以显示各种类型的文档,如源代码文件、头文件、资源文件等。 可以同时打开多个文档。 输出窗口,输出窗口用来显示几种信息,可以通过选择不同的标签显示不同的信息。这些 信息包括:编译连接结果信息(Build 标签) 、调试信息(Debug 标签) 、查找结果信息(Find in Files 标签) 。其中查找结果信息有两个标签,可以显示两次在文件中查找指定内容的结果。 3、获得帮助信息、获得帮助信息 大多数时候,你可以通过按 F1 得到上下文帮助。如在编辑文件时按 F1 可以得到有关编辑 的帮助,在编译连接错误信息上按 F1 可以得到关于该错误的帮助信息。还可以通过选择菜单 Help|Contents 来启动 MSDN 查阅器,MSDN 查阅器是一个功能强大的程序,可以方便地浏览、 查找信息,要想知道具体如何使用 MSDN 查阅器,可以在 MSDN 查阅器中选菜单 Help 下的命 6 令。 4、Visual C+的编辑器的编辑器 Developer Studio 包含一个功能强大的编辑器,可以编辑将被编译成 Windows 程序的 Visual C+源文件。这个编辑器有点象字处理器,但是没有字处理器具备的复杂的排版、文本格式等 功能,它注重的是如何帮助程序员快速高效地编制程序。它具有以下特点: 自动语法。用高亮度和不同颜色的字来显示不同的语法成分。 自动缩进。帮助你排列源代码,使其可读性更强 参数帮助。在编辑时用到预定义的 windows 函数时,可以自动为你显示函数参数 集成的关键字帮助。能够使你快速得到任何关键字、MFC 类或 Windows 函数的帮助信息 (按 F1 即可) 拖放编辑。能够用鼠标选择文本并自由拖动到任意位置 自动错误定位。能自动将光标移动到有编译错误的源代码处。 当你打开一个源代码文件时,就可以利用编辑器对其进行编辑。源代码文件在文档显示区 显示,每个文件有独立的显示窗口。如果你选择用其他编辑器编辑源文件,必须将它以纯文本 的方式保存。VC 的编译器不能处理其中有特别格式字符的文件。 5、常用功能键及其意义、常用功能键及其意义 为了使程序员能够方便快捷地完成程序开发,开发环境提供了大量快捷方式来简化一些常 用操作的步骤。键盘操作直接、简单,而且非常方便,因而程序员非常喜欢采用键盘命令来控 制操作。下面是一些最常用的功能键,希望学员在实验中逐步掌握。 操作类型功能键对应菜单含义 文件操作Ctrl+NFile|New创建新的文件、项目等 Ctrl+OFile|Open打开项目、文件等 Ctrl+SFile|Save保存当前文件 编辑操作Ctrl+XEdit|Cut剪切 Ctrl+CEdit|Copy复制 Ctrl+VEdit|Paste粘贴 Ctrl+ZEdit|Undo撤消上一个操作 Ctrl+YEdit|Redo重复上一个操作 Ctrl+AEdit|Select All全选 建立程序操作Ctrl+F7Build| Compiler current file编译当前源文件 Ctrl+F5Build|Run exe运行当前项目 F7Build|Build exe建立可执行程序 F5Build|Start Debugging启动调试程序 调试F5Debug|Go继续运行 F11Debug|Step into进入函数体内部 shift+F11Debug|Step out从函数体内部运行出来 F10Debug|Step over执行一行语句 F9设置/清除断点 Ctrl+F10Debug|Run to cursor运行到光标所在位置 shift+F9Debug|QuickWatch快速查看变量或表达式的值 Shift + F5Debug|Stop debugging停止调试 7 【实验计划】 实验序号实验项目内容学时实验类型 实验一熟悉实验环境以及 C+基本要素、程 序的基本控制结构、基本数据类型、 运算符和表达式 2基础 实验二函数应用与指针4基础 实验三类和对象4基础 实验四继承和派生4基础 实验五多态、运算符重载与异常4基础 实验六课程设计6综合 【实验任务】 实验一、熟悉实验环境以及实验一、熟悉实验环境以及 C+基本要素、程序的基本控制结构、基本基本要素、程序的基本控制结构、基本 数据类型、运算符和表达式数据类型、运算符和表达式 【实验目的实验目的】 1、 了解和使用 VC 集成开发环境。 2、 学习完整的 C+程序开发过程。 3、 理解结构化程序设计的基本方法。 4、 掌握程序的三种基本控制结构及其语法。 5、 掌握 break、continue、goto 语句的执行过程并熟练使用。 6、 掌握标识符常量与变量的概念和定义方法。 7、 掌握各种运算符的功能、优先级和结合性。 8、 理解隐式转换和强制转换,理解数据超过该数据类型表示范围时的溢出。 9、 掌握不同数据之间的混合算术运算中数据类型的转换。 【实验内容】 1、熟悉、熟悉 Visual C+实验环境。实验环境。 启动 Visual C+6.0,看看初始化界面由哪些部分组成。 查看各菜单项,看看都有哪些子菜单和命令。 将鼠标放置于各工具条图标上,系统会自动显示该图标代表的命令含义,了解一下都有哪 些命令。 在任意工具条上单击鼠标右键,弹出式菜单上将显示所有可用的工具条,选择其中没有对 号()的项,看看有什么效果,再选择有对号的项,又有什么效果? 将鼠标移动到任意工具条上,将鼠标放到图标间隙,按下鼠标左键不放,移动鼠标到屏幕 中间,有什么现象发生?再将它拖回到原来位置,有什么现象发生? 将鼠标移动到左边的工作区窗口,按下鼠标左键不放,移动鼠标到屏幕中间,有什么现象 发生?再将它拖回到原来位置,有什么现象发生? 将鼠标移动到下边的输出窗口,按鼠标右键,弹出一个菜单,选择其中的菜单项”Hide”, 8 结果如何?要重新显示该窗口,选择菜单 View|Output,窗口是不是又显示出来了? 选 File|Exit 退出 Developer Studio。 2、用、用 AppWizard 建立一个控制台应用,在终端上输出建立一个控制台应用,在终端上输出”Hello”。 首先创建一个项目(project) ,项目将代表你的应用,存放你应用的所有信息,包括源文件、 资源文件、编译连接设置等。创建项目的步骤为: (1) 启动 Developer Studio (2) 从主菜单中选择 File|New,将显示出 New 对话框 (3) 选择 Projects 标签,并从列表中单击 Win32 Console Application (4) 在“Location”编辑框中输入你的工作目录名称,如 c:studentyour_name (5) 在对话框的右上角的“project name”编辑框内键入项目的名字,如”Hello”,系统将自 动为你的项目分配一个默认的目录 (6) 单击 OK 继续 (7)系统将显示一个询问项目类型的程序向导,选择“an empty project” (8)单击 Finish 或 OK 结束配置,创建应用程序 这时系统为你创建一个新的项目,并且在左边的工作区窗口中将出现你项目的名字。工作 区窗口出现了两个标签 ClassView 和 FileView。ClassView 从类全局函数、和全局变量角度显示 项目中建立的各个类,双击某个类名将会在右边的文档显示区显示类的定义文件并把文件的当 前位置定位到所选的类;FileView 显示构成项目的各个文件,选择某一文件将会在右边的文档 显示区显示文件内容。 然后,编辑一个 C+源程序,用下面的方法在你创建的项目中添加一个文件: (1) 在主菜单上选择 File|New (2) 在 New 对话框中选择 File 标签,单击“C+ Source File” (3) 选中 Add to Project 复选框 (4) 在右边的 File name 编辑框中为文件指定一个名字,如 hello,系统将自动为你加上后缀. cpp。 新的空白文件将自动打开,显示在文档显示区。在文件中输入以下内容: /hello world example #include using namespace std; int main() cout hello! endl ; return 0; /正常返回 编辑结束后,仔细检查你输入的内容,看有无错误。确认没有错误之后,选择主菜单的 Build|Build Hello.exe 来编译你的项目(也可以按功能键 F7) 。如果你输入的内容没有错误,那 么,在屏幕下方的输出窗口将会显示: hello.exe 0 error(s), 0 warning(s) 如果在编译时得到错误或警告,是你的源文件出现错误,编译的错误会在 Visual C+6.0 的 下方的输出窗口显示出来,逐个查看这些错误的内容,用鼠标双击,光标可以自动移动到发生 错误的源程序的相应地点,仔细检查你的源程序,改正发生错误的地方,注意是否否遗留了分 号、引号或括号等。改正后,再重新编译,直到编译连接通过为止。 然后就可以运行编译连接后的程序了, 选择 Build|Execute hello.exe(或者 Ctrl+F5),在开发 环境中执行你的程序。程序运行以后将显示一个类似于 DOS 的窗口,在窗口中输出一行 “hello”,紧接着在下面显示“Press any key to continue”,这句话是系统提示你按任意键退出当 前运行的程序,回到开发环境中。按任意键,窗口关闭,退回到 Visual C+开发环境。 (上面的 菜单操作都能通过工具条来实现) 9 3、编写简单的计算程序输入圆的半径,计算圆的周长和面积并输出。、编写简单的计算程序输入圆的半径,计算圆的周长和面积并输出。 (1)创建一个控制台项目 选择菜单 File|New,在 Projects 标签下选择 Windows32 Console Application,输入项目名称 “circle”,然后按 OK (2)在项目中增加一个文件 选择菜单 File|New,在 Files 标签下选择 C/C+ Source File,输入文件名称“circle”,然后按 OK (3)在文件中输入以下内容 /- /该程序让用户输入圆的半径 Radius,输出圆的周长 Perimeter 和面积 Area #include #include using namespace std; const double PI = 3.14159;/定义一个常量 PI #define PI 3.14159 int main() int radius; double perimeter, area; cout radius; perimeter = 2 * PI * radius;/周长=2R area = PI * pow(radius, 2);/面积=R2 cout The perimeter of the circle : perimeter endl; cout The area of the circle : area endl; return 0; 注:power(radius,2)表示求 radius 的平方,power(x, y)是系统预定义的函数,该函数计算 x 的 y 次方。该函数的原型在文件 cmath 中说明。 4、编写一个计算矩形面积的程序。、编写一个计算矩形面积的程序。 5、使用梯形法计算定积分,其中、使用梯形法计算定积分,其中 a = 0, b = 1, 被积函数为被积函数为 sin(x)+ex,积分区间等分数为,积分区间等分数为 200。 6、要求实现输入两个整数,将它们交换后输出。、要求实现输入两个整数,将它们交换后输出。 方法一:交换两个整数,一般方法是用一个中间变量,经过几次赋值实现。 方法二:采用按位异或方法,任一位与 0 异或保持不变,而与 1 异或后翻转(0 变 1,1 变 0)可编写程序如下: v1=a; v2=b; /原 v1 为 a,v2 为 b v1=v1 v2; /即 V1 为 a b,V2 保持不变 v2=v1 v2; /即 v2=a b b=a v1=v1 v2; /即 v1=a b a=b,交换成功 7、编写计算阶乘、编写计算阶乘 n!的程序。的程序。 8、编写程序求斐波那契数列的第、编写程序求斐波那契数列的第 n 项和前项和前 n 项之和。项之和。 9、输入一个整数,判断数的奇偶性后输出结果。、输入一个整数,判断数的奇偶性后输出结果。 方法一:判断一个数是否为偶数,只要判断它是否能被 2 整除。若能整除,则为偶数;否 则,为奇数。 方法二:判断一个数的奇偶,只需判断最后一位,在二进制表示形式中,奇数的末位为 1,偶数末位为 0。可以用整数 n 与 1 进行按位与运算:n int main() cout char length: sizeof( char ) endl; cout int length: sizeof( int ) endl; cout long length: sizeof( long ) endl; cout float length: sizeof( float ) endl; cout double length: sizeof( double ) endl; cout long double length: sizeof( long double ) endl; cout char* length: sizeof( char* ) endl; cout int* length: sizeof( int* ) endl; cout long* length: sizeof( long* ) endl; cout float* length: sizeof( float* ) endl; cout double* length: sizeof( double* ) endl; cout long double* length: sizeof( long double* ) endl; cout void* length: sizeof( void* ) i2i3d1i1?i1:c2; (h) 0?1:2?0:0?3:4; (i) i1+=i2*=i3; (j) i3=(i1=1,i2-); (k) i1=(c1,c2,c3); (l) !i1 可以使用下面程序框架上机验证。 #include using namespace std; int main() char c1=a, c2=B, c3=c; int i1=10, i2=20, i3=30; double d1=0.1, d2=0.2, d3=0.4; 数据类型说明符 x; x= (表达式); cout”x=”xendl; return 0; 18、通过下面程序掌握不同数据之间的混合算术运算中数据类型的转换规则。、通过下面程序掌握不同数据之间的混合算术运算中数据类型的转换规则。 #include #include using namespace std; int main() bool b = true; short s = 3; int i = 1; float f = 1.0; unsigned int ui = 3; cout b type: typeid(b).name() endl; cout s type: typeid(s).name() endl; cout i type: typeid(i).name() endl; cout f type: typeid(f).name() endl; cout ui type: typeid(ui).name() endl; cout b + b type: typeid(b +b).name() endl; cout a + b type: typeid(a + b).name() endl; cout s + s type: typeid(s + s).name() endl; cout a + i + f type: typeid(a + i + f).name() endl; cout a + 3.14 type: typeid(a + 3.14).name() endl; cout 123 + 123L type: typeid(123 + 123L).name() endl; cout 123L + 123U type: typeid(123L + 123U).name() endl; cout 123 + ui type: typeid(123 + ui).name() endl; return 0; typeid 操作符可以在程序中可用于获取一个表达式的类型。不同数据之间的混合算术运算 中数据类型的转换规则如下: (1)如果有一操作数的类型是 long double,则将另一个操作数转换为 long double; (2)否则,如果有一操作数的类型是 double,则将另一个操作数转换为 double; (3)否则,如果有一操作数的类型是 float,则将另一个操作数转换为 float; (4)否则,说明操作数都为整数,因此执行整形提升,即把 bool、char、unsigned char、signed char、short、unsigned short 和 signed char 提升为 int; (5)在这种情况下,如果有一个操作数的类型是 unsigned long,则将另一个操作数转换为 unsigned long; (6)否则,如果有一个操作数的类型是 long int,而另一个操作数是 unsigned int,则转换将 取决于两种类型的相对长度。如果 long 能够表示 unsigned int 的所有可能值,则将 unsigned int 12 转换为 long; (7)否则,将两个操作数都转换为 unsigned long; (8)否则,如果一个操作数是 long,则将另一个操作数转换为 long; (9)否则,如果一个操作数是 unsigned int,则将另一个操作数转换为 unsigned int; (10) 如果编译器到达此处,说明两个操作数都是 int 类型。 19、求、求 a+aa+aaa+aaaa+. .+aa.a(n 个)个) ,其中,其中 a 为为 19 之间的整数。例如:当之间的整数。例如:当 a = 1, n = 3 时,求时,求 1+11+111 之和;当之和;当 a = 5, n = 6 时,求时,求 5555555555555555555555 之和。之和。 20、找出、找出 210000 之内的所有完全数。所谓完全数,即其各因子之和正好等于本身的数。之内的所有完全数。所谓完全数,即其各因子之和正好等于本身的数。 如如 6=1+2+3,28=1+2+4+7+14,所以,所以 6,28 都是完全数。都是完全数。 21、由、由 0 到到 4 五个数字,组成五位数,每个数字用一次,但十位和百位不能为五个数字,组成五位数,每个数字用一次,但十位和百位不能为 3(当然万(当然万 位不能为位不能为 0) ,输出所有可能的五位数。,输出所有可能的五位数。 【实例编程】 验证哥德巴赫猜想验证哥德巴赫猜想 / Example:验证哥德巴赫猜想 #include using namespace std; #const int M = 10001;/ 定义验证范围 / 函数 CreatPrimeList(): 生成素数表 void CreatPrimeList(int PrimeList) int i, j; / 将 PrimeList 的各元素设置为从 0 开始的正整数 for(i=0; iM; i = i+1) PrimeListi = i; / 分别从表中去掉已经确定的各素数的倍数(将其置为 0) i = 2; while(i=M/2) for(j=i+1; jM; j=j+1) if(PrimeListj!=0 / 确定下一个素数的位置 i = i+1; while(PrimeListi=0) i = i+1; / 函数 NextPrimeNumber(): 求下一个素数 int NextPrimeNumber(int p, int PrimeList) p = p+1; while(PrimeListp=0) p = p+1; return PrimeListp; / 主函数: 在从 4 到 M 的范围内验证哥德巴赫猜想 int main() 13 int PrimeListM;/ 说明存放素数表的数组 int x, p;/ 变量 x: 偶数, p: 素数 / 建立素数表 CreatPrimeList(PrimeList); / 对从 4 到 M 的所有偶数验证哥德巴赫猜想 x = 4; while(xM) / 检查偶数减去一个素数后的剩余部分是否仍为素数 p = PrimeList2; while(px/2) / 找到了一个不能分解为两个素数和的偶数 coutGreat discovery: Goldbach is wrong!endl; else / PrimeListx-p0, 分解成功 coutThe even number x=p + x-pendl; / 检查下一个偶数 x = x+2; return 0; 模拟仿真模拟仿真 在码头酒馆和游船之间搭了一条长 20 米,宽 4 米的跳板,醉酒的船员和游客回艇时必须通 过这个跳板。通过跳板时,有三种可能的结果:向前走,回到游船上休息,不再出来;转身回 到酒馆,重新开始喝酒,不再出来;左右乱晃,落入水中淹死。果醉酒者每次走一步,一步走 1 米。而且他们向前走的概率是 0.7,向左走、向右走和向后走的概率各为 0.1。现在假设开始 时他们都是站在酒馆的门口,请编写程序模拟出若干个醉酒者的最终行为结果。 #include #include #include #include using namespace std; const int SHIP=1; co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论