C++实验内容

所需积分/C币:24 2014-06-19 11:52:53 1.66MB PDF
15
收藏 收藏
举报

C++实验题目
3.请填空完成程序 testl_3_1.cpp,上机调试、运行并写出输出结果 //test1 3 1. cpp #include<iostream> using namespace std; int add(int a, int b) int main() Int x, yr sum; couts< Enter two numbers: <<'\n' //在下划线处填上语句,完成用in读入x和y sum=add(x,y)i cout<<"The sum is: < sum<<I\n' return 0: int add (int a, int b /在下划线处填上语句,完成计算a与b的和并返回之 10.2实验2C+简单程序设计练习 10.2.1实验目的和要求 (1)进一步熟悉 Visual o++6.0的集成开发环境。 2)进一步熟悉使用 Visual c艹+6.0编辑、编译、连接和运行C++多文件程序的方法。 (3)了解C+在非面向对象方面对C功能的扩充与增强。 10.2.2实验内容和步骤 1.编辑、编译、连接和运行以下的C艹多文件程序 / filel cpp # include<⊥ ostream> using namespace std int add(int ar int b): int main() f int x,y, sum; cout<<Enter two numbers: <<endl CIn>>Xi 113 Cin2>v sum=add(x,y)i cout<<The sum is: < sum<<endl return o: //file2.cpp int add(int ar int b) i int c c=a+b return ci 【实验步骤】 按以下步骤建立和运行C++程序: (1)先进入 Visual c++6.0环境。 (2)编辑该程序的多个文件。按照前面介绍的单文件程序的编辑方法,将以上多文件 程序中的两个文件分别进行编辑后,以fl1.cpp和file2.cpp的名字存放在子目录“D: C++”中 如果—个程序包含有更多的文件,则按此方法,将每一个文件编辑好后存人盘中。 (3)创建一个空的项目文件。先选择“Fie(文件)”菜单项的下拉式菜单中的“New(新 建)”命令,出现“New(新建)”对话框,选择该对话框中的“ Projects(中文版显示为:工程)”标 签。在该标签的对话框中,选择“Win32 Console Application”选项。 接着,在该标签的对话框的右侧“ Project name(中文版显示为:工程)”文本框内输入 个项目文件名,例如,输人你指定的项目文件名file,然后回车。此时,在“ Location”文本框 内生成一个路径名,该路径名可以修改(假如修改为D:\C++),此时可以看到在右部的中 间单选按钮处默认选定了“ Create new workspace(创建新工作区)”,这是由于用户未指定 工作区,系统会自动开辟一个新工作区(名字与项目文件名相同) 单击对话框的“OK(确定)”按钮。这时,屏幕上出现“Win32 Console Application-Step 10f1”对话框。该对话框上方出现提示信息:“ What kind of Console Application do you want to create?(请选择你所要创建的控制台应用程序的类型)”,这时选择“ An empty project”选项。单击该对话框下方的“ Finish(完成)”按钮。这时,屏幕上出现“ New Project Information(新建工程信息)”对话框,该对话框告诉用户所创建的控制台应用程序新框架 项目的特性。单击该对话框下方的“OK(确定)”按钮,返回到 Visual c++6.0主窗口。项 目文件file创建结束。 (4)将文件添加到项目文件中。创建了一个空的项目文件file后,需要将事先编辑好 的file1.cp和file2.cpp文件添加到项目文件中。具体操作如下 首先,在Ⅴ isual c++6.0主窗口中,选择菜单栏中“ Project(工程)”菜单项,在出现的下 拉式菜单中选择“ Add To Projects(中文版显示为:添加工程)”命令,在弹出的级联菜单中 选择“ Files”命令,弹出“ Insert Files into Project”对话框,在该对话框中,先确定项目文件 file,显示在“ Insert into(插入到)”框内。打开flel.cpp和fle2.cpp所在的子目录“D: 114· C++”,选择这两个文件名字,即单击第1个文件名,再按住 Shift键单击第2个文件名字,它 们都出现在“文件名”文本框中,然后单击“OK(确定)”按钮,则完成添加文件的任务。此时, 就把文件 filel.cpp和file2.cpp添加到项目文件file中了。 (5)编译和连接项目文件。选择菜单栏中“ Build(编译)”菜单项的下拉式菜单中的 Build file. exe(构建 file. exe)”命令,系统按顺序编译项目中的各个文件。如果发现错误 将其错误信息显示在输出窗口中,并停止编译。修改其错误后,继续选择“ Build file,exe”命 令,则重新编译。第1个文件编译好后,再编译第2个文件,直到所有文件都编译好后,再进 行连接。连接无错时,生成可执行文件fle.exe (6)运行项目可执行文件。选择了“ Build(编译)→ Execute file.exe(执行 file. exe)”命 令,便可运行可执行文件程序file.exe,当按照提示信息,输入了两个数后,输出结果显示在 弹出窗口中。 2.输人以下程序,进行编译,如果有错误,请修改程序,直到没有错误,然后进行连接和 运行,并分析运行结果。 //test2 2 1. cpp include<iostream> using name space std; int main () i void fun(int, int&)i int x, y fun(3, x)i fun(4, y)i cout<<x+y=<<x+y<<endli return 0: void fun(int m int &n) n=m兴5 3.编写一个程序,用来分别求2个整数、3个整数、2个双精度数和3个双精度数的最 大值。要求使用重载函数来完成。 4.编写一个程序,任意从键盘输入两个字符,能将它们按由大到小的顺序输出。要求 程序中有一个交换两个字符的函数,其形参是变量的引用。 编写一个程序,对一个整型数组的元素求和,结果使用全局变量sum存储,另外对 数组元素中的奇数求和,结果使用局部变量sum存储,在主程序将两个结果输出。本题要 求体会和理解作用域运算符的概念与基本使用方法。 6.编写一个程序,声明一个双精度型指针变量,使用运算符new动态分配一个 double 型存储区,将首地址赋给该指针变量,并输入一个数到该存储区中。计算以该数为半径的圆 的面积,并在屏幕上显示出来,最后使用运算符 delete释放该空间。 115 10.3实验3类和对象 10.3.1实验目的和要求 (1)理解类和对象的概念,掌握声明类和定义对象的方法。 2)掌握构造函数和析构函数的实现方法。 (3)初步掌握使用类和对象编制C++程序。 (4)掌握对象数组、对象指针和 string类的使用方法。 (5)掌握使用对象、对象指针和对象引用作为函数参数的方法。 6)掌握类对象作为成员的使用方法。 (7)掌握静态数据成员和静态成员函数的使用方法。 8)理解友元的概念和掌握友元的使用方法。 10.3.2实验内容和步骤 1.输入下列程序。 //test4 1. cpp t include<iostream> using name space std; class Coordinate i publ Coordinate(int xl, int y1) x=x1; Y=y-i Coordinate(coordinate &p) Coordinate( i cout<<"Destructor is calleded \n";) int getx () return x: H int gety () return y: H private: int x, yi Coordinate: Coordinate(Coordinate &p) [x=pxi y=P·y cout<< Copy-initialization Constructor is called \n" 116 ant maln 4c。 ordinate p1(3,4) Coordinate p2(p1)i Coordinate p3=p2i ct<<"p3=("<p3.getx()<","<p3.qety()<")\n"; return o (1)写出程序的运行结果。 (2)将 Coordinate类中带有两个参数的构造函数进行修改,在函数体内增添下述语句: cout<<"Constructor is Called \n" 写出程序的运行结果,并解释输出结果 (3)按下列要求进行调试 在主函数体内,添加下列语句: Coordinate p4; Coordinate p5 (2)i 调试程序时会出现什么错误?为什么?如何对已有的构造函数进行适当修改? (4)经过以上第(2)步和第(3)步的修改后,结合运行结果分析:创建不同的对象时会调 用不同的构造函数。 2.设计一个4*4魔方程序,让魔方的各行值的和等于各列值的和,并且等于两对角线 值的和。例如以下魔方: 31 525 9211915 17131123 72729 各行、各列以及两对角线值的和都是64。 提示】 求4兴4魔方的一般步骤如下: (1)设置初始魔方的起始值和相邻元素之间的差值。例如上述魔方的初始魔方的起始 值( first和相邻元素之间的差值(step)分别为: first=1 step=2 (2)设置初始魔方元素的值。例如上述魔方的初始魔方为 111315 171921 3 25272931 (3)生成最终魔方。方法如下 ①求最大元素值与最小元素值的和sum,该实例的sum是: 1+31=32 ②用32减去初始魔方所有对角线上元素的值,然后将结果放在原来的位置,这样就可 求得最终魔方。本例最终魔方如下: 31 525 9211915 1713 23 727291 本题的魔方类 magIc的参考框架如下: class magic //声明魔方类 mag1c f public: void getdata ()i //输入初值成员函数 void setfirstmagic()i //设置初始魔方成员函数 void generatemagic()i /生成最终魔方成员函数 void printmagic()i //显示魔方成员函数 private: intm[4][4]; nt stepi //相邻元素之间的差值 int first /起始值 ⊥ nt sum //最大元素值和最小元素值的和 3.设计一个用来表示直角坐标系的 Location类,在主程序中创建类 Location的两个 对象A和B,要求A的坐标点在第3象限,B的坐标点在第2象限,分别采用成员函数和友 元函数计算给定两个坐标点之间的距离,要求按如下格式输出结果: (x1,y1),B(x2,y2) Distance=d1 Distance=d2 其中:x1、y1、x2、y2为指定的坐标值,d1和d2为两个坐标点之间的距离。 【提示】 类 Location的参考框架如下: class location i public Location (double, double) //构造函数 double getx //成员函数,取x坐标的值 double gety () //成员函数,取y坐标的值 double distance(location&)i //成员函数,求给定两点之间的距离 £ riend doub1 e distance( Location s, Location e);//友元函数,求给定两点之间的距离 118· private: double x,y 4.声明一个 Student类,在该类中包括一个数据成员 score(分数)、两个静态数据成员 total score(总分)和 count(学生人数);还包括一个成员函数 account()用于设置分数、累计 学生的成绩之和、累计学生人数,一个静态成员函数sum()用于返回学生的成绩之和,另 个静态成员函数 average()用于求全班成绩的平均值。在main函数中,输入某班同学的成 绩,并调用上述函数求出全班学生的成绩之和和平均分 5.使用C++的 string类,将5个字符串按逆转后的顺序显示出来。例如,逆转前的5 个字符串是: Germany Japan America Britain France 按逆转后的顺序输出字符串是: rance Britain America Japan Germany 10.4实验4派生类与继承 10.4.1实验目的和要求 (1)掌握派生类的声明方法和派生类构造函数的定义方法。 (2)掌握不同继承方式下,基类成员在派生类中的访问属性。 (3)掌握在继承方式下,构造函数与析构函数的执行顺序与构造规则。 (4)学习虚基类在解决二义性问题中的作用 10.4.2实验内容和步骤 1.输入下列程序 /test4 1. cpp f include<iostream> using namespace stdi class Base i public: void setx(int i) t x=ii int getx( I return x: public int x: class Derived public Baset public: void sety (int i) y=i;} t gety ( f return y; h void show o I cout<<Base:: x="<<x<<endl //语句1 public: nt yi }; nt main() i Derived bb //语句2 bb. setx(16) //语句3 bb sety(25)i //语句4 bb show(): //语句5 cout<<Base: :x="<<bb, x<<endli //语句6 cout<<" Derived: y=w<<bb. y<<endl; //语句7 cout<< Base::x=<<bhgetx()<<endli //语句8 cout<< " Derived: y="<<bb gety()<<endl; //语句9 ¥ eturn (1)写出程序的运行结果。 (2)按以下要求,对程序进行修改后再调试,指出调试中出错的原因。 ①将基类Base中数据成员x的访问权限改为 private时,会出现哪些错误?为什么? ②将基类Base中数据成员x的访问权限改为 protected时,会出现哪些错误?为 什么? ③在原程序的基础上,将派生类 Derived的继承方式改为 private时,会出现哪些错误? 为什么? ④在原程序的基础上,将派生类 Derived的继承方式改为 protected时,会出现哪些错 误?为什么? 2.编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、性别、年龄、 系别和成绩,教师数据有编号、姓名、性别、年龄、职称和部门。要求将编号姓名、性别、年龄 的输入和显示设计成一个类 Person,并作为学生类 Student和教师类 Teacher的基类。 供参考的类结构如下: class Person class Student: public person i 120·

...展开详情
试读 15P C++实验内容
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
C++实验内容 24积分/C币 立即下载
1/15
C++实验内容第1页
C++实验内容第2页
C++实验内容第3页

试读结束, 可继续读2页

24积分/C币 立即下载 >