




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
长沙理工大学数据结构课程设计报告荆竹学 院 城南学院 专 业 计算机科学与技术 班 级 计算机1002 学 号 201086250226 学生姓名 荆竹 指导教师 陈倩诒 课程成绩 完成日期 2012年6月24日课程设计成绩评定学 院 城南学院 专 业 计算机科学与技术班 级 计算机1002 学 号 201086250226 学生姓名 荆竹 指导教师 陈倩诒 完成日期 2012年6月24日指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩 指导教师签字 2012年7月10日课程设计任务书城南学院 计算机科学技术专业 课程名称数据结构课程设计时间20112012学年第2学期1718周学生姓名荆竹指导老师陈倩诒题 目串的查找和替换主要内容:用C语言解决在一篇英语文章中,对全文进行查找和特定修改,进行串的查找和替换的程序设计。要求:(1)通过实际项目的分析、设计、编码、测试等工作,掌握用C语言来开发和维护软件。(2)按要求编写课程设计报告书,能正确编写分析、设计、编码、测试等技术文档和用户使用手册。应当提交的文件:(1)课程设计学年论文。(2)课程设计附件(主要是源程序)。用C+语言解决串的查找与替换问题学生姓名:荆竹 指导老师:陈倩诒摘 要 本课程设计主要解决在一篇英语文章中中,打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘.在课程设计中,系统开发平台为Windows 2000,程序设计设计语言采用Visual C+,程序运行平台为Windows 98/2000/XP。串(string)是由零个或多个字符组成的有限序列,一般记为s=a1a2(n大于零)。通常称字符在序列中的序列号为该字符在串中的位置,子串在主串中的位置则以字串的第一个字符在主串中的位置来表示。当两个串的每个字符都相等,成这两个串是相等的。初步实现了设计目标,并且经过适当完善后,将可以应用解决实际问题。关键词 程序设计;数据结构;C语言;串的查找和替换参考文献:1 严蔚敏,吴伟民主编. 数据结构(C语言版).北京:清华大学出版社, 20022 殷人昆等著.数据结构.(C+版).北京:清华大学出版社,20013 金远平著.数据结构(C+描述).北京:清华大学出版社,2005 4 许卓群等著.数据结构与算法.北京:高等教育出版社,20045 严蔚敏、吴伟民.数据结构习题集(C语言版).北京:清华大学出版社,2002 13目 录1引言11.1课程设计目的21.2设计论文要求22系统分析32.1功能分析32.2功能流程图33详细设计43.1数据结构的设计43.2算法的设计44运行与测试74.1程序的运行74.2程序的调试85总结与心得9附录:源程序代码 101 引 言课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。数据结构是一门重要的专业基础课,是计算机理论和应用的核心基础课程。数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。1.1 课程设计目的巩固和加深对数据结构的理解,通过上机实验、调试程序,加深对课本知识的理解,最终使学生能够熟练应用数据结构的知识写程序。(1)通过本课程的学习,能熟练掌握几种基本数据结构的基本操作。(2)能针对给定题目,选择相应的数据结构,分析并设计算法,进而给出问题的正确求解过程并编写代码实现。1.2 设计论文要求设计内容:问题描述:打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。内容要求:1.根据题目要求进行需求分析,分析出该项任务的主要功能和设计重点。2.根据需求分析的内容划分模块3利用VC+软件进行程序设计并调试通过4.写出课程设计说明书2系统分析2.1功能分析首先在C盘里存入一篇英文文章,文件名为Text.txt。利用标准库函数fopen()1打开一个文件,然后从文件中读取字符串保存在数组中,完成文件的读入。接下来运行程序,首先输入需要替换掉的单次,再输入替换后的单次,完成全文所有的单次替换后并保存改文件。在这次的课程设计中我选择的题目是串的查找和替换。该课程设计实现了对文件的查找和替换。我采用的数据结构是字符串数组,这样操作起来比较方便,思路比较清晰。而如果采用指针则容易造成思路混乱,增加出错的几率。该课程设计可以实现对已打开文件的查找和替换,操作完毕关闭程序后,文件的内容为修改后的内容,实用性比较强。2.2功能流程图串的查找和替换串的替换串的查找图2.13详细设计3.1数据结构的设计本设计所采用的数据结构如下: #define SIZE 20 /* 查找单词字符和输入替换单词少于20 */ #define MAXLEN 10000 2/* 文章字符不大于10000 */ char keyWordsSIZE; /* 查找单词 */ char copyWordsSIZE;/* 替换单词 */ char strOneMAXLEN 3; /* 将未改文章的所有字符储存在里面 */ char strTwoMAXLEN; /* 将改后文章的所有字符储存在里面 */3.2算法的设计(1)课程设计中首先要实现初始化数组。 用int和char进行定义和标记,例如: int flag; /* 用于标记匹配单词 */ int countFlag; /* 用于检查匹配计数 */ int countOne = 0; /* 记录未改文章字符个数 */ int countTwo = 0; /* 记录改后文章字符个数 */ char keyWordsSIZE; /* 查找单词 */ char copyWordsSIZE;/* 替换单词 */ char strOneMAXLEN; /* 将未改文章的所有字符储存在里面 */ char strTwoMAXLEN; /* 将改后文章的所有字符储存在里面(2)用fopen()命令读入指定文本文件,例如我的Text.txt文件放在C盘,那么可以用命令 fopen(“c:Text.txt”) 。(3)对指定单词进行查找,在这里运用for循环语句进行查找,并用if语句进行判断,注意检查时候对单词的前一个字符和后一个字符进行是否为空格,回车等特殊符号,保证不会进行错误的更换操作。具体程序语句如下:for (i=0; icountOne; i+) if (keyWords0 = strOnei)/* 判断查找单词第一个字符是否匹配 */ if ( = strOnei-1) | (n = strOnei-1) | (0 = i)/* 检查单词前的一个字符 */ flag = 1; countFlag = i + 1; for (j=1; keyWordsj!=0; j+) if (keyWordsj != strOnecountFlag+)4/* 判断是否单词是否匹配 */ flag = 0; break; (4)在找到我们所需要查找兵替换的单词后,对其进行指定单词的替换在替换时,注意对单词的后一个字符进行符号的检测,以免发生错误操作。if ( = strOnecountFlag) | (n = strOnecountFlag) | (EOF = strOnecountFlag)/* 检查单词后的一个字符 */ if (1 = flag)/* 若匹配,则进行拷贝 */ i = countFlag-1; for (j=0; copyWordsj!=0; j+) strTwocountTwo+ = copyWordsj; (5)在查找和替换完之后对文件进行存盘,以免丢失信息在此用for语句和fputc()与fclose()实现,具体语句如下: for (i=0; icountTwo; i+)/* 写入文件 */ fputc(strTwoi, fp); fclose(fp); (6)最后再进行主函数的设计,用gets()命令输入数据,具体函数内容如下 FILE *fp; printf(请输入要查找的单词: ); gets(keyWords) 5; printf(请输入要替换的单词: ); gets(copyWords) ;然后对之前所有的函数模块进行合理的整合,整合后的函数模块顺序如下:1. 数组的定义和初始化2. 开始输入界面3. 开始读入指定文件4. 对指定单词进行查找5. 在查找并确定指定单词后进行替换6. 对修改后的文件进行存盘详细程序源代码请见附录:源程序代码4 运行与测试4.1程序的运行执行程序输出为: 请输入要查找的单词:The请输入要替换的单词:Abc程序运行前的文章,如图4.1:图4.1运行程序界面,如图4.2图4.2运行后的Text文章,如图4.3:图4.34.2程序的调试在调试程序中我遇到了一些问题,主要内容如下:(1) 打开的文件中,要替换文件的内容,只有当执行完替换后,并且能 够完全退出可执行程序时,内容才可以完全替换。(2)在源代码中,如果子函数放在主函数之后,需要先对子函数声明。为使源代码更为简洁,我将子函数放在主函数前面。这样可以使程序更为简洁,思路更加清晰。5总结与心得两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在课程设计过程中,我一开始对自己如何完成一个独立的数据结构茫然不知所措,通过向老师和同学们请教,我逐步的了解了如何完成这次课程设计,并且提高了我对串的操作的熟练程度。 课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础在这次数据结构课程设计过程中,体现出自己单独完成问题的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。在此我十分感谢我的老师,在他们的指导下,我克服了在课程设计过程中许多的难题与不足,使我能够熟练的掌握了关于串的有关操作。 由于我的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受老师的批评与指正,我将万分感谢。附录:源程序代码 #include #include #define SIZE 20 /* 查找单词字符和输入替换单词少于20 */ #define MAXLEN 10000 /* 文章字符不大于10000 */ void main(void) int i, j; int flag; /* 用于标记匹配单词 */ int countFlag; /* 用于检查匹配计数 */ int countOne = 0; /* 记录未改文章字符个数 */ int countTwo = 0; /* 记录改后文章字符个数 */ char keyWordsSIZE; /* 查找单词 */ char copyWordsSIZE;/* 替换单词 */ char strOneMAXLEN; /* 将未改文章的所有字符储存在里面 */ char strTwoMAXLEN; /* 将改后文章的所有字符储存在里面 */ FILE *fp; printf(请输入要查找的单词: ); gets(keyWords); printf(请输入要替换的单词: ); gets(copyWords); if (NULL = (fp = fopen(c:Text.txt, rt+)/* 读文件 */ printf(文件打开失败!n); exit(1); while (!feof(fp)/* 读文件 */ strOnecountOne+ = fgetc(fp); countOne-;/* 减去最后一个文件结束字符 */ for (i=0; icountOne; i+) if (keyWords0 = strOnei)/* 判断查找单词第一个字符是否匹配 */ if ( = strOnei-1) | (n = strOnei-1) | (0 = i)/* 1.检查单词前的一个字符 */ flag = 1; countFlag = i + 1; for (j=1; keyWordsj!=0; j+) if (keyWordsj != strOnecountFlag+)/* 是否匹配 */ flag = 0; break; if ( = strOnecountFlag) | (n = strOnecountFlag) | (EOF = strOnecountFlag)/* 2.检查单词后的一个字符 */ if (1 = flag)/* 若匹配,则进行拷贝 */ i = countFlag-1; for (j=0; copyWordsj!=0; j+) strTwocountT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 印刷用橡胶耐油墨性能对比分析报告
- 绝缘套管制造工上岗考核试卷及答案
- 第一单元 生命之杯-奥林匹克号角(说课稿)-2025-2026学年人音版初中音乐八年级下册
- 产品追溯分析报告
- 高中化学新教材同步说课稿必修第一册第3章第2节第1课时常见的合金及应用
- 煎酒工职业技能考核试卷及答案
- 电气设备维护周期合理性分析报告
- 民族乐器演奏市场调研分析报告
- 整流器在太阳能变流器应用分析报告
- 吉林大学出版社说课稿-2025-2026学年中职中职专业课电子商务类73 财经商贸大类
- ICU常见体位护理
- 降本增效总结汇报
- JJF(蒙) 058-2023 重点排放单位碳计量审查规范
- 不交社保给补贴协议书
- 叉车产品数据表
- (完整版)文化体育馆建设项目可行性研究报告(完整版)
- 2023年骨科疾病诊疗指南(中华医学会骨科学分会)
- 中国昆曲课件
- 2025国开电大知识产权法形考作业1234答案
- 公司内部电子发票管理制度
- 市政道路工程新技术、新产品、新工艺、新材料应用
评论
0/150
提交评论