c++程序设计实验指导.docx

上传人:b****7 文档编号:25387270 上传时间:2023-06-07 格式:DOCX 页数:37 大小:66.55KB
下载 相关 举报
c++程序设计实验指导.docx_第1页
第1页 / 共37页
c++程序设计实验指导.docx_第2页
第2页 / 共37页
c++程序设计实验指导.docx_第3页
第3页 / 共37页
c++程序设计实验指导.docx_第4页
第4页 / 共37页
c++程序设计实验指导.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

c++程序设计实验指导.docx

《c++程序设计实验指导.docx》由会员分享,可在线阅读,更多相关《c++程序设计实验指导.docx(37页珍藏版)》请在冰豆网上搜索。

c++程序设计实验指导.docx

c++程序设计实验指导

 

《C++程序设计》实验指导

海南软件职业技术学院

HainanSoftwareProfessionInstitute

(2006-2007学年度第一学期)

 

教师姓名:

季文天

系部:

软件工程系

授课专业:

软件技术

授课班级:

05软件技术3班

目录

实验一:

VisualC++6.0开发环境2

实验二:

C++数据类型、表达式、语句、控制结构实验4

实验三:

函数实验5

实验四:

选择排序算符6

实验五:

设计一个栈类8

实验六:

公司雇员档案管理10

实验七:

计算函数的定积分13

实验八:

函数模板16

实验九:

类模板实例18

实验十:

插入与提取运算符重载实例20

实验十一:

文件操作实例22

 

实验一:

VisualC++6.0开发环境

一、实验目的:

1.掌握VisualC++6.0的启动和退出方法

2.熟悉选单的基本操作

3.掌握用应用程序向导创建一个控制台应用项目的方法

4.掌握源代码文件的新建、打开、保存和关闭等基本操作

5.掌握Visualc++6.0项目的编译、连接和执行

6.掌握代码简单语法错误修正和调试的一般过程

二、实验环境:

Windows2000Professional

VisualC++6.0Enterprise

三、实验内容

1、VisualC++开发环境

2、简单程序的调试

四、试验步骤:

1、从程序菜单启动VisualC++开发环境

2、认识VisualC++继承开发环境各菜单、窗口。

3、输入简单代码、编译、调试程序。

1.在“程序”表中选择MicrosoftVisualC++6.0,进入到VisualC++6.0的集成环境窗口。

2.在“File”菜单下选择“new”项(编一个新程序),出现“new”对话窗口。

3.在“new”窗口,点击“Projects”标签,在对话框中,选择“win32consoleApplication”(win32控制台应用);在“Projectsname”位置下输入项目名称,例如demo1(把我们的编程工作称为一个名为demo1的Project);在“Location”位置下,选择工作区空间(指定编程及运行中所生成的文件存放的的位置)的地址,就是确定新建的以demo1为名的工作区目录的地址,完成后按“OK”。

4.在下一对话窗口中,由用户选择项目类型,例如,可选择“Anemptyproject”完成后按“Finish”按纽。

5.进入编程环境窗口,窗口分为四部分:

上部:

菜单和工具条;中右:

视图区,是显示和编辑程序文件的操作区;中左:

工作区(workspace)显示窗口,这里显示工作中与项目相关的各种文件种类,工作区窗口可用View菜单关闭或打开;下部:

输出区,程序调试过程中,进行编译、链接、运行中输出的相关信息在这里显示,它也可由View菜单关闭或打开;

6.在上部的菜单中选择“Project/AddToProject/new”,出现对话框,点击“Files”,在出现的文件类型表中选择“C++SonrceFile”,填入项目名,“demo1”,源文件名“main”和工作区目录的位置路径,按“OK”回到主环境窗口;

7.在左侧的工作区,点“FileView”,打开demo1files:

SourceFile/main.cpp;

8.这时,右侧的视图区是空的,把program2-1(或其它源程序)输入其中;

9.在上方的“Build”菜单下,选“compilermain.app”,进行编译;查看下部output区的输出信息,如有出错信息,修改源程序重新编译;

10.编译通过后,在上方的“Build”菜单下,选“Builddemo.exe”,进行链接,如有出错信息,进行修改;

11.在“Build”菜单下,选“Executedemo.exe”运行程序,得到输出结果。

可使用下面代码:

#include

