C++面向对象程序设计上机实践指导
C++面向对象程序设计_实验指导书

1.完成实验指导书《C++面向对象程序设计教程(第3版)——习题解答与上机指导》的实验1;
2.做好实验记录;
3.按照实验报告格式(附件1)要求填写实验内容,并提交实验报告。
九、其它说明
每次实验前,实验指导书都会预先发放,请提前预习实验,特别是实验涉及的原理。实验要求及时完成并上交实验报告,鼓励提前完成必做实验,并尽量多做实验题目。
【要求】:采用C++编程风格。
【运行结果截图】:
三、实验原理、方法和手段
1.重载函数:a)函数名称相同;b)函数的形参个数不同;函数的形参类型不同;或两者兼有;c)函数的返回值不构成判别标准。
2.了解“传址调用”与“传值调用”的区别;
3.“引用”不额外申请内存。
四、实验组织运行要求
本实验采用“以集中授课,学生自主训练为主的开放模式组织教学”。
putchar(c3);
}
【运行结果是】:
【分析运行结果】:
6.输入并运行下面的程序,分析格式控制对输出的影响。
#include<stdio.h>
void main()
{
int a=-1,b=98;
double x=152.6752445;
printf("a=%d,%ld,%u,%o,%x\n",a,a,a,a,a);
i=8;
j=10;
printf("%d,%d \n", i,j);
printf("%d,%d \n",i++,j--);
printf("%d,%d \n", i,j);
printf("%d,%d \n", ++ i,-- j);
《面向对象程序设计》_上机指导书

《面向对象程序设计》实验指导书实验一 C++程序的编辑、编译、连接和运行一、实验目的(1)熟练VC编译系统的操作环境(2)掌握编辑、编译、连接和运行一个C++程序的基本过程(3)应用项目的建立(4)程序的运行,调试等二、实验内容(1)教材P68~72:例3-4、例3-5、例3-6。
(2)调试要求掌握编辑、编译、连接和运行一个C++程序的基本过程,可设置程序断点、可进行单步跟踪调试。
三、实验步骤(1)创建一个VC的项目学会创建VC的工程项目文件,并能编写源代码文件(.h、.cpp),添加进工程。
1,创建项目:在菜单“文件”——“新建”,如下图:2,添加文件进工程:右键点击工程名——选择Add Files to Project…(2)编写并调试源程序1,源代码请参照《C++语言程序设计(第4版)》P68~722,重点学会打断点,单步调试,察看变量等,如下图:实验二类与对象一、实验目的(1)掌握类定义的基本格式和类成员的访问控制;(2)掌握对象定义和利用构造函数对对象的数据成员进行初始化的方法二、实验内容编写如下要求的完整程序:类对象构造与析构(1)定义四个类:CPU、RAM、CDROM、COMPUTER(2)具体要求1,每个类定义构造函数和析构函数,如结果图输出2,每个类分别定义run和stop接口函数3,COMPUTER为组合类,包含CPU、RAM、CDROM的对象4,主函数:定义一个COMPUTER对象,并调用run和stopCPU和RAM的run和stop事件由COMPUTER调用结果如下图(供参考):三、实验步骤(1)创建工程项目(2)程序设计1,类申明构造函数,与类名同名的函数,当申明对象时自动调用,通常用于初始化;析构函数,~类名,当对象消亡时自动调用,通常用于清理现场。
2,定义接口:public类型的成员函数3,组合类:即类的成员变量中包含其它多个类的对象(3)程序调试与测试实验三多文档程序,类的静态成员和友元一、实验目的(1)掌握多文档结构程序设计方法;(2)掌握类的静态成员和友元;二、实验内容编写如下要求的完整程序:客户端对象信息访问(1)C++程序由多个文件组成,包括:类申明的头文件,类实现文件,主程序文件(2)具体要求1,在头文件中申明类CLIENT,在CPP文件中实现类CLIENT2,类中申明:静态成员变量服务器名ServerName和客户机数量ClientNum静态成员函数GetClientNum——获得客户机数量静态成员函数ChangeServerName——设置服务器名静态成员函数GetServerName——获得服务器名友元函数PrintServerNameAndClientNum——屏幕输出服务器名和客户机数目3,类的构造函数将客户机数目加1,析构函数将客户机数目减14,主函数:定义多个CLIENT对象;应用静态成员方式设置服务器名,访问服务器名和客户机数量;应用友元函数访问服务器名和客户机数量。
《C面向对象程序设计》实验指导书(彭成)资料

《C++面向对象程序设计》实验指导书主讲:彭成湖南工业大学计算机学院2016-9-20目录实验一DEV C++开发环境及C++程序的上机过程 (3)实验二类的定义和使用 (6)实验三类的继承和派生 (10)实验四多态性程序设计 (12)实验五运算符重载和类模板 (14)实验六文件操作 (16)实验七利用AppWizard向导生成Windows应用程序 (18)实验八消息处理 (22)实验九文档/视图结构 (26)实验十对话框设计 (28)实验一DEV C++开发环境及C++程序的上机过程一、实验目的1、了解和使用C++集成开发环境;2、熟悉C++环境的基本命令和功能键;3、熟悉常用的功能菜单命令;4、学习使用C++环境的帮助;5、学习完整的C++程序开发过程;6、理解简单的C++程序结构二、实验内容使用Visual C++ 6.0集成环境来编辑、编译并运行下面简单C++程序:1.#include <iostream>using namespace std;int main(){cout<<"This is a C++ program.\n";}2.#include <iostream>using namespace std;int max(int,int); //声明自定义函数int main() //主函数{int a,b,c;cout<<"input two number:\n";cin>>a>>b;c=max(a,b); //调用max函数,将得到的值赋给Ccout<<"max="<<c<<endl;}int max(int x,int y) //定义max函数,函数值为整型,形式参数x,y为整型{int z; //max函数中的声明部分,定义本函数中用到的变量z为整型if(x>y) z=x;else z=y;return(z); //将z的值返回,通过max带回调用处}三、实验步骤Dev-C++是一个Windows环境下C/C++的集成开发环境(IDE),它是一款自由软件,遵守GPL许可协议分发源代码。
面向对象程序设计实习指导书

《面向对象程序设计》实习指导书童春芽二O一四年五月目录第一章V C 编程基础... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... (1)一、程序框架建立... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... (1)二、V C 程序框架五个类介绍... ... ... ... ... ... ... ... ... ... ... ... ... ... ... (5)三、菜单修改... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... (6)四、鼠标事件响应程序框架... ... ... ... ... ... ... ... ... ... ... ... ... ... ... (8)五、鼠标坐标显示… … … … … … … … … … … … … … … … … … … … 1 0六、编写菜单响应函数… … … … … … … … … … … … … … … … … … 1 2七、V C 图形编程知识… … … … … … … … … … … … … … … … … … … 1 6八、技巧:“ 橡皮筋” 技术… … … … … … … … … … … … … … … … 1 7本章实习内容… … … … … … … … … … … … … … … … … … … … … … 1 8第二章图形生成… … … … … … … … … … … … … … … … … … … … … … 1 9一、生成直线的 D D A算法… … … … … … … … … … … … … … … … … 1 9二、生成圆的 B r e s e n h a m 算法… … … … … … … … … … … … … … … 2 3三、生成圆的正负法… … … … … … … … … … … … … … … … … … … 2 9四、 B e z i e r 曲线… … … … … … … … … … … … … … … … … … … … … 3 3本章实习内容… … … … … … … … … … … … … … … … … … … … … … 4 22第一章VC编程基础一、程序框架建立一个VC 应用程序包含了一系列支持程序和资源,建立一个VC 应用程序称为建立一个“工程”,一个工程建立在一个工作区中。
《面向对象程序设计》实验指导书(新)

《面向对象程序设计》实验指导书(新)《面向对象程序设计》实验指导书一、课程教学与实验教学计划学时比:48/16二、适用专业:信息管理与信息系统三、实验目的基本要求能够充分理解面向对象程序设计的思想和应用方法。
能够使用面向对象编程语言进行相应的程序设计和开发。
理解面向对象的基本思想、概念和特性以及面向对象的分析、建模、设计技术与方法。
掌握C++语言基本构成、类与对象、消息传递与函数、函数与运算符重载、继承性、多态性与虚拟函数、数据封装和隐藏及Windows 程序设计基础。
通过实验动手实践,使学生能够掌握面向对象程序设计的特征和基本思想,以及相应的具体实现和Windows程序设计基础知识。
四、实验内容实验一:循环控制(一)实验目的要求:熟悉VC++集成开发环境,学习使用控制台应用程序;创建工程,建立可执行文件并执行,观察结果。
掌握变量的声明和定义方法,掌握循环语句和条件语句的定义、作用和使用方法。
(二)实验设备:1.服务器;2.交换机;3.计算机。
(三)实验内容:1.编程求1!+2!+3!+4!+…+12!。
2.编程求所有的3位数素数,且该数是对称的。
所谓“对称”是指一个数,倒过来还是该数。
例如,375不是对称数,因为倒过来变成了573。
实验二:递归函数(一)实验目的要求:掌握函数的概念和使用方法,掌握递归函数的概念和使用方法。
(二)实验设备:1.服务器;2.交换机;3.计算机。
(三)实验内容:1.用递归函数来求1!+2!+3!+…+12!。
2.用递归的方法建立一个函数int fibonacci(int n),求Fibonacci数列中第n个数的值。
实验三:用气泡法排序(一)实验目的要求:掌握文件读写的方法,掌握递归函数的概念和使用方法。
(二)实验设备:1.服务器;2.交换机;3.计算机。
(三)实验内容:建立一个文件,文件中包含一系列数,用这些数构成一个数组,并按照数值,为这个数组从小到大排序,把排序结果输出到另一个文件中。
面向对象程序设计(C )实验指导_精简版_befine

面向对象程序设计(C++)实验指导一、实验环境本实验基于当前主流的面向对象开发平台,编码规范遵循主流的参考规范。
二、编程语言和开发工具C++语言,开发工具不限,建议使用Visual C++ 6.0版本三、编码规范(编码规范的要求)要求遵循良好的的程序设计习惯来设计实验和编写代码。
(注:如果你将程序的很多功能全部放在一个长长的main()主函数中实现,这样的程序设计和编码风格会被扣分,请将不同的功能模块分别用函数来实现。
)1.在实验过程中应注意培养规范的编码风格:2.标识符的命名应要求达到顾名思义的程度,一看就知道用来做什么;3.提供足够的注释,注释文字清晰明了;4.程序排版的要求:a)不同功能模块用空行分隔,使功能块一目了然;b)基本上一条语句一行;同一层次的语句统一缩进对齐。
四、实验见后文……五、注意事项所有实验要求独立完成,同学之间可以讨论,但严禁抄袭,若发现雷同,抄袭者和被抄袭者此次实验成绩均记零分。
实验一 C++基础 (2课时)实验目的和要求:1. 掌握C++程序的基本格式与规范,学会编写简单的C++程序。
2. 理解C++程序结构的特点。
3. 熟悉C++程序的基本输入输出操作。
4. 掌握内联函数的使用方法。
5. 掌握函数重载的定义和使用方法。
6. 掌握C++内存的动态分配与释放方法。
7. 理解引用的概念,掌握引用的使用方法。
预习内容:cin/cout 的使用;new 和delete 的使用;函数重载;const 常量。
实验内容:1、用内联函数编写Fibonacci 级数,使用if 语句判断函数的出口,在程序中用cout 语句输出提示信息,Fibonacci 级数的公式为:⎩⎨⎧>-+-==2)2()1(2,11)(n n fib n fib n n fib 内联函数inline int fib(int n)。
2、程序Ex_Swap 实现数据交换。
分别用指针和引用作为函数mySwap 的形参,并通过重载int 、double 型变量值的交换。
《面向对象程序设计》实训指导书

《面向对象程序设计》实训一、实训目的:1.使学生进一步巩固《面向对象程序设计》课程中所学到的知识,熟练掌握并综合运用C++语言进行程序设计,增强实际编程能力,从而达到用C++语言进行中等难度程序开发的目标。
2.使学生掌握面向对象设计开发的基本思想和方法。
加强对VC++编程环境的使用能力,掌握VC++编程环境中的调试功能。
3.培养学生在已有的知识基础上进一步获取新知识的能力,提高分析问题和解决问题的能力。
4.培养和提高学生的逻辑思维、抽象思维和统筹规划能力;培养学生独立完成程序设计开发的工作能力。
二、实训环境:1.操作系统平台:Windows 2000 / Windows XP2.程序设计平台:VC++ 6.03.其它应用软件:Word、Visio等三、实训基本要求:1.熟练掌握C++语言的各种语法成分;深入理解面向对象语言的各种概念,能够准确应用C++语言提供的编程机制,如:类的定义、类的继承、抽象类的定义、操作符的重载等。
熟练掌握多文件结构。
2.具备常用算法的设计能力,能运用面向对象方法,解决实际问题。
3.能熟练使用VC++编程环境,掌握VC++中的调试功能。
4.熟练掌握程序设计中多文件组织结构的编写方法。
5.实训选题要求实训题目可以是学生自选题目或教师指定题目。
学生自选题目必须写出开题报告,阐明题目内容和功能要求,经教师审核通过后方可作为正式选题。
6.课题规模要求(1)题目涉及的自定义基础类应不少于2个、必须有派生类。
(2)题目涉及的主要功能模块应有3-5个,或更多。
(3)数据的存储可直接存到内存或使用文件,也可以使用数据库。
(4)用户界面可以是命令行方式下(要求做成简易菜单形式),也可以采用图形界面,界面个数应不少于3个。
(5)每个实训题目的选择每班最多不超过5组同学。
7.分工与合作要求每个题目可由一或两个学生(教师规定)共同完成,每组组员之间必须要有明确的程序设计分工,并独立完成各自的设计任务,最后组内联调、共同整理项目文档。
面向对象程序设计实验指导书

《面向对象C++程序设计》实验指导书计算机科学与技术学院《面向对象C++程序设计》课程组实验指导书目录实验一 C++基础练习 (1)实验二 C++简单程序设计练习 (4)实验三类与对象(一) (9)实验四类与对象(二) (14)实验五派生类与继承 (21)实验六虚函数与多态性 (31)实验七函数模板与类模板 (40)实验八输入输出的格式控制 (44)实验九文件的输入输出 (49)实验十综合练习 (55)实验十一设计时间类——计算程序的运行时间 (68)附录:C++语言上机实验环境介绍 (71)实验一 c++基础练习一、实验性质验证性实验2学时二、实验目的和要求1.掌握c++程序的基本格式与规范,学会编写简单的c++程序。
2.理解c++程序结构的特点。
3.熟悉c++程序基本的输入输出操作。
4.掌握c++数据类型常量和变量以及修饰符的使用方法。
5.掌握函数定义、函数调用和函数说明的方法。
6.熟悉作用域运算符的功能和基本使用方法。
7.掌握c++内存的动态分配与释放方法。
8.理解引用的概念,掌握引用的使用方法。
三、实验内容:1编写一个简单程序,输出“welcome you”,并给程序加一行注释“fisrt c++ program”。
2编写一个完整的包含输入和输出的简单c++程序。
3编写内置函数求解2x^+4x+5的值,x为整数,并用主函数调用该函数。
利用函数重载,重载上面的函数,x为浮点数。
4编写一个程序,对一个整数数组求和,求和的结果使用全局变量sum存储,同时对整数中的奇数求和,结果使用局部变量sum存储,在主程序将两个结果输出。
本题要求体会和理解作用域运算符的概念与基本使用方法。
5编写一个程序动态分配一个浮点空间,输入一个数到该空间中,计算以该数为半径的圆的面积并在屏幕上显示,最后释放该空间,请使用new,delete运算符。
四、实验步骤第一步:根据实验内容编写下面的代码进行调试。
#include <iostream.h>void main(){ // first c++ programcout<<”\n welcome you \n”;}第二步:下面的程序对用户输入的口令进行判断,输出不同的结果。
C语言程序设计上机实验指导与习题第四版

[题目1023:简单计算器]
下面程序是实现一个简单的运算器(保留两位小数点),如果由键盘输入10+50,计算机可以输出结
果60.00;如果输入8*6,计算机输出48.00;如果输入20/4,计算机输出5.00;如果输入8-6,计算机
输出2.00,请在空处填上适当的代码,运行通过后并提交。
#include "stdio.h"
char a;
a=getchar();
if(a>='A' && a<='Z') a=a+32;
putchar(a); 6
现在,题目要求处理5个字符,怎么做呢?请自己思考……
参考程序:
#include"stdio.h"
main()
{ char a,b,c,d,e;
scanf("%c%c%c%c%c",&a,&b,&c,&d,&e);
数学公式描述为:
C=5*(F-32)/9
[第一组自测数据]
[键盘输入]
100↙
[正确输出]
37.78
[第二组自测数据]
[键盘输入]
100↙
[正确输出]
37.78
[提示]注意公式中的除为普通除法。
参考程序:
#include"stdio.h"
main()
{ float f,c;
scanf("%f",&f);
d=c;
e='\141;
printf("%f,%d,%d,%c,%c", a,b,c,d,e);
C面向对象程序设计实验指导书样本

《面向对象程序设计》实验指导书适用专业:计算机科学与技术信息与计算科学编写者: 面向对象程序设计课程组3月一、基本目的面向对象程序设计是计算机学科的核心课程之一, C++语言程序设计是当前自20世纪80年代以来迅速推广和广泛使用的一种程序设计语言。
经过本课程实验, 使学生掌握基本的面向对象的程序设计方法, 熟练类与对象、继承与派生、多态性、模板、异常处理机制以及I/O流等程序设计能力, 并利用C++语言进行实际问题的程序设计。
二、实验环境建议使用Microsoft Visual C++ 6.0集成开发环境。
三、实验要求1.每人独立完成实验和实验报告。
2.每个实验包括多个实验题目,要求每个实验在规定时间内设计、实现尽量多的题目。
3.程序书写符合程序书写规范。
四、实验内容五、实验报告每人针对每个实验上交一份实验报告, 不接受不完整的实验报告, 或者说明与程序或结果不符合的实验报告。
实验报告主要包括四方面内容:⑴实验设计按照每个实验题目要求, 设计相应的类以及函数的实现方法, 并用适当的方式进行描述。
(2) 程序清单实验实现的源程序, 要求符合代码行首缩进、单句代码换行、标识符命名合理, 并包括必要的注释。
(3)运行结果原始数据, 程序运行结果截图及说明。
(4) 实验总结调试过程及调试中遇到的问题及解决办法;调试程序的收获心得与体会, 分析不足之处。
实验一 C++程序设计基础练习一、实验目的1、学习编写简单的C++程序, 并掌握C++程序的基本格式与规范。
2、理解C++程序结构的特点。
3、学习C++程序基本的输入输出操作。
4、学习数据类型常量和变量以及修饰符的使用。
5、学习基本的函数定义与调用方法。
6、学习作用域运算符的功能与基本使用方法。
7、学习内存的动态分配与释放方法。
8、学习引用的概念, 掌握引用的基本使用方法。
二、试验内容( 一) 程序填空1、输入并运行所给的下述参考程序, 并将程序中的注释部分也输入计算机, 体会和理解程序的基本格式规范。
面向对象程序设计c++上机实验指导书

选择默认参数的值。请分析本题中默认参数的值应该在什么范围。 (3) 输入两个整数,将它们按由大到小的顺序输出(本题是 C++面向对象程
河南工业大学信息科学与工程学院教案
面向对象程序设计(C++) 实验指导书
主讲教师:
王贵财
所在单位:
计科系
课程代码:
51610025
课程性质:
选修课
课程学时:
36
授课对象: 数学 F1401-03,信计 F1401-1402
开课时间:
2016.5.5
使用教材: 《C++面向对象程序设计题解与上机指导》
序设计》第 1 章习题第 12 题)。 ① 使用指针方法。 ② 使用变量的引用。 比较这两种方法的特点和使用方法。 (4) 对 3 个变量按由小到大的顺序排列,要求使用变量的引用(本题是 C++
面向对象程序设计》第 1 章习题第 13 题)。 ① 使用指针方法。 ② 使用变量的引用。 请总结使用引用时要注意什么问题。 (5) 有 5 个字符串,要求对它们按由小到大的顺序排列,用 string 方法(本
#include <iostream> using namespace std; int main() { int a,b; c=add(a,b); cout<<" a+b="<<c<<endl; return 0; } int add(int x,int y); { z=x+y; return(z); }
《面向对象程序设计》实验指导书

《面向对象程序设计》实验指导书第一部分实验教学大纲课程名称:面向对象程序设计实验一、课程简介及基本要求面向对象的程序设计是一门实践性很强的课程,每个学生必须完成一定数量的上机作业。
通过上机作业进一步加深对课程基本内容的理解。
同时,在程序设计方法及上机操作等基本技能和科学作风方面受到比较系统的、严格的训练。
由于学生编程和上机的熟悉程度往往差别较大,本大纲所要求的实验为每个学生必须完成的实验,即最低要求。
其它上机内容由学生在教师指导下自选,内容可以是习题中编写的程序,也可以是学生解决实际问题中所编写的程序。
二、实验课程目的与要求实验课是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
本课程使学生熟悉C++的语法特性,了解C与C++的区别和兼容性;理解面向对象程序设计的基本原理,包括类、对象、抽象、封装、继承和多态性等关键要素以及其关键语法特性—类;掌握用C++编写面向对象程序的一般方法;了解VC++编程环境。
三、主要仪器设备PC机器一台。
装有C++builder 或Visual C++或其他的C++编译软件。
四、实验方式与基本要求要求把每次实验的程序文本和运行结果通过邮件方式发送给实验指导老师.五.考核与报告本课程实验考试方式是考查,按一般课程考试方式进行,主要内容包括实验操作和实验报告,实验成绩占该课程形成性考核成绩的30%。
实验报告的规范:实验完成后填写统一的实验报告,给出实验内容题目、年级、姓名、学号、指导教师、完成日期,并详细填写:实验目的、实验程序、实验结果及分析、存在的问题。
实验0、C++开发环境应用(课外实验 2学时)1、实验目的(1)了解C++开发工具的特点(2)熟悉C++开发环境(2)学习用C++编写标准的C++程序2、实验任务使用C++来建立一个非图形化的标准C++程序,编译、运行下例程序:#include <iostream.h>void main(void){cout<<”Hello!\n”;cout<<”Welcome to C++!\n”;}3、实验步骤(1)启动Visual C++开发环境(2)创建一个项目a.单击File菜单中的New选项,显示示新建对话框b.选择Win32 Console Application(VC++)。
面向对象程序设计(c++)实验指导手册

实验指导手册《面向对象的程序设计》(C++)屈克文整理计算机科学与工程学院目录第一部分上机实验的指导思想和要求 (2)第二部分关于程序的调试和测试 (5)第三部分实验内容与安排 (11)实验一C++程序的运行环境和运行C++程序的方法 (11)实验二C++对C的扩充 (12)实验三类和对象(一) (14)实验四类和对象(二) (18)实验五继承与派生 (22)实验六运算符重载 (26)实验七多态性与虚函数 (33)实验八输入输出流 (37)实验九 C ++工具 (41)实验十类模板 (41)实验十一指针与引用 (44)第一部分上机实验的指导思想和要求一、上机实验的目的程序设计是一门实践性很强的课程,必须十分重视实践环节。
许多实际的知识不是靠听课和看书学到手的,而是通过长时间的实践积累的。
要提倡通过实践去掌握知识的方法。
必须保证有足够的上机实验时间,学习本课程应该至少有30 小时的上机时间,最好能做到与授课时间之比为1:1 。
除了学校规定的上机实验以外,应当提倡学生自己课余抽时间多上机实践。
上机实验的目的,绝不仅是为了验证教材和讲课的内容,或者验证自己所编的程序正确与否。
学习程序设计,上机实验的目的是:(1)加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,但它们是很重要的,初学者的程序出错往往错在语法上。
通过多次上机,就能自然地、熟练地掌握。
通过上机来掌握语法规则是行之有效的方法。
(2)熟悉所用的计算机系统的操作方法,也就是了解和熟悉C++程序开发的环境。
一个程序必须在一定的外部环境下才能运行,所谓“环境”,就是指所用的计算机系统的硬件和软件条件,或者说是工作平台。
使用者应该了解为了运行一个C++程序需要哪些必要的外部条件(例如硬件配置、软件配置),可以利用哪些系统的功能来帮助自己开发程序。
每一种计算机系统的功能和操作方法不完全相同,但只要熟练掌握一两种计算机系统的使用,再遇到其他系统时便会触类旁通,很快地学会。
c面向对象程序设计习题解答与上机指导(第二版)源程序

C++面向对象程序设计习题解答与上机指导(第2版)习题参考答案源代码使用源程序的几点注意事项(1) 由于源程序在复制、编辑、解压缩等过程中可能引起部分符号(主要是标点符号,如分号、冒号、逗号、引号)的字体、半全角等发生变化,在编译时可能被检出语法错误,只要使用“替换”功能,纠正后即能顺利运行。
(2) 有的C++系统(如Visual C++6.0)没有完全实现C++标准,它所提供的不带后缀的.h 的头文件不支持友元运算符重载函数,在Visual C++6.0中编译会出错,这时可采用带后缀的.h头文件。
将程序中的#include<iostream>using namespace std;修改成#include<iostream.h>即可顺利运行。
第2章 C++基础【2.2】下面是一个C程序,改写它,使它采用C++风格的I/O语句。
#include<stdio.h>int main(){ int a,b,d,min;printf("Enter two numbers:");scanf("%d%d",&a,&b);min=a>b? b:a;for (d=2; d<min; d++)if (((a%d)==0)&&((b%d)==0)) break;if (d==min){ printf("No common denominators\n");return 0;}printf("The lowest common denominator is %d\n",d);return 0;}【解】#include<iostream>using namespace std;int main(){ int a,b,d,min;cout<<"Enter two numbers:";cin>>a;cin>>b;min=a>b? b:a;for (d=2; d<min; d++)if (((a%d)==0)&&((b%d)==0)) break;if (d==min){ cout<<"No common denominators\n";return 0;}cout<<"The lowest common denominator is "<<endl<<d;return 0;}【2.24】写出下列程序的运行结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东华理工大学软件学院面向对象程序设计上机实践指导2016-4-10目录《C++语言基础》实践项目(一) (2)《C++语言基础》实践项目(二) (5)《C++语言基础》实践项目(三) (8)《C++语言基础》实践项目(四) (12)《C++语言基础》实践项目(五) (18)《C++语言基础》实践项目(六) (26)《C++语言基础》实践项目(七) (33)《C++语言基础》实践项目(八) (35)《C++语言基础》实践项目(九) (37)《C++语言基础》实践项目(十) (41)《C++语言基础》实践项目(十一) (44)《C++语言基础》实践项目(十二) (49)《C++语言基础》实践项目(一)——初识对象【项目1 - 旱冰场造价】有一个圆形的旱冰场地,场地内抹水泥,造价为每平方米M元,围栏用木条围成,每米造价N元,输入旱冰场半径,用程序计算出其造价。
一级提示:先定义类,确定其数据成员和成员函数。
在这里要定义的旱冰场类,实际我们只关心其面积和周长,根据面积计算场地内抹水泥的造价,根据周长计算围栏的造价。
有了类的定义,在main函数中定义该类对象,调用成员函数即可以完成求解。
二级提示:实际上,对于旱冰场,我们只关心它就是一个圆。
这就是设计中抓住了本质。
于是,设计一个Circle(圆)类,数据成员为圆的半径,Circle类还提供计算圆的面积和边长的成员函数。
在main函数中,定义一个Circle类的对象,调用成员函数求出旱冰场的造价。
三级提示:请在下面提示的基础上完成程序,其中需要做的工作包括:(1)在类声明中声明相关的公共成员函数;(2)在类声明和main()函数之间,定义声明的成员函数。
const int M=20; //水泥场地每平米造价const int N=35; //围栏每米造价class Circle{//下面声明需要的成员函数(从已经提供的main函数中可以找出需要哪些成员函数)public:private:double radius;};//下面定义需要的成员函数int main(){double r;cout<<"请输入旱冰场的半径: ";cin>>r;Circle c;c.setRadius(r);cout<<"旱冰场的造价为"<<M*c.area()+N*c.circumference()<<"元。
"<<endl;return 0;}【项目2 - 长方柱类】编写基于对象的程序,求3个长方柱(Bulk)的体积。
数据成员包括长(length)、宽(width)、高(heigth)、体积,要求设计成员函数实现下面的功能:(1)由键盘输入3个长方柱的长、宽、高;(2)计算长方柱的体积(volume)和表面积(areas);(3)输出这3个长方柱的体积和表面积;【项目3 - 时间类】阅读、运行程序后,按要求扩充类的功能#include <iostream>using namespace std;class Time{public:void set_time( );void show_time( );private:bool is_time(int, int, int); //这个成员函数设置为私有的,是合适的,请品味 int hour;int minute;int sec;};void Time::set_time( ){char c1,c2;cout<<"请输入时间(格式hh:mm:ss)";while(1){ cin>>hour>>c1>>minute>>c2>>sec;if(c1!=':'||c2!=':')cout<<"格式不正确,请重新输入"<<endl;else if (!is_time(hour,minute,sec))cout<<"时间非法,请重新输入"<<endl;elsebreak;}}void Time::show_time( ){cout<<hour<<":"<<minute<<":"<<sec<<endl;}bool Time::is_time(int h,int m, int s){if (h<0 ||h>24 || m<0 ||m>60 || s<0 ||s>60)return false;return true;}int main( ){Time t1;t1.set_time( );T1.show_time( );return 0;}要求:(1)请在原类基础上,在类内增加下列成员函数(将是内置成员函数)add_a_sec() //增加1秒钟add_a_minute() //增加1分钟add_an_hour() //增加1小时在main()数中,调用新增加的成员函数,以测试扩充后的功能。
(2)再增加三个成员函数,要求在类内声明,类外定义。
add_seconds(int) //增加n秒钟add_minutes(int) //增加n分钟add_hours(int) //增加n小时提示:要考虑增加后超出取值范围的情形;增加n秒后,秒数可能会超过60,调整秒数,并可以调用增加分钟数的成员函数,使时间合法;同理,增加分钟数也有类似问题。
【项目4 - 图书馆的书】编写一个Book类,包含name(书名)、writer(著者)、public_name(出版社)、price (价格)、number(数量)、NO(书号)等数据成员。
定义成员函数setBook,用来为书籍的数据成员赋值,定义成员函数borrow和restore,分别办理借出和还回(借、还书时,暂时只完成数量的增1减1,这里的书仍是一种书的概念,随着课程进展,我们继续做真正的图书管理系统,每本书都能追踪到是谁何时借了,何时还了)业务,定义成员函数print 用于输出—有关书的信息,定义set_NO与get_NO来实现修改类对象的书号与获得类对象的书号。
自己写main函数,用来测试你编写的类。
《C++语言基础》实践项目(二)——和对象找感觉【项目1 - 三角形类1】下面设计一个三角形类,请给出各成员函数的定义//请在下面定义Triangle类中的各个成员函数#include<iostream>#include<Cmath>using namespace std;class Triangle{public:void setABC(double x, double y, double z);//置三边的值,注意要能成三角形void getABC(double *x, double *y, double *z);//取三边的值double perimeter(void);//计算三角形的周长double area(void);//计算并返回三角形的面积private:double a,b,c; //三边为私有成员数据};int main(){Triangle tri1; //定义三角形类的一个实例(对象)tri1.setABC(4,5,6); //为三边置初值double x,y,z;tri1.getABC (&x,&y,&z); //将三边的值为x,y,z赋值cout<<"三条边为:"<<x<<'\t'<<y<<'\t'<<z<<endl;cout<<"三角形的周长为:"<< tri1.perimeter()<<'\t'<<"面积为:"<<tri1.area()<<endl;return 0;}//请在下面定义Triangle类中的各个成员函数【项目2 - 三角形类2】程序功能同项目1,main()函数如下,请重新定义Triangle类,其中逻辑特别简单的set和get成员函数,要处理为内置成员函数,直接在类内定义。
int main(){Triangle tri1; //定义三角形类的一个实例(对象)double x,y,z;cout<<"请输入三角形的三边:";cin>>x>>y>>z;tri1.setA(x);tri1.setB(y);tri1.setC(z); //为三边置初值if(tri1.isTriangle()){cout<<"三条边为:"<<tri1.getA()<<','<<tri1.getB()<<','<<tri1.getC()<<endl;cout<<"三角形的周长为:"<< tri1.perimeter()<<'\t'<<"面积为:"<<tri1.area()<<endl;}elsecout<<"不能构成三角形"<<endl;return 0;}【项目3 - 程序的多文件组织】利用多文件组织,重新实现项目2。
其中,整个项目包括3个文件:主文件: main.cpp,用于定义main()函数头文件: triangle.h,头文件,声明类,定义内置成员函数类定义文件: triangle.cpp,用于定义类Triangle中其他成员函数注意,将3个set函数和3个get函数设计成内置成员函数,其他函数不作为内置函数。
【项目4 - 考了语文数学的学生】下面提供了类Stu的数据成员定义,和用于测试的main函数,参考如图的运行结果,完成类的定义,并用多文件形式组织程序#include<iostream>using namespace std;class Stu{private:string name; //学生姓名float chinese; //语文成绩float math; //数学成绩//接下去写};int main(){Stu s1,s2;s1.setStudent("Lin daiyu", 98, 96); //对象置初值s2.setStudent("Jia baoyu", 90, 88); //对象置初值s1.show();//打印信息s2.show();//打印信息s1.setName("xue baochai");//重新置p1对象的名字s1.show();cout<<": "<<s1.getName()<<endl;//打印对象的名字cout<<"s1.average: "<<s1.average()<<endl;//打印对象的成绩return 0;}【项目5 - 数组作数据成员】设计一个工资类(Salary),其中类的数据成员如下:class Salary{private:double salarys[50]; //多人的工资int number; //实际人数};要设计的成员函数有:void set_salarys( ):输入职工工资(输入-1标志着工资输入结束),工资保存到salary 数组中,实际人数保存到number中;void add_salarys(int x):给每个人涨x元工资void sort_salarys():对工资排序void show_salarys( ):显示工资信息(1)在main函数定义Salary类的对象,输入工资,再给每个人涨500元工资,排序后工资数据,然后输出结果。