英文文本文件处理程序课程设计报告_第1页
英文文本文件处理程序课程设计报告_第2页
英文文本文件处理程序课程设计报告_第3页
英文文本文件处理程序课程设计报告_第4页
英文文本文件处理程序课程设计报告_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 计算机学院计算机科学与技术专业程序设计综合课程设计报告 (20010/2011学年 第一学期) 学生姓名: 学生班级: 学生学号: 指导教师: 2010年01月08日程序设计综合课程设计英文文本文件处理程序29目录第1章 课程设计的目的与要求.11.1 课程设计的目的.11.2 课程设计的约束条件.11.3 课程设计的预备知识.11.4 课程设计的要求.1第2章 课程设计的任务内容.22.1 总体功能描述.22.2 功能描述图.22.3 性能描述.3第3章 课程设计详细设计说明.3 3.1 课程设计的设计思路.33.2 系统设计.4 3.2.1 模块分解图.4 3.2.2 模块简要描述.6

2、3.3 接口函数描述.7 3.4 系统流程图.9第4章 编码及测试 .10 4.1 编码调试.10 4.2 系统测试.16 4.3 程序不足说明.20第5章 软件使用上说明.21第6章 课程设计心得与体会.22 附录一 参考文献.23附录二 程序清单.23第1章 课程设计的目的与要求1.1 程序设计的目的 将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总和,结合设计题目进行综合性应用。通过课程设计,同学应该在以下各方面得到锻炼:(1) 进一步巩固、加深学生所学专业课程c+语言教程的基本理论认 识 ,理论联系实际,进一步培养学生综合分析问题、解决问题的能力

3、。(2) 全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3) 利用所学知识,开发小型应用系统,掌握应用c+编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4) 对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握面向对象程序设计方法。(6)熟练掌握c+语言的基本语法,灵活运用各种数据类型。 (7)进一步掌握在集成环境下如何调试程序(单步调试、设置断点、观察表达式、分块调试)和修改程序。1.2 课程设计的约束条件 硬件环境:内存256mb以上;硬盘60g以上 其他组件:光驱(cdrom);显卡(svga)适配器;

4、集线器;交换机。 系统平台: windowsxp操作系统, office 2000办公软件 设计语言:c+语言 运行软件:microsoft visual c+6.01.3 课程设计的预备知识 熟悉c+语言程序设计的基本知识及vc+编辑器的使用方法。1.4 课程设计的要求 课程设计基本要求: (1)仔细分析设计题目,画出程序流程图,编写程序源代码。 (2) 积极上机调试源程序,增强编程技巧与调程能力。 (3) 认真书写课程设计预习报告,课程设计说明书。(4) 遵守课程设计要求和文本文件处理系统,服从指导教师的安排,确保课程设计的顺利完成。 程序要求:(1) 用c语言实现系统;如何调试程序; (

5、2)函数功能要划分好(结构化程序设计); (3)界面友好(良好的人机交互),加必要的注释; (4)提供程序测试方案.第2章 课程设计的任务内容2.1总体功能描述 用c/c+设计出英文文本文件处理系统,参照microsoft word 的部分字处理功能,实现以下功能:1、统计总行数、空行数、单词数、各标点符号数、空格数。例如程序可执行文件为”mytp.exe”,那么”mytp aaa.txt”可以显式”aaa.txt”文件的总行数、空行数、单词数、各标点符号数、空格数; 2、查找并显示包含某些字符的行。”mytp aaa.txt world”将显式出所有包含”world”的行及行数;3、 简易拼

6、写检查。建立有效单词表,保存在一个文件中,可以对一个文件进行拼写检查,把发现的错误行列出来,并显式错误单词首字符所在行、列数值。进一步可以考虑加入一些词法的处理,比如复数、规则的过去式、过去分词、现在进行时等。命令行格式:”mytp -c aaa.txt”,参数”-c”表示拼写检查。2.2 功能描述图:新建文本文件功能统计文本文件功能查找单词功能新建单词表功能显示单词表功能文本文件处理系统图2-1 功能描述图2.3性能描述通过文本文件处理系统可以对输入的文本进行保存,并可以随时调用文本文件,对它保存的内容进行总行数、单词数、字符数、标点符号数进行统计。还可以查找文本中某指定单词在文件中出现的次