intmain(intargc,char*argv[])

{

cout<<”HelloC++World”<

}

4、运行课本例1_1,1_2,1_3。

五、实验报告

依据本节实验内容书写实验报告,包括如下内容:

(1)实验目的

(2)实验环境

(3)操作步骤

(4)遇到的问题及解决方法

(5)回答实验问题

(6)实验心得和体会

实验二:

C++数据类型、表达式、语句、控制结构实验

一、实验目的:

1.掌握C++数据类型,熟悉定义变量、赋值得方法

2.学会使用C++的有关运算符以及相应的表达式

3.掌握cin和cout的输入、输出的方法,能正确使用各种格式转换

4.了解C++语言表示逻辑量的方法,熟练掌握if和switch语句

5.熟悉用while语句、do…while语句和for语句实现循环的方法

6.进一步掌握控制台应用项目的创建、编译方法

二、实验环境:

Windows2000Professional

VisualC++6.0Enterprise

三、实验内容

1、计算圆面积

2、设计一个简单的英文加密程序,加密规则如下,对每一个英文字母用该字母后面的第2个字母和这个字母本身进行异或运算,设置9个变量,分别存储字符串WeiXiong中的每一个字符,进行运算,检查输出结果和理论计算的结果是否一致。

四、试验步骤:

1、创建工程Program_2_1,输入下列代码

//program3-2.cpp

#include

voidmain()

{

constfloatpai=3.14;

floatradius;

cout<<"Enterradius:

";

cin>>radius;

floatarea=pai*radius*radius;

cout<<"\nTheareaofcircleis";

cout<

}

2、自行设计完成实验内容2。

五、实验报告

依据本节实验内容书写实验报告,包括如下内容:

(1)实验目的

(2)实验环境

(3)操作步骤

(4)遇到的问题及解决方法

(5)回答实验问题

(6)实验心得和体会

实验三:

函数实验

一、实验目的:

1.了解函数的意义

2.熟悉并掌握函数的定义、调用

3.体会函数在面向结构程序设计中的地位

二、实验环境:

Windows2000Professional

VisualC++6.0Enterprise

三、实验内容

1、三次方根求根程序设计

四、试验步骤:

1、公式3.1

2、为了从系数p、q计算实根xr,把公式(3.1)的计算分解为下面几步:

1)令实数xr=A+B;

2)令实数A,B分别为实数R,S的立方根:

3)令R=-q/2+a,S=-q/2-a;(3.2)

4)令a=sqrt((q/2)*(q/2)+(q/3)*(q/3)*(q/3));(3.3)

实际的计算过程为:

用公式(5.3)计算得到a;

用公式(5.2)计算得到R和S;

求出R和S的立方根A和B;

最后得到实根xr。

3、设计函数实现求立方根。

4、完整的程序代码

#include<iostream.h>

#include<math.h>

floatcuberoot(float);

voidmain(void)

