计算机实习报告-第二题文件比对,实验室人员比对报告,实验室间比对报告,比对试验分析报告,实验室间比对分析报告,实验室比对报告,人员比对报告,仪器比对报告,比对检验报告,比对报告
计算机实习报告
面向过程编程
用C语言求解实际问题
班级:
学号:
姓名:
实习时间:2011年7月4日-7月15日
一、问题描述
简单的文件相似度统计任给两篇英文文章,统计相同的单词数在各自文章中所占的百分比。功能要求:文章1和文章2的文件名由用户作为命令行参数输入。相同的单词、相同单词数量以及其在各自文章中所占的百分比保存到单独文件。 各自文章中所占的百分比struct Word{
char* word;
float frequency;
float scaleInFirstFile;
float scaleInSecondFile;
}fileWordList[3][5000];
模块设计
本任务的主要算法是对输入的两片文章进行比对
获得文件内容:
从文件读入两篇文章的内容,存入文件内容字符串
分离单词:
对文件内容字符串进行分析,把文章中的所有单词分离出来,无重复的保存至单词列表。
对比单词
对单词进行对比,相同的单词存入输出单词列表。
保存文件
如果文件不存在,则新建一个,如果文件存在,则覆盖该文件,把输出单词列表的内容保存至文件。
主程序结构
本任务的主程序结构是线性的,按照调用先后进行书写:
1 接受用户输入
2 对用户输入进行分析
3 对分析结果进行输出
4 把分析结果进行保存
四、程序实现
(这一部分主要参考了/index.php/2012/12/28/148/)
(1)搜索单词是否已经记录的函数int searchWordLoaction(int witchFile,char *word)实现
简单的对wordList列表进行遍历,查找单词是否存在。
(2)分离单词的函数void getWords(int witchFile,char* content)实现
对文件读取的内容进行分离。
(3)保存文件的实现
把之前的输出简单保存进文件,利用FILE流。
(4)对单词进行比对的函数void analysisFileContent()实现
双重遍历,对相同的单词进行输出
五、程序测试
(这一部分主要是说用什么数据测试程序,保证程序的每一条分支上的语句都被调试。具体来说,就是进行程序白盒测试)
正常数据:
文件不存在或者文件为空:
输入格式错误:
删除RESULT.TXT,运行:
TXT文件内容:
六、设计小结
本任务设计的代码完成基本功能,但是有几个缺点:
(1)容量不是自动增加的
用户输入的文件的内容为大量时并无法自增式的进行分析。最高为100000个字符,最多5000个单词。
七、使用说明
(这一部分主要是说程序安装说明和启动。具体来说,就是给出程序的运行软硬件环境,启动方法,操作步骤,如果程序有完整的提示,操作步骤可以简写)
1.用户本地打开cmd。
2.输入cd 文件目录。
3.按格式输入TheSecondOne.exe 文件一目录 文件二目录。
4.回车,可得结果,查找结果在自动生成的result.txt中。
八、附录
程序源代码参见C语言程序文件FilesimilarityCheck.cpp。其中有详细的注释解释了各模块的功能及主要语句的作用,以及数据结构中数据项的含义。