C语言进阶一课一文_第1页
C语言进阶一课一文_第2页
C语言进阶一课一文_第3页
C语言进阶一课一文_第4页
C语言进阶一课一文_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C 语言进阶 - 一课一文1 ) 本课程的要点及重难点分析。(200 字以上)C 语言进阶这门课主要是承接之前学习的C 语言程序设计这门课程,难点重点主要是指针、结构体、 文件操作、动态内存分配这几个模块的知识点。然后呢就是运用、整合这些内容,自己动手进行实践,做出一些小项目,如贪吃蛇、管理系统等等。这不仅需要我们对语言进阶知识熟练掌握,还要能够建立一个系统完整的框架体系,对做一个项目有更深刻的认识与实战经验。而对C 语言的深刻掌握,则能帮助我们以后更好地进行面向对象语言的学习,也能掌握到更多底层的知识。2) 对课程内容的小结和认识。(300 字以上)本学期我们做了如下一些小项目:1、 、组成

2、三位数算法题2、 火车订票系统3、 贪吃蛇游戏4、 超级万年历5、 窗体版图书管理系统C 语言进阶不仅是语法的进阶,也是算法的进阶,需要我们的计算思维和编程能力进入一个更深的层次,索性我就谈谈第一个作业组成三位数的小结吧。123410 11 12 13 U15 16 17 18 192C 21 22 ?3 2425 26 2728 29 3C 31 3233 34 组成三位数"Tree shrevt outside school gateCreated by 后M on 2018/12/24.Copyright 2018年 启帆 All rights reserved/*W1. 2、

3、3. 4个数字,能组成多少个互不相同且无重复数字为三位数?都是多少?杵序分析:可法在百位.十位.个付的字都51. 2. 3. 4.组成所衣的排列后再去植不满H条件的糠列.*/#include <stdio.h>void rrake(int x);int countzH,hashh=<0>/ 哈希/下标】4int a3;/阚成一个三位欧int maxn()int x=0;/d数ifia下标make(x);return 0; )void rrakelint x) int 1;if (x«-3) (三个戳位已填篇,出for (i»0; i<3; iw

4、) (printf('Xd Nfai);) printf(MknM); return;0 | <2> Q ® Flter12 31 Z 413 213 414 214 32 132 142 3 12 3 4All Output 0)这道题我总体的思路是运用递归,在1 、 2、 3、 4 四个数中任取三个数,实现一个全排列,即为本题的答案。我首先定义了两个全局变量:数组a 存放当前递归分支的排列组合数,hash 哈希表在递归中起的作用是保存1 4 四个数字的使用情况(因为题目要求三个数位没有重复数字,所以相对复杂度比较高的算法的去重操作,我选择直接避免重复选取数字)

5、。哈希表开辟了5 个存储空间,这样 1 4 可以直接使用下标进行存储。进入递归的起始变量x 为 0, 象征着这个算法是从a 的下标为0 空间开始保存数字,每次递归调用自身函数时x+1 ,就是在下一个a 的空间进行操作的情况。递归边界就是当x=3 这时代表前三个数位 0、 1、2 已经被合理地填满了,这时就可以结束递归了。在return 前,把这个数列输出,并打出换行符。哈希表的使用是初始化均为0, 如果当前数列使用了某个数字,就把一这个数字作为下标的空间赋为1 ,然后调用自身函数,同时送入x+1代表开始进行下一个数位的操作了。在函数调用后,还要把前面改变的哈希表的值改回来,再进行for 循环,

6、代表这个数列没有选择这个i 值(因为四选三总会余出一个数)。多个分支情况进行递归操作,运行结果就会输出如图所示所有题目要求情况的全排列,并且这样是按照ASCII 码值排列顺序进行输出的。3) 对课程推荐参考书目的阅读、学习情况,必须说明个人到图书馆次数和阅读图书本数。本学期我图书馆到馆13 次(保守估计),前后借书共31 本当然并没有前后一字不差读完,基本全为专业相关书籍。多是平时的课外学习中遇到了困难去专门借回2、 3 本书,学习部分章节以供我需,并没有读完全书。其间,涉及多种计算机学领域:算法类(算法、数据结构、C+ 、 ACM 竞赛等):13 本数学类(离散、具体数学、组合数学、Matl

7、ab ):8 本数字电子技术:4 本国学: 3 本iOS 开发:1 本运筹学:1 本小说:1984 4) 对课程内容增、删或修改建议。(至少一条,100 字以上)可以增加一些算法相关知识的学习,并不只是做普通的项目,里面涉及到好的算法可以重点讲一下;也建议专门拿出一点点课时给大家拓展一下传统算法、经典算法题目。还有就是之前做的两次锦城在线的考试,可以专门抽时间讲讲题,这样大家也知道自己是错在了哪里,也能有更大的收获。5) 对任课教师的教学方法的意见和建议。(至少一条,100 字以上)可以在每次的项目讲解课上,随机抽同学之前问一下有没有想要自愿上来讲的同学这样有想法、有点东西的同学可以有一个分享自己经验、 知识的平台,讲解效果也比准备不充分的同学来讲更好,大家也能从中收获更多东西。鼓励学生们对项目进行创新。大家都照着书上的模版做未免千篇一律,这样也成为了真正的 “码农” 。 鼓励有想法的同学添加或改进一些新的东西,培养大家的创新思维能力和算法设计能力。6) 对本课程评分体系等的意见和建议。( 至少一条,100 字以上)承接我上面的建议:1、 、 每次项目讲解课,主动上来讲解代码,并且效果良好的同学,课堂加分应比被动上来的同学多一些。2、 鼓励下面的同学对讲解人的内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论