快速拼写检查程序实验报告.docx
《快速拼写检查程序实验报告.docx》由会员分享,可在线阅读,更多相关《快速拼写检查程序实验报告.docx(17页珍藏版)》请在冰豆网上搜索。
![快速拼写检查程序实验报告.docx](https://file1.bdocx.com/fileroot1/2022-12/11/c3bd59c6-21b5-41b6-ab88-7b43c3745130/c3bd59c6-21b5-41b6-ab88-7b43c37451301.gif)
快速拼写检查程序实验报告
快速拼写检查程序实验报告
一、实验目的
1、培养学生综合了解软件开发过程的知识。
2、培养学生综合运用面向对象设计方法的能力。
3、培养学生综合掌握常用软件分析、设计工具的使用方法。
二、实验内容
快速拼写检查程序基本要求说明如下:
1、进行拼写检查的文件以文本文件形式存储于外存上;
2、只检查文件中英文单词的拼写错误;
3、单词是用字母(a…z或A…Z)定义,任一非字母字符作为分隔符;
4、判断单词拼写正误的依据是词典,词典以文本文件形式存放于外存上;
5、词典文件第1行为词典的名称,以后每一行存放一个单词;
6、输出结果以文本文件形式存储,其格式为:
第1行:
被拼写检查的文件名+词典名
第2行后的每一行:
出错单词位于第x行
7、设计一个合理的GUI,注意GUI界面类与功能类的关系应比较松散。
三、程序功能
1、检查单词
用户运行程序后,为了体现“快速”,程序默认进入“检查单词”功能界面。
默认界面中为用户显示了所选文件的路径。
读单词:
用户可以打开一篇已存档的文章,也可以直接在弹出窗口中输入单词;
读字典:
用户必须选择一个已存档的字典,如果用户误选,将导致程序误判;
检查拼写:
如果用户已完成以上操作,程序会检查单词并显示结果,否则程序会报错;
保存结果:
程序自动覆盖保存上次检查结果的存档文件,用户也可以另存结果。
2、编辑字典
考虑到用户可能拥有自己的字库,所以本程序提供修改和新建字典功能。
用户在默认界面中选择“编辑字典”功能后,将弹出“编辑字典”功能界面。
新建字典:
用户可打开任一文件作为字典,也可以手工输入字典;
程序不能检查格式,务请用户保证首行为字典名,接着一词一行;
(单词排序):
用户编辑字典过程中,也可将程序做“单词排序”用,程序将把乱序单词保存为“a-z”顺序的文本文件。
3、查看说明
为便于用户正确操作,程序在默认界面中提供了“帮助”、“关于”两个按钮。
帮助:
弹出用户操作步骤和程序功能等相关信息;
关于:
弹出程序开发小组成员的基本信息。
4、备注:
本想提供“修改建议”功能,考虑到英文字母的排序闭包极大,且本程序不是用于翻译只用,故为了满足“快速”,放弃实现该功能。
四、面向对象设计过程
1、需求分析
1、实现一个用于简单拼写检查的程序,用户通过指定字典来检查测试单词的拼写正误,用户可将错误信息保存起来;
2、测试文件和字典文件的格式要求较严,为方便用户使用,程序应另外为用户提供更加随意的文本载入方式,同时应具备实现用户DIY相关文件的功能;
3、设计一个友好的用户界面,提供“查看说明”功能以帮助用户快速入门,从而让用户真正体会到该程序的便捷与人性化功能设计。
2、用例图设计
1、用例图说明:
1,“查看说明”服务可体现为“查看关于”和“查看帮助”两个子服务;
2,“检查单词”服务以“载入字典”和“载入文本”为前提,其中“载入文本”可分为“光标输入”和“选择文件”两种方式,“检查单词”还提供了“另存结果”的扩展服务;
3,“编辑字典”服务可体现为“修改字典”和“新建字典”两个子服务。
2、事件流描述:
*描述原则:
1,对每个用例都做事件流描述,存在泛化关系的用例只对被泛化用例设计事件流;
2,这里的事件流描述是参照需求分析范例模板“图书管系统的用例事件流描述”设计的;
3,此处所用截图是以上用例图各相关用例的描述内容。
1、“查看说明”用例事件流2、“检查单词”用例事件流
3、“载入文本”用例事件流4、“载入字典”用例事件流
5、“编辑字典”用例事件流6、“另存结果”用例事件流
3、序列图设计
*设计原则:
1,对每个用例都设计一个顺序图,存在泛化关系的用例只对泛化用例设计顺序图;
2,顺序图的消息传递对应用例事件流的描述,每个顺序图基本都会包含界面和控制对象;
3,这里只显示程序重要功能用例的顺序图,无需顺序图描述的用例不做赘述。
1、查看说明:
2、载入文本:
该用例的“选择文本”顺序图与“载入字典”类似,“光标输入”无需顺序图。
3、载入字典:
4、检查拼写:
5、另存结果:
6、编辑字典
4、类图设计
1、界面类和控制类
界面类说明:
本程序有两个界面类,分别是主界面和字典编辑界面。
界面类接收来自用户的操作动作,响应用户的要求,并且返回程序运行结果,输出显示给用户。
控制类说明:
本程序设计了一个控制类,把程序中绝大部分的功能实现操作集中在此类中,以降类与类之间的耦合性,和方便代码重用和功能修改。
2、实体类
根据系统的要求,经过分析本系统主要有三个实体类,分别是字典类、文本类和检查类。
字典类说明:
字典类是系统中字典的抽象,它有两个属性,一个是字典路径,表示存放字典的文件所在的绝对路径;一个是字典内容,表示字典的内容。
字典类主要有读取字典方法和保存字典方法,调用读取字典方法可以从外存读入字典文件,调用保存字典方法可以保存用户编辑的字典。
文本类说明:
文本类是系统中待检测文本的抽象,它有两个属性,一个是文本路径,表示待检测文本所在的绝对路径;一个是文本内容,表示待检测文本的内容。
文本类主要有读取文本方法,用来从外存读取待检测文本。
检查类说明:
检查类有三个属性,一个是字典类引用,一个是文本类引用,分别对应检查对象所联系的字典对象和文本对象,另外一个属性是检查结果,表示此次检查的结果。
检查类主要有检查文本方法和保存结果方法,调用检查文本方法进行文本检查,调用保存结果方法来保存此次检查的结果。
检查类是字典类和文本类的联系类,它表示字典类和文本类之间的检查关系。
一个检查对象对应一个字典对象和一个文本对象。
此外每一个类都有对于自身属性的访问修改方法。
5、状态图设计(检查拼写功能状态图)
6、活动图设计(检查拼写功能活动图)
五、面向对象实现过程
1、程序类设计说明:
1、实体类:
Dictionary、Text、Check,分别对应类设计中的3个实体类;
2、控制类:
Process,用来集中进行程序的主要处理,其中有读取文件loadFile方法,保存文件saveFile方法,文本分析check方法,对字典按序进行排序的sort方法。
3、界面类:
Frame和Frame1,Frame是主窗口,Frame1是编辑字典窗口。
2、程序运行机制说明:
1、程序要求先读入字典,字典从外存里读入,并且字典要按要求的格式存放。
2、待编辑的文本可以有两种方式取得,一种是从外存读入,一种是直接在文本框里编辑文本。
3、当选定好字典和弄好待检测文本后,按检测按钮开始进行检测。
4、在程序的运行中始终只有一个有效的Dictionary、Text和Check对象,Dictionary对象在读入字典后生成,Text对象在读入文本后生成,Check对象在点击检查按钮后生成。
5、Text对象中的文本内容属性的值始终是界面中文本框的内容。
在点击检查按钮后,如果之前没有读入文本,也就是说没有生成Text对象时,就生成一个Text对象,并把它的文本内容属性的值置成界面中文本框里的内容,路径属性设为空,文本不作保存操作。
6、每次检查操作是Check对象对当前的Dictionary对象和Text对象进行检查,检查不区别大小写,只检查拼写是否有错。
7、编辑字典窗口可以进行字典编辑。
可以重新编辑一个字典,也可以对一个已有的字典进行修改。
字典编辑时要求按字典的格式书写,但不需要排序,当保存字典时程序自动会将刚编辑的字典按字典序进行排序。
8、每次检查完毕后系统除了在主窗口上显示结果,还把结果存放到result.txt的文件里,result.txt的内容是上一次检测的结果,也可以把结果存放到其他文件中。
9、程序主要实现拼写检查功能和编辑字典功能,其中编辑字典功能也可作为单词的排序之后。
六、程序实现
1、帮助信息界面
2、开始界面+关于
3、拼写检查界面
4、编辑字典+打开文本
5、编辑字典+排序单词
七、课程设计总结
1、小组总结
本程序实现了课程设计提出的所有功能,并为用户提供了很多便捷的操作。
人性化的功能设计和界面设计将使用户对“快速拼写检查程序”使用得更得心应手。
本次课程设计的完成过程中,小组成员的交流更加紧密,大家的设计思路一直保持一致,各自的强项不仅得到互补,同时也促进了三人的全面提高。
经过本次实验,我们比较完整地运用到了本学期学到的知识,再一次深入体会了面向对象程序的设计和实现方法,达到了实验的目的。
2、组员总结: