C++程序设计实践样例文档格式.docx
- 文档编号:16333000
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:269
- 大小:619.11KB
C++程序设计实践样例文档格式.docx
《C++程序设计实践样例文档格式.docx》由会员分享,可在线阅读,更多相关《C++程序设计实践样例文档格式.docx(269页珍藏版)》请在冰豆网上搜索。
Win32ConsoleApplicationStep1of1
2
⑵随后的Win32ConsoleApplicationStep1of1中,参见图1.3,选择anemptyproject,按Finish按钮。
⑶现ProjectInformation框,如图1.4。
显示创建了一个空的控制台应用程
序,且没有任何文件被添加到新工程中,此时,工程创建完成。
图1.4NewProjectInformation窗口
[步骤三]程序的编辑、编译、建立、执行。
⑴选择File|New菜单项,在New对话框的Files页面选择C++SourceFile,
输入文件名Exp1_1.cpp,选中AddtoProject复选框,如图1.5,按OK按钮,打
开了源文件编辑窗口。
输入以下源代码。
#include<
iostream>
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行
c<
'
\t'
max<
min<
\n'
elseif(c<
min)cout<
else
return0;
图1.5创建新的C++源文件
4
数据给整型变量赋值,需要系统将浮点型数据自动转换为整型,此时小数部分会
丢失,因而系统给出警告信息。
警告信息不会影响程序执行,本例可以通过强制
类型转换去掉警告信息。
⑶选择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;
用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;
}后,仍然执行了{max=b;
}。
当程序执行到箭头所指
处时,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.熟悉输入输出方法。
要求实现输入两个整数,将它们交换后输出。
[分析]交换两个整数,一般方法是用一个中间变量,经过几次赋值实现;
[过程]
6
实验二简单的C++程序设计
1.简单程序设计,掌握C++程序基本结构。
①首先在资源管理器中,在用户盘(硬盘)创建自己的文件夹,如可以自己
的学号为名建立文件夹。
②进入VC环境,选择File|New菜单,弹出New对话框,在Projects页面
Exp2_1,路径选择自己的文件夹,按OK按钮。
③在随后的ApplicationWizard中选择anemptyproject,按Finish按钮。
④选择File|New菜单项,在New对话框的Files页面选择C++SourceFile,
输入文件名Exp2_1.cpp,选中AddtoProject复选框,按OK按钮,打开了源文
件编辑窗口,输入以下源代码。
#include<
inta=-3,b=7,temp;
a="
a<
b="
b<
endl;
temp=a;
a=b;
b=temp;
[分析二](可选)第二种方法采用按位异或,任一位与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=a^b^a=b,交换成功
a=a^b;
b=a^b;
[实验要求]
①仔细阅读程序,掌握程序结构,找到程序的数据定义部分和操作部分,
辨识各部分功能,注意输入输出语句的使用;
②按照正确的步骤进入VC环境,在自己创建的工程中录入上述源程序,
注意书写格式,养成良好的编程习惯;
消除语法错误,编译链接程序;
7
③运行程序,输入数据观察结果,并进行测试。
④用位运算符重新运行程序并对比运行结果。
(可选)
2.编写程序:
输入球的半径,分别计算球的表面积、体积和质量,假设球
的密度为7.8,输出计算结果。
[提示]球表面积计算公式s=4r,球体积计算公式v=r。
注意输入输出形式,要求输入前应有提示性输出,如"
PleaseInputtheRadius
oftheBall"
,注意变量名的定义,最好能望文生义,如Radius,Volume,Weight
等;
整数相除取整,注意在计算公式中使用正确的变量数据类型。
3.范例:
要求用sizeof运算符计算C++中char,short,int,long,float,double等
基本数据类型所占字节数,并按以下格式输出。
sizeof(char)=1byte
sizeof(short)=2bytes
sizeof(int)=4bytes
再将计算结果以表格形式输出。
char
short
int
最后将计算结果保存在数组中,再按表格形式输出。
intsize[6];
sizeof(char)="
sizeof(char)<
Byte"
sizeof(short)="
sizeof(short)<
sizeof(int)="
sizeof(int)<
sizeof(long)="
sizeof(long)<
sizeof(float)="
sizeof(float)<
sizeof(double)="
sizeof(double)<
char\t"
short\t"
int\t"
long\t"
float\t"
double\t"
size[0]=sizeof(char);
size[1]=sizeof(short);
size[2]=sizeof(int);
//表格方式输出
//字节数存入整型数组
8
size[3]=sizeof(long);
size[4]=sizeof(float);
size[5]=sizeof(double);
size[0]<
//再用数组以表格方式输出
size[1]<
size[2]<
size[3]<
size[4]<
size[5]<
4.范例:
演示C++输入输出易出错的几个地方:
①采用cin输入将会跳过空白字符(包括空格,制表,backspace和回车等)。
如果要求把从键盘上输入的所有字符,包括空白字符,都作为输入字符赋给字符
变量,必须使用函数:
cin.get(字符变量),但这时如前面曾有输入,会读入不是
希望获取的数字输入结束的回车符。
②向一个字符数组中输入字符串时,应该使用函数:
getline(字符数组,字符
数量)。
这时如前面曾有输入,会读入输入结束的回车符,形成空串。
③当使用老的头文件<
iostream.h>
时,数字输入时如以0开头,计算机认为
是8进制数,以0x开头是16进制。
当使用不带.h的头文件<
时,0被
忽略,仍作为十进制,0x开头只认0。
要适当地指定数据的进制。
非十进制只适
用于整型变量,不适用于实型变量。
chara[20];
inti;
请输入以下包含空格的字符串:
It'
sabook."
a[0]>
a[1]>
a[2]>
a[3]>
a[4]>
a[5]>
a[6]>
a[7]>
a[8]>
a[9];
a[10]='
\0'
保存的是:
请重输一遍:
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]='
注意:
a[0]放上次输入结束的回车符,a[14]放本次结束的回车符,
各自产生一个换行。
请输入8进制整数:
0750"
i;
9
输入的数用十进制表示是:
dec<
i<
请输入16进制整数:
0xff"
用cin.getline()吸收0后的字符:
cin.getline(a,18);
改用显式指定类型,输入8进制数750:
oct>
输入的数用8进制表示是:
oct<
ff"
hex>
//指明8进制输出以后一直有效
//必须显式改为十进制
输入的数用16进制表示是:
hex<
请输入字符串:
Thisisacat."
没有机会输入。
读了上次输入数字时的回车,输出一个空串。
现在可输入了:
成功!
[实验要求]读懂程序,理解程序中演示的输入输出中易出错的情况。
1.条件语句的使用。
2.开关语句的使用。
输入一个整数,判断数的奇偶性后输出结果。
[分析]判断一个数是否为偶数,只要判断它是否能被2整除,用除法取余。
n%2为0,则n为偶数,否则,为奇数。
实验三分支结构程序设计
流程控制语句用于实现基本程序结构,是程序设计基础。
要求掌握:
10
iostream>
intinput;
Whichnumberdoyouwanttotest?
input;
if(input%2)cout<
number"
input<
"
isodd."
//如果能被2整除,是偶数
iseven."
//否则是基数
形式中,奇数的末位为1,偶数末位为0。
可以用整数n与1进行按位与运算:
[分析二](可选)判断一个数的奇偶,只需判断最后一位,在二进制表示
n&
1为非0(真),则是奇数,为0(假),则是偶数。
在上面程序中,将if判断的条件改为n&
1即可,其它部分不用修改。
if(n&
1)
[测试数据]
345680-34-23.5(有意用非整数测试)
分别用以上各数作为输入数据,测试程序,分析程序结果,并进行记录。
2.范例:
编程求一元二次方程ax2+bx+c=0的根。
包括以下判断和结果:
若
输入a=0,给出提示;
若>
0,输出两个不等实根;
若=0,输出两个相等实根;
若<
0,输出两个复数根。
[程序]根据以上要求,编写下列源程序,请与主教材例2.8作对比。
cmath>
doublea,b,c;
doubledelta,x1,x2;
intsign;
cout<
一元二次方程a*x*x+b*x+c=0\n"
输入三个系数a(a!
=0),b,c:
c="
if(a==0){
11
二次项系数为0,不是一元二次方程"
exit(0);
delta=b*b-4*a*c;
i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 实践