南昌大学C++高级语言程序设计实验报告.docx
- 文档编号:18452557
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:36
- 大小:332.99KB
南昌大学C++高级语言程序设计实验报告.docx
《南昌大学C++高级语言程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《南昌大学C++高级语言程序设计实验报告.docx(36页珍藏版)》请在冰点文库上搜索。
南昌大学C++高级语言程序设计实验报告
实验报告
实验课程:
学生姓名:
学号:
专业班级:
2016年9月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&f(int&i)
{i+=10;
returni;
}
voidmain()
{intk=0;
int&m=f(k);
cout< m=20; cout< } 2.建立一个被称为sroot()的函数,返回其参数的二次根。 重载sroot()三次,让它分别返回整数、长整数与双精度数的二次根(为了实际计算二次根,可以使用标准库函数sqrt())。 #include #include<> usingnamespacestd; intsroot(inti) {return(int)sqrt(i);} floatsroot(floatf) {return(float)sqrt(f);} doublesroot(doubled) {return(double)sqrt(d);} intmain() {inti; floatf; doubled; cout<<"输入整型参数i="; cin>>i; cout<<"输入长整参数f="; cin>>f; cout<<"输入双精度参数d="; cin>>d; cout<<"整型参数i的二次根="< cout<<"长整参数f的二次根="< cout<<"双精度参数d的二次根="< } 3.编写C++风格的程序,解决百钱问题,将1元人民币兑换成1,2,5分的硬币,有多少种换法 #include usingnamespacestd; intmain() { inti,j,k; intsum=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<<"一分: "< "< "< sum++; }} cout<<"总数为: "< } 七、思考讨论题或体会或对改进实验的建议 八、参考资料 《C++语言程序设计学生用书》清华大学出版社郑莉等 南昌大学实验报告 学生姓名: 学号: 专业班级: 实验类型: □验证□综合□设计□创新实验日期: 2016-9-9实验成绩: 一、实验项目名称 实验二.函数的应用和类的基本构造 二、实验目的 1.熟悉C++程序类定义的一般形式。 2.熟悉C++程序对象的定义,对象的使用。 3.构造函数与析构函数的定义 三、实验基本原理 C++程序设计语言 四、主要仪器设备及耗材 PC微机 DOS操作系统或Windows操作系统 C++程序设计语言开发环境 五、实验步骤(要求运行结果的屏幕截图,源程序电子打包提交) 1.运行下面的程序,并说明运行结果为什么。 #include<> classexample {public: example(intn) {i=n;cout<<"构造函数\n";} ~example() {cout<<"析构函数\n";} intget_i() {returni;} private: inti; }; intsqr_it(exampleo) {cout<<"调用sqr_it开始\n"; return()*(); } voidmain() {examplex(10); cout<<()< cout< cout<<"调用sqr_it结束\n"; } 2.建立类cylinder,cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径和高度。 用类cylinder计算圆柱体的体积,并存储在一个double变量中。 在类cylinder中包含一个成员函数vol(),用来显示每个cylinder对象的体积。 六、实验数据及处理结果 1.运行下面的程序,并说明运行结果为什么。 #include<> classexample {public: example(intn) {i=n;cout<<"构造函数\n";} ~example() {cout<<"析构函数\n";} intget_i() {returni;} private: inti; }; intsqr_it(exampleo) {cout<<"调用sqr_it开始\n"; return()*(); } voidmain() {examplex(10); cout<<()< cout< cout<<"调用sqr_it结束\n"; } 2.建立类cylinder,cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径和高度。 用类cylinder计算圆柱体的体积,并存储在一个double变量中。 在类cylinder中包含一个成员函数vol(),用来显示每个cylinder对象的体积。 #include usingnamespacestd; classcylinder{ doublev; public: cylinder(doubler,doubleh) {v=*r*r)*h; cout<<"圆柱体的半径r为: "< "< voidvol() {cout<<"圆柱体的体积v是: "< }; main() { doubler,h; cout<<"输入圆柱体的半径r: "; cin>>r; cout<<"输入圆柱体的高度h: "; cin>>h; cylinderobj(r,h); (); } 七、思考讨论题或体会或对改进实验的建议 八、参考资料 《C++语言程序设计学生用书》清华大学出版社郑莉等 《高级语言C++程序设计试验指导》高等教育出版社周玉龙 南昌大学实验报告 学生姓名: 学号: 专业班级: 实验类型: □验证□综合□设计□创新实验日期: 2016-9-9实验成绩: 一、实验项目名称 实验三.数组、指针、字符串 二、实验目的 1.熟悉C++中数组、指针和字符串的特点和应用。 三、实验基本原理 C++程序设计语言 四、主要仪器设备及耗材 PC微机 DOS操作系统或Windows操作系统 C++程序设计语言开发环境 五、实验步骤(要求给出简单类图、运行结果的屏幕截图,源程序电子打包提交) 1.构建一个类book,其中含有两个私有数据成员qu和price,建立一个有5个元素的数组对象,将qu初始化为1~5,将price初始化为qu的10倍。 显示每个对象的qu*price值。 2.通过对象指针访问对象数组,使程序以相反的顺序显示对象数组的qu*price值. 六、实验数据及处理结果 1.构建一个类book,其中含有两个私有数据成员qu和price,建立一个有5个元素的数组对象,将qu初始化为1~5,将price初始化为qu的10倍。 显示每个对象的qu*price值。 #include usingnamespacestd; classbook{ intqu,price; public: book(intq) {qu=q;price=10*q;} intget_qu() {returnqu;} intget_price() {returnprice;} }; intmain() {bookobj[5]={1,2,3,4,5}; for(inti=0;i<5;i++) { cout<<"数组对象"< "< } } 2.通过对象指针访问对象数组,使程序以相反的顺序显示对象数组的qu*price值. #include usingnamespacestd; classbook{ intqu,price; public: book(intq) {qu=q;price=10*q;} intget_qu() {returnqu;} intget_price() {returnprice;}}; intmain() {bookobj[5]={1,2,3,4,5}; book*p; p=&obj[4]; for(inti=5;i>0;i--) {cout<<"数组对象"< "< p--;}} 七、思考讨论题或体会或对改进实验的建议 八、参考资料 《C++语言程序设计学生用书》清华大学出版社郑莉等 南昌大学实验报告 学生姓名: 学号: 专业班级: 实验类型: □验证□综合□设计□创新实验日期: 2016-9-9实验成绩: 一、实验项目名称 实验四.继承与派生 二、实验目的 1.熟悉派生类的声明。 2.派生类的构造函数与析构函数的定义。 3.继承的方式。 三、实验基本原理 C++程序设计语言 四、主要仪器设备及耗材 PC微机 DOS操作系统或Windows操作系统 C++程序设计语言开发环境 五、实验步骤(要求给出简单类图、运行结果的屏幕截图,源程序电子打包提交) 1.下面的程序包含了Time类和Date类的声明,要求设计一个Brithtime类,它继承了Time类和Date类,并且还有一项出生孩子的名字Childname,同时设计主程序显示一个小孩的出生时间和名字。 #include<> #include<> classTime{ protected: inthours,minutes,seconds; public: Time(inth,intm,ints) {hours=h;minutes=m;seconds=s;} virtualvoiddisplay() {cout< "< "< } }; classDate{ protected: intmonth,day,year; public: Date(intm,intd,inty) {month=m;day=d;year=y;} virtualvoiddisplay() {cout< } }; 2.建立普通的基类buliding,用来存储一座楼房的层数、房间数以及它的总平方米数。 建立派生类house,继承building,并存储下面的内容: 卧室与浴室的数量。 另外,建立派生类office,继承building,并存储灭火器与电话的数目。 六、实验数据及处理结果 1.下面的程序包含了Time类和Date类的声明,要求设计一个Brithtime类,它继承了Time类和Date类,并且还有一项出生孩子的名字Childname,同时设计主程序显示一个小孩的出生时间和名字。 #include #include<> usingnamespacestd; classTime{ protected: inthours,minutes,seconds; public: Time(inth,intm,ints) {hours=h;minutes=m;seconds=s;} virtualvoiddisplay() {cout< "< "< } }; classDate{ protected: intmonth,day,year; public: Date(intm,intd,inty) {month=m;day=d;year=y;} virtualvoiddisplay() {cout< } }; classBrithtime: publicTime,publicDate{ protected: char*Childname; public: Brithtime(intm,intd,inty,inth,intmin,ints,char*p): Date(m,d,y),Time(h,min,s) {Childname=newchar[strlen(p)+1]; strcpy(Childname,p); } voiddisplay() {cout<<"姓名: "< Date: : display(); Time: : display(); } }; main() { intm,d,y,h,min,s; charp[20]; cout<<"姓名: "; scanf("%s",&p); cout<<"输入出生年月日: "; cin>>y>>m>>d; cout<<"输入出生时分秒: "; cin>>h>>min>>s; Brithtimeob(m,d,y,h,min,s,p); (); } 2.建立普通的基类buliding,用来存储一座楼房的层数、房间数以及它的总平方米数。 建立派生类house,继承building,并存储下面的内容: 卧室与浴室的数量。 另外,建立派生类office,继承building,并存储灭火器与电话的数目。 #include usingnamespacestd; classbuilding{ protected: intfr; intr; doublem; public: building(inta,intb,doublex) {fr=a;r=b;m=x;} }; classhouse: publicbuilding{ private: intbr; intdr; public: house(inta,intb,doublex,intc,intd): building(a,b,x) {br=c;dr=d;} voidshow() {cout<<"楼房层数: "< cout<<"房间数: "< cout<<"楼房总面积: "< cout<<"卧室数量: "< cout<<"浴室数量: "< } }; classoffic: publicbuilding{ private: intmr; inttr; public: offic(inta,intb,doublex,intc,intd): building(a,b,x) {mr=c;tr=d;} voidshow() {cout<<"楼房层数: "< cout<<"房间数: "< cout<<"楼房总面积: "< cout<<"灭火器数量: "< cout<<"电话数量: "< } }; main() { intfr;intr;doublem; intbr;intdr; intmr;inttr; cout<<"输入楼房层数: ";cin>>fr; cout<<"输入房间数: ";cin>>r; cout<<"总平方米数: ";cin>>m; cout<<"卧室数量: ";cin>>br; cout<<"浴室数量: ";cin>>dr; cout<<"灭火器数量: ";cin>>mr; cout<<"电话数量: ";cin>>tr; cout< buildingob1(fr,r,m); houseob2(fr,r,m,br,dr); officob3(fr,r,m,mr,tr); cout<<"住宅楼"< (); cout<<"\n办公大楼"< (); } 七、思考讨论题或体会或对改进实验的建议 八、参考资料 《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 usingnamespacestd; classTow_arr{ 建立类模板input,在调用构造函数时,完成以下工作: (1)提示用户输入; (2)让用户输入数据; (3)如果数据不在预定范围内,重新提示输入。 #include #include<> usingnamespacestd; template 异常处理 二、实验目的 理解异常处理的原理和过程掌握异常处理的基本方法 三、实验基本原理 C++程序设计语言 四、主要仪器设备及耗材 PC微机 DOS操作系统或Windows操作系统 C++程序设计语言开发环境 五、实验步骤(要求给出简单类图、运行结果的屏幕截图,源程序电子打包提交) 设计一个包含异常处理的100以内的四则运算程序,异常情况包括除数为0、数据溢出、减法结果小于0等。 六、实验数据及处理结果 #include<> #include<> intmain() { chara; floatnum1; floatnum2; floatnum3; printf("请输入运算公式(num1运算符号num2): "); scanf("%f%c%f",&num1,&a,&num2); switch(a) { case'+': { if(0<=num1&&num1<=100) { if(0<=num2&&num2<=100) printf("%+%=%\n",num1,num2,num1+num2); 如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。