《《面向对象程序设计课程设计》实验教学大纲.doc》由会员分享,可在线阅读,更多相关《《面向对象程序设计课程设计》实验教学大纲.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象程序设计课程设计实验教学大纲课程名称:面向对象程序设计课程设计(Object-oriented Programming Pratice)课程代码:1021588006学分/总学时:3 / 48开课单位:物理与电子信息工程学院面向专业:计算机科学与技术一、课程的性质、目的和任务本课程是面向对象程序设计A(C+)的配套课程,属独立设课的实践性课程。通过本课程的学习,使学生能深刻理解面向对象的程序设计思想,熟练运用C+的集成开发环境设计C+应用软件。本课程的内容分基本课程设计和扩展课程设计两块。基本课程设计部分为必修内容,教学目标是让学生对封装、继承、多态等程序设计思想实质有一个深刻的领会,
2、对应用软件的设计过程和方法有一个基本的了解。扩展设计部分为选修内容,教学目标是通过应用软件的设计,全面建立面向对象程序设计思维,牢固掌握应用软件的设计思想、方法和技术。二、学习本课程学生应掌握的前设课程知识计算机组成原理,C语言程序设计。三、项目及学时分配序号项目名称时数项目类别项目类型要求每组人数课内课外1基本课程设计2010专业基础设计研究必做12扩展课程设计2820专业基础设计研究必做1填表说明:(1)“项目类别”项请填写:基础;专业;专业基础;(2)“项目类型”项填写要求:“实验课程”请填写:验证性;综合性;设计研究;其他;“课程设计”请填写:验证性;综合性;设计研究;其他;“实训课程
3、”请填写:基本实训;综合实训;设计开发;(3)“要求”项请填写:必做;选做;四、教学方法根据理论课程的算法、方法学和语法知识,在指定的集成开发环境上完成实课程设计要求的软件开发。如果学生遇到问题,教师给予指导。实验课程中间穿插几次操作抽查和运行效果抽查,并及时反馈给学生。对学生课程设计普遍存在的问题,给予统一的讲解。对课程设计中需要用到的基本技能,通过实验教程加以简单讲解的方式,布置给学生自由安排时间进行,并抽查训练效果。五、教学内容及要求实验一 基本课程设计教学目的:1、(IDE层)熟练掌握Windows会话界面和对话框的设计;运用类向导设计类;运用调试跟踪器调试代码。2、(语法层)综合运用
4、C/C+的纯虚函数、抽象类、多态、静态成员、动态内存分配等语法知识编写C+代码。3、(方法学层)运用类的封装、派生和多态等面向对象的程序设计思想进行应用系统的设计。4、(算法层)了解有关指针数组的算法。教学要求:1、开发一个基于对话框的Windows应用程序,进行大学人的建立、名单显示和卡片输出。2、大学人的类型有教师、学生、行政人员和工人。3、卡片的输入用模式对话框,卡片的输出用非模式对话框。高级要求:1、卡片的删除。2、卡片的修改。3、卡片的文件保存与打开。教学时数:20主要设备:1、微机一台2、Visual C+集成开发环境实验内容:1、建立一个基于对话框的应用程序。1.1 创建一个Pr
5、oject,类型为“MFC AppWizard (exe)”,Location选E盘,Project name取名PolyUniversity。1.2 应用程序框架类型选“Dialog based”,即创建一个基于对话框的应用程序。1.3 打开Workspace的资源(Resource)页,选对话框IDD_POLYUNIVERSITY_DIALOG,右击,选Properties,将标题改成学号和姓名。2、通过控件面板,设计界面,有输入按钮、列表框显示名单按钮、总人数文本框、卡片显示按钮。3、设计一个大学人类University及其派生类Teacher,Administrator,Student
6、和Worker。University是抽象类。University类有静态数据成员count,用于对象的计数。3.1 通过ClassView向导的“New class”创建University类。3.2 给University类添加如下数据成员.3.3 添加University类的构造函数、拷贝构造函数和析构函数,实现时都要对m_nCount进行适当的+或运算,以保证对象的正确计数。3.4 添加University类的静态成员函数和纯虚函数.3.5 由University类派生出Teacher、Administrator、Student和Worker四个派生类。3.6 Teacher、Admi
7、nistrator、Student和Worker四个派生类都新增适当的数据成员。3.7 Teacher、Administrator、Student和Worker四个派生类都新增构造函数、重载的虚函数CString Print() const函数。4、在对话框类的声明文件PolyUniversityDlg.h中创建私有的数据成员:University指针数组和总人数。5、在对话框类的构造函数中创建三个大学人对象:一个Student,两个Worker。6、通过ClassWizard给控件IDC_LIST_UNIVERSITY添加Control型数据成员m_listUniversity,给控件IDC
8、_STATIC_COUNT添加Control型数据成员m_staticCount。7、实现输入按钮,增加一个大学人。以教师类为例,步骤如下。7.1 创建输入教师的对话框IDD_ADDTEACHER,标题为“添加教师”,类名为CDlgAddTeacher。添加静态文本框“姓名”、“年龄”、“职称”和编辑框IDC_EDIT_NAME, IDC_EDIT_AGE, IDC_EDIT_FELLOWSHIP。7.2 添加Value型的数据成员m_strName, m_nAge, m_strFellowship,用于对话框数据交换。7.3 实现OnOK()代码,保存教师数据。即在CDialog:OnOK(
9、)前面加UpdateData函数:7.4 在主对话框PolyUniversityDlg中创建“添加教师”的单击消息响应函数OnButtonAddteacher()。8、创建对话框资源IDD_CARD,用于显示大学人卡片。8.1 打开Workspace的ResourceView页,右击Dialog,选“Insert Dialog”。8.2 右击对话框,选“Properties”,将ID改为IDD_CARD,标题为“大学人卡片”。8.3 删掉“OK”和“Cancel”两个按钮,加静态文本框控件IDC_STATIC_CARDCONTENT。将静态文本框控件尺寸改成最大,占满整个对话框。9、实现“显示
10、卡片”功能,用非模式对话框输出所有大学人卡片。9.1 在主对话框类的声明文件UniversityDlg.h中创建对话框的指针或数组。9.2 在主对话框类的“输出卡片”的消息响应函数中建立非模式对话框并显示卡片内容。10、实现“关闭卡片”功能,关闭并删除所有非模式对话框。实验2 扩展课程设计教学目的:1、(IDE层)熟练掌握Windows会话界面和对话框的设计;运用类向导设计类;运用调试跟踪器调试代码。2、(语法层)综合运用C/C+的纯虚函数、抽象类、常数据成员、动态内存分配等语法知识编写C+代码。3、(方法学层)运用类的封装、派生等面向对象的程序设计思想进行应用系统的设计。4、(算法层)对象状
11、态的维护算法。教学要求:1、开发一个单文档/视图的Windows应用程序,开始状态为一个极大化的窗口。2、具有动画游戏功能,将最大化窗口分成若干个小块,一开始“贪吃虫”位于中心位置,静止不动。按下任意一个箭头键后开始朝指定方向爬动,继续按箭头键可以改变爬动方向。高级要求:1、运动速度可变。2、碰避时游戏停止,自咬时游戏停止。3、随机出现食物,虫子吃进一个食物时变长。4、游戏可保存、可继续。5、能计分。教学时数:28主要设备:1、微机一台2、Visual C+集成开发环境实验内容:1、建立一个单文档/视图的的应用程序。1.1 创建一个Project,类型为“MFC AppWizard (exe)
12、”,Location选E盘,Project name取名GreedyWorm。1.2 应用程序类型选“Single document”。再点击Finish完成创建。2 界面参数设置。2.1 打开视图类的GreedyWormView.h头文件,以保护成员添加一个表示小格子尺寸的常数据成员。2.2 再在GreedyWormView.h头文件,以保护成员添加必要的界面相关数据。2.3 再在GreedyWormView.h头文件,以保护成员添加一个表示游戏是否启动的标志。2.4 在GreedyWormView的构造函数中初始化上述数据。3 界面初始图。3.1 打开应用程序类的GreedyWorm.cp
13、p源文件,将CGreedyWormApp:InitInstance()中的代码修改为m_pMainWnd-ShowWindow(SW_SHOWMAXIMIZED)。3.2 打开视图类的OnDraw函数,计算总块数和初始块位置。3.3 定义画笔、画刷等。3.4 进行初始画图。3.5 最后在OnDraw中形成执行代码(必须在m_bStart为假时执行这些代码)。4 键盘控制与动画。4.1 给视图类定义定时器消息WM_TIMER的消息响应函数OnTimer()。4.2 再点“Edit Code”,编辑OnTimer()的实现代码,使程序每过一定的时间间隔,清除原位置的块,按当前方向移动一个位置,再在
14、新位置重画一个块,从而产生动画效果。4.3 通过ClassWizard给视图类添加键盘消息的消息响应函数OnKeyDown(),捕获当前按下的方向键。5 功能完善。5.1 按箭头后,虫子开始爬动,但发现留有痕迹,通过在OnTimer()函数中添加代码清楚痕迹。5.2 其它功能的完善(如碰壁检测、自咬检测、食物出现、吃食变长、变快)。六、主要教材(指导书)及参考用书1、教材:C+实验教程,胡明晓(自编教材)。2、参考书目:1C+语言程序设计(第4版),郑莉、董渊、何江舟编著,北京:清华大学出版社,20102Visual C+简明教程,邓力编著,北京:海洋出版社,20013美Harvey M. Deitel, Paul James Deitel著,邱仲潘等译,C+大学教程(第二版),北京:电子工业出版社,20013、其他参考资料:1http:/ (MSDN在线帮助)七、考核与成绩评定考核方式:实验态度+实验预习+实验报告+实验抽查和考试。成绩评定方法:实验态度10%,实验预习10%,实验报告30%,实验抽查和考试50%。八、其他说明九、编制与审核编制人: 胡明晓 审核人: 2012年12月22日 年 月 日5