《高级程序设计语言》实验任务书
一、实验课程目的与要求
实验课是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。熟悉VC++开发工具,掌握调试工具的使用。通过上机实践,进一步练习、巩固用C++开发应用程序的基本技能,初步掌握MFC应用程序设计的开发方法,为今后从事工程技术工作, 科学研究以及学习新技术知识, 打下良好的基础。
三、主要仪器设备
每组一台计算机,基本配置:奔腾III600MHZ以上、40G~60G 硬盘,128M内存。装有Visual C++或其他的C++编译软件,要求有专人维护。
四、实验方式与基本要求
实验分两类:基本实验和综合性实验。基本实验是按章节进行,根据教学大纲要求,有针对性地练习。综合性实验往往跨单元处理问题。学生上机时,按要求填写实验报告和回答思考题。
要求把每次实验的程序文本和运行结果存入到本人的用户目录下或专用软盘上供指导老师检查或上级部门抽查。
五.实验报告的规范
实验完成后填写统一的实验报告单,实验报告单请用白纸填写,不要用其他课程的实验报告纸。
给出实验内容题目、年级、姓名、学号、指导教师、完成日期;
并详细填写:实验目的、编程的思路或设计方案、实验程序、实验结果及分析、存在的问题及其解决方案。
说明: 程序可以打印,每个实验的实验任务中各小题的题目可以不写(因都较长),除以上两者外,实验报告的其他部分手写。程序部分只写要编写的程序,不要把整个程序拷贝下来。对关键程序请加以注释。
六、实验内容
实验一、类的定义与实现(2学时)
1 实验目的:
(1)掌握类的定义和使用
(2)掌握类的定义和对象的声明
(3)复习具有不同访问属性的成员的访问方式
(4)类的继承、派生以及多态性
2、实验任务
1)下面是一个类的测试程序,给出类的定义,构造一个完整的程序执行时的输出为;   
          输出结果:200 – 60 = 140
          主函数为:
          void main()
        {
        CTest c;
        c.init(200, 60);
        c.print();
        }
2)定义一个人员类CPerson,包括数据成员:姓名、编号、性别和用于输入输出的成员函数。在此基础上派生出教师类CTeacher(增加所在部门)和职员类CEmployee(增加岗位),采用动态内存分配的方式定义教师和雇员对象,并实现对两者信息的输入输出。 
3)把定义平面直角坐标系上的一个点的类CPoint作为基类,派生出描述一条直线的类CLine,再派生出一个矩形类CRect。要求成员函数能求出两点间的距离、矩形的周长和面积等。设计一个测试程序,并构造完整的程序。
4)编写一个Score类,用于统计一个班的学生成绩。其中使用一个静态成员数据totals
存储总分以及一个静态成员函数re_totals()返回该总分。编写完整程序并加以测试。
5)定义一个抽象类CShape,包含纯虚函数 Area(用来计算面积)SetData(用来重设形状大
)。然后派生出三角形CTriangle类、矩形CRect类、圆CCircle类,分别求其面积。最后通过友元的方式计算这几个形状对象的面积之和。
实验二、Windows消息机制2学时)
1、实验目的:
1)学习定义和使用Windows左键消息和右键消息。
2)学习椭圆的绘制方法。
3)学习文字的输出方法
2、实验任务
1)用户在窗口客户区中按下鼠标左键时即可产生一个灰圆形
case WM_LBUTTONDOWN:
            HDC hdc;
            hdc=GetDC(hWnd);
          Ellipse(hdc,200,200,400,400);
break;
2)单击左键开始滚动,单击右键停止滚动;文字自右向左移动
#define WM_MYTIMER WM_USER+100
    case WM_LBUTTONDOWN:
SetTimer(hWnd,WM_MYTIMER,1000,MyTimerProc);
        break;
    case WM_RBUTTONDOWN:
    KillTimer(hWnd,WM_MYTIMER);
        break;
VOID CALLBACK MyTimerProc(HWND hWnd,UINT uMsg,UINT idEvent,DWORD dwTime)
{
HFONT hf;HDC hdc;hdc=GetDC(hWnd);LOGFONT lf;
lf.lfCharSet=DEFAULT_CHARSET;
strcpy(lf.lfFaceName,"宋体");lf.lfEscapement=-400;//-400,0400
lf.lfHeight=-50;lf.lfWeight=1000;
lf.lfUnderline=0;lf.lfStrikeOut=0;
hf=CreateFontIndirect(&lf);
SelectObject(hdc,hf);
for(int i=800;i>-100;i--)
{for(int j=1;j<900000;j++);
SetTextColor(hdc,RGB(255,0,0));
TextOut(hdc,i,100,"通信",4);
}
3)编一程序,允许用鼠标左键拖动一个椭圆在客户区内移动。
case WM_MOUSEMOVE:
    xPos = LOWORD(lParam); // horizontal position
yPos = HIWORD(lParam);  // vertical position
          HDC hdc;
            hdc=GetDC(hWnd);
Ellipse(hdc,LOWORD(lParam)-50,HIWORD(lParam)-50,LOWORD(lParam)+50,HIWORD(lParam)+50);
    break;
实验三、常用控件编程(6学时)
1 实验目的:
1、掌握基于对话框和单文档的MFC程序设计方法;
2、理解掌握常用控件的使用及其简单编程方法。
2、实验任务
  (1)一个对话框中有9个单选按钮控件,分为3组,每组3个。每组中只能有一个单选按钮被选中。先设计这个对话框,然后编程获得每组选中的单选按钮控件的文本内容。自学编程的书籍
  (2)在对话框中添加一个编辑框和旋转控件,并使它们成为伙伴窗口。设编辑框默认的数值为2.97,当单击旋转控件的向上和向下按钮时分别使编辑框数值按0.1增加和减少。
  (3)创建并使用进度条对话框。要求通过两个按钮实现进度条的前进和后退,并用静态文本显示其百分比。
  (4)调整对话框背景颜。要求通过滚动条和滑动条设置RGB三基,从而改变其对话框背景颜。
  (5)创建并使用学生基本信息对话框。学生基本信息包括姓名、学号、性别、出生年月、所学专业。要求创建学生基本信息对话框,对上述信息进行设置,并采用消息对话框的形式对设置好的信息加以显示。
实验四、资源的应用(6学时)
1 实验目的:
(1)掌握菜单、工具栏、状态栏的编程和使用;
(2)掌握文件的读写和一般视图类的使用。
2、实验任务
(1)创建一个测试菜单,加载该菜单并用编程实现为测试菜单添加菜单项城市 打开城市对话框,完成城市邮编信息的录入。
(2)上机练习实例多个工具栏的使用。
(3)若状态栏只有一个用户定义的指示器窗格(ID号为ID_TEXT_PANE),应如何定义?若当用户在客户区双击鼠标,在该窗格中显示双击鼠标字样,则应如何编程?
(4)创建一基于表单视图CFormView的单文档应用程序Ex_Form,实现读一文件的读写和修改。
实验五、MFC下的GUI应用程序开发(8学时)
1 实验目的:
  1)掌握MFC图形绘制和文本处理的编程方法;
2)网络通信的编程方法。
2、实验任务
按照任课老师拟定的题目,任选其一。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。