《VC++程序设计》实验指导书.doc
《《VC++程序设计》实验指导书.doc》由会员分享,可在线阅读,更多相关《《VC++程序设计》实验指导书.doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验一 熟悉VC+的集成环境一、实验目的1、熟悉VC+6.0集成开发环境,理解项目的概念。2、熟练掌握VC+6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。3、掌握用MFC AppWizard向导创建MFC应用程序框架。二、实验要求1、使用VisualC+6.0对一个C+程序进行编辑、编译、连接和运行。编辑、编译、连接和运行一个程序输出”Hello,C+!”按下面的步骤进行实验:(1)单击任务栏中的“开始”按钮,在弹出菜单中选择“程序”菜单项,单击“Microsoft Visual Studio 6.0”,再单击“Microsoft Visual C+ 6.0”,启动Visual C+ 6
2、.0的IDE环境主窗口;(2)观察菜单栏上的各个菜单标题;(3)输入下列源程序;源程序1:/*EX1-1.cpp*/# includevoid main() cout” Hello,C+!”endl;2、使用AppWizard建立一个单文档应用程序。按下面的步骤进行实验:(1)执行File|New菜单命令,出现New对话框。在Project页面窗口中选择MFC AppWizardexe选项,在Project Name编辑框中输入项目名称Mysdi,在location编辑框中输入保存项目的路径。(2)在MFC AppWizard-Step1对话框中设置应用程序的类型,本例创建一个单文档程序,选择
3、Single document项,单击Finish按钮,出现New Project Information对话框,单击OK按钮,将生成应用程序框架文件,并在项目工作区窗口打开生成的应用程序的项目。3、有一函数写一程序,输入x,输出相应的y值。源程序如下:/*EX1-2.cpp*/# includevoid main()int x, y;coutx;if(x1)y=x;cout“x=”x “,” “y=x=”yendl;else if(x10)y=2*x-1;cout“x=”x “,” “y=2*x-1=”yendl;elsey=3*x-11;cout“x=”x “,” “y=3*x-11=”y
4、endl;4、分析得出下列程序运行结果:#include int f(int); void main() int i; for(i=0;i5;i+) coutf(i)0;i-) k+ = i; return k; 程序输出结果:实验二 类和对象的概念及构造函数和析构函数一、实验目的1、掌握类的定义,包括:构造函数、析构函数、成员函数和数据成员。2、了解并掌握对象成员的访问机制、理解this指针的含义和用途。3、掌握在VC开发环境中的程序的编译,执行。二、实验要求1、#include class Testprivate: int x;public: Test() cout构造函数被执行endl;
5、x=0; Test()cout析构函数被执行endl; void print() coutx=xendl;void main() Test obj1,obj2; obj1.print(); obj2.print();运行结果为:构造函数被执行构造函数被执行x=0x=0析构函数被执行析构函数被执行说明:在调用print()函数输出对象obj1、obj2的数据成员之后,在释放对象obj1、obj2之前,系统自动调用类的析构函数Test()来释放对象obj1、obj2的内存空间。2、编辑、运行测试下列程序,分析其结果#include class Aint a;public :A(int aa=0)
6、a=aa; A() coutDestructor A! aendl;class B: public Aint b;public:B(int aa=0, int bb=0) : A(aa) b=bb;B() coutDestructor B! bendl; ;void main()B x(7),y(8,9);运行结果为:Destructor B! 9Destructor A! 8Destructor B! 0Destructor A! 7说明:先构造x,y2个对象,执行构造函数,由于B是从A派生出来的,所以构造y时要先调用基类A的构造函数,然后才调用派生类B自己的构造函数,析构时刚好相反,先构造
7、的后析构,对于派生类对象y同样也是,先调用派生类的析构函数,再调用基类的析构函数.3、建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员变量:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数,声明一个学生对象,然后调用成员函数在屏幕输出学生信息。程序如下:#include #include class Studentprivate: char name12; long id; char sex; int age; public: Student(char *p, long id, char se
8、x, int age) void print (); ;Student :Student(char *p, long id, char sex, int age) strcpy(name,p); this-id=id; this-sex=sex; this-age=age; void Student: print () cout姓名=namet; cout学号=idt; if(sex=f|sex=F) cout性别=女t; else cout性别男t; cout年龄=ageendl; void main() Student Stu(Wang,F,21); Stu.print(); 实验三 虚函
9、数一、实验目的1、了解虚函数的定义和作用。2、理解C+通过虚函数机制实现多态性的方法。3、了解虚函数的实现机制。二、实验要求1、阅读下面程序,写出执行结果class Apublic: int x; A(int ax)x=ax; virtual void show() coutx=xendl;class B:public Aprotected: int y;public: B(int x1, int y1=120):A(x1) y=y1; virtual void show()couty=yendl;class C: public Bpublic: C(int x2,int y2):B(x2,y
10、2) x=1000;y=2000; virtual void show()coutx yshow(); main()A a(100);B *pb=new B(0,300);B b(200);C *pc=new C(400,500);print(&a);print(pb);print(&b);print(pc);运行结果为:2、#include class Apublic:virtual void f()coutlendl;class B:public Apublic:B()cout2endl;class C:public Bpublic:virtual void f()B:f(); coutf
11、();运行结果为: 2213实验四 操作符重载、模板一、实验目的1、理解C+操作符重载的原理及实现机制。2、掌握操作符重载的两种方法。3、掌握模板的定义和使用。二、实验要求1、 阅读下面程序,写出运算结果 在point类中定义一个运算符函数,用于两个对象a和b相加,其结果为一个point类对象c,c中的x和y分别为对象a和b的x和y的和。(操作符作为成员函数重载)程序如下/*Ex4-1.cpp*/ #include iostream.h class point int x,y; public: point(int x1=0,int y1=0) x=x1;y=y1; point operator
12、 +(point p1); point operator +() x+;y+; return *this; void print() cout x y endl; ; point point:operator+(point p1) point p; p.x=x+p1.x; p.y=y+p1.y; return p; void main() point p1(10,10),p2(20,20); p1=p1+p2; p1.print(); p1+; p1.print(); 运行结果为:2、设计一个函数模板,它返回两个值中的较大值,并用int、char、double型的值进行验证。程序如下/*Ex4
13、-2.cpp*/#include template T max(T num1,T num2)T a;if (num1num2)a=num2;elsea=num1;return a;void main()coutmax(16,28)=max(16,28)endl;coutmax(d,m)=max(d,m) LoadStandardCursor(IDC_CROSS);3利用ClassWizard类向导为视图类添加按下鼠标左键WM_LBUTTONDOWN的消息处理函数。void CMyDrawView:OnLButtonDown(UINT nFlags, CPoint point) / TODO:
14、Add your message . . . . . .SetCapture(); / 捕捉鼠标:SetCursor(m_hCross); / 设置十字光标m_ptOrigin=point;m_bDragging=TRUE; / 设置拖拽标记/ CView:OnLButtonDown(nFlags, point);利用ClassWizard类向导为视图类添加鼠标移动WM_MOUSEMOVE的消息处理函数。void CMyDrawView:OnMouseMove(UINT nFlags, CPoint point) / TODO: Add your message . . . . . . if(
15、m_bDragging)CClientDC dc(this);dc.MoveTo(m_ptOrigin); dc.LineTo(point); / 绘制线段m_ptOrigin=point; / 新的起始点/ CView:OnMouseMove(nFlags, point);利用ClassWizard类向导为视图类添加左键释放WM_LBUTTONUP的消息处理函数。void CMyDrawView:OnLButtonUp(UINT nFlags, CPoint point) / TODO: Add your message . . . . . . if(m_bDragging) m_bDrag
16、ging=false; / 清拖拽标记 ReleaseCapture(); / 释放鼠标,还原鼠标形状/ CView:OnLButtonUp(nFlags, point); 利用ClassWizard类向导为视图类添加鼠标移动WM_MOUSEMOVE的消息处理函数。void CMyDrawView:OnMouseMove(UINT nFlags, CPoint point) / TODO: Add your message . . . . . . if(m_bDragging)CClientDC dc(this);dc.MoveTo(m_ptOrigin); dc.LineTo(point);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC+程序设计 VC 程序设计 实验 指导书
限制150内