




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实实 验验 报报 告告 实验课程:实验课程: 学生姓名:学生姓名: 学学 号:号: 专业班级:专业班级: 20162016 年年 9 9 月月 1 1 日日 目目 录录 实验一实验一. C+的开发环境和简单程序的调试的开发环境和简单程序的调试.2 实验二实验二. 函数的应用和类的基本构造函数的应用和类的基本构造.5 实验三实验三. 数组、指针、字符串数组、指针、字符串.8 实验四实验四. 继承与派生继承与派生.10 实验五实验五. 多态与模板多态与模板.15 实验六实验六. 异常处理异常处理.21 实验七实验七. 输入输出输入输出.25 实验八实验八. 文件文件.28 南南昌昌大大学学实实验验报报告告 学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 2016-9-9 实验成绩: 一、实验项目名称 实验一实验一. C+的开发环境和简单程序的调试的开发环境和简单程序的调试 二、实验目的 1 熟悉 C+程序的风格,熟悉实验环境。 2 练习 C+程序的输入、修改、编译、连接与运行的全过程 三、实验基本原理 C+程序设计语言 四、主要仪器设备及耗材 PC 微机 DOS 操作系统或 Windows 操作系统 C+程序设计语言开发环境 五、实验步骤(要求给出运行结果的屏幕截图,源程序电子打包提交) 1. 分析下面程序的输出结果: 2. 建立一个被称为 sroot( )的函数,返回其参数的二次根。重载 sroot( )三次,让它分别 返回整数、长整数与双精度数的二次根(为了实际计算二次根,可以使用标准库函数 sqrt( ))。 3. 编写 C+风格的程序,解决百钱问题,将 1 元人民币兑换成 1,2,5 分的硬币,有多少种换 法 六、实验数据及处理结果 1. 分析下面程序的输出结果: #include int return i; void main() int k=0; int coutkendl; m=20; coutkendl; 2. 建立一个被称为 sroot( )的函数,返回其参数的二次根。重载 sroot( )三次,让它分别 返回整数、长整数与双精度数的二次根(为了实际计算二次根,可以使用标准库函数 sqrt( ))。 #include #include using namespace std; int sroot(int i) return (int)sqrt(i); float sroot(float f) return (float)sqrt(f); double sroot(double d) return (double)sqrt(d); int main( ) int i; float f; double d; couti; coutf; coutd; cout整型参数 i 的二次根=sroot(i)endl; cout长整参数 f 的二次根=sroot(f)endl; cout双精度参数 d 的二次根=sroot(d)endl; 3. 编写 C+风格的程序,解决百钱问题,将 1 元人民币兑换成 1,2,5 分的硬币,有多少种 换法? #include using namespace std; int main() int i,j,k; int sum=0; for(i=0;i=100;i+) for(j=0;j=50;j+) for(k=0;k=20;k+) if(i*1+2*j+5*k=100) cout一分:i 两分:j 五分:kendl; sum+; cout总数为:sumendl; 七、思考讨论题或体会或对改进实验的建议 八、参考资料 C+语言程序设计学生用书 清华大学出版社 郑莉等 南南昌昌大大学学实实验验报报告告 学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 2016-9-9 实验成绩: 一、实验项目名称 实验二实验二. 函数的应用和类的基本构造函数的应用和类的基本构造 二、实验目的 1 熟悉 C+程序类定义的一般形式。 2 熟悉 C+程序对象的定义,对象的使用。 3 构造函数与析构函数的定义 三、实验基本原理 C+程序设计语言 四、主要仪器设备及耗材 PC 微机 DOS 操作系统或 Windows 操作系统 C+程序设计语言开发环境 五、实验步骤(要求运行结果的屏幕截图,源程序电子打包提交) 1.运行下面的程序,并说明运行结果为什么?。 #include class example public: example(int n) i=n; cout构造函数n; example() cout析构函数n; int get_i() return i; private: int i; ; int sqr_it(example o) cout调用 sqr_it 开始n; return o.get_i()*o.get_i(); void main() example x(10); coutx.get_i()endl; coutsqr_it(x)endl; cout调用 sqr_it 结束n; 2. 建立类 cylinder,cylinder 的构造函数被传递了两个 double 值,分别表示圆柱体的半径和 高度。用类 cylinder 计算圆柱体的体积,并存储在一个 double 变量中。在类 cylinder 中包含一 个成员函数 vol(),用来显示每个 cylinder 对象的体积。 六、实验数据及处理结果 1.运行下面的程序,并说明运行结果为什么?。 #include class example public: example(int n) i=n; cout构造函数n; example() cout析构函数n; int get_i() return i; private: int i; ; int sqr_it(example o) cout调用 sqr_it 开始n; return o.get_i()*o.get_i(); void main() example x(10); coutx.get_i()endl; coutsqr_it(x)endl; cout调用 sqr_it 结束n; 2. 建立类 cylinder,cylinder 的构造函数被传递了两个 double 值,分别表示圆柱体的半径和 高度。用类 cylinder 计算圆柱体的体积,并存储在一个 double 变量中。在类 cylinder 中包含一 个成员函数 vol(),用来显示每个 cylinder 对象的体积。 #include using namespace std; class cylinder double v; public: cylinder(double r, double h) v=(3.14*r*r)*h; cout圆柱体的半径 r 为:rn圆柱体的高度 h 为:hendl; void vol() cout圆柱体的体积 v 是:vendl; ; main ( ) double r,h; coutr; couth; cylinder obj(r,h); obj.vol(); 七、思考讨论题或体会或对改进实验的建议 八、参考资料 C+语言程序设计学生用书 清华大学出版社 郑莉等 高级语言 C+程序设计试验指导高等教育出版社 周玉龙 南南昌昌大大学学实实验验报报告告 学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 2016-9-9 实验成绩: 一、实验项目名称 实验三实验三. 数组、指针、字符串数组、指针、字符串 二、实验目的 1熟悉 C+中数组、指针和字符串的特点和应用。 三、实验基本原理 C+程序设计语言 四、主要仪器设备及耗材 PC 微机 DOS 操作系统或 Windows 操作系统 C+程序设计语言开发环境 五、实验步骤(要求给出简单类图、运行结果的屏幕截图,源程序电子打包提交) 1构建一个类 book,其中含有两个私有数据成员 qu 和 price,建立一个有 5 个元素的数组对象, 将 qu 初始化为 15,将 price 初始化为 qu 的 10 倍。显示每个对象的 qu*price 值。 2通过对象指针访问对象数组,使程序以相反的顺序显示对象数组的 qu*price 值. 六、实验数据及处理结果 1构建一个类 book,其中含有两个私有数据成员 qu 和 price,建立一个有 5 个元素的数组对象, 将 qu 初始化为 15,将 price 初始化为 qu 的 10 倍。显示每个对象的 qu*price 值。 #include using namespace std; class book int qu, price; public: book(int q) qu=q; price=10*q; int get_qu() return qu; int get_price() return price; ; int main( ) book obj5=1,2,3,4,5; for(int i=0;i5;i+) cout数组对象i+1的 qu*price 值为:obji.get_qu()*obji.get_price() 0;i-) cout数组对象i的 qu*price 值为:get_price()endl; p-; 七、思考讨论题或体会或对改进实验的建议 八、参考资料 C+语言程序设计学生用书 清华大学出版社 郑莉等 南南昌昌大大学学实实验验报报告告 学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 2016-9-9 实验成绩: 一、实验项目名称 实验四实验四. 继承与继承与派生派生 二、实验目的 1 熟悉派生类的声明。 2. 派生类的构造函数与析构函数的定义。 3. 继承的方式。 三、实验基本原理 C+程序设计语言 四、主要仪器设备及耗材 PC 微机 DOS 操作系统或 Windows 操作系统 C+程序设计语言开发环境 五、实验步骤(要求给出简单类图、运行结果的屏幕截图,源程序电子打包提交) 1.下面的程序包含了 Time 类和 Date 类的声明,要求设计一个 Brithtime 类,它继承了 Time 类和 Date 类,并且还有一项出生孩子的名字 Childname,同时设计主程序显示一个小孩的出生时间和 名字。 #include #include class Time protected: int hours,minutes,seconds; public: Time(int h, int m, int s) hours=h; minutes=m; seconds=s; virtual void display() couthours:minutes:secondsendl; ; class Date protected: int month,day,year; public: Date(int m, int d, int y) month=m; day=d; year=y; virtual void display() coutmonth/day/yearendl; ; 2. 建立普通的基类 buliding,用来存储一座楼房的层数、房间数以及它的总平方米数。建立派 生类 house,继承 building,并存储下面的内容:卧室与浴室的数量。另外,建立派生类 office,继承 building,并存储灭火器与电话的数目。 六、实验数据及处理结果 1.下面的程序包含了 Time 类和 Date 类的声明,要求设计一个 Brithtime 类,它继承了 Time 类和 Date 类,并且还有一项出生孩子的名字 Childname,同时设计主程序显示一个小孩的出生时间和 名字。 #include #include using namespace std; class Time protected: int hours,minutes,seconds; public: Time(int h, int m, int s) hours=h; minutes=m; seconds=s; virtual void display() couthours:minutes:secondsendl; ; class Date protected: int month,day,year; public: Date(int m, int d, int y) month=m; day=d; year=y; virtual void display() coutmonth/day/yearendl; ; class Brithtime:public Time, public Date protected: char *Childname; public: Brithtime(int m, int d, int y, int h, int min, int s, char *p):Date(m,d,y),Time(h,min,s) Childname=new charstrlen(p)+1; strcpy(Childname,p); void display() cout姓名:Childnamen; Date:display(); Time:display(); ; main( ) int m, d, y, h, min, s; char p20; cout姓名:; scanf(%s, coutymd; couthmins; Brithtime ob(m,d,y,h,min,s,p); ob.display(); 2. 建立普通的基类 buliding,用来存储一座楼房的层数、房间数以及它的总平方米数。建立派 生类 house,继承 building,并存储下面的内容:卧室与浴室的数量。另外,建立派生类 office,继承 building,并存储灭火器与电话的数目。 #include using namespace std; class building protected: int fr; int r; double m; public: building(int a, int b, double x) fr=a; r=b; m=x; ; class house : public building private: int br; int dr; public: house(int a, int b, double x, int c, int d):building(a,b,x) br=c; dr=d; void show() cout 楼房层数 :frendl; cout 房间数 :rendl; cout 楼房总面积:mendl; cout 卧室数量 :brendl; cout 浴室数量 :drendl; ; class offic : public building private: int mr; int tr; public: offic(int a, int b, double x, int c, int d):building(a,b,x) mr=c; tr=d; void show() cout 楼房层数 :frendl; cout 房间数 :rendl; cout 楼房总面积:mendl; cout 灭火器数量:mrendl; cout 电话数量 :trendl; ; main() int fr;int r; double m; int br;int dr; int mr;int tr; cout fr; cout r; cout m; cout br; cout dr; cout mr; cout tr; cout endl; building ob1(fr,r,m); house ob2(fr,r,m,br,dr); offic ob3(fr,r,m,mr,tr); cout 住宅楼endl; ob2.show(); cout n 办公大楼endl; ob3.show(); 七、思考讨论题或体会或对改进实验的建议 八、参考资料 C+语言程序设计学生用书 清华大学出版社 郑莉等 南南昌昌大大学学实实验验报报告告 学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 2016-9-9 实验成绩: 一、实验项目名称 实验五实验五. 多态与模板多态与模板 二、实验目的 1 熟悉函数(成员函数)的重载。 2. 熟悉运算符重载。 3. 了解虚函数、纯虚函数和抽象类。 4 函数模板与模板函数。5 5. 类模板和模板类。 三、实验基本原理 C+程序设计语言 四、主要仪器设备及耗材 PC 微机 DOS 操作系统或 Windows 操作系统 C+程序设计语言开发环境 五、实验步骤(要求给出简单类图、运行结果的屏幕截图,源程序电子打包提交) 1. 用成员函数重载运算符“+”和“-”,将两个二维数组相加和相减,要求第一个二维数组的 值由构造函数设置,另一个二维数组的值由由键盘数入。 2. 编写程序,计算汽车运行的时间,首先建立基类 car,其中含有数据成员 distance 存储两点 间的距离,假定距离以英里计算,速度为每小时 80 英里,使用虚函数 travel_time()计算并显示 通过这段距离的时间。派生类 kilometre 中,假定距离以千米计算,速度为每小时 120 千米,使 用函数 travel_time()计算并显示通过这段距离的时间。 3 写一个函数模板,求数组中的最大元素,并使得在函数调用时,数组的类型和返回类型可以 是整数也可以是双精度类型。 4. 建立类模板 input,在调用构造函数时,完成以下工作: (1)提示用户输入; (2)让用户输入数据; (3)如果数据不在预定范围内,重新提示输入。 六、实验数据及处理结果 1. 用成员函数重载运算符“+”和“-”,将两个二维数组相加和相减,要求第一个二维数组的 值由构造函数设置,另一个二维数组的值由由键盘数入。 #include using namespace std; class Tow_arr / 定义类 Tow_arr protected: int a23; public: Tow_arr(int ,int ,int ,int ,int ,int ); /构造函数 Tow_arr(); /无参构造函数 void Set(); /设置二维数组数据的函数 void Show(); /显示二维数组数据的函数 Tow_arr operator +( Tow_arr );/成员函数重载运算符“+” Tow_arr operator -( Tow_arr );/成员函数重载运算符“-” ; /构造函数完整 Tow_arr:Tow_arr(int a1,int a2,int a3,int a4,int a5,int a6) a00=a1; a01=a2; a02=a3; a10=a4; a11=a5; a12=a6; Tow_arr:Tow_arr() /无参构造函数完整 for (int i=0; i2; i+) for (int j=0; j3; j+) aij=0; void Tow_arr:Set() /设置二维数组数据的函数完整 cout数入 2 X 3 个整数:endl; for (int i=0; i2; i+) for (int j=0; j3; j+) cout输入第(i+1)*(j+1)aij; void Tow_arr:Show() /显示二维数组数据的函数完整 cout二维数组内的数据是:endl; for (int i=0; i2; i+) for (int j=0; j3; j+) coutaij ; coutn; /成员函数重载运算符“+”完整 Tow_arr Tow_arr:operator +( Tow_arr add2) Tow_arr temp; for (int i=0; i2; i+) for (int j=0; j3; j+) temp.aij=aij+add2.aij; return temp; /成员函数重载运算符“-”完整 Tow_arr Tow_arr:operator -( Tow_arr add2) Tow_arr temp; for (int i=0; i2; i+) for (int j=0; j3; j+) temp.aij=aij-add2.aij; return temp; main() Tow_arr obja(12,56,34,56,24,82); /定义对象 obja Tow_arr objb, objc; /定义对象 objb, objc objb.Set(); /给对象 objb 设置数据 coutObja; obja.Show(); /显示对象 obja 数据 coutObjb; objb.Show(); objc=obja+objb; coutObja+Objb 后,Objc; objc.Show(); /显示对象 objc 数据 objc=obja-objb; coutObja-Objb 后,Objc; objc.Show(); /显示对象 objc 数据 2. 编写程序,计算汽车运行的时间,首先建立基类 car,其中含有数据成员 distance 存储两点 间的距离,假定距离以英里计算,速度为每小时 80 英里,使用虚函数 travel_time()计算并显示 通过这段距离的时间。派生类 kilometre 中,假定距离以千米计算,速度为每小时 120 千米,使 用函数 travel_time()计算并显示通过这段距离的时间。 #include using namespace std; class car / 定义类 car protected: float distance; public: car(float x) distance=x; virtual int travel_time() /虚函数 travel_time() float time; int h,m; time=distance/80; h=int(time); m=(time-h)*60; cout距离:distance英里,通过时间: h小时m分钟endl; ; class kilometre : public car public: kilometre(float y):car(y) virtual int travel_time() /重新定义虚函数 travel_time() float time; int h,m; time=distance/120; h=int(time); m=(time-h)*60; cout距离:distance千米,通过时间: h小时m分钟travel_time(); 3 写一个函数模板,求数组中的最大元素,并使得在函数调用时,数组的类型和返回类型可以 是整数也可以是双精度类型。 # include using namespace std; template AT max(AT a, int n) AT maxitem; maxitem=a0; for(int i=0; imaxitem ) maxitem=ai; return maxitem; main() int a10=12,24,97,65,81,23,145,12,32,54; double b5=12.34,32.56,65.28,98.56,12.54; cout整数数组 a 的最大元素是:max(a,10)endl; cout双精度数组 b 的最大元素是:max(b,5)endl; 4. 建立类模板 input,在调用构造函数时,完成以下工作: (1)提示用户输入; (2)让用户输入数据; (3)如果数据不在预定范围内,重新提示输入。 #include #include using namespace std; template /定义有个机动类型的类模板 input class input private: Type max, min; public: input(char *s, Type mi, Type ma) /构造函数 Type temp; min=mi; max=ma; cout请输入s(min到maxtemp; do if(min=temp cout数据错误,请输入s数据范围(min到maxtemp; while(1); ; main() input obj1(integer,1,10); /用 int 实例化类模板 七、思考讨论题或体会或对改进实验的建议 八、参考资料 C+语言程序设计学生用书 清华大学出版社 郑莉等 南南昌昌大大学学实实验验报报告告 学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 2016-9-9 实验成绩: 一、实验项目名称 实验六实验六. 异常处理异常处理 二、实验目的 理解异常处理的原理和过程掌握异常处理的基本方法 三、实验基本原理 C+程序设计语言 四、主要仪器设备及耗材 PC 微机 DOS 操作系统或 Windows 操作系统 C+程序设计语言开发环境 五、实验步骤(要求给出简单类图、运行结果的屏幕截图,源程序电子打包提交) 设计一个包含异常处理的 100 以内的四则运算程序,异常情况包括除数为 0、数据溢出、减法 结果小于 0 等。 六、实验数据及处理结果 #include #include int main() char a; float num1; float num2; float num3; printf(请输入运算公式(num1 运算符号 num2):); scanf(%f%c%f, switch(a) case +: if(0=num1 else printf(数字 num2 不在 0100 内,请重新输入n); else if(0=num2 else printf(数字 num1 不在 0100 内,请重新输入n); printf(数字 num2 不在 0100 内,请重新输入n); break; case -: if(0=num1 else printf(num1-num2 小于 0,请重新输入n); else printf(数字 num2 不在 0100 内,请重新输入n); else if(0=num2 else printf(数字 num1 不在 0100 内,请重新输入n); printf(数字 num2 不在 0100 内,请重新输入n); break; case *: if(0=num1 else printf(数字 num2 不在 0100 内,请重新输入n); else if(0=num2 else printf(数字 num1 不在 0100 内,请重新输入n); printf(数字 num2 不在 0100 内,请重新输入n); break; case /: if(0=num1 else printf(%6.2f*%6.2f=%6.2fn, num1,num2,num1 * num2); else printf(数字 num2 不在 0100 内,请重新输入n); else if(0=num2 else printf(数字 num1 不在 0100 内,请重新输入n); printf(数字 num2 不在 0100 内,请重新输入n); break; default: printf(error); system(pause); return 0; 七、思考讨论题或体会或对改进实验的建议 八、参考资料 C+语言程序设计学生用书 清华大学出版社 郑莉等 南南昌昌大大学学实实验验报报告告 学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 2016-9-9 实验成绩: 一、实验项目名称 实验七实验七. 输入输出输入输出 二、实验目的 理解和掌握输入输出的基本原理和方法。 三、实验基本原理 C+程序设计语言 四、主要仪器设备及耗材 PC 微机 DOS 操作系统或 Windows 操作系统 C+程序设计语言开发环境 五、实验步骤(要求给出运行结果的屏幕截图,源程序电子打包提交) 编程:按要求实现数据的输入和输出。 (1)以左对齐和右对齐方式输出整数,域宽为 12。 (2)以八进制、十进制和十六进制输入和输出整数。 (3)实现浮点数的指数格式和定点格式输入输出,并指定精度,按实际情况进行调整。 (4)把字符串读入字符型数组变量中,从键盘输入字符串,要求能读入串中的空白字符,以 回车符结束。 六、实验数据及处理结果 #include #include using namespace std; int main(void) int inum1=123,inum2=4567,inum3=98765; double fnum=12.,fnum1; char str123; cout以左对齐方式输出整数,域宽为 12:endl; cout.flags(ios:left); cout.width(12); coutinum1; cout.width(12); coutinum2; cout.width(12); coutinum3endl; cout.flags(ios:left|ios:oct|ios:showbase); cout.width(12); coutinum1; cout.width(12); coutinum2; cout.width(12); coutinum3endl; cout.setf(ios:hex,ios:hex|ios:oct); cout.width(12);coutinum1; cout.width(12);coutinum2; cout.width(12);coutinum3endl; cout.precision(10); cout.setf(ios:scientific,ios:floatfield); cout指数格式:fnumn; cout.setf(ios:fixed,ios:floatfield); cout定点表达方式:fnumn; cout请输入 PI:fnum1; coutfnum1n; cin.get(); cout请输入一个字符串:endl; cin.getline(str,123); coutstrendl; cout.flags(ios:left|ios:oct|ios:showbase); cout以左对齐方式输出整数,域宽为 12:endl; coutleftdecsetw(12)inum1; coutsetw(12)inum2; coutsetw(12)inum3endl; coutshowbaseoctsetw(12)inum1; coutsetw(12)inum2; coutsetw(12)inum3endl; couthe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《谏太宗十疏书》课件
- 语文教学研修汇报
- 亲戚关系单词课件
- 《诗经·何草不黄》课件
- 亲子健康调理课件
- 亮丽的城市风光课件
- 事故安全培训感受体会课件
- 事业单位财务
- 气体行业的年度工作总结
- 汽车外饰工程师年终总结
- 学堂在线 军事理论 章节测试答案
- 《工程勘察设计收费标准》(2002年修订本)
- GB 31644-2018食品安全国家标准复合调味料
- 小箱梁运输及架设施工危险源辨识及分析
- 科技论文写作与学术规范PPT通用课件
- 汉语拼音字母描红(A4打印)
- 构建“可视化”数学课堂促进学生深度学习
- 财务报销流程培训PPT课件:日常费用报销
- 聆听京剧唱腔联奏
- 建筑工程资料(全套表格)资料
- 值得收藏的榫接图【木工爱好者论坛完全版本】
评论
0/150
提交评论