良好的学校型项目或(重新)学习C的任务?

时间:2009-07-31 20:34:08

标签: c project variable-assignment

为了学习(或重新学习)C,有哪些好的项目需要努力?理想情况下,类似于大学课堂上可能获得的作业。可以在线获得实际分配/项目规范的链接。

注意:它们不一定是C类或类似的任务。只是那种能够很好地实现低水平的东西。同时学习其他有趣的东西是奖金!

如果某个地方已经提出这个问题,请指出给我。我试过的搜索术语(课程,作业......!)不利于我的搜索,你可以想象。

7 个答案:

答案 0 :(得分:8)

我建议实现最常用的数据结构和算法,如链接列表,树木,排序,搜索等。它们同时具有简洁性和洞察力。如果您了解基础知识,请使用先进的数据结构和算法。

答案 1 :(得分:4)

更大程序的一些想法。你说的类似于课堂作业,所以他们是教育性的但不是很有用: - )

  • 创建一个简单的shell,可用于启动其他程序。实现管道(“|”),后台执行(“&”),顺序执行(“&”),条件执行(“&&”和“||”)。您将了解操作系统环境,流程创建和流程之间的通信。

  • 实施一些RFC定义的协议,如NTP。这将学习网络编程,以及他们阅读和理解RFC的方法。

  • 实现多线程Web服务器或ftp服务器。这将学习网络编程,处理文件和多线程。

在所有情况下,从速度和内存使用的角度来看,请考虑性能。选择最佳的数据结构和算法。这就是运行C的重点。完成后,将您的解决方案与相同的开源变体进行比较。你会学到很多东西。 另外,在valgrind中运行程序以检查内存错误。

答案 2 :(得分:4)

如果您对数学感兴趣,请查看以下问题: http://projecteuler.net

答案 3 :(得分:2)

您知道如何撰写什么类型的应用程序?一个选择可能是抓住像Charles Petzold的编程Windows这样的书,阅读并使用示例代码。

(更新)Miro Samek撰写了一本针对嵌入式开发的书,“C / C ++中的实用UML状态图”。我非常喜欢这本书的早期版本,你可能想看看它。

答案 4 :(得分:2)

这是set of assignments I used last fall。该课程被称为“计算机体系结构”,但实际上是机器级编程课程。我们改变了未来的标题。该课程是所需序列中的第三个,学生们发现它具有挑战性。

答案 5 :(得分:2)

这是我去年春天学过的一些assignments。他们非常有帮助,并且很好地介绍了c。如果你转到该页面顶部的日程安排链接,它将包含所有课堂笔记,其中包括许多代码示例。

分配包括String数据类型,符号表,堆管理器和Unix Shell。

答案 6 :(得分:1)

  1. 访问CS网站为您的母校(或选择一个体面的科技学校的网站)。
  2. 查找使用C的课程页面。
  3. 做作业。