《面向对象程序设计》教学计划_B5纸张双面打印

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

010011010111001110111001011011110001000111101010010100111000111101011101110001000110001000100011110111011101001101010100010000101011100001101010001000100111101010100001000111011110001000010001010001111101010100010111000100010010100111011101110000101111000001110001010000100111101001010100111100001100110011001101010100011100011001010101010111000011101110111011100010001000100011110011001100110000100011110001110101010110010101010100110011011000010001面向对象程序设计08305121教学计划2012.8I说明本课程5学分,具体地分为3(大班集中讲授Lecture)+1(小班拓展研讨Seminar)+1(实验Practice)。本课程的先修课程为《程序设计(C语言)》或《C++程序设计》。课程选用《C++程序设计实用教程》(北京:清华大学出版社,2008.12)教材。该教材分为三篇:计算与算法基础(第1章)、面向过程程序设计(第2-8章)、面向对象程序设计(第9-16章)。本课程将用前2周左右时间复习面向过程程序设计部分,并介绍C++面向过程程序设计部分对C语言的扩充内容;后8周介绍面向对象程序设计。大班集中讲授时,将精讲教材中的主要内容,其余部分均需学生自学。小班拓展研讨时,将以学生为主,报告课外学习成果、提出问题并尝试解答、开展讨论。教师的主要作用是控制研讨流程,记录研讨情况,并给积极参与研讨者加分。根据需要,教师也可组织微型现场测验、上习题课等。按5名同学一组分组开展课外学习和研讨活动。建议推选一名组长,由组长组织小组成员对于不同的题目,轮流承担不同的角色(如:设计与实现、测试与分析、主报告人等)。根据课程进度安排,学生需按时完成相应的准备工作,积极参加研讨。进行报告的小组应准备好报告所需的材料(如:PPT,源程序,运行结果,存在的问题或改进方面),报告时间不超过10分钟(建议PPT不超过10页)。要求将报告所有材料电子版打包压缩(按“G组号W周数.rar”命名文件名,如G03W01.rar表示第三组第一周的报告)发送到reportshu@163.com,要求邮件的主题为“toLi”(1001A及1001B班)、“toSong”(1001C班及1001D班)、“toChen”(1002A及1002B班)或“toZhu”(1002C及1002D班)。课程实验在校计算中心机房进行(时数=1学分×20学时/学分=20学时,即每周2学时),实验内容主要有验证所学内容、调试课后练习及课外探究设计题。本课程的部分资料可在cppshu@163.com邮箱(,用户名cppshu,口令123_abc)的邮件附件中下载。该邮箱作为单向发布资料用,请不要回复给该邮箱。好好学习,天天向上。上海大学计算机学院《面向对象程序设计》课程组2012.8.18II目录说明................................................................IO、教学进度一览......................................................1一、课外研究题集......................................................31.1引用的作用....................................................31.2几种排序算法的比较.............................................31.3动态二维数组及其应用...........................................32.1单向链表的基本处理函数..........................................43.1C语言与C++语言的不同之处(辩论题)..............................43.2复数类的初步设计...............................................43.3有理数类的初步设计.............................................43.4浅谈“隐藏”..................................................44.1自定义字符串类的设计与实现之一...................................55.1编写C++程序是应该尽量使用还是尽量不使用指针(辩论题)...............55.2自定义字符串类的设计与实现之二...................................55.3浅谈对象的空间................................................56.1自动单向链表及其应用...........................................56.2单向链表类模板的设计与应用......................................67.1自定义字符串类的设计与实现之三...................................68.1自定义字符串类的设计与实现之四...................................69.1自定义字符串类的设计与实现之五...................................610.1探究浮点型数据的存储格式.......................................6二、记分规则及指导思想.................................................72.1全组方式及记分规则.............................................72.2对擂方式及记分规则.............................................7《面向对象程序设计》(08305121)教学计划1O、教学进度一览第一周(从C到C++)讲授C++是C的超集(或C是C++的真子集)①补遗:函数调用的栈操作机制,递归函数,程序结构;②扩展:引用的概念,运算符、、new、delete,内联函数、函数重载、默认参数、函数模板。实验①交换两个实参的值(至少两种正确方法);②竞赛题型的I/O处理。练习2扩展题(P65-67),练习5扩展题(P169-172);③练习5基础题(2)、(5)、(6)、(7)、(8)(P167-169)自学第1章-第7章研讨①填空题微测验(5分钟);②引用的作用;③函数应用:快速排序、动态二维数组第二周(第八章)讲授链表的基本操作(指针、引用)实验链表的基本操作(练习8基本题)自学§8.3.4-§8.4研讨链表的基本处理函数(根据给定数组创建链表、模拟栈操作、倒置、查找/继续查找)第三周(第九章)讲授§9.1-§9.3(重点this指针)实验复数类的设计与测试(§9.4)、练习9基本题自学§9.4-§9.5研讨辩论赛之一“C语言与C++语言的不同之处”;复数类的初步设计、有理数类初步设计、浅谈“隐藏”第四周(第十章)讲授§10.1-§10.2(略讲),§10.3复制构造函数(精讲)实验练习10基本题(1)-(4)自学§10.1-§10.3研讨同步综合练习:“自定义字符串类”的设计与实现之一(封装C-字符串,数组,设置最大处理长度MAX_LEN),并进行基本测试。《面向对象程序设计》(08305121)教学计划2第五周(第十、十一章)讲授§10.4赋值运算(精讲),§10.5组合成员的构造(略讲)§11.1静态成员(精讲)实验练习10基本题(1)-(4),练习11基本题(1)自学§10.6-§10.7研讨辩论赛之二“正方:编C++程序应该尽量用指针。反方:编C++程序应该尽量不用指针”;同步综合练习:“自定义字符串类”的设计与实现之二(封装C-字符串,堆数组),并进行基本测试(改进、完善:深赋值运算)。第六周(第十一~十二章)讲授§11.2-§11.3;§12.1-§12.2实验练习11基本题(2)-(3)自学§12.2-§12.4研讨①§11.3自动单向链表的应用②§12.3单向链表类模板的设计与应用比较两种单向链表类的特点第七周(第十三章)讲授§13.1-§13.2(运算符重载)实验练习13的1,2(1)、(2)、(3)自学§13.3-§13.5研讨同步综合练习:“自定义字符串类”的设计与实现之三(运算符重载),并进行基本测试。第八周(第十四章)讲授§14.1-§14.2实验练习14(2)最后一小点除外自学§14.1-§14.2,练习(1)-(2)研讨同步综合练习:“自定义字符串类”的设计与实现之四(堆数组,无最大长度限制,不使用串结束标志’\0’),并进行基本测试。《面向对象程序设计》(08305121)教学计划3第九周(第十四章)讲授§14.3,§14.5实验练习14(2)-(3)自学§14.4,§14.6研讨同步综合练习:“自定义字符串类”的设计与实现之五(多态性:顺序表类,派生向量类、字符串类),并进行基本测试。(参见练习14(3))第十周(第十五章)讲授§15.1(略讲)§15.2(精讲)§15.3(略讲)实验练习15(1)自学§15.4-§15.5研讨探究浮点型数据的存储格式(IEEE754、二进制文件、联合体)一、课外研究题集下面的问题集大致上按教学第1周至第10周划分,可根据实际执行情况调整。1.1引用的作用通过具体实例讨论引用的作用。引用与指针各自的特点,并随课程的深入积累引用的更多、必不可少的作用。1.2几种排序算法的比较排序是计算机科学与技术的基本问题。针对目前已经接触到的多种排序算法(包括冒泡排序法、选择排序法、快速排序及直接调用系统提供的qsort函数),讨论其算法设计思想、算法实现技术、算法性能分析与测试。1.3动态二维数组及其应用标准C/C++应用程序中,在定义数组(包括一维、二维等)时,各维的元素个数必须为常量。本题要求利用堆内存空间实现动态二维数组,即元素个数在程序运算时确定。用面向过程程序设计风格,即通过定义一系列函数实现动态二维数组创建、访问元素、释放等操作。设计测试程序测试之。《面向对象程序设计》(08305121)教学计划4希望通过该题的完成,进一步深入理解二维数组与一维数组的关系,特别是所谓的“行向量”首地址的概念等,并为后续设计与实现矩阵类打好基础。2.1单向链表的基本处理函数针对某种能构造单向链表的结点类型,设计并实现一系列函数实现单向链表(不带头结点)的基本操作:①根据给定数组创建链表;②增加结点;③删除结点;④释放所有结点;⑤模拟栈操作;⑥查找/继续查找;⑦其他(结点的顺序倒置、排序、归并、拆分等)。再设计相应的测试函数进行综合、全面测试。【提示】注意“引用”、“指针”的使用;分析带头结点的单向链表与不带头结点的单向链表的特点,特别是C++中有了“引用”概念后的优势。3.1C语言与C++语言的不同之处(辩论题)所有同学仔细研究C语言与C++语言的不同之处(不限

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功