7、数。还可以以自己的想法建立一个单词表,将其保存在一个文本文件中,可以随时调用,查看。第3章 课程设计详细设计说明3.1 课程设计的设计思路(1)建立newtext函数 输入文档内容并将其保存在指定文件中,文件可以自己命名。(2)建立tongji函数 调用在newtext中建立的文本文件,并对其中的文档的行数、单词数、字符数、符号数进行统计。(3)建立research函数 调用在newtext中建立的文本文件,并可以统计指定单词在文中出现的次数,单词可以任意指定。(4)建立dancibiao函数 输入所用单词,并将其保存在指定的文本文件中,以便下次调用。(5)建立主函数 调用以上各函数,只要按主

8、函数要求运行程序,这个简易的文本文件处理系统程序便可以完成运行了。3.2 系统设计 3.2.1 模块分解图 函数功能模块图: 新建文本文件功能统计文本文件功能查找单词功能新建单词表功能 显示单词表功能文本文件处理系统 图3-1 函数功能模块图文本建立功能模块图:新建文本文件功能新建文件并打开输入文档内容功能 保存文本文件功能 统计文本文件功能退出功能图3-2 文本建立功能模块图统计文本模块:统计文本功能显示统计结果功能调用文本文件功能 统计文本文件功能 统计文本文件功能显示文本文件功能图3-3 统计文本模块图查找单词模块:查找单词功能查找单词功能显示查找结果功能调用文本文件功能图3-4 查找单

9、词模块图单词新建模块:单词表新建功能退出功能新建文件并打开 保存单词表功能 统计文本文件功能输入单词功能图3-5 单词新建模块图单词表显示模块:单词表显示功能退出程序显示单词表功能调用单词表功能图3-6 单词表显示模块图3.2.2 模块简要描述1. 文本建立模块: 功能:新建并保存文本文件; 存储文本文件:d:aaa.txt ; 输入项:多行字符串和文件名称; 输入媒体:键盘。2. 统计文本模块: 功能:在界面上显示文本文件的内容,然后实现对文本文件统计功能; 输入项:由键盘输入文件名d:aaa.txt; 输出项:显示文本文件内容在界面上。3. 查找单词模块: 功能:统计单词在文本文件中出现的

10、次数。 输入项:由键盘输入文件名d:aaa.txt文件、要查找的单词; 输出项:单词在文本文件中出现次数在界面显示。4. 单词表模块:新建文本文件d:word.txt,将所需单词输入保存,关闭 文本文件。要用时可以打开单词表,并显示在界面上。3.3 接口函数描述在这个文本文件处理系统的程序中含有一个主函数和五个子函数,各自有其实现的功能。主函数:函数名:int main( )函数功能:程序开始的入口,掌握程序的运行与退出功能,实现对其他子函数的调用功能。子函数:1.函数名:void newtext( ) 函数功能:文本文件的新建与保存功能; 返回值:无2.函数名:void tongji( )

11、函数功能:实现文本文件统计功能。 返回值:无3.函数名:void research( ) 函数功能:查找单词在文本文件中出现次数功能。 返回值:无4.函数名:void dancibiao( ) 函数功能:建立并保存单词表功能。 返回值:无5.函数名:void open( ) 函数功能:实现显示单词表在界面功能。 返回值:无3.4 系统流程图 开始退出程序n 显示单词表文本调用单词表yn输入5yy关闭单词表文件输入单词表,以“#”号键结束n输出不能打开文件yfp=fopen(d:aaa.txt,w)=null新建单词表输入2输入4n显示结果输入要查找单词进行统计调用文本文件输入3n显示结果调用文

12、本文件统计文本文件yn关闭文本文件输入文档以“#”号键结束ny输出不能打开文件新建文件y输入1第4章 编码及测试 4.1 编码调试头文件:#include#include#includeusing namespace std;主函数,调用其它函数,实现程序运行与退出功能。int main( ) void newtext(); void tongji(); void research(); void dancibiao(); void open(); int n; cout*endl; cout*end; cout*end; cout*endl; cout*如果输入1,建立新文档*endl; c

13、out*如果输入2,统计文本文件*endl; cout*如果输入3,搜索指定单词*endl; cout*如果输入4,建立单词表*endl; cout*如果输入5,显示单词表*endl; cout*endl; cout*end; cout*endl; cout*endl; cout*请输入n:*n; if(n=1) newtext(); if(n=2) tongji(); if(n=3) research(); if(n=4) dancibiao(); if(n=5) open(); return 0;文本文件的新建与保存,即打开文件,由键盘输入文档到文本文文件d:aaa.txt中保存,然后关闭

