串查找和替换数据结构课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

长沙理工大学

《数据结构》课程设计报告

黄博

学院计算机与通信工程专业计算机科学与技术班级计算机0903班学号************ 学生姓名黄博指导教师陈倩诒

课程成绩完成日期2011年7月3日

课程设计成绩评定

学院城南学院专业计算机科技与技术班级计算机科学与技术学号200986250311 学生姓名黄博指导教师陈倩诒完成日期2011年7月3日

指导教师对学生在课程设计中的评价

指导教师对课程设计的评定意见

课程设计任务书

城南学院计算机科学与技术专业

用C++语言解决串的查找和替换问题

学生姓名:黄博指导老师:陈倩诒

摘要本课程设计主要解决的在一篇英语文章中,在文章中找出所指定的单词,然后对所指定的单词进行替换,替换为另一个单词,再存盘的课程设计。先建立一个文件,然后从文件中读取字符串保存到数组中。从键盘输入被替换的单词,然后删除这个单词。从键盘中输入替换的单词,把它插入到被删除的单词的位置。然后把该字符串再写入到文件中。程序通过调试运行,初步实现了设计目标。

关键词程序设计;C++;替换;字符串

目录

1. 引言 (1)

2. 课程设计目的和要求 (2)

2.1 课程设计目的 (2)

2.2 课程设计要求 (2)

3. 课程设计分析 (3)

3.1课程设计思路 (3)

3.2课程设计要求函数分析 (3)

3.3课程设计主要流程 (4)

4. 课程设计调试 (6)

5. 课程设计总结 (9)

参考文献 (10)

附录 (11)

1 引言

数据结构是一门理论性强,思维抽象,难度较大的一门课程。是基础课专业课之间的桥梁。该课程的先行课时计算机基础,程序设计语言、离散数学等,后续课程有操作系统、编译原理、数据库原理、软件工程等。通过本门课程的学习,我们应该透彻的理解各种数据的特点,学会数据的组织方法和实现方法,并进一步培养良好的程序设计能力和解决实际问题的能力,而且该课程的研究方法对我们学生在校和离校后学习和工作有着重要的影响。[1]

数据结构是计算机科学与技术的一门核心专业基础课程,在该专业课程中有着承上启下的作用,学习好数据结构对于提高理论认知水平和实践操作能力有重要的作用,学习数据结构的最终目的是为了获得解决求解问题的能力。对于现实世界的问题,应该从中抽象出一个适当的数学模型,该数学模型在计算机的用数构表示出来,然后在设计一个求数学模型的的算法,再进行编程调试,最后获得问题的解答。

数据课程设计着眼培养我们实践能力,加强编程能力的培养。

第1页

2 课程设计目的和要求

2.1 课程设计目的

通过课程设计的题目练习,强化对所学知识的掌握及对问题分析和任务定义的理解,对题目做了相应的逻辑分析和数据结构的选择通过对任务的分析,为操作对象定义相应的数据结构,一过程化程序设计的思想原则划分各个模块,定义数据的抽象数据类型。分模块对题目进行设计,强化对C++语言的掌握和对数据结构选择及掌握。通过程序的编译掌握对程序的调试及思想,并且学习一些编程的技巧。养成良好的编程习惯。[2]

以及让学生对书本的上的知识进行实践。算法和数据结构是计算机科学与技术专业综合的专业基础课。它不仅是计算机学科的核心课程,而且成为其他理工专业的热门选修课。它又是操作系统、编译原理、数据库原理、算法分析、人工智能、图像处理等专业课程的前导课。具有承上启下的作用。数据结构的研究不仅设计到计算机硬件的研究方面,而且与计算机软件研究有着密切的关系。计算机科学各领域都要用到数据构,该课程的目的就是介绍一些常用的数据结构,阐明数据结构的内在逻辑关系,讨论它们计算机内的储存表示,并结合各种典型它们在进行各种运算时的动态性质和实际的执行算法。

2.2 课程设计要求

1.问题分析和任务的定义

对问题的描述应避免具体的算法和涉及的数据结构,它是对要完成的任务明确的回答,强调是做什么,而不是怎么做。

2.详细的设计及编码

算法的描述与代码的编写。

3.上机调试

源程序的输入及代码的调试。

第2页

3 课程设计分析

3.1 课程设计思路

先建立一个文件,然后从文件中读取字符串保存到数组中。从键盘输入被替换的单词,然后删除这个单词。从键盘中输入替换的单词,把它插入到被删除的单词的位置。然后把该字符串再写入到文件中。

计算机上的非数值处理的对象基本上上字符串数据,字符串一般简称为串。串(string)是由零个或多个字符组成的有限序列,一般记为s=`a1a2…an`(n大于零)。通常称字符在序列中的序号为该字符在串中的位置,子串在主串中的位置则以子串的第一个字符在主串中的位置来表示。当两个串的每个字符都相等时(串值相等),称这两个串是相等的。[3]

在子串的查找定位过程中,分别利用计数指针j和k指示被替换串和替换串中当前正待比较的字符位置。所用算法的基本思想是:首先利用指针i来完成被替换串和替换串在文本中的遍历,从被替换串和替换串的第一个字符起进行比较,若相等则继续逐个比较后续字符;否则完成一次比较,指针i递增进行下一次的比较。以此类推,直至匹配成功[4]。

3.2 课程设计主要函数分析

本设计所采用的数据结构

char String[65535]; //长度要大于输入文本文件的长度!

char findString[50]; //输入的要查找的字符

char replaceString[50]; //输入的替换后的string.

程序中各部分功能函数:

void InitStr()/*从文件初始化数组*/;

void InputReplaceChar()/*输入要替换的字符串*/;

int FindString()/*查找第一个出现要查找字符的下标*/;

void FindStrings()/*查看文章中共有多少个要查找的字符*/;

void Insert(char source[],int index,char target[])/*从指定的下标开始插入target数组

第3页

相关文档
最新文档