《编程的奥秘》本人按 第四章实践与探索的要求 写的代码

来源:互联网 发布:ecshop安装数据库失败 编辑:程序博客网 时间:2024/05/22 08:23

3.(项目开发实践)设计程序行数统计软件

要求编写一个程序,可以自动统计一个VB .NET源代码文件的各种信息:

1)程序代码总行数;

2)注释行总数;

3)空白行总数;

4)手写代码总行数。

提示与分析:

VB .NET源代码文件其后缀名是“.vb”,是一个纯文本格式的文件。

VB .NET注释行以单引号开头,只统计成独立一行的注释。

对于窗体文件,VS .NET自动生成的代码均放置在“#Region " Windows 窗体设计器生成的代码 "”区域中,因此程序必须识别出这个区域,才可能计算出手写代码的总行数。对于为各种控件生成的事件代码框架,可以一并算做是手写代码。

建议按照以下过程开发此程序:

1)开发出一个函数(为方便起见,暂命名为f1,读者在真正开发时,请起有意义的名字),传给它一个从VB .NET源代码文件中读出的一行,它能正确判断出语句的类型;

2)开发出另一个函数f2,它接收一个VB .NET源代码文件名,在内部调用f1判断语句类型,并按语句类型分类统计;

3)设计一个信息类Info,其中包含要统计的所有信息(上述的四个统计信息可以作为此类的四个属性);

4)设计一个VB .NET源代码分析类,它包含f1f2,以及其他一些辅助函数,完成源代码分析的全部功能,分析结果放在Info对象中返回;

5)设计窗体,以可视化的形式表达出统计结果。

4.(项目开发实践)文件分割器

当使用软盘和U盘复制文件时,常常需要把一些大的文件进行分割。编写一个文件分割器,可以把任意一个文件按用户指定的大小拆分成多个文件,同时提供将分块文件合并为原始文件的功能。

 提示

这是一个典型的使用流技术的程序。

可以将一个文件以流的方式读入内存,再按照切分的大小读出数据,加上一个表示顺序的序号,再将其写入到文件中。

合并的过程则反之。但要注意程序应能检测文件的丢失,如果少了某个分块文件,程序应能提示用户文件已损坏。

5.(项目开发实践)UltraEdit是功能强大的文件编辑器,它可以用十六进制的方式直接编辑二进制文件,习题图4-3所示为编辑MyComputerExplorer.exe文件的情形。

习题图4-3  UltraEdit

请编写一个类似的二进制文件编辑器,克隆UltraEdit程序的功能,完成对一个二进制文件特定内容的查找、修改。

 提示

使用FileStream打开文件,并将其内容复制到MemorySteam或一个数组中,查找、修改均在内存中进行,退出时再将其写入文件。

代码下载地址:http://download1.csdn.net/down3/20070613/13150542783.rar 

有两个没写注释大家多多海涵,代码一定有很多问题,如果那位朋友发现请指出纠正、

原创粉丝点击