{

floatp,q,xr;

cout<<″Inputparametersp,q:

″;

cin>>p>>q;

floata=sqrt((q/2)*(q/2)+(q/3)*(q/3)*(q/3));

xr=cuberoot(-q/2+a)+cuberoot(-q/2-a);

cout<<endl<<″Therealrootoftheequationis″<<xr;

floatcuberoot(floatx)

{

floatroot,croot;

constfloateps=1e-6;

croot=x;

do{

root=croot;

croot=(2*root+x/(root*root))/3;

while(fabs(croot-root)>eps);

return(croot);

五、实验报告

依据本节实验内容书写实验报告,包括如下内容:

(1)实验目的

(2)实验环境

(3)操作步骤

(4)遇到的问题及解决方法

(5)回答实验问题

(6)实验心得和体会

实验四:

选择排序算符

一、实验目的:

1.熟悉并掌握指针的定义

2.学会使用指针

3.掌握排序算符的设计

二、实验环境:

Windows2000Professional

VisualC++6.0Enterprise

三、实验内容

1、排序算法的实现

四、试验步骤:

1、排序算法原理:

排序的任务是把已经存在一个数组里的n个数按从大到小的顺序排列,可以采用多种不同的方法实现,选择排序算法的思路简单,容易理解,每次总是从无序的序列中选出最大者,交换到序列的左端,于是,无序的序列越来越短,经过n-1步,达到排序的目的。

2、程序实现:

#include

#include

#include

voidssort(float*,int);

voidmain(void){

inti,seed,n=20;

cout<

cin>>seed;

cout<

srand(seed);

floatlist[20],*pf;

for(i=0;i

list[i]=rand();

cout<

if((i+1)%8==0)

cout<

i=0;cout<

pf=&list[0];

ssort(pf,n);

while(i

cout<

i++;

if(i%8==0)

cout<

}

cout<

}

voidswap1(float*a,float*b){

floattemp;

temp=*a;

*a=*b;

*b=temp;

}

voidssort(float*a,intm){

inti,j,index;

floatelem;

for(i=0;i

elem=*(a+i);

index=i;

for(j=i+1;j

if(*(a+j)>elem){

elem=*(a+j);

index=j;

}

swap1(a+i,a+index);

}

}

五、实验报告

依据本节实验内容书写实验报告,包括如下内容:

(1)实验目的

(2)实验环境

(3)操作步骤

(4)遇到的问题及解决方法

(5)回答实验问题

(6)实验心得和体会

实验五:

设计一个栈类

一、实验目的:

1.熟悉并掌握类的定义

2.掌握类的成员结构

3.掌握类的构造函数、析构函数

4.理解类和对象

二、实验环境:

Windows2000Professional

VisualC++6.0Enterprise

三、实验内容

1、设计一个栈类

四、试验步骤:

1、栈的原理

栈(stack)是程序设计过程中经常碰到的一种数据结构形式,它对于数据的存放和操作有下面这样的特点:

(1)它只有一个对数据进行存入和取出的端口;

(2)后进者先出,即最后被存入的数据将首先被取出。

其形式很像一种存储硬币的小容器,每次只可以从顶端压入一个硬币,而取出也只可从顶端进行,即后进先出。

2、程序代码:

#include

constintmaxsize=6;

classstack{

floatdata[maxsize];

inttop;

public:

stack(void);

~stack(void);

boolempty(void);

voidpush(floata);

floatpop(void);

};

stack:

:

stack(void){

top=0;

cout<<"stackinitialized."<

}

stack:

:

~stack(void){

cout<<"stackdestroyed"<

}

boolstack:

:

empty(void){

returntop==0;

}

voidstack:

:

push(floata){

if(top==maxsize){

cout<<"Stackoverflow!

"<

return;

}

data[top]=a;

top++;

}

floatstack:

:

pop(void){

if(top==0){

cout<<"Anemptystack!

"<

return0;

}

top--;

returndata[top];

}

voidmain(){

stacks1,s2;

for(inti=1;i<=maxsize;i++)

s1.push(2*i);

for(i=1;i<=maxsize;i++)

cout<

for(i=1;i<=maxsize;i++)

s1.push(2.5*i);

for(i=1;i<=maxsize;i++)

s2.push(s1.pop());

cout<

do

cout<

while(!

(s2.empty()));

}

3、程序执行结果

stackinitialized.

stackinitialized.

12108642

2.557.51012.515

stackdestroyed.

stackdestroyed.

五、实验报告

依据本节实验内容书写实验报告,包括如下内容:

(1)实验目的

(2)实验环境

(3)操作步骤

(4)遇到的问题及解决方法

(5)回答实验问题

(6)实验心得和体会

实验六:

公司雇员档案管理

一、实验目的:

1.熟悉并掌握继承与派生

2.掌握如何处理继承与派生类的关系

二、实验环境:

Windows2000Professional

VisualC++6.0Enterprise

三、实验内容

1、公司雇员档案管理

四、试验步骤:

1、公司雇员档案管理:

假设公司雇员分为:

雇员(employee)、经理(manager)、工程师(engineer)、高级主管(director)。

而且假定只关心这几类雇员各自的如下一些数据:

employee(雇员)类:

姓名、年龄、工资;

manager(经理)类:

姓名、年龄、工资、行政级别;

engineer(工程师)类:

姓名、年龄、工资、专业、学位;

director(高级主管)类:

姓名、年龄、工资、专业、学位、职务。

2、程序代码:

#include

#include

classemployee{//自定义的employee类,它将作为其它几个类的基类

shortage;

floatsalary;

protected:

char*name;

public:

employee(shortag,floatsa,char*na){//基类构造函数

age=ag;

salary=sa;

name=newchar[strlen(na)+1];

strcpy(name,na);

}

voidprint()const{

cout<<""<

";

cout<

";

cout<

}

~employee(){delete[]name;}

};

classmanager:

publicemployee{//派生类manager

intlevel;//行政级别

public:

manager(shortag,floatsa,char*na,intlev)

:

employee(ag,sa,na){//派生类构造函数

level=lev;

}

voidprint()const{

employee:

:

print();//调用基类的print显示“共性”数据

//调用基类(父类)的公有函数成员print时要通过类名限定

cout<<"level:

"<

}

};

classengineer:

publicemployee{//派生类engineer

charspeciality,adegree;

/*分别表示专业:

'E'--电子,'M'--机械,'C'--计算机,'A'--自动化专业;

学位:

'O'--博士,'M'--硕士,'B'--学士,'N'--无学位*/

public:

engineer(shortag,floatsa,char*na,charsp,charad)

:

employee(ag,sa,na){//派生类构造函数

speciality=sp;

adegree=ad;

}

voidprint()const{

employee:

:

print();//调用基类print

cout<<"speciality:

"<

cout<<"academicdegree:

"<

}

};

enumptitle{PS,GM,VPS,VGM};

classdirector:

publicmanager{//派生类director

ptitlepost;

public:

director(shortag,floatsa,char*na,intlev,ptitlepo)

:

manager(ag,sa,na,lev){//派生类构造函数

post=po;

}

voidprint()const{

manager:

:

print();

cout<<"post:

"<

}

};

voidmain(){//主函数,对所定义的类进行使用

employeeemp1(23,610.5,"zhang"),emp2(27,824.75,"zhao");

managerman1(32,812.45,"li",11),man2(34,1200.5,"cui",7);

engineereng(26,1420.10,"meng",'E','M');

directordir(38,1800.2,"zhou",2,GM);

emp1.print();//输出雇员emp1的有关全部信息

emp2.print();//输出雇员emp2的有关全部信息

man1.print();//输出管理人员man1的有关全部信息

man2.employee:

:

print();//调用基类的公有函数成员print

//显示man2的有关雇员信息

eng.print();//输出工程师eng的有关全部信息

dir.print();//输出高级主管dir的有关全部信息

}

3、程序执行结果

zhang:

23:

610.5

zhao:

27:

824.75

li:

32:

812.45

level:

11

cui:

34:

1200.5

meng:

26:

1420.1

speciality:

E

academicdegree:

M

zhou:

38:

1800.2

level:

2

post:

1

五、实验报告

依据本节实验内容书写实验报告,包括如下内容:

(1)实验目的

(2)实验环境

(3)操作步骤

(4)遇到的问题及解决方法

(5)回答实验问题

(6)实验心得和体会

实验七:

计算函数的定积分

一、实验目的:

1.熟悉并掌握虚函数

2.学会使用虚函数处理实际问题

二、实验环境:

Windows2000Professional

VisualC++6.0Enterprise

三、实验内容

1、计算函数的定积分

四、试验步骤:

1、要求:

假设函数f(x)=4/(1+x*x),求函数f(x)的定积分:

的值。

设计一个程序,计算定积分的近似值,可以有三种近似算法供选择,它们都须首先把区间[a,b]分成n个等份,于是每一小段h=(b-a)/n,函数f(x)的自变量将顺序取为:

a,a+h,a+2h,⋯⋯,a+(n-1)h,a+nh=b,共有n+1个点。

矩形法积分近似计算公式为:

sum=(f(a)+f(a+h)+f(a+2h)+⋯⋯+f(a+(n-1)h))h

梯形积分计算公式为:

sum=(f(a)+2f(a+h)+2f(a+2h)+⋯⋯+2f(a+(n-1)h)+f(b))h/2

simpson法积分公式为:

sum=(f(a)+4f(a+h)+2f(a+2h)+4f(a+3h)+2f(a+4h)+⋯⋯+2f(a+

(n-2)h+4f(a+(n-1)h)+f(b))h/3

2、程序代码:

#include

floatfunction(floatx){//欲积分的函数

return4.0/(1+x*x);

}

classinte_algo{//基类inte_algo

protected:

floata,b;//a,b为积分区间的左右边界

intn;//n

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1