- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++语言课教学中软件工程思想的熏陶
摘要:在计算机相关专业的C++语言课教学中渗透软件工程的思想,不但有助于本门课程的教学而且为后期软件工程课程的教学打下良好的基础。该文结合精心设计的案例进行说明,探讨提高学生编程能力的教学思路,在教学实践中取得良好效果。
关键词:C++;软件工程;教学实践
中图分类号:G642文献标识码:A文章编号:1009-3044(2011)04-0949-03
The Edification of Software Engineering Idea in C++ Language Lesson Teaching
SONG Zhen-fang,LIU Wei-qun
(Academy of Information Technology, Luoyang Normal University, Luoyang 471022, China)
Abstract: The Software engineering idea permeates teaching of C++ language lesson in computer related specialty, which will not only help to the teaching of this course but also lay a good foundation for late software engineering courses. This paper combining case to show how to improve students programming ability, giving teaching ideas, obtaining good results in the teaching practice.
Key words: C++; software engineering;teaching practice
《C++高级语言程序设计》是计算机类相关专业的一门重要且实践性很强的专业基础课程,学生对C++语言课的掌握程度对其后续课程的学习有深刻影响。《软件工程》是另一门重要的课程,在文献[1-2]中指出了在语言类课程教学中贯彻软件工程思想,对后期《软件工程》课程的教学效果有很大影响。本文结合特设的案例,将软件工程中以需求为驱动力进行软件开发的思想运用于该案例。在阐明了常规动态链表实现原理后提出特别的需求,进而设计了一个“另类”动态链表以锻炼学生灵活应对需求变化的能力,并继续以需求的变更为线索将动态链表变化为动态链式栈、动态链式队列,让学生感受到了软件中的“变”与“不变”的辩证统一,在潜移默化中使其受到软件工程思想的熏陶。
下面首先介绍常规动态链表及其实现,然后依次介绍“另类”动态链表、动态堆栈和动态队列的实现,最后论述它们之间的辩证统一关系和分析了教学设计思路。
1 动态链表案例教学实践
1.1 常规动态链表
为了突出讨论的重点和叙述的方便性,教学案例选取动态单链表并只讨论其最基本的功能和只涉及整型数据类型。
在教学时首先解释客户方和服务方的概念。main.cpp代表客户方,动态链表代表服务方,从main.cpp中提取客户需求。给出一个main.cpp的完整内容如下所示。
#include list.h//list.h中有#include listnode.h语句
void main()
{List alist;
for (int i=0;i10;i++)
alist.InsertTail(i+1);
alist.Print();}
初步分析需求发现:①链表需具备在链表末尾插入数据的能力和用于输出链表数据的能力;进一步深入分析发现;②客户方只与链表类打交道;③客户方不考虑动态内存的释放问题。
常规的动态链表是由两个密切配合的类相互协调实现的。这两个类是链表结点类和链表类,分别用ListNode和List表示。为了突出两者角色的不同,称ListNode为ListNode“员工类”、List为List“管理者类”。List“管理者类”和ListNode“员工类”进行协调共同为客户方提供服务。ListNode“员工类”的两个数据成员分别用int data和ListNode* link表示,List“管理者类”的数据成员用ListNode* head表示。
我们的讨论将围绕两个重要的观测点进行。由于设计动态链表时要考虑内存空间的释放,而客户方不同的需求会导致内存空间释放的时机不同,所以把内存的释放做为一个观测点。另一个观测点是链表的功能。
结合本案例中客户端的需求,Lis
您可能关注的文档
最近下载
- DBJ51_T 033-2020 四川省既有建筑增设电梯工程技术标准.docx VIP
- 弟子规全文拼音解释版.pdf VIP
- DBJ51T033-2014四川省既有建筑电梯增设及改造技术规程 .docx VIP
- 银行每月安全教育记录.docx VIP
- 《APT攻击介绍》课件.ppt VIP
- 髋关节脱位护理查房.pptx VIP
- GBT5231—2012加工铜及铜合金牌号和化学成分.pdf
- 20g329-1 建筑物抗震构造详图 多层和.docx VIP
- Cinema 4D三维建模与动画制作实战教程课件 第8章+角色与毛发.pptx VIP
- 《新能源汽车结构与工作原理》复习考试题库(带答案).pdf VIP
文档评论(0)