《面向对象程序设计 C++》实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《面向对象程序设计》实验教学大纲一、实验课的性质与任务本课程实验大纲是面向计算机专业学生开设的《C++程序设计》实验课计划指导大纲,是依据《面向对象程序设计》课程教学计划指导大纲编制。本课程主要讲述了利用C++进行程序设计的思想和方法,既有面向过程和面向对象的程序设计的理论知识,又包括极强的实践应用能力的培养。本实验大纲力求结合该课程教学计划大纲的相应内容,由浅入深的指导学生了解和掌握如何利用C++程序设计语言进行程序设计,提高学生的动手能力,做到理论和实践相结合,培养学生理解,分析程序,编写,调试程序的能力,使之能把程序设计应用到今后的专业学习中。二、实验课程目的与要求1.实验目的:通过本课程的学习,使学生掌握面向过程的程序设计思想和编程思路,初步掌握面向对象的程序设计思想,学会调试程序,能独立编写实用的小型程序。2.实验要求:1)学生应该自始至终贯彻课程中所介绍的程序设计风格,养成良好的编程习惯;2)应独立完成所布置习题。为保证尽量在统一安排的上机时间内编译运行通过程序,学生应事先设计好程序。三、实验项目及内容提要面向对象程序设计实验课程序号实验项目编号实验名称学时必做选做学分数实验类型内容提要基本操作验证综合设计实验学时:32实验个数:13实验学分:1课程性质:专业必修课适用专业:软件工程教材及参考书:1.《C++语言程序设计习题与实验指导》,郑莉、傅仕星编著,北京:清华大学出版社,20042.《C++语言程序设计(第三版)》,郑莉、董渊编著,北京:清华大学出版社,2005大纲执笔人:李晓宁大纲审定人:刘芳、苟仕蓉、左友东面向对象程序设计实验课程序号实验项目编号实验名称学时必做选做学分数实验类型内容提要基本操作验证综合设计1一VisualC++开发环境入门2√√熟悉VC++开发环境2二C++简单程序设计4√√基本算法结构3三函数的应用2√√函数设计、模板函数4四类与对象6√√类的设计与使用5五C++程序的结构2√√作用域与生存期,静态成员6六数组、指针与字符串4√√三种常见编程元素的使用7七继承与派生6√√派生类的设计与使用8八多态性2√√运算符重载、动态多态9九群体类和群体数据的组织4√√群体类的设计10十泛型程序设计与C++标准模板库2√√STL库的使用11十一流内库与输入、输出2√√常用输入输出方法12十二异常处理2√√异常处理机制的设计13十三Windows应用程序框架2√√VC开发Windows程序方法四、实验内容安排:实验一VisualC++6.0开发环境应用入门(验证性实验2学时)1.目的要求:了解VisualC++6.0的特点,熟悉了解VisualC++6.0的开发环境,学习使用VisualC++6.0编写标准的C++控制台应用程序。2.实验内容:使用VisualC++来建立一个非图形化的标准C++程序,编译、运行教材中的例3-3,用公式法求解PI的数值,并尝试利用其他方法求解并获得相同的结果。π=16arctan(1/5)-4arctan(1/239)arctan(x)=x-x³/3+x5/5-x7/7+…求π=?#includeiostreamusingnamespacestd;intmain(){doublea,b;doublearctan(doublex);a=16.0*arctan(1/5.0);b=4.o*aarctan(1/239.0);cout”PI=”a-bendl;}doublearctan(doublex){inti;doubler,ef,sqr;sqr=x*x;r=0;e=x;i=1;while(e/i1e-15){f=e/I;r=(i%4==1)?r+f:r-f;e=e*sqr;I+=2;}returnr;}#includestdio.h#includemath.hmain(){ints=1;floatn=1,t=1,pi=0;while(fabs(t)1e-4){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf(%d,pi);}13.主要仪器设备及软件:PC+Windows2000+VC6.0实验二C++简单程序设计实验(验证性实验4学时)1.目的要求:会编写简单的C++程序;复习基本数据类型变量和常量的应用;复习运算符与表达式的应用;复习结构化程序设计基本控制结构的应用;复习自定义数据类型的应用;练习使用简单的输入输出;观察头文件的作用;学会使用VC6.0开发环境中的debug调试功能;熟练程序设计中的技巧;2.实验内容:1)给定一个字符变量输出其二进制形式。例如chara=’a’;其二进制为00100001。#includeiostreamusingnamespacestd;intmain(){charch;intj,k[8]={0};cout请输入一个字符:endl;cinch;for(j=0;j=7;j++){if(ch){if(ch%2==0)k[j]=0;elsek[j]=1;ch=(ch-(ch%2))/2;}}for(j=7;j=0;j--){coutk[j];}coutendl;}2)给定一个字符变量输出其二进制反转形式。例如chara=’a’;其二进制为00100001,反转形式为10000100。(提示:使用位运算)#includeiostreamusingnamespacestd;intmain(){charch;intj,k[8]={0};cout请输入一个字符:endl;cinch;for(j=0;j=7;j++){if(ch){if(ch%2==0)k[j]=0;elsek[j]=1;ch=(ch-(ch%2))/2;}}coutch二进制是:;for(j=7;j=0;j--){coutk[j];}coutendl;for(j=0;j=7;j++){k[j]=k[j]^1;}cout二进制反码是:;for(j=7;j=0;j--){coutk[j];}coutendl;}3)袋子里有红,黄,蓝,绿,黑五种不同颜色的球若干个,从中取出三个不同颜色的球,编程输出每种取法及统计不同取法的总数(提示:使用枚举)#includestdio.henumcolor{red=0,yellow,blue,green,black};boolisNum(inti){intj=0;for(intk=0;k6;k++)if(ik&1==1)j++;returnj==3?true:false;}voidprintResult(inti){for(intk=0;k5;k++){if(ik&1==1)switch(k){casered:printf(red);break;caseyellow:printf(yellow);break;caseblue:printf(blue);break;casegreen:printf(green);break;caseblack:printf(black);break;default:printf(error!!);break;}}printf(\n);}voidmain(){intj=0;printf(可能的方案有:\n);for(inti=0;i=32;i++){if(isNum(i)){printResult(i);j++;}}4)(选做)给定一个整型变量输出其二进制形式。3.主要仪器设备及软件:PC+Windows2000+VC6.0实验三函数的应用实验(设计性实验2学时)1.目的要求:掌握函数的定义和调用方法;练习重载函数的使用;练习使用系统函数;学习使用VC++的debug调试功能,使用stepinto追踪到函数内部。2.实验内容:1)用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。#includeiostreamusingnamespacestd;intFibonacci(inti){if(i==1)return0;else{if(i==2)return1;elsereturnFibonacci(i-1)+Fibonacci(i-2);}}intmain(){intn,j,i;cinn;for(i=1;i=n;i++){j=Fibonacci(i);coutjendl;}}2)编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。#includeiostreamusingnamespacestd;intMAX1(inta,intb){if(a=b)returna;elsereturnb;}intMAX1(inta,intb,intc){if(a=b){if(a=c)returnc;elsereturna;}else{if(b=c)returnc;elsereturnb;}}doubleMAX1(doublea,doubleb){if(a=b)returna;elsereturnb;}doubleMAX1(doublea,doubleb,doublec){if(a=b){if(a=c)returnc;elsereturna;}else{if(b=c)returnc;elsereturnb;}}intmain(){inta,b,c;doublei,j,k;cout请输入两个整数endl;cinab;cout最大的数MAX1(a,b)endlendl;cout请输入三个整数endl;cinabc;cout最大的数是MAX1(a,b,c)endlendl;cout请输入两个小数endl;cinij;cout最大的数是MAX1(i,j)endlendl;cout请输入三个小数endl;cinijk;cout最大的数是MAX1(i,j,k)endlendl;}3)写一个函数,能够接收身高、体重等数据,能够根据身高、体重检测身体状况,胖,瘦等。#includeiostreamusingnamespacestd;voidSHENGC(doublei,doublej){if(ij*32)cout这个人偏胖endl;else{if(i=j*32)cout这个人适中endl;elsecout这个人偏瘦endl;}}intmain(){doublei,j;cout请输入身高(cm)和体重(kg)endl;cinij;SHENGC(i,j);}3.主要仪器设备及软件:PC+Windows2000+VC6.0实验四类与对象实验(设计性实验4学时)1.目的要求:掌握类的定义和使用;掌握类对象的声明;复习具有不同访问属性的成员的访问方式;观察构造函数和析构函数的执行过程;学习类组合使用方法;使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。2.实验内容:1)定义一个CPU类,包含等级(Rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU__Rank,定义为enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。#includeiostreamusingnamespacestd;enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};classCPU{public:CPU();~CPU();voidrun(enumCPU_Rankr,intf,doublev);voidstop();private:enumCPU_RankRank;intfrequen

1 / 46
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功