C++程序设计实践教程.docx

上传人:b****4 文档编号:4008968 上传时间:2023-05-06 格式:DOCX 页数:287 大小:627.79KB
下载 相关 举报
C++程序设计实践教程.docx_第1页
第1页 / 共287页
C++程序设计实践教程.docx_第2页
第2页 / 共287页
C++程序设计实践教程.docx_第3页
第3页 / 共287页
C++程序设计实践教程.docx_第4页
第4页 / 共287页
C++程序设计实践教程.docx_第5页
第5页 / 共287页
C++程序设计实践教程.docx_第6页
第6页 / 共287页
C++程序设计实践教程.docx_第7页
第7页 / 共287页
C++程序设计实践教程.docx_第8页
第8页 / 共287页
C++程序设计实践教程.docx_第9页
第9页 / 共287页
C++程序设计实践教程.docx_第10页
第10页 / 共287页
C++程序设计实践教程.docx_第11页
第11页 / 共287页
C++程序设计实践教程.docx_第12页
第12页 / 共287页
C++程序设计实践教程.docx_第13页
第13页 / 共287页
C++程序设计实践教程.docx_第14页
第14页 / 共287页
C++程序设计实践教程.docx_第15页
第15页 / 共287页
C++程序设计实践教程.docx_第16页
第16页 / 共287页
C++程序设计实践教程.docx_第17页
第17页 / 共287页
C++程序设计实践教程.docx_第18页
第18页 / 共287页
C++程序设计实践教程.docx_第19页
第19页 / 共287页
C++程序设计实践教程.docx_第20页
第20页 / 共287页
亲,该文档总共287页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++程序设计实践教程.docx

《C++程序设计实践教程.docx》由会员分享,可在线阅读,更多相关《C++程序设计实践教程.docx(287页珍藏版)》请在冰点文库上搜索。

C++程序设计实践教程.docx

C++程序设计实践教程

C++程序设计实践教材

第一章程序设计同步实验指导

实验一VisualC++集成开发环境(IDE)入门

一、实验目的

1.初步学会使用VisualC++集成开发环境:

①进入和退出;②菜单、工具

栏的使用;③用户窗口区的划分:

workspace,scourcefile,message。

2.初步了解调试程序方法。

二、实验内容

1.范例:

VisualC++控制台应用程序设计步骤。

作为学习面向对象的C++的第一步,学习的重点是算法,必须避免用户图形

界面的干扰,这时可采用控制台应用程序进行练习。

控制台应用程序创建一个窗

口模拟DOS进行输入输出。

下面是一个控制台应用程序实例,该程序要求用户从键盘输入3个整数,

然后按照从小到大的顺序在屏幕上输出。

[步骤一]进入和退出VisualC++集成开发环境

启动并进入VisualC++集成开发环境有至少有三种方法:

⑴在开始菜单上,选择程序,然后选择MicrosoftVisualStudio6.0组,再选

择MicrosoftVisualC++6.0,如图1.1。

⑵在桌面上创建MicrosoftVisualC++6.0的快捷方式,直接双击该图标;

⑶如果已经创建了VC的某种工程,双击该工程的dsw(DevelopStudio

Workshop)文件图标,也可进入集成开发环境,并打开该工程。

选择File|Exit菜单,退出集成开发环境。

图1.1进入VisualC++集成开发环境

[步骤二]创建一个控制台应用程序工程。

⑴入VC环境后,选择File|New菜单,弹出New对话框,在Projects页面

选择Win32ConsoleApplication工程类型,在Projectname编辑框输入工程名

Exp1_1,在Location编辑框输入工程路径E:

\projects\Exp1_1,如图1.2所示,

按OK按钮。

1

第一章控制台应用程序

图1.2NewProject页面,创建新的应用程序

图1.3

Win32ConsoleApplicationStep1of1

2

C++程序设计实践教材

⑵随后的Win32ConsoleApplicationStep1of1中,参见图1.3,选择an

emptyproject,按Finish按钮。

⑶现ProjectInformation框,如图1.4。

显示创建了一个空的控制台应用程

序,且没有任何文件被添加到新工程中,此时,工程创建完成。

图1.4NewProjectInformation窗口

[步骤三]程序的编辑、编译、建立、执行。

⑴选择File|New菜单项,在New对话框的Files页面选择C++SourceFile,

输入文件名Exp1_1.cpp,选中AddtoProject复选框,如图1.5,按OK按钮,打

开了源文件编辑窗口。

输入以下源代码。

#include