14、文本文件。void newtext() file *fp; char txt; cout*endl; cout*end; cout*end; cout*endl; cout*请输入档:*endl; cout*endl; cout*end; cout*end; cout*endl; if(fp=fopen(d:aaa.txt,w)=null) coutcannot open filen; exit(0); txt=getchar(); txt=getchar(); while(txt!=#) putc(txt,fp);putchar(txt); txt=getchar();统计文本文件的的总行数

15、、单词数、字符数、符号数。void tongji() int num0=0; int num1=0; int num3=0; int num4=0; int tempernum0=0; int line=0; int i; string str;/不可以用char定义。 string filename; fstream file; cout*endl; cout*endl; cout*endl; cout*endl; cout*请输入文名:*endl; cout*endl; cout*endl; cout*endl; cout*filename; file.open(filename.c_st

16、r();/例如输入的是 d:hamlet.txt if(!file) coutfile open failendl; cout*endl; cout*endl; cout*endl; cout*endl; cout*文本中的内容是:*endl; cout*endl; cout*endl; cout*endl; cout*endl; while(getline(file, str, n) coutstrendl;/文本输出 line+;/行数统计 int n=str.length(); if(n!=0) tempernum0+;/统计非空行末尾的单词数目 string:iterator itr=

17、str.begin(); for(i=0;in-1;i+) if(itri= &itri+1!= ) num0+;/字数统计,非空行末尾的单词没有被统计进去,最后要再加上非空行的行数。 for(i=0;in;i+) if(itri!= ) num1+;/字符数目统计 for(i=0;in;i+) if(itri= ) num3+;/空格数目统计 for(i=0;in;i+) if(itri=,|itri=.|itri=;|itri=?| itri=!|itri=/|itri=|itri=()| itri=%|itri=*|itri=#|itri=&| itri=) num4+;/符号数统计co

18、ut*endl;cout*endl;cout*endl;cout*endl;cout*行数是:line*endl;cout*单词数是:num0+tempernum0*endl;cout*字符数是:num1*endl;cout*符号数是:num4*endl;cout*endl;cout*endl;cout*endl;cout*endl;file.close();查找某单词在文本文件中出现次数:void research() string filename; cout*endl; cout*endl; cout*endl; cout*endl; cout*请输入你要打开的文件名:*endl; co

19、ut*endl; cout*endl; cout*endl; cout* filename; ifstream infile(filename.c_str(),ios:in);/测试文件是否存在 if(!infile) cerr oops!unable to open file filename -bailing out!n ; exit(-1); string word; /* vector vec; vector :iterator iter=vec.begin(); while(infile word) vec.push_back(word); */ string name; cout*

20、endl; cout*endl; cout*endl; cout*endl; cout*请输入你要统计的单词:*endl; cout*endl; cout*endl; cout*endl; cout* name; int total=0; while(infile word) if(word=name) +total; /* for(iter=vec.begin();iter!=vec.end();+iter) if(*iter=name) +total; */ if(total=0) cout*endl; cout*endl; cout*endl; cout*endl;cout*没有找到你所

21、要查的单词!*; else cout *你所查找的单词共出现:total 次! ; cout endl; cout*endl; cout*endl; cout*endl; cout*endl;建立并保存文本文件d:word.txt,输入所需单词并保存。void dancibiao() file *fp; char txt;cout请输入单词:endl; if(fp=fopen(d:word.txt,w)=null) coutcannot open filen; exit(0); txt=getchar(); txt=getchar(); while(txt!=#) putc(txt,fp);p

22、utchar(txt); txt=getchar();实现单词显示在界面功能:void open( ) string str;/不可以用char定义。 string filename; fstream file; cout*endl; cout*endl; cout*endl; cout*endl; cout*请输入单词表名,打开单词表:*endl; cout*endl; cout*endl; cout*endl; cout*filename; file.open(filename.c_str();/例如输入的是 d:hamlet.txt if(!file) coutfile open fai

23、lendl; cout*endl; cout*endl; cout*endl; cout*endl; cout*单词表中的内容是:*endl; cout*endl; cout*endl; cout*endl; cout*endl; while(getline(file, str, n)coutstrendl;/文本输出4.2系统测试主函数,调用其它函数,实现程序运行与退出功能。主函数运行界面:图4-1 主界面输入1,实现文本文件新建与保存文本文件的新建与保存,即打开文件,由键盘输入文档到文本文文件d:aaa.txt中保存,然后关闭文本文件。其运行界面: 图4-2 文本输入界面输入2,进入统计文

24、本文件功能统计文本文件的的总行数、单词数、字符数、符号数。其运行界面:图4-3 输入文件名界面输入文件名后运行界面:图4-4文本显示和统计界面输入3,进入查找单词功能图4-5输入文件名界面输入文件名后运行界面:图4-6 输入查找单词界面输入要查找单词后运行界面:图4-7 次数显示界面输入4,进入单词表建立功能 建立并保存文本文件d:word.txt,输入所需单词并保存。其运行界面:图4-8 输入单词界面输入5,进入单词表显示功能实现单词显示在界面功能:其运行界面:图4-9 单词表打开界面图4-10单词表显示界面关于程序中保存的两个文本文件内容:图4-11文本文件d:aaa.txt图4-12 文

25、本文件d:word.txt4.3 程序不足分析 程序调试运行结果虽然符合要求功能但出现几处不足与缺点: (1)关于两个文本文件d:aaa.txt和d:word.txt,必须按指定途径打开,即两个文件必须在d盘中打开,否则不会显示文件内容,也无法调用它们进行文本统计和单词查找。 (2)文本文件d:aaa.txt只可以显示部分内容,一部分内容遗漏无法打开调用进行统计。第5章 软件使用说明 程序使用时按以下步骤执行:(1)运行程序,出现主界面,如图4-1所示。 如果输入1,建立新文档 如果输入2,统计文本文件 如果输入3,搜索指定单词 如果输入4,建立单词表 如果输入5,显示单词表 根据提示进行下一

26、步操作。(2)如果输入1,出现建立保存文本文件界面,如图4-2所示。 根据提示输入任何你想保存的内容,要注意: 按enrer键可以换到下一行; 按“#”号键完成输入。(3)如果输入2,出现统计界面,如图4-3、图4-4所示。 先输入要打开的文本文件名d:aaa.txt 然后按enter键可以将统计的结果显示在界面上。(4)如果输入3,出现搜索界面,如图4-5、图4-6、图4-7所示。 先输入文本文件名d:aaa.txt 然后输入要查找的单词,如果文件中没有这个单词将出现以下提示: “没有找到你所要查的单词!”,如果存在单词,则显示次数。(5)如果输入4,出现建立单词表界面,如图4-8所示。 根

27、据提示输入所需单词,注意: 按enter键换行; 按“#”号键结束输入。(6)如果输入5,出现打开单词表界面,如图4-9、图4-10所示。 输入单词表名称d:word.txt; 随后会显示单词表的内容。第6章 课程设计心得与体会 刚开始拿到课程设计任务书时,以为程序设计很容易,但真正做起来才发现有很多不了解的东西,但在完成程序的过程中,在老师的指导和同学的帮助下,我学到了很多。 开始做程序时,还从选定方向到模块的划分,到流程图的画法,再到最后的程序,突然觉得原来做什么都这么不容易。貌似很简单的几个操作可让我自己写的时候怎么就变得这么困难呢。平时的不认真,不努力,终于在这个最关键的时刻展现他的魔

28、力了,平时的漏洞这么多,用的时候还要一点点的补,好累。当程序终于可以运行的时候那种兴奋,很强烈很强烈。 经过一个学期的学习和上机实践,使我对c+语言有了更认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好的学习它,通过实践,我也发现我的好多不足之处,对各种控制结构及语句、数组的基本与高级应用、字符数组、动态数组、函数的定义、调用方式;函数在编程中的具体应用;以及变量存储特征与标识符的作用域,通过实践,使我在这些方面有了认识和提高。课程设计它是一项任务,更是一种挑战和历练。在课程设计中,为了使用时方便,着重对不足方面的知识进行了分析与理解,在这一过程中对文件的操作有了很大的提高。通过实际的演练,可以增强对知识的理解和运用能力。这次课程设计虽然很辛苦,也遇到了好多好多的困难,而且在编程序时遇到的种种难题都很打击我的自信心,但我并不认为这次课程设计所遇到的难题是无用的。相反这次课程设计还让我更好的认识自己的不足,在今后的学习中,我可以有方向性,有目的性的学习c+,不会再像以前一样毫无头绪。附录一 参考文献1. 指导书 (1) 谭浩强.c+程序设计.北京.清华大学出版社. 2.参考书朱晴婷.visual c+程序设计基础与实例分析.北京.清华大学出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论