C++程序设计实践样例.docx
- 文档编号:3427533
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:269
- 大小:619.11KB
C++程序设计实践样例.docx
《C++程序设计实践样例.docx》由会员分享,可在线阅读,更多相关《C++程序设计实践样例.docx(269页珍藏版)》请在冰豆网上搜索。
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,选择anemptyproject,按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(字符数组,字符 数量)。 这时如前面曾有输入,会读入输入结束的回车符,形成空串。 ③当使用老的头文件 是8进制数,以0x开头是16进制。 当使用不带.h的头文件 忽略,仍作为十进制,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; } i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 实践