usingnamespacestd;

intmain(){

inta,b,c;

intmax,min;

3

第一章控制台应用程序

cout<<"请输入三个不等整数:

\n";

cin>>a>>b>>c;

if(a>b){

max=a;min=b;

}

else{

max=b;min=a;

}

if(c>max)

//A行

//B行

cout<

elseif(c

else

return0;

cout<

}

图1.5创建新的C++源文件

4

C++程序设计实践教材

数据给整型变量赋值,需要系统将浮点型数据自动转换为整型,此时小数部分会

丢失,因而系统给出警告信息。

警告信息不会影响程序执行,本例可以通过强制

类型转换去掉警告信息。

⑶选择Build|Build菜单项,链接并建立工程的EXE文件,得到可执行文件

Exp1_1.exe。

这时编译器可能会给出链接错误。

链接错误(LinkingError)处理:

链接时可能产生错误,原因可能是所需要的

库文件或目标文件缺少,或程序中调用的Extern函数没有定义等,只要补充相

应文档再重新建立即可。

⑷选择Build|Execute菜单项,执行工程文件,会出现一个类似DOS操作系

统的窗口,光标闪烁等待输入,按要求输入三个不等的整数后按Enter键,屏幕

上由大到小输出这三个整数如图1.6。

图1.6例1_1运行结果

[步骤四]程序的程序的调试简介

运行程序,可能会发现程序没有编译错误,也能执行,但执行的结果不对,

此时,除了仔细分析源程序,还可借助调试工具进行跟踪调试。

例如,在例1_1程序中B行处出错,在else后多加一个分号:

else;{max=b;min=a;}

用88,45,67这组数据测试,发现输出结果为674588,结果不对。

下面介

绍调试过程。

首先在源程序中可能出现错误的行上设置断点,方法是将光标移至该行,然

后按F9键,或选择工具栏上的手形按钮(再按一次取消断点),此时该行左侧出

现一个红色圆点,断点设置成功,如图1.7在A行设置断点。

选择Build|StartDebug|Go菜单命令(也可选择Build工具栏上的Go图

标),程序执行到断点处停止,这时选择View|DebugWindows子菜单的Watch和

Variables两个菜单项,打开监视和变量窗口观察变量值(Watch和Variables窗口

的详细介绍见VisualC++6.0集成开发环境介绍中菜单的View菜单介绍),分析

查找出错原因。

在Watch窗口加入max和min两个变量,进行监视。

Watch窗口的每一行

可显示一个变量,左栏显示变量名,双击它可进行编辑;右栏显示变量值。

单步

执行按F10(不跟踪进函数)或F11(跟踪进函数内),尽管a>b,在执行了if后面的

{max=a;min=b;}后,仍然执行了{max=b;min=a;}。

当程序执行到箭头所指

处时,max=45,min=88,如图1.7,与预期结果不相符,说明程序的流程有问题。

此时再仔细分析源程序,发现问题出在else后多余的分号。

5

*对于已经存在的源文件,选择Project|AddtoProject|Files菜单项,在随后

打开的插入文件对话框中选择待添加文件,按OK添加进工程。

⑵选择Build|Compile菜单项,即可编译源文件Exp1_1.cpp,系统会在Output

窗口给出Error(错误)信息以及Warning(警告)信息。

当所有Error改正后,得到目

标文件(Exp1_1.obj)。

编译器在Output窗口给出语法错误和编译错误信息。

语法错误(Error)处理:

鼠标双击错误信息可跳转到错误源代码处进行修改,

一个语法错误可能引发系统给出很多条Error信息,因此,发现一个错误并修改

后最好重新编译一次,以便提高工作效率;

警告信息(Warning)处理:

一般是触发了C\C++的自动规则,如将一个浮点型

第一章控制台应用程序

图1.7VisualC++集成开发环境及程序的调试

调试过程中Variables窗口动态显示各变量值随程序执行而变化的结果。

学习到面向对象程序设计后,若程序中有类的对象,Variables窗口的this页面可

显示当前this指针所指向对象的各个值。

修改源程序,再执行,反复调试,当程序中所有问题都得到改正后,得到正

确的执行结果。

一、实验目的

2.掌握C++基本数据类型与运算符。

3.熟悉输入输出方法。

二、实验内容

1.范例:

要求实现输入两个整数,将它们交换后输出。

[分析]交换两个整数,一般方法是用一个中间变量,经过几次赋值实现;

[过程]

6

实验二简单的C++程序设计

1.简单程序设计,掌握C++程序基本结构。

C++程序设计实践教材

①首先在资源管理器中,在用户盘(硬盘)创建自己的文件夹,如可以自己

的学号为名建立文件夹。

②进入VC环境,选择File|New菜单,弹出New对话框,在Projects页面

选择Win32ConsoleApplication工程类型,在Projectname编辑框输入工程名

Exp2_1,路径选择自己的文件夹,按OK按钮。

③在随后的ApplicationWizard中选择anemptyproject,按Finish按钮。

④选择File|New菜单项,在New对话框的Files页面选择C++SourceFile,

输入文件名Exp2_1.cpp,选中AddtoProject复选框,按OK按钮,打开了源文

件编辑窗口,输入以下源代码。

#include

usingnamespacestd;

intmain(){

inta=-3,b=7,temp;

cout<<"a="<

temp=a;

a=b;

b=temp;

cout<<"a="<

return0;

}

[分析二](可选)第二种方法采用按位异或,任一位与0异或保持不变,

而与1异或后翻转(0变1,1变0)。

v1=a;v2=b;//原v1为a,v2为b

v1=v1^v2;//即V1为a^b,V2保持不变

v2=v1^v2;//即v2=a^b^b=a

v1=v1^v2;//即v1=a^b^a=b,交换成功

#include

usingnamespacestd;

intmain(){

inta=-3,b=7,temp;

cout<<"a="<

a=a^b;

b=a^b;

a=a^b;

cout<<"a="<

return0;

}

[实验要求]

①仔细阅读程序,掌握程序结构,找到程序的数据定义部分和操作部分,

辨识各部分功能,注意输入输出语句的使用;

②按照正确的步骤进入VC环境,在自己创建的工程中录入上述源程序,

注意书写格式,养成良好的编程习惯;消除语法错误,编译链接程序;

7

第一章控制台应用程序

③运行程序,输入数据观察结果,并进行测试。

④用位运算符重新运行程序并对比运行结果。

(可选)

2.编写程序:

输入球的半径,分别计算球的表面积、体积和质量,假设球

的密度为7.8,输出计算结果。

[提示]球表面积计算公式s=4r,球体积计算公式v=r。

3

注意输入输出形式,要求输入前应有提示性输出,如"PleaseInputtheRadius

oftheBall",注意变量名的定义,最好能望文生义,如Radius,Volume,Weight

等;

整数相除取整,注意在计算公式中使用正确的变量数据类型。

3.范例:

要求用sizeof运算符计算C++中char,short,int,long,float,double等

基本数据类型所占字节数,并按以下格式输出。

sizeof(char)=1byte

sizeof(short)=2bytes

sizeof(int)=4bytes

再将计算结果以表格形式输出。

2

4

3

char

short

int

1

2

4

最后将计算结果保存在数组中,再按表格形式输出。

#include

usingnamespacestd;

intmain(){

intsize[6];

cout<<"sizeof(char)="<

cout<<"sizeof(short)="<

cout<<"sizeof(int)="<

cout<<"sizeof(long)="<

cout<<"sizeof(float)="<

cout<<"sizeof(double)="<

cout<<"char\t"<

cout<<"short\t"<

cout<<"int\t"<

cout<<"long\t"<

cout<<"float\t"<

cout<<"double\t"<

size[0]=sizeof(char);

size[1]=sizeof(short);

size[2]=sizeof(int);

//表格方式输出

//字节数存入整型数组

8

C++程序设计实践教材

size[3]=sizeof(long);

size[4]=sizeof(float);

size[5]=sizeof(double);

cout<<"char\t"<

cout<<"short\t"<

cout<<"int\t"<

cout<<"long\t"<

cout<<"float\t"<

cout<<"double\t"<

return0;

}

4.范例:

演示C++输入输出易出错的几个地方:

①采用cin输入将会跳过空白字符(包括空格,制表,backspace和回车等)。

如果要求把从键盘上输入的所有字符,包括空白字符,都作为输入字符赋给字符

变量,必须使用函数:

cin.get(字符变量),但这时如前面曾有输入,会读入不是

希望获取的数字输入结束的回车符。

②向一个字符数组中输入字符串时,应该使用函数:

getline(字符数组,字符

数量)。

这时如前面曾有输入,会读入输入结束的回车符,形成空串。

③当使用老的头文件时,数字输入时如以0开头,计算机认为

是8进制数,以0x开头是16进制。

当使用不带.h的头文件时,0被

忽略,仍作为十进制,0x开头只认0。

要适当地指定数据的进制。

非十进制只适

用于整型变量,不适用于实型变量。

#include

usingnamespacestd;

intmain(){

chara[20];

inti;

cout<<"请输入以下包含空格的字符串:

It'sabook."<

cin>>a[0]>>a[1]>>a[2]>>a[3]>>a[4]>>a[5]>>a[6]>>a[7]>>a[8]>>a[9];

a[10]='\0';

cout<<"保存的是:

"<

cout<<"请重输一遍:

"<

cin.get(a[0]);cin.get(a[1]);cin.get(a[2]);cin.get(a[3]);

cin.get(a[4]);cin.get(a[5]);cin.get(a[6]);cin.get(a[7]);

cin.get(a[8]);cin.get(a[9]);cin.get(a[10]);cin.get(a[11]);

cin.get(a[12]);cin.get(a[14]);

a[15]='\0';

cout<<"保存的是:

"<

cout<

cout<<"注意:

a[0]放上次输入结束的回车符,a[14]放本次结束的回车符,

各自产生一个换行。

"<

cout<<"请输入8进制整数:

0750"<

cin>>i;

9

第一章控制台应用程序

cout<<"输入的数用十进制表示是:

"<

cout<

cout<<"请输入16进制整数:

0xff"<

cin>>i;

cout<<"输入的数用十进制表示是:

"<

cout<

cout<<"用cin.getline()吸收0后的字符:

"<

cin.getline(a,18);

cout<

cout<<"改用显式指定类型,输入8进制数750:

"<

cin>>oct>>i;

cout<<"输入的数用十进制表示是:

"<

cout<

cout<<"输入的数用8进制表示是:

"<

cout<

cout<<"请输入16进制整数:

ff"<

cin>>hex>>i;

//指明8进制输出以后一直有效

cout<<"输入的数用十进制表示是:

"<

cout<

cout<<"输入的数用16进制表示是:

"<

cout<

cout<<"请输入字符串:

Thisisacat."<

cin.getline(a,18);

cout<

cout<<"没有机会输入。

读了上次输入数字时的回车,输出一个空串。

现在可输入了:

"<

cin.getline(a,18);

cout<

cout<<"成功!

"<

return0;

[实验要求]读懂程序,理解程序中演示的输入输出中易出错的情况。

}

一、实验目的

1.条件语句的使用。

2.开关语句的使用。

二、实验内容

1.范例:

输入一个整数,判断数的奇偶性后输出结果。

[分析]判断一个数是否为偶数,只要判断它是否能被2整除,用除法取余。

n%2为0,则n为偶数,否则,为奇数。

实验三分支结构程序设计

流程控制语句用于实现基本程序结构,是程序设计基础。

要求掌握:

10

C++程序设计实践教材

#include

usingnamespacestd;

intmain(){

intinput;

cout<<"Whichnumberdoyouwanttotest?

\n";

cin>>input;

if(input%2)cout<<"number"<

else

return0;

cout<<"number"<

}

形式中,奇数的末位为1,偶数末位为0。

可以用整数n与1进行按位与运算:

[分析二](可选)判断一个数的奇偶,只需判断最后一位,在二进制表示

 

n&1为非0(真),则是奇数,为0(假),则是偶数。

在上面程序中,将if判断的条件改为n&1即可,其它部分不用修改。

#include

usingnamespacestd;

intmain(){

intinput;

cout<<"Whichnumberdoyouwanttotest?

\n";

cin>>input;

if(n&1)

else

return0;

cout<<"number"<

cout<<"number"<

}

[测试数据]

345680-34-23.5(有意用非整数测试)

分别用以上各数作为输入数据,测试程序,分析程序结果,并进行记录。

2.范例:

编程求一元二次方程ax2+bx+c=0的根。

包括以下判断和结果:

输入a=0,给出提示;若>0,输出两个不等实根;若=0,输出两个相等实根;

若<0,输出两个复数根。

[程序]根据以上要求,编写下列源程序,请与主教材例2.8作对比。

#include

#include

usingnamespacestd;

intmain(){

doublea,b,c;

doubledelta,x1,x2;

intsign;

cout<<"一元二次方程a*x*x+b*x+c=0\n";

cout<<"输入三个系数a(a!

=0),b,c:

"<

cin>>a>>b>>c;

cout<<"a="<

if(a==0){

11

第一章控制台应用程序

cout<<"二次项系数为0,不是一元二次方程"<

exit(0);

delta=b*b-4*a*c;

}

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

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2