vc实验指导书.docx
- 文档编号:10668108
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:60
- 大小:397.96KB
vc实验指导书.docx
《vc实验指导书.docx》由会员分享,可在线阅读,更多相关《vc实验指导书.docx(60页珍藏版)》请在冰豆网上搜索。
vc实验指导书
实验一VC++6.0开发环境应用入门
一、实验目的
1.了解VisualC++6.0的特点。
2.熟悉VisualC++6.0的开发环境。
3.学习用VisualC++6.0编写标准的C++控制台程序。
二、实验任务
使用VisualC++建立一个非图形化的标准C++程序,编译、运行以下程序:
#include
usingnamespacestd;
intmain()
{
cout<<"Hello!
\n";
cout<<"Welcometoc++!
\n";
}
三、实验步骤
1.进入开发环境,新建工程和文件:
点击“开始”——“所有程序”——“MicrosoftVisualStudio6.0”——“MicrosoftVisualC++6.0”
2.创建一个项目:
◆File(文件)——New(新建)——选择“project”(工程)——选择“Win32ConsoleApplication”——输入“ProjectName”(工程名:
如“test”)——选择“Location(位置)”即存放路径(选择自己要保存的路径)——OK。
如图1-1所示。
图1-1New对话框
◆在弹出的Win32ConsoleApplication-Step1of1对话框中选择Anemptyproject单选项,然后单击finish完成按钮。
如图1-2所示。
图1-2创建控制台应用程序第一步
◆最后在NewProjectInformation(新建工程信息)对话框中单击OK按钮,完成项目的建立。
3.新建C++源程序文件:
File——New——标签栏选择“files”——选择“C++SourceFile”
——在“File”里输入文件名(如hello.cpp)——ok。
如图1-3所示。
图1-3添加新的源程序文件
4.编辑C++源程序文件内容
◆在文件编辑窗口中输入代码。
如图1-4所示。
图1-4在文件编辑窗口中输入代码
◆选择菜单命令File|Save保存这个文件。
5、建立并运行可执行程序
◆择菜单命令Build(编译)|Buildhello.cpp。
如果你正确输入了源程序,此时便成功生成目标文件hello.obj,如果程序有语法错误,则在屏幕下方的状态窗口中会显示错误信息。
根据这些错误信息对源程序进行修改后,重新编译。
◆选择菜单命令Build(编译)|构件test.exe,建立可执行文件。
如果没有错误可以生成test.exe可执行文件。
◆择菜单命令Build(编译)|执行test.exe运行程序,观察屏幕显示结果。
四.(预习)编程计算图形的面积。
程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积的值后将其显示出来。
(注意:
需要重新建一个项目,再写这个程序,一个工程项目里面不能包含两个带主函数的文件)
实验二C++简单程序设计
一、实验目的
1.学会编写简单的C++程序。
2.复习基本数据类型变量和常量的应用。
3.复习运算符与表达式的应用。
4.练习使用简单的输入输出。
5.观察头文件的作用。
6.学会使用VC++6.0开发环境中的debug调试功能:
单步执行、设置断点、观察变量值。
二、实验任务
1.使用debug调试功能观察实验一中任务3程序运行中变量值的变化情况。
参考程序如下:
#include
usingnamespacestd;
constfloatPI=3.1416;
intmain()
{
intiType;
floatradius,a,b,area;
cout<<"图形的类型为?
(1-圆形2-长方形3-正方形):
";
cin>>iType;
switch(iType)
{
case1:
cout<<"圆的半径为:
";
cin>>radius;
area=PI*radius*radius;
cout<<"面积为:
"<
break;
case2:
cout<<"矩形的长为:
";
cin>>a;
cout<<"矩形的宽为:
";
cin>>b;
area=a*b;
cout<<"面积为:
"<
break;
case3:
cout<<"正方形的边长为:
";
cin>>a;
area=a*a;
cout<<"面积为:
"<
break;
default:
cout<<"不是合法的输入值!
"< } } Ø首先在第11行处设置断点。 (即在cout<<"图形的类型为? (1-圆形2-长方形3-正方形): ";语句处)用鼠标右键单击源程序第11行左边的空白处,出现一个菜单,如图2-1所示。 Ø选择Insert/RemoveBreakpoint一项,可看到左边的边框上出现了一个褐色的圆点,这代表已经在这里设置了一个断点。 (断点就是程序运行的暂停点) Ø然后选择菜单命令编译|开始调试|去,或按下F5快捷键,系统进入Debug(调试)状态,程序开始运行,一个DOS窗口出现,此时,VisualStudio的外观如图2-2所示,程序暂停在断点处。 Ø单步执行: 从Debug菜单或Debug工具栏中单击StepOver选项或按钮,在程序运行的Dos窗口中输入选择的图形类型,例如,输入3代表正方形,这时,回到VisualStudies中,把鼠标放在变量名iType上片刻,可看到出现了一个提示: iType=3;此时,在Variables窗口中也可以看到iType以及其他变量的值。 图2-1添加断点 图2-2调试状态下的VisualStudio Ø在Watch窗口中,在Name栏中输入iType,按回车键,可看到Value栏中出现3,这是变量iType现在的值。 图2-3是此时Variable窗口和Watch窗口的状态。 图2-3Variables窗口和Watch窗口的状态 Ø继续执行程序,参照上述的方法,再试试debug菜单栏中别的菜单项,熟悉debug的各种方法。 Ø如果要退出调试状态,在debug菜单下选择stopdebugging. 2.运行下面程序,观察其输出,体会i++与++i的差别。 #include intmain() { intmyage=20,yourage=30; cout<<”Iam”< cout<<”Youare”< myage++; ++yourage; cout<<”Oneyearpasses\n”; cout<<”Iam”< cout<<”Youare”< cout<<”Anotheryearpasses\n”; cout<<”Iam”< cout<<”Youare”<<++yourage; cout<<”Iam”< cout<<”Youare”< return0; } 实验三函数的应用 一、实验目的 1.掌握函数的定义和调用方法。 2.练习重载函数的使用。 3.练习使用系统函数。 4.学习使用VC++的debug调试功能,使用stepinto追踪到函数内部。 二、实验任务 1.编写一个函数把华氏温度转换为摄氏温度,转换公式为: C=(F-32)*5/9。 命名lab3_1.cpp 2.使用系统函数pow(x,y)计算xy的值,注意包含头文件math.h。 命名lab3_2.cpp 3.用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。 命名lab3_3.cpp 三、实验步骤: 用Debug中的StepInto追踪到函数内部,观察函数的调用过程。 lab3_3.cpp参考程序: #include usingnamespacestd; intfib(intn); intmain() { intn,answer; cout<<"Enternumber: "; cin>>n; cout<<"\n\n"; answer=fib(n); cout< return0; } intfib(intn) { cout<<"Processingfib("< if(n<3) { cout<<"Return1! \n"; return (1); } else { cout<<"Callfib("< return(fib(n-2)+fib(n-1)); } } 调试步骤如下: Ø选择菜单命令编译|开始调试|stepinto,或按快捷键F11,系统进入单步执行状态,程序开始运行,并出现一个DOS窗口,此时VisualStudio中光标停在main()函数的入口处。 Ø把光标移动语句“answer=fib(n);”前(单击stepover移动),在程序运行的DOS窗口中按提示输入数字10,这时观察n的值,观察方法见实验二。 Ø从debug菜单或debug工具栏中单击StepInto,程序进入fib函数,观察一下n的值,把光标移动语句“return(fib(n-2)+fib(n-1))”前,从debug菜单或debug工具栏中单击RuntoCursor,再单击StepInto,程序递归调用fib函数,再进入fib函数,观察一下n的值。 Ø继续执行程序,参照上述方法,观察程序的执行顺序,加深对函数调用和递归调用的理解。 Ø再试试debug菜单栏中其他菜单项,熟悉debug的各种方法。 实验四C++程序的结构 一、实验目的 1.观察程序运行中变量的作用域、生存期和可见性; 2.学习类的静态成员的使用; 3.学习多文件结构在C++程序中的使用; 二、实验任务 1.运行下面的程序,观察变量x、y的值。 #include usingnamespacestd; voidfn1(); intx=1,y=2; intmain() { cout<<"Begin..."< cout<<"x="< cout<<"y="< cout<<"Evaluatexandyinmain()..."< intx=10,y=20; cout<<"x="< cout<<"y="< cout<<"Stepintofn1()..."< fn1(); cout<<"Backinmain"< cout<<"x="< cout<<"y="< return0; } voidfn1() { inty=200; cout<<"x="< cout<<"y="< } 2.实现客户机(CLIENT)类。 声明字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。 在头文件client.h中声明类和实现类,在文件client.cpp中测试这个类,观察相应的成员变量取值的变化情况。 实验五数组、指针与字符串 一、实验目的 1.学习使用数组数据对象; 2.学习字符串数据的组织和处理; 3.学习标准C++库的使用; 4.掌握指针的使用方法; 5.练习通过debug观察指针的内容及其所指的对象的内容; 6.练习通过动态内存分配实现动态数组,并体会指针在其中的作用; 7.分别使用字符数组和标准C++库练习处理字符串的方法。 二、实验任务 1.编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。 要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类声明字符串对象,重新实现上一小题。 5.声明一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。 display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性,实现并测试这个类。 6.声明包含5个元素的对象数组,每个元素都是Employee类型的对象。 实验六类与对象 一、实验目的 1.掌握类的声明和使用。 2.掌握类的声明和对象的声明。 3.复习具有不同访问属性的成员的访问方式。 4.观察构造函数和析构函数的执行过程。 5.学习类的组合使用方法。 二、实验任务 1.声明一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,其中,rank为字符型,其值可以为P1、P2等;frequency为单位是MHz的整型数;voltage为浮点型的电压值。 公有成员函数包括: GetRank()、GetFrequency()、GetVoltage()用来获取等级、频率、电压的值;SetRank、SetFrequency、SetVoltage用来设置等级、频率、电压的值;run、stop中run里面要求输出“CPU开始运行! ”;stop里面要求输出“CPU停止运行! ”。 构造函数里面需要输出“构造一个CPU”,析构函数里面需要输出“析构一个CPU”。 观察构造函数和析构函数的调用顺序。 实验七类的组合 一、实验目的 1.掌握类的声明和使用。 2.掌握类的声明和对象的声明。 3.复习具有不同访问属性的成员的访问方式。 4.观察构造函数和析构函数的执行过程。 5.使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。 二、实验任务 1.使用VC++的debug调试功能观察实验四中构造函数、析构函数、成员函数的执行顺序。 使用stepinto追溯到函数,在函数内部用stepover单步执行,观察执行的顺序。 2.声明一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。 cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 实验八继承与派生 一、实验目的 1.学习声明和使用类的继承关系,声明派生类; 2.熟悉不同继承方式下对基类成员的访问控制; 3.学习利用虚基类解决二义性问题。 二、实验任务 1.声明一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(intn)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗? 编程试试看。 2.声明一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。 自行车(bicycle)类有高度(hight)属性,汽车(motorcar)类有座位数(seatnum)属性。 实验九多态性 一、实验目的 1.掌握运算符重载的方法。 2.学习使用虚函数实现动态多态性。 二、实验任务 1.声明一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。 观察虚函数的作用。 实验十常用控件 (1) 实验目的和要求 (1)创建一个默认的对话框应用程序Ex_Ctrls,如图2.1所示。 (2)设计一个如图2.2所示的“课程信息”对话框。 图2.1Ex_Ctrls对话框图2.2“课程信息”对话框 (3)实现功能: 单击图2.1中的“课程信息”按钮,弹出“学生基本信息”对话框,单击“添加”按钮,对话框内容显示在图2.1中的列表框中。 实验准备和说明 (1)具备知识: 静态控件、按钮、编辑框、旋转按钮控件、列表框和组合框控件。 (2)创建本次实验工作文件夹“…\VisualC++程序\实验\实验2”。 实验内容和步骤 1.启动VisualC++6.0 打开计算机,启动VisualC++6.0系统。 2.创建一个默认的对话框应用程序Ex_Ctrls ①选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程”页面,选择MFCAppWizard(exe),在工程框中输入Ex_Ctrls,并将工程文件夹定位到“…\VisualC++程序\实验\实验2”。 ②单击“确定”按钮,在出现的Step1对话框中选择“基本对话(框)”应用程序类型,单击“完成”按钮。 ③在对话框编辑器中,单击对话框工具栏上的切换网格按钮 ,显示对话框网格,将对话框标题改为“使用控件”。 ④调整对话框的大小,删除对话框中间的“TODO: 在这里设置对话控制。 ”静态文本控件和“确定”按钮控件,将“取消”按钮标题改为“退出”,并移至对话框的下方。 ⑤向对话框中添加组框(Group)控件,标题设为“添加”,然后调整其大小和位置。 ⑥添加一个按钮,标题设为“课程信息”,ID设为IDC_BUTTON_COURSE。 添加一个列表框,取其默认ID号,去掉Sort风格属性。 3.添加并设计“课程信息”对话框 ①按Ctrl+R快捷键,弹出“插入资源”对话框,在资源类型列表中选择Dialog,单击“新建”按钮。 ②将该对话框资源的ID设为IDD_COURSE,标题设为“课程信息”,字体设为“宋体,9号”。 ③将OK和Cancel按钮的标题改为“添加”和“取消”。 ④打开对话框网格,参看图2.2的控件布局,为对话框添加如表2.1所示的一些控件。 表2.1课程信息对话框添加的控件 添加的控件 ID号 标题 其他属性 编辑框(课程号) IDC_EDIT_COURSENO —— 默认 编辑框(课程名称) IDC_EDIT_COURSENAME —— 默认 组合框(所属专业) IDC_COMBO_SPECIAL —— 默认 组合框(课程类型) IDC_COMBO_TYPE —— 默认 编辑框(开课学期) IDC_EDIT_OPEN —— 默认 旋转按钮 IDC_SPIN1 —— Autobuddy、Setbuddyinteger、Right对齐,其余默认 编辑框(课时数) IDC_EDIT_COURSEHOURS —— 默认 编辑框(学分) IDC_EDIT_CREDIT —— 默认 ⑤右击添加的课程类型的组合框控件,从弹出的快捷菜单中选择“属性”命令,将其属性对话框切换到Data页面,直接输入内容,输入一行后按Ctrl+Return键添加另一行。 结果如图2.3所示。 图2.3课程类型组合框内容输入 ⑥按Ctrl+W快捷键或双击对话框资源模板的空白处,为IDD_COURSE创建一个对话框CCourseDlg。 打开ClassWizard的MemberVariables页面,看Classname是否是CCourseDlg,选中所需的控件ID号,双击鼠标。 依次为表2.2控件增加成员变量。 表2.2控件变量 控件ID号 变量类别 变量类型 变量名 范围和大小 IDC_EDIT_COURSENO Value CString m_strNO IDC_EDIT_COURSENAME Value CString m_strName IDC_COMBO_SPECIAL Value CString m_strSpecial IDC_COMBO_SPECIAL Control CComboBox m_comboSpecial —— IDC_COMBO_TYPE Value CString m_strType IDC_EDIT_OPEN Value BYTE m_nOpen IDC_SPIN1 Control CSpinButtonCtrl m_spinOpen —— IDC_EDIT_COURSEHOURS Value int m_nHours IDC_EDIT_CREDIT Value float m_fCredit 4.添加CCourseDlg类代码 ①用MFCClassWizard为CCourseDlg类添加WM_INITDIALOG消息映射,并添加下列初始化代码: BOOLCCourseDlg: : OnInitDialog() { CDialog: : OnInitDialog(); m_spinOpen.SetRange(1,8); m_nHours=60; m_fCredit=2.0; m_nOpen=1; m_strType="专修"; //
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vc 实验 指导书