您好,欢迎访问三七文档
C语言进阶-一课一文(1)本课程的要点及重难点分析。(200字以上)C语言进阶这门课主要是承接之前学习的C语言程序设计这门课程,难点重点主要是指针、结构体、文件操作、动态内存分配这几个模块的知识点。然后呢就是运用、整合这些内容,自己动手进行实践,做出一些小项目,如贪吃蛇、管理系统等等。这不仅需要我们对语言进阶知识熟练掌握,还要能够建立一个系统完整的框架体系,对做一个项目有更深刻的认识与实战经验。而对C语言的深刻掌握,则能帮助我们以后更好地进行面向对象语言的学习,也能掌握到更多底层的知识。(2)对课程内容的小结和认识。(300字以上)本学期我们做了如下一些小项目:1、组成三位数——算法题2、火车订票系统3、贪吃蛇游戏4、超级万年历5、窗体版图书管理系统C语言进阶不仅是语法的进阶,也是算法的进阶,需要我们的计算思维和编程能力进入一个更深的层次,索性我就谈谈第一个作业——组成三位数的小结吧。这道题我总体的思路是运用递归,在1、2、3、4四个数中任取三个数,实现一个全排列,即为本题的答案。我首先定义了两个全局变量:数组a存放当前递归分支的排列组合数,hash哈希表在递归中起的作用是保存1~4四个数字的使用情况(因为题目要求三个数位没有重复数字,所以相对复杂度比较高的算法的去重操作,我选择直接避免重复选取数字)。哈希表开辟了5个存储空间,这样1~4可以直接使用下标进行存储。进入递归的起始变量x为0,象征着这个算法是从a的下标为0空间开始保存数字,每次递归调用自身函数时x+1,就是在下一个a的空间进行操作的情况。递归边界就是当x==3——这时代表前三个数位0、1、2已经被合理地填满了,这时就可以结束递归了。在return前,把这个数列输出,并打出换行符。哈希表的使用是初始化均为0,如果当前数列使用了某个数字,就把一这个数字作为下标的空间赋为1,然后调用自身函数,同时送入x+1代表开始进行下一个数位的操作了。在函数调用后,还要把前面改变的哈希表的值改回来,再进行for循环,代表这个数列没有选择这个i值(因为四选三总会余出一个数)。多个分支情况进行递归操作,运行结果就会输出如图所示所有题目要求情况的全排列,并且这样是按照ASCII码值排列顺序进行输出的。(3)对课程推荐参考书目的阅读、学习情况,必须说明个人到图书馆次数和阅读图书本数。本学期我图书馆到馆13次(保守估计),前后借书共31本——当然并没有前后一字不差读完,基本全为专业相关书籍。多是平时的课外学习中遇到了困难去专门借回2、3本书,学习部分章节以供我需,并没有读完全书。其间,涉及多种计算机学领域:算法类(算法、数据结构、C++、ACM竞赛等):13本数学类(离散、具体数学、组合数学、Matlab):8本数字电子技术:4本国学:3本iOS开发:1本运筹学:1本小说:《1984》(4)对课程内容增、删或修改建议。(至少一条,100字以上)可以增加一些算法相关知识的学习,并不只是做普通的项目,里面涉及到好的算法可以重点讲一下;也建议专门拿出一点点课时给大家拓展一下传统算法、经典算法题目。还有就是之前做的两次锦城在线的考试,可以专门抽时间讲讲题,这样大家也知道自己是错在了哪里,也能有更大的收获。(5)对任课教师的教学方法的意见和建议。(至少一条,100字以上)可以在每次的项目讲解课上,随机抽同学之前问一下有没有想要自愿上来讲的同学——这样有想法、有点东西的同学可以有一个分享自己经验、知识的平台,讲解效果也比准备不充分的同学来讲更好,大家也能从中收获更多东西。鼓励学生们对项目进行创新。大家都照着书上的模版做未免千篇一律,这样也成为了真正的“码农”。鼓励有想法的同学添加或改进一些新的东西,培养大家的创新思维能力和算法设计能力。(6)对本课程评分体系等的意见和建议。(至少一条,100字以上)承接我上面的建议:1、每次项目讲解课,主动上来讲解代码,并且效果良好的同学,课堂加分应比被动上来的同学多一些。2、鼓励下面的同学对讲解人的内容进行提问,有建设性的问题可加分。有同学自荐回答问题并正确的,也有加分。3、制作出有创造性的项目模块,可视情况加分。这是我本学期C语言进阶课程的一课一文总结。祝李玥老师2019年快乐,希望2018级的学弟学妹们能在这门课程上收获得更多!
本文标题:C语言进阶一课一文
链接地址:https://www.777doc.com/doc-1913679 .html