2008年暑期
注:本页所有课件材料已经打包上传,请点此链接下载。
时间 | 星期一~星期五,上午9:00~11:00 |
地点 | 数学馆东109 |
教师 | 罗迒哉 |
邮件 | hzluo (at) sei (dot) ecnu.edu.cn |
电话 | 62235089 |
办公室 | 数学馆东110 |
答疑(Office Hour) | 星期一16:00-18:00 |
课件 |
阅读材料 | 相关链接 |
|
BCB使用
|
计算机科学引论:主页 lyx: http://www.lyx.org |
冒泡排序 | 链表 | 文件读写 | 资源管理 |
bubbleTest.zip 这里使用了一个删节的动态数组的模板。 |
这里使用了一个完整功能的动态数组的模板。 完整版的双向链表模块:listFull.zip。(没有测试代码) |
fileIO.zip 这里使用了一个完整功能的动态数组的模板和文本文件IO的类。 |
动态数组的模板在前面所有的作业中都有使用,请参考其中的用法。文本文件IO的类已经在文件读写的作业中使用过了,请参考其中的用法。另,上面阅读材料中给出的资源管理实验也可参考。
原始文件IO的类请参考rawIO.zip。由于接口非常简单,而且和前面两个类非常相似,这里没有给出测试程序。有兴趣的同学可以自己编写测试程序。 |
这里给出比特输入输出的类和3个不同的测试时间间隔的类,供参考。没有测试代码,有兴趣的同学可自己写一下测试代码。点击这里下载。
1、项目申请书:8月11日通过电子邮件提交。提交后如选题非常不合适,可能会反馈意见要求修改。
2、8月17日集合(暂定),反馈申请书信息。具体时间将会提前1周通过电子邮件通知。请注意查收电子邮件。
3、10月7日前后第一次进度报告。
4、11月10日前后第二次进度报告。
5、12月1日前后交项目总结。
6、12月15日前后讲评项目。
编写一个生成Tex格式文件的工具,能够方便地操作,并基本实现所见即所得。要求可同时生成给LaTeX系统使用的.sty/.cls和给LyX使用的.layout。本项目要求较高的C/C++技巧,并有一定的排版方面的基础。
编写一个小巧的C/C++库,目标是让常见程序的编写、调试变得方便,并可编译、连接成非常小的程序,节约运行资源。该库一方面是对现有C/C++库的简化,把不常用的功能去除以减小连接后程序的体积,另一方面增加一些常用的类、模板,提供方便地管理各种资源的目的,让日常的程序编写工作变得方便、高效。该项目需要重新编写程序启动代码、大部分核心C/C++库函数,所以需要较高的汇编和C/C++技巧,以及编译、操作系统等方面的知识。如果这方面知识有所欠缺,可考虑选择下面的一些子项目,或者自己提出合适的子项目。
使用MMX、SSE-SSE4指令实现字符串函数,比较其实现在不同CPU上的性能以及与C实现的性能差异,从而实现一个快速字符串处理库。该项目是C--的一个子项目。
用原始操作系统调用实现两个文件接口类,其中一个是无缓冲的,另一个是有缓冲的。这两个类用于替换C中有关文件IO的函数,无缓冲的替换open、creat、read、write、close等,有缓冲的替换fopen、f...等。在Windows平台,原始操作系统调用以ntdll接口实现。该项目是C--的一个子项目。
实现一系列函数,最终实现...printf和...scanf等函数。该项目是C--的一个子项目。
实现内存管理功能,与传统C库函数内存管理相区别的是可以实现指定对齐要求的内存分配。由于矢量指令的普及,内存对齐对程序速度的影响已经到了非常高的程度,指出对齐的内存管理是非常有意义的。该项目是C--的一个子项目。
编写一个全新概念的二进制文件编辑器。目前的二进制文件编辑器一般都是指十六进制编辑器。然而,用户总是希望能够根据文件的格式来进行编辑,而不是简单的二进制串。所以,可以支持按格式进行二进制文件编辑,并支持大量的不同二进制格式的工具是很有用处的。
给LyX增加“reLyx on the fly”功能,即在粘贴LaTeX代码的时候实时转换成LyX的内存格式。例如,JabRef可以把选中的参考文献条目转换成\cite{...}的格式放到到剪贴板,如果在LyX中粘贴可以获得一个参考文件引用控件,则可极大方便使用。
Word画框图的功能是比较实用的。虽然有很多软件实现了类似功能,但易用性却差了很多。本项目实现一个使用非常方便的画框图软件。不强调功能特别强大,而是专门强调易用性,要求对平常的系统功能表示、简单流程图等应用中达到甚至超过Word框图的能力。参考:LaTeXDraw。
DataDraw对实现和管理复杂数据结构是很有好处的,但它有一些小的问题需要改进和完善。本项目改进和完善DataDraw,实现一个稳定、好用的版本。
成绩评定比例:
学期中:作业20%,课堂报告10%,开源项目调查报告20%
学期后参加开源项目:程序25%,报告25%