4

有哪些好的项目可以努力学习(或重新学习)C?理想情况下,类似于大学课堂上的作业。在线提供的实际任务/项目规范的链接是理想的。

注意:它们不必是专门来自 C 类或类似的作业。只是那种可以很好地在低级别实现的东西。同时学习其他有趣的东西是奖励!

如果这个问题已经在某个地方问过,请指出给我。我尝试的搜索词(课程,作业......!)不利于我的搜索,正如你想象的那样。

4

7 回答 7

8

我建议实现最常用的数据结构和算法,如链表、树、排序、搜索等。它们既简短又富有洞察力。如果您了解基础知识,请选择高级数据结构和算法。

于 2009-07-31T20:39:35.153 回答
4

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

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

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

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

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

于 2009-07-31T20:45:29.807 回答
4

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

于 2009-07-31T20:56:20.360 回答
2

你知道如何编写什么类型的应用程序?一个选择可能是拿一本像 Charles Petzold 的 Programming Windows 这样的书,通读并使用示例代码。

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

于 2009-07-31T20:37:26.093 回答
2

这是我去年秋天使用的一组作业。该课程被称为“计算机体系结构”,但实际上是一门机器级编程课程。我们为将来更改了标题。该课程是所需顺序中的第三门课程,学生们发现它具有挑战性。

于 2009-08-01T05:02:39.323 回答
2

Here's some assignments from a course I took last spring. They were very helpful and a good introduction to c. If you go to the schedule link at the top of that page, it will have all the class notes, which included a lot of code examples.

The assignments included a String data type, Symbol Table, Heap Manager, and a Unix Shell.

于 2009-08-01T05:14:21.093 回答
1
  1. Visit the CS website for your alma mater (or pick a decent tech school's site instead).
  2. Find the course page for a class that uses C.
  3. Do the assignments.
于 2009-08-03T19:07:27.300 回答