c++课程设计数据结构(文章编辑)
c语言数据结构课程设计报告
![c语言数据结构课程设计报告](https://img.taocdn.com/s3/m/9308d6f669dc5022abea003d.png)
课程设计说明书学号:班级: 姓名:设计题目: 学生信息管理系统设计地点:设计时间: 至成绩评定:1、工作量: A(),B(),C(),D(),F( )2、难易度:A(),B(),C(),D(),F( )3、答辩情况:A(),B(),C(),D(),F( )4、报告规范度:A(),B(),C(),D(),F( )5、学习态度:A(),B(),C(),D(),F( )总评成绩:___________________________指导教师:___________________________一、设计题目与要求1、设计目的:编写一个学生信息管理系统,实现对学生信息的基本管理。
把所学数据结构知识应用到实际软件开发中去。
设计内容:本系统应完成一下几方面的功能:(1)增加一个学生的信息(需输入要增加学生的所有信息);(2)统计本班学生总人数及男女生人数。
(3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。
(4)按学号对所有学生信息排序,并输出结果;(5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。
2、设计要求:(1)用菜单调用(2)作为一个完整的系统,应具有友好的界面和较强的容错能力(3)上机能正常运行,并写出课程设计报告二、概要设计1. 功能需求分析学生信息管理系统设计学生信息包括:学号,姓名,性别,出生年月,电话使之提供以下功能:1.系统以菜单方式工作2.插入新的学生信息3.删除某学号的学生信息4.查找某学号的学生信息5.对学生信息排序6.统计学生人数7.输出学生信息2 总体设计功能结构图设计依据程序的功能需求,描述该系统功能的结构图如下:图1 系统功能结构图模块简介依据程序的功能模块的划分,各模块定义如下:(1)增加学生信息模块名:void addstu(LinkList *&L)模块描述:通过此模块可以在学生链表中添加新的学生信息。
C 数据结构课程设计
![C 数据结构课程设计](https://img.taocdn.com/s3/m/96fdf76f59fb770bf78a6529647d27284b7337af.png)
文件查找:设计文件查找功能,根 据用户的查询条件(如文件名、文 件大小、文件类型等)进行查找。
用户界面:设计用户友好的界 面,方便用户进行文件分类和 查找操作。
性能优化:对文件管理系统进 行性能优化,提高系统的运行 效率和稳定性。
课程设计要求
设计目标:实现一个学生信息管理系统,能够存储和管理学生的基本 信息,如姓名、学号、班级、成绩等。
数据结构选择:根据需求,可以选择使用链表、数组、哈希表等数据 结构来实现学生信息的存储和查找。
功能实现:系统需要实现学生信息的添加、修改、删除、查询等功能, 同时需要保证数据的一致性和完整性。
和协作
测试数据应覆盖所 有可能的输入和输 出情况
测试数据应包括边 界值、异常值和典 型值
测试数据应具有代 表性,能够反映实 际应用场景
测试数据应易于理 解和使用,便于进 行测试和验证
感谢您的观看
汇报人:
空间复杂度:衡量算法占用内 存的指标,通常用O(n)表示
时间复杂度:衡量算法执行时 间的指标,通常用O(n)表示
优化算法:通过减少时间复杂 度和空间复杂度来提高算法效
率
避免重复计算:通过缓存计算 结果来减少重复计算,提高算
法效率
命名规范:使用有意义的变量名、函数名等,便于理解代码含义 注释清晰:在关键部分添加注释,说明代码的功能、目的等 结构清晰:使用合理的代码结构,如函数、模块等,便于维护和修改 避免重复代码:尽量减少重复代码,提高代码的可重用性 测试和调试:编写测试用例,确保代码正确性和稳定性 版本控制:使用版本控制工具,如Git,记录代码修改历史,便于回溯
数据结构:使用链表、树、图等数据结构实现 图书分类和查找功能
数据结构课程设计(5篇)
![数据结构课程设计(5篇)](https://img.taocdn.com/s3/m/09d5f8bc85868762caaedd3383c4bb4cf7ecb7b0.png)
数据结构课程设计(5篇)第一篇:数据结构课程设计课程设计说明书设计名称:数据结构课程设计题目:设计五:二叉树的相关操作学生姓名:专业:计算机科学与技术班级:学号:指导教师:日期: 2012 年 3 月 5 日课程设计任务书计算机科学与技术专业年级班一、设计题目设计五二叉树的相关操作二、主要内容建立二叉树,并对树进行相关操作。
三、具体要求1)利用完全二叉树的性质建立一棵二叉树。
(层数不小于4层)2)统计树叶子结点的个数。
3)求二叉树的深度。
4)能够输出用前序,中序,后序对二叉树进行遍历的遍历序列。
四、进度安排依照教学计划,课程设计时间为:2周。
本设计要求按照软件工程的基本过程完成设计。
建议将时间分为三个阶段:第一阶段,根据题目要求,确定系统的总体设计方案:即系统包括哪些功能模块,每个模块的实现算法,并画出相应的流程图.同时编写相应的设计文档;第二阶段,根据流程图编写程序代码并调试,再将调试通过的各个子模块进行集成调试;第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。
三个阶段时间分配的大概比例是:35: 45: 20。
五、完成后应上交的材料本课程设计要求按照学校有关规范的要求完成,在课程设计完成后需要提交的成果和有关文档资料包括课程设计的说明书,课程设计有关源程序及可运行程序(含运行环境)。
其中课程设计说明书的格式按学校规范(见附件),其内容不能过于简单,必须包括的内容有:1、课程设计的基本思想,系统的总功能和各子模块的功能说明;2、课程设计有关算法的描述,并画出有关算法流程图;3、源程序中核心代码的说明。
4、本课程设计的个人总结,主要包括以下内容:(1)课程设计中遇到的主要问题和解决方法;(2)你的创新和得意之处;(3)设计中存在的不足及改进的设想;(4)本次课程设计的感想和心得体会。
5、源代码要求在关键的位置有注释,增加程序的可读性。
程序结构和变量等命名必须符合有关软件开发的技术规范(参见有关文献)。
数据结构课程设计c
![数据结构课程设计c](https://img.taocdn.com/s3/m/c6dcd1297ed5360cba1aa8114431b90d6c858987.png)
数据结构课程设计c一、课程目标知识目标:1. 让学生掌握C语言实现常见数据结构(如线性表、栈、队列、二叉树等)的基本原理和操作方法。
2. 使学生了解各类数据结构在实际应用中的优缺点,并能根据问题特点选择合适的数据结构。
技能目标:1. 培养学生运用C语言编写数据结构相关程序的能力,能够实现基本的数据结构操作。
2. 培养学生分析问题、设计算法和数据结构的能力,提高解决问题的实际操作能力。
情感态度价值观目标:1. 激发学生对数据结构学习的兴趣,培养良好的学习习惯和自主学习能力。
2. 培养学生的团队合作意识,让学生在讨论和分享中学会尊重他人,提高沟通能力。
3. 使学生认识到数据结构在计算机科学中的重要性,培养其创新精神和实践能力。
课程性质分析:本课程为高年级计算机科学与技术专业的核心课程,旨在让学生深入理解数据结构的基本原理,掌握C语言实现数据结构的方法,提高编程能力和解决问题的能力。
学生特点分析:学生已具备一定的C语言基础和编程能力,但可能对数据结构的应用和实现尚不熟悉。
因此,课程设计应注重理论与实践相结合,引导学生从实际问题出发,培养其解决复杂问题的能力。
教学要求:1. 结合课本内容,设计具有实际意义的数据结构案例,让学生在实践中掌握理论知识。
2. 注重启发式教学,引导学生主动思考、分析和解决问题,提高学生的创新能力和实践能力。
3. 强化团队合作,鼓励学生相互讨论、分享经验,提高课程教学效果。
二、教学内容1. 线性表- 教材章节:第2章 线性表- 内容安排:介绍线性表的定义、性质和实现方法,包括顺序存储和链式存储;实现线性表的基本操作,如插入、删除、查找等。
2. 栈和队列- 教材章节:第3章 栈和队列- 内容安排:讲解栈和队列的基本概念、性质及操作;实现栈和队列的存储结构和基本算法;探讨栈和队列在实际应用中的使用场景。
3. 串- 教材章节:第4章 串- 内容安排:介绍串的定义、存储结构及模式匹配算法;掌握KMP算法及其应用。
C语言版数据结构课程设计
![C语言版数据结构课程设计](https://img.taocdn.com/s3/m/854f11cf534de518964bcf84b9d528ea81c72f93.png)
C语言版数据结构课程设计
抽象数据类型(ADT)是一种抽象地阐述数据的结构,它定义了实现一个特定抽象逻
辑结构的数据的方式以及操作执行和中使用的算法。
C语言是一种面向过程式的编程语言,但它也可以应用于面向对象。
C语言版数据结构课程设计旨在通过使用C语言来实现常见
的数据结构,如链表、栈、队列、二叉树等,更好的分析数据的结构和特性,以期提高解
决复杂问题的应用能力。
实现C语言版数据结构课程设计的一般步骤包括:一是需要对需求与具体结构有清晰
的概念;二是要分析数据的特性;三是设计或采用一种合适的数据结构;四是编写可测试、可验证的代码实现;五是运行测试以及调试过程。
在C语言版数据结构课程设计中,数据结构的实现包括采用内存储位置、指定结构体
变量名字来管理数据,同时还要使用指针变量来处理每个数据的指针管理的操作。
另外,
编写程序的过程中还要充分考虑变量的生命周期,即变量定义的位置:全局变量用于存储
数据结构,局部变量负责管理数据结构中的对象,并维持变量的有效性。
C语言版数据结构课程设计除了传统的数据结构实现外,还需要考虑现代计算机系统
的并行性、分布式处理技术等,以应对现代计算机系统的高性能要求,并使用基于模型的
设计方法,运用设计模式来更好的组织代码,提高系统的可维护性和健壮性。
总之,C语言版数据结构课程设计旨在将常见的数据结构和算法用C语言实现,促进
程序设计者对数据结构及其操作特性的理解,以及更好的掌握算法设计的方法,从而提高
程序的可操作性和可扩展性。
数据结构c语言版课程设计
![数据结构c语言版课程设计](https://img.taocdn.com/s3/m/d1694840178884868762caaedd3383c4bb4cb4fb.png)
数据结构c语言版课程设计数据结构是计算机科学中的一个重要概念,它研究数据的组织、存储和管理方式,以及数据之间的关系和操作。
在C语言中,数据结构是通过各种不同的数据类型和数据结构来实现的。
本文将以数据结构C语言版课程设计为标题,介绍数据结构在C语言中的基本概念、常用数据结构及其实现,并结合实例进行说明。
一、引言数据结构是计算机科学的基础,它为我们处理和管理数据提供了重要的支持。
C语言作为一种高效、灵活的编程语言,广泛应用于系统开发、嵌入式程序和算法实现等领域。
掌握C语言中的数据结构是每个程序员必备的基本功。
二、基本概念1. 数据类型在C语言中,数据类型是指数据的种类和对应的操作。
常见的数据类型包括整型、浮点型、字符型等。
数据类型的选择要根据实际需求进行,以提高程序的效率和可读性。
2. 变量变量是存储数据的基本单元,通过变量名来访问其中的数据。
在C 语言中,变量必须先定义后使用,定义变量时需要指定其数据类型。
3. 数组数组是一种存储相同类型数据的集合。
在C语言中,数组的声明需要指定数组的大小,可以通过下标来访问数组中的元素。
数组的大小是固定的,一旦定义就不能改变。
4. 结构体结构体是一种自定义的数据类型,可以将不同类型的数据组合在一起。
在C语言中,结构体的定义使用关键字"struct",通过"."操作符来访问结构体成员。
三、常用数据结构1. 链表链表是一种动态数据结构,它通过指针将不同的节点连接起来。
每个节点包含数据和指向下一个节点的指针。
链表的插入和删除操作比较灵活,但查找元素的效率比较低。
2. 栈栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。
在C语言中,可以使用数组或链表来实现栈。
3. 队列队列是一种先进先出(FIFO)的数据结构,只能在队尾插入元素,在队头删除元素。
在C语言中,可以使用数组或链表来实现队列。
4. 树树是一种分层结构的数据结构,由节点和边组成。
c数据结构课程设计
![c数据结构课程设计](https://img.taocdn.com/s3/m/3455b2950408763231126edb6f1aff00bfd5706c.png)
c 数据结构课程设计一、课程目标知识目标:1. 让学生掌握数据结构的基本概念,包括线性表、栈、队列、树、图等;2. 使学生了解不同数据结构的特点、应用场景及其操作方法;3. 引导学生理解数据结构在算法设计中的重要性,培养学生分析问题、选择合适数据结构解决问题的能力。
技能目标:1. 培养学生运用数据结构解决实际问题的能力,学会编写相关程序代码;2. 提高学生运用所学知识进行算法分析与设计的技能,具备一定的调试与优化程序的能力;3. 培养学生团队合作意识,学会在团队中发挥个人优势,共同完成项目任务。
情感态度价值观目标:1. 培养学生对数据结构课程的兴趣,激发学习热情,形成积极向上的学习态度;2. 引导学生认识到数据结构在计算机科学领域的重要性,增强学生的专业认同感;3. 培养学生勇于探索、不断创新的精神,提高学生的逻辑思维能力和解决问题的能力。
课程性质:本课程为计算机科学与技术专业的核心课程,旨在让学生掌握数据结构的基本知识,培养学生解决实际问题的能力。
学生特点:学生具备一定的编程基础,但对数据结构的概念和具体应用尚不熟悉,需要通过实践加深理解。
教学要求:结合实际案例,注重理论与实践相结合,强调动手实践,提高学生的实际操作能力和解决问题的能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 线性表:介绍线性表的定义、特点及实现方法,包括顺序存储和链式存储,重点讲解线性表的插入、删除和查找等基本操作。
教材章节:第二章 线性表内容安排:2学时2. 栈与队列:讲解栈和队列的基本概念、性质及操作方法,分析它们在实际应用中的使用场景。
教材章节:第三章 栈与队列内容安排:2学时3. 树与二叉树:介绍树的定义、性质和存储结构,重点讲解二叉树的概念、遍历方法以及常见的二叉树,如二叉搜索树、平衡二叉树等。
教材章节:第四章 树与二叉树内容安排:4学时4. 图:讲解图的定义、存储结构及相关算法,包括深度优先搜索、广度优先搜索、最短路径、最小生成树等。
c数据结构课程设计
![c数据结构课程设计](https://img.taocdn.com/s3/m/8610413c49d7c1c708a1284ac850ad02de80079e.png)
c 数据结构课程设计一、课程目标知识目标:1. 理解并掌握数据结构的基本概念和分类,如线性结构、非线性结构;2. 学会分析不同数据结构的特点及适用场景,如数组、链表、栈、队列、树、图等;3. 掌握常见数据结构的基本操作,并能运用所学知识解决实际问题。
技能目标:1. 能够运用所学数据结构知识设计简单的算法,提高程序效率;2. 掌握使用编程语言(如C语言)实现常见数据结构及其操作;3. 培养学生的逻辑思维能力和问题解决能力,提高编程实践能力。
情感态度价值观目标:1. 培养学生主动探究数据结构知识,养成良好的学习习惯;2. 增强学生对数据结构在计算机科学中重要性的认识,激发学习兴趣;3. 培养学生的团队合作精神,学会与他人分享、交流、协作。
课程性质:本课程为C语言数据结构课程设计,旨在帮助学生将理论知识与实际应用相结合,提高编程实践能力。
学生特点:学生已具备一定的C语言基础和编程能力,对数据结构有一定了解,但实际应用能力有待提高。
教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,培养学生的逻辑思维能力和问题解决能力。
通过课程学习,使学生能够将所学知识应用于实际编程中,提高程序质量和效率。
二、教学内容1. 数据结构基本概念与分类:回顾数据结构的基本概念,区分线性结构与非线性结构,分析各类结构的优缺点及适用场景。
教材章节:第1章 数据结构概述2. 线性表及其实现:学习数组、链表两种实现方式,掌握其基本操作,如插入、删除、查找等。
教材章节:第2章 线性表3. 栈与队列:学习栈、队列的基本概念、实现及应用,掌握其特点及操作方法。
教材章节:第3章 栈和队列4. 树与二叉树:学习树的基本概念、二叉树性质、遍历方法、线索二叉树等,了解并掌握树结构在实际应用中的优势。
教材章节:第4章 树和二叉树5. 图:学习图的定义、存储结构、遍历方法、最短路径、最小生成树等算法。
教材章节:第5章 图6. 数据结构应用实例分析:结合实际案例,分析数据结构在各种应用场景中的关键作用,提高学生的实际应用能力。
数据结构c语言版课程设计
![数据结构c语言版课程设计](https://img.taocdn.com/s3/m/f29720da4bfe04a1b0717fd5360cba1aa9118c43.png)
数据结构C语言版课程设计介绍本文档旨在介绍数据结构C语言版课程设计的要求和注意事项,帮助学生顺利完成本次课程设计。
本次课程设计要求学生综合应用数据结构相关知识,设计并实现一个功能完备的程序,以达到对数据结构知识的深入理解和应用。
要求1.设计实现一个简单的图书管理系统,包括以下功能:–图书录入,在添加新书时要重复判断图书是否已经存在–图书删除,要求同时删除图书的借书记录–图书借阅,需要判断图书是否在库–图书归还,需要判断图书是否被他人借阅–图书查询,可以根据书名、作者等信息进行查询,并展示图书的相关信息2.程序中至少需要使用以下数据结构:–数组–链表–栈或队列3.程序中需要使用文件进行数据的读写操作,可以使用二进制或文本文件存储数据。
4.界面设计可以使用控制台进行简单的输出展示,也可以使用图形界面进行展示。
5.程序中需要有异常处理机制,对用户的不当行为进行提示或警告。
6.程序的整体设计应该注重代码的重用性、可读性、可维护性、可扩展性以及可靠性。
注意事项1.学生可以自行设计图书管理系统的具体功能及界面,但需考虑到程序的实际应用和用户体验。
2.学生可以借鉴相关资料进行学习和参考,但需要注意防止抄袭,严禁抄袭他人的代码。
如若发现抄袭现象,将取消相关成绩。
3.学生完成本次课程设计后,需要编写一份实验报告,详细记录程序设计过程及程序的具体实现方法。
实验报告需包含以下内容:–概要介绍:描述程序用途、设计思路和实现效果;–功能介绍:详细阐述程序实现的各个功能,包括功能说明、相关数据结构的应用等;–系统结构:详细描述程序的整体结构,包括模块划分、流程控制等;–实现过程:记录设计及实现过程中遇到的问题及解决方法;–结论:总结本次课程设计的收获和不足,提出后续改进和完善的方向与建议。
4.学生在完成课程设计过程中,要注意代码的规范和注释。
代码要求格式清晰、缩进一致、命名规范、注释清晰明了,方便其他人进行阅读和理解。
总结本文档简要介绍了数据结构C语言版课程设计的要求和注意事项,鼓励学生在本次课程设计中积极发挥创造力,尽力完成任务,并对学生提交的代码进行评估和指导,以期取得良好的设计成果和实践经验。
数据结构-使用C语言第四版课程设计
![数据结构-使用C语言第四版课程设计](https://img.taocdn.com/s3/m/ff80433453ea551810a6f524ccbff121dd36c589.png)
数据结构-使用C语言第四版课程设计1. 项目背景本项目是为了满足计算机专业学生学习数据结构课程的需求而设计的,通过使用C语言第四版教材中的数据结构,完成一系列的课程设计任务,让学生能够掌握基本的数据结构知识和算法思想,提高其编程实战能力和问题解决能力。
2. 项目目的通过本课程设计项目,学生能够:1.掌握数据结构的基本概念和算法原理;2.熟练掌握C语言编程技巧;3.提高编程实战能力和问题解决能力;4.加深对计算机程序设计的理解和认识。
3. 项目内容本课程设计项目包括以下几个方面的内容:3.1 线性结构设计与实现1.顺序表实现及其基本操作;2.链式存储结构实现及其基本操作;3.栈的顺序存储结构和链式存储结构的实现及其基本操作;4.队列的顺序存储结构和链式存储结构的实现及其基本操作;5.字符串的顺序存储结构和链式存储结构的实现及其基本操作。
3.2 树形结构设计与实现1.二叉树的顺序存储和链式存储结构的实现及其基本操作;2.二叉树的遍历算法(先序、中序和后序遍历)的实现;3.线索二叉树的实现和遍历算法的实现;4.Huffman编码的实现和解码算法的实现。
3.3 图形结构设计与实现1.图的邻接矩阵和邻接表的实现及其基本操作;2.图的遍历算法(深度优先遍历和广度优先遍历)的实现;3.最小生成树算法(Prim算法和Kruskal算法)的实现;4.最短路径算法(迪杰斯特拉算法和Floyd算法)的实现。
4. 项目要求1.使用C语言第四版教材中的数据结构实现以上内容,要求代码风格清晰、易读、易懂;2.每个任务要有简要的设计文档和测试数据,测试结果要输出到文件中;3.在每个任务完成后,要求提交代码和文档,包括设计文档、测试数据和测试结果;4.每个任务的完成时间为一周,总共完成12个任务。
5. 项目收获通过本课程设计项目,学生能够:1.掌握数据结构的基本概念和算法原理;2.熟练掌握C语言编程技巧;3.提高编程实战能力和问题解决能力;4.提高自主学习和探索的能力。
c数据结构课程设计
![c数据结构课程设计](https://img.taocdn.com/s3/m/2a75186d0a4c2e3f5727a5e9856a561252d32197.png)
c 数据结构课程设计一、课程目标知识目标:1. 理解数据结构的基本概念,掌握线性表、树、图等常见数据结构的特点与应用场景。
2. 学会分析不同数据结构在解决实际问题中的优劣,选择合适的数据结构进行问题求解。
3. 掌握常见数据结构的存储方式和操作原理,如顺序存储、链式存储、二叉树遍历等。
技能目标:1. 能够运用所学数据结构解决实际问题,提高编程能力和算法设计能力。
2. 学会使用编程语言(如C/C++)实现常见数据结构及相关算法,并进行调试与优化。
3. 培养良好的编程习惯,提高代码的可读性和可维护性。
情感态度价值观目标:1. 培养学生主动探索数据结构知识的兴趣,激发学习热情,形成自主学习的能力。
2. 培养团队协作意识,学会与他人分享和交流数据结构学习心得,共同进步。
3. 增强学生的逻辑思维能力,培养面对复杂问题时的分析、解决能力,为以后从事计算机相关工作奠定基础。
课程性质:本课程为计算机专业基础课程,旨在帮助学生掌握数据结构的基本知识和技能,培养学生解决实际问题的能力。
学生特点:学生已具备一定的编程基础,具有一定的逻辑思维能力,但对数据结构的应用和实现尚不够熟练。
教学要求:结合学生特点,注重理论与实践相结合,通过实例分析、编程实践等教学方法,帮助学生掌握数据结构知识,提高解决实际问题的能力。
同时,关注学生的情感态度价值观培养,激发学习兴趣,培养团队协作精神。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 线性表:介绍线性表的概念、特点及应用场景,包括顺序表和链表的存储方式、基本操作(插入、删除、查找等)及实现方法。
2. 栈和队列:讲解栈和队列的基本概念、操作原理及在实际问题中的应用,包括顺序栈和链栈、循环队列等实现方式。
3. 树和二叉树:阐述树和二叉树的基本概念、存储结构、遍历方法以及应用场景,重点讲解二叉树的递归遍历和非递归遍历算法。
4. 图:介绍图的基本概念、存储结构(邻接矩阵和邻接表)、图的遍历算法(深度优先搜索和广度优先搜索)以及最短路径算法(Dijkstra和Floyd)。
数据结构C语言版课程设计
![数据结构C语言版课程设计](https://img.taocdn.com/s3/m/b66f37c3afaad1f34693daef5ef7ba0d4a736db8.png)
数据结构C语言版课程设计
一、项目背景
人们定义数据结构的方式十分多样,但是可以确定的是,数据结构是计算机科学中最
独特的概念之一,它涉及储存、组织和处理数据的方式。
本课程设计的主要目的是,使用
C语言编写一套数据结构的应用,从而提高学生的程序设计技术和逻辑思维能力。
二、课程目标
1. 了解C语言的基本语法结构,掌握C语言数据结构的基本知识,熟悉数据结构
中链表、栈、队列、哈希表、树等概念。
2. 学习如何使用C语言实现各种数据结构和算法,学习如何编写有效率的程序。
3. 深入学习数据结构及C语言,加强对操作系统和网络管理等专业课程的理解。
三、课程实施
1. 教师在上课之前会先给出关于C语言和数据结构的相关知识,以供学习。
3. 在每堂课后,学生在指定的实验室中进行实际编程,并根据教师给出的作业要求,完成设计的数据结构的应用。
4. 每个实验室可以容纳4-6名学生,在实验室里学生能够进行更多实际编程的实践,并且在老师的指导下将其实现出来。
四、课程作业
1. 完成C语言的四大构建,并通过文档详述。
2. 读取文件中的数据,对其进行分析,最后实现一个蒙特卡洛法算法,可以得出
最优结果。
3. 写一个基本的排序算法,实现从大到小或从小到大排序,并且说明它的时间复
杂度。
4. 选择一种数据结构,用C语言实现它,并能够满足要求。
五、课程考核
本课程以课堂考试和上机实验两部分组成,课堂考试主要考查学生的理论知识,考核
学生对C语言和数据结构的理解程度。
而上机实验则将学习的知识具体运用到实践应用上,进行模拟编程实验,最终根据学生的编程能力给出成绩。
C语言数据结构课程设计-文章编辑
![C语言数据结构课程设计-文章编辑](https://img.taocdn.com/s3/m/799c17bf64ce0508763231126edb6f1aff0071bc.png)
算法与数据结构课程设计报告题目:文章编辑设计者:专业班级:学号:指导教师:所属系部:计算机科学与技术系2012年5月31 日目录1.问题描述及要求 (1)1.1问题描述 (1)1.2基本要求 (1)2.需求分析 (1)2.1输入数据的形式和范围 (1)2.2输出形式 (1)3.算法思想描述 (1)4.概要设计 (1)4.1统计字符个数函数及算法流程图 (1)4.2统计指定字符串个数函数及算法流程图 (2)4.3删除指定字符串函数及算法流程图 (3)5.详细设计 (4)5.1文章输入函数 (4)5.2文章输出函数 (4)5.3统计字符个数函数 (4)5.4统计指定字符串个数函数 (5)5.5删除指定字符串函数 (5)5.6源程序清单 (6)6.测试数据及分析 (11)6.1文章输入函数 (11)6.2文章输出函数 (11)6.3统计字符个数函数 (12)6.4统计指定字符串个数函数 (12)6.5删除指定字符串函数 (13)7.课程设计总结 (14)8.参考资料 (14)文章编辑1.问题描述及要求1.1问题描述功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
1.2基本要求(1)静态存储一页文章,每行最多不超过80个字符,共N行;(2)分别统计出其中英文字母数和空格数及整篇文章总字数;(3)统计某一字符串在文章中出现的次数,并输出该次数;(4)删除某一子串,并将后面的字符前移;(5)存储结构使用线性表,分别用几个子函数实现相应的功能。
2.需求分析2.1输入数据的形式和范围可以输入大写、小写的英文字母、任何数字及标点符号。
2.2输出形式(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数;(3)输出删除某一字符串后的文章;3.算法思想描述本程序是对输入的文字进行操作,故使用静态的字符数组作为存储结构,定义如下:char str[N][80]; // 存储文章的字符数组对于文本的输入,采用头插法将文本信息存储到链表已申请好的存储空间中;对于文本内容的统计,使用循环对已存储的文章进行匹配,大写字母数、小写字母数、空格数、数字数直接通过条件比较即可得到;对于文本内容的处理,查找部分仍是使用循环对已存储的文章进行匹配,判断需要查找的字符或者字符串是否与文章中某部分内容相同,如果存在相同的记录相同的个数。
数据结构c语言版第二版课程设计
![数据结构c语言版第二版课程设计](https://img.taocdn.com/s3/m/ff92dddb0875f46527d3240c844769eae009a36e.png)
数据结构C语言版第二版课程设计简介数据结构是计算机科学中的基础课程,旨在教授计算机中使用的数据结构和算法的设计和实现。
C语言是一种通用的编程语言,在系统软件和嵌入式系统的开发中广泛使用。
本课程设计旨在深入学习数据结构和算法,同时提高学生在C语言编程方面的实践能力。
设计目标本课程设计的主要目标如下:•深入理解数据结构和算法的设计和实现•提高学生在C语言编程方面的实践能力•综合运用所学知识,设计完成一个实用的程序•加深学生对计算机科学和编程的理解和兴趣教学内容第一章:算法和数据结构基础本章讲述算法和数据结构的基础知识,包括计算机科学的基本概念、算法分析和评价、复杂度分析等。
第二章:线性表本章介绍线性表的定义、基本操作、顺序表和链表的实现方式。
例如,链表的创建、插入、删除、查找等操作将在课堂上进行详细的介绍。
第三章:栈和队列本章介绍栈和队列的概念、定义、基本操作、顺序栈和队列、链式栈和队列的实现方式等。
例如,如何实现一个括号匹配的算法将在课堂上进行演示。
第四章:树和二叉树本章介绍树和二叉树的定义、基本操作、遍历方法、平衡树和B树等。
例如,如何实现一个Huffman编码算法将在课堂上进行演示。
第五章:图本章介绍图的定义、基本操作、遍历方法、图的表示方式等。
例如,如何实现一个最小生成树算法将在课堂上进行演示。
第六章:排序和查找算法本章介绍排序和查找算法的基本思想、排序算法的稳定性、时间复杂度分析等。
例如,如何实现一个快速排序算法将在课堂上进行演示。
第七章:设计和实现综合性程序本章是课程设计的核心内容,将要求学生综合运用所学知识,完成一个实用的程序。
例如,实现一个简单的电子商务网站,包括用户注册、商品浏览、购买商品、结算等功能。
考核方式本课程的考核方式包括以下内容:•学生的课堂表现(包括听课、作业提交、答疑等)•期末考试•设计和实现综合性程序的成果评价总结本课程设计旨在深入学习数据结构和算法,提高学生在C语言编程方面的实践能力。
c版数据结构课程设计
![c版数据结构课程设计](https://img.taocdn.com/s3/m/e7432d5182c4bb4cf7ec4afe04a1b0717ed5b301.png)
c 版数据结构课程设计一、教学目标本课程的教学目标是使学生掌握C版数据结构的基本概念、原理和方法,培养学生运用数据结构解决实际问题的能力。
具体目标如下:1.知识目标:(1)掌握数据结构的基本概念,如栈、队列、链表、树、图等;(2)理解数据结构在软件开发中的应用,如算法设计、内存管理、文件等;(3)熟悉C语言的基本语法,能够运用C语言实现数据结构的相关算法。
2.技能目标:(1)能够运用数据结构解决实际问题,如排序、查找、最短路径等;(2)具备基本的编程能力,能够编写结构清晰、效率较高的C语言程序;(3)学会使用调试工具,能够独立调试和解决问题。
3.情感态度价值观目标:(1)培养学生的团队协作精神,学会与他人交流和分享;(2)培养学生的问题解决能力,勇于面对挑战,不断追求创新;(3)培养学生对计算机科学的热爱,树立正确的职业观念。
二、教学内容根据课程目标,教学内容主要包括以下几个方面:1.C语言基础:介绍C语言的基本语法、数据类型、运算符、控制结构等;2.数据结构基本概念:讲解栈、队列、链表、树、图等基本数据结构的概念和原理;3.数据结构算法:学习排序、查找、最短路径等常见算法的原理和实现;4.数据结构应用:结合实际问题,讲解数据结构在软件开发中的应用,如内存管理、文件等;5.编程实践:通过编写C语言程序,巩固数据结构的相关知识,提高编程能力。
三、教学方法为了达到课程目标,我们将采用以下教学方法:1.讲授法:讲解数据结构的基本概念、原理和方法,使学生能够理解和掌握;2.讨论法:学生进行小组讨论,促进学生之间的交流和思考,提高学生的团队协作能力;3.案例分析法:分析实际问题,引导学生运用数据结构解决问题,培养学生的问题解决能力;4.实验法:通过编写C语言程序,让学生动手实践,加深对数据结构的理解和应用。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》、《数据结构》等;2.参考书:提供相关的数据结构参考书籍,供学生自主学习;3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高学生的学习兴趣;4.实验设备:提供计算机实验室,让学生能够进行编程实践。
数据结构c语言课程设计报告
![数据结构c语言课程设计报告](https://img.taocdn.com/s3/m/88b86a93690203d8ce2f0066f5335a8102d2662b.png)
存储结构:首先用二维指针存储迷宫数据,迷宫数据由用户输入。
一个以链表作存储结构的栈类型,然后编写一个求解迷宫的递归或非递归程序。
求得的通路以三元组(i,j,d)形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向(东、南、西、北四个方向所用代表数字,自行定义)。
1.从入口出发,顺着某一个方向进行探索,若能走通,则继续往前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。
假如所有可能的通路都探索到而未能到达出口,则所设定的迷宫没有通路。
迷宫的入口点的下标为(1,1),出口点的下标为(m,n)。
为处理方便起见,可在迷宫的四周加一圈障碍。
对于迷宫的任一位置,均可约定有东、南、西、北四个方向可通。
经过的位置把0变为-1,带输出迷宫路径后在恢复迷宫院士为止2. 本程序有三个模块:⑴主程序模块⑵三个类模块即其对象:实现栈链表抽象数据类型;⑶迷宫二维指针单元模块:存储迷宫,,寻路径,输出迷宫,恢复迷宫。
(二)流程图四.详细设计(一).基本算法:首先用二维指针存储迷宫数据,迷宫数据由用户输入。
一个以链表作存储结构的栈类型,然后编写一个求解迷宫的递归或非递归程序。
求得的通路以三元组(i,j,d)形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向(东、南、西、北四个方向所用代表数字,自行定义)。
迷宫的过程可以模拟为一个搜索的过程:每到一处,总让它按东、南、西、北4个方向顺序试探下一个位置;如果某方向可以通过,并且不曾到达,则前进一步,在新位置上继续进行搜索;如果4方向都走不通或曾经到达过,则退回一步,在原来的位置上继续试探下一位置。
每前进或后退一步,都要进行判断:若前进到了出口处,则说明找到了一条通路;若退回到了入口处,则说明不存在通路。
用一个二维指针数组迷宫表示迷宫,数组中每个元素取值“0”(表示通路)或“1”(表示墙壁)。
迷宫的入口点在位置(1,1)处,出口点在位置(m,n)处。
C语言版数据结构课程设计-文章编辑系统
![C语言版数据结构课程设计-文章编辑系统](https://img.taocdn.com/s3/m/14c327a9c5da50e2534d7f49.png)
for(int i=0;i<Len;i++) if((p->data[i]>='a'&&p->data[i]<='z')||(p->data[i]>='A'&&p->data[i]<='Z'))
count++; } while((p=p->next)!=NULL);
return count; }
int CountNumber(LINE * &head) {
此次课程设计使我对数据结构方面的知识有了更加深入的了解,也使我认识到自己 在学习编程方面还有很多的不足。今后我要多读一些编程方面的书籍,不能只拘泥于课 本上的知识,并注重理论与实践的结合,多上机练习编写程序,提高自己的实际动手能 力和独立思考的能力,不断充实自己,更好的掌握编程思想。
参考文献
[1] 谭浩强.C 语言程序设计[M].北京清华大学出版社,2007.05:1-200 [2]徐孝凯,魏荣《数据结构》,机械工业出版社,1996 年:1-150 [3]徐孝凯《数据结构简明教程》,清华大学出版社,1995 年:75-120 [4]陈文博,朱青《数据结构与算法》,机械工业出版社,1996 年 :80-100 [5]李廉治,姜文清,郭福顺《数据结构》,大连理工大学出版社,1989 年:120-200
void delstringword(char *s,char *str)
{ char *p=strstr(s,str);
NO.7
沈阳大学
课程设计说明书
char tmp[80];
int len=strlen(s);
数据结构C语言描述第二版课程设计 (2)
![数据结构C语言描述第二版课程设计 (2)](https://img.taocdn.com/s3/m/573d08100622192e453610661ed9ad51f01d5430.png)
数据结构C语言描述第二版课程设计一、引言数据结构是计算机科学中的一个重要领域,它涉及到数据的存储、组织和访问等方面。
C语言是一种广泛应用于计算机程序设计中的编程语言,它具有灵活性和高效性等优点,成为数据结构编程的首选语言。
本文介绍的是数据结构C语言描述第二版课程设计,通过系统学习和实践,旨在提高学生对数据结构的理解和应用能力。
二、课程设计目标本次课程设计旨在通过对基本数据结构的学习和实践,帮助学生掌握C语言编程,了解数据结构的基本原理及其在实际应用中的作用,并培养学生独立设计和实现数据结构程序的能力。
具体目标如下:1.掌握基本数据结构的定义和实现方法,包括线性表、栈、队列、树、图等。
2.学习如何使用C语言进行数据结构编程,熟悉C语言常用语法和库函数。
3.了解经典数据结构算法的原理、特点和优缺点。
4.培养学生独立完成数据结构程序设计和实现的能力,提高编程思维能力和实践经验。
三、课程设计内容本课程设计主要包含以下几个部分:1. 数据结构基础知识的学习本课程设计的前半部分将重点介绍数据结构的基础知识。
学生将了解数据结构的定义、分类、逻辑结构和存储结构,熟悉数据的基本操作和算法,包括查找、排序、插入、删除等。
2. 基本数据结构的实现在掌握了数据结构基础知识后,学生将学习如何用C语言实现基本数据结构,包括数组、链表、栈、队列、树等。
在实现数据结构的过程中,学生将练习数据结构的基本操作,包括查找、排序、插入、删除等,并掌握C语言的常用语法和库函数。
3. 经典数据结构算法的实现在学习基本数据结构的实现后,学生将进一步学习经典数据结构算法的原理、特点和优缺点,并通过实践掌握其代码实现。
待掌握的算法包括递归算法、动态规划算法、背包问题算法、图论算法等。
4. 数据结构程序设计综合实践在学习数据结构基础知识和算法实现后,学生将利用所学知识,完成一个数据结构综合应用程序的设计和实现。
学生将自主选题,实现一个具有一定实用价值的程序,并撰写程序设计文档和演示文稿。
《数据结构》课程设计报告
![《数据结构》课程设计报告](https://img.taocdn.com/s3/m/ec4e77e6294ac850ad02de80d4d8d15abe230081.png)
《数据结构》课程设计报告《数据结构》课程设计报告如下:一、课程设计分析在学习了数据结构课本理论知识后,为了检验自己所学知识的牢固性巩固大家的理论知识,调动大家的编程兴趣;同时为大家提供一个实践自己,检验自己的平台,以增加大家对将来工作的适应能力;也为了锻炼大家的动手实践能力,遂在学期末进行了本次课程设计。
“数据结构”在计算机科学中是一门综合性的专业基础课。
“数据结构”的研究不仅涉及到计算机硬件的研究范围,而且和计算机软件的研究有着密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。
在研究信息检索时也必须考虑如何组织数据,以便查找和存取数据元素更为方便。
因此,可以认为“数据结构”是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。
在计算机科学中,“数据结构”不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。
我们本着自己的兴趣及挑战自己的态度,也为检验我们理论知识的熟练度,锻炼我们动手实践能力,我们选择了小型图书管理系统的编写。
因为我们生活在大学,图书馆是我们学习的天堂,借书和还书又是必不可少的,一个好的图书管理系统对于我们学生和管理人员都会为大家提供很多便利。
本着挑战和创新的思想,我们进行了此次课程设计程序编写及报告撰写。
二、课程设计基本理论运用所学的数据结构相关内容,设计一个小型图书馆管理系统,我们将运用到的原理有:链表的操作,包括插入,删除等;还有数据的排序;文件的操作等;遍历查找,插入排序等原理。
也运用了c语言的基本图形界面,使用户使用界面更加人性化,更加美观。
数据结构的创建是本课程设计的一个重要内容,我们这里使用的是单链表的数据结构,结合c语言语言特点、实际的图书馆管理系统的基本操作实现了一个简单的图书管理系统的正常运行,实现一些简单的功能。
三、课程算法设计通过对图书管理系统内的图书进行添加和删除操作,实现同学借书和还书的记录工作,通过对图书的查找和按指定方式排序,更有利于同学们挑选自己所需要的图书,借阅借书所需时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程设计题目:文章编辑学院:姓名:班级:学号:专业:指导教师:2012年06月04日一、需求分析说明我们编此程序为了便于统计文章中的字数,标点数,以及数字的个数,因此它的功能要求也就应该包含这些。
主要的是如下几点:1)、分别统计出其中英文字母数和空格数及整篇文章总字数;2)、统计某一字符串在文章中出现的次数,并输出该次数;3)、删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能(要求用菜单选择操作);输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;问题分析:本次程序我计划利用单链表结构实现对文章编辑的操作,因为,在实际应用中,输入的文章有很大的容量,动辄上万,如果利用顺序表不足以充分利用空间,并且可能造成溢出,使整个系统趋于崩溃,内存的资源是很宝贵的,为了尽可能利用到内存资源,所以,利用链表实现。
为了利用链表控制,必须利用到大量指针,所以,建立了一个LINK类,通过该类,确定不同指针对象,实现操作。
再建立一个类,chuan,中文名“串”的拼音,在当中实现对链表的操作功能,通过对这两个类的操作实现课程设计的要求。
主要功能有:1.插入字符或者文章2.删除字符串或文章3.查找字符串4.删除文章中出现的单个字符5.统计文章中数字,大写字母,小写字母以及各种符号的个数6.显示当前文章内容二、总体设计1.存储结构利用单链表存储,为线性结构,程序总体为链表,通过对链表的插入删除,统计等等实现各类功能。
2.主要功能:(1)插入字符或者文章(2)删除字符串或文章(3)查找字符串(4)删除文章中出现的单个字符(5)统计文章中数字,大写字母,小写字母以及各种符号的个数(6)显示当前文章内容三、详细设计1.类:建立了LINK类,公有成员为指针,因为题目要求利用几个函数实现文章编辑的功能,所以对于文章编辑的功能没有用到类。
class link //定义关于指针的类{public:char data;link *next;};class chuan //实现串的各类功能{public:chuan(){};~chuan(){};void inputlink(link* &l);void insert(link* &a);void delete1(link* &c);link* index(link* &head);void delete2(link* &head,char &x);void print(link* &head);void count1(link* &head);};2.对象:Link:void chuan::inputlink函数包括的对象(link * s,*r,*p;)void chuan::insert函数包括的对象(link *s,*q,*b;)void chuan::delete1函数包括的对象(link *p,*q;)link* chuan::index函数包括的对象(link *p,*q,*r,*e;)void chuan::delete2函数包括的对象(link *p,*q;)void chuan::count1函数包括的对象(link *p,*q;)void chuan::print函数包括的对象(link *p,*q;)chuan:对象:a3.结构分析:4.程序测试程序运行截图:系统进入中跳入注意项目界面输入文字插入功能插入后的结果,输出79个字符统计得到的结果由于篇幅有限,剩下的各类功能请自我尝试。
本程序达到了题目要求,并很好的实现了,其中还有几相自我添加的功能,在不断地完善。
但在查找方面有一些不足自出,在今后中还需要不断的自我完善,查找功能通过循环扫描存储进去的字符,实现查找,各类功能都是如此。
空间复杂度为O(n)所用时间为:四、总结得到文本编辑器这一课程设计题目时,自己还比较害怕是制作向windows系统中记事本一样的程序。
看了任务书之后自己有了些欣慰,任务书上要求是对输入的信息进行操作,这是我们经常练习的内容,虽然是比平时练习的更为难,更有深度,但自己毕竟知道该向什么方向去努力,自己应该如何去编写这个程序。
所以自己在整个课程设计过程中还是比较轻松的,编写过程中遇到的困难及问题都通过查阅资料、向老师提问得以解决。
这都是基于对课题有一个明确的了解,清楚向什么方向去写。
所以本次课程设计自己最大的体会就是不管写什么程序,自己首先得对这个问题要分析透彻,要知道自己要干什么,然后才能让自己干什么。
今后我要多读一些关于计算机方面的书,并注重理论与实践的结合,多上机练习编写程序,提高自己的实际动手能力和独立思考的能力,不断充实自己,更好的开始。
在这过程中,还是遇到不少的麻烦事的,起初,我的代码已经完成,可是在这个过程中我运用的是cin输入函数,可是,cin不接受空格字符,该字符直接跳过,不计入文章中,针对这个问题,我不断研究,找了好多这方面的资料,试了getchar(),cin.get()等不同函数,可是均不行,最终,找到了问题所在,是内存读取问题,因此,运用系统函数fflush(stdin)清除内存使程序最终运行。
费了好大功夫。
在这次课程设计中我得到了好多启示与经验,收益匪浅,懂了好多,并且充分练习了单链表,使自己有个好的升华,并明白了不同的输入函数有不同的效果!以后遇到问题不能轻易放弃,必须细细琢磨不停前进,强化独立制作,独立思考的能力,在今后的学习工作中,更加用心!源代码附录(采用分页式编写)://类定义头文件,”链串.h”class link //定义关于指针的类{public:char data;link *next;};class chuan //实现串的各类功能{public:chuan(){};~chuan(){};void inputlink(link* &l);void insert(link* &a);void delete1(link* &c);link* index(link* &head);void delete2(link* &head,char &x);void print(link* &head);void count1(link* &head);};//类功能实现文件,源文件,”文章.cpp”#include "链串.h"#include<iostream>#include<string>using namespace std;int count=0; //通过全局变量控制链表中的个数void chuan::inputlink(link* &head) //通过尾插法建立链表,控制头指针,通过头指针操作链表{cout<<"输入文字,输入#结束:"<<endl;int i=0;link* s,*r,*p;//link* p=new link;p=r=new link;p->next=NULL;head=p; //确定头指针位置head->data=NULL;fflush(stdin);for(;;i++) //尾插法循环建立链表{s=new link;s->data=getchar();//cin.get()>>s->data;if(s->data=='#'){cout<<"输入结束!"<<endl;break;}r->next=s;r=s;}r->next=NULL;}void chuan::insert(link* &head) //插入功能,通过寻找头指针确定链表{int j=0,i=0,k=1;cout<<"输入想插入的行号:";cin>>i;cout<<"输入想插入的列号:";cin>>k;if(((i-1)*79+k)>count){cout<<"插入失败,该篇文章没有这么长!系统直接退出!"<<endl;exit(0);}link *s,*q,*b;s=head; //控制头指针,确定头指针的位置while ((s!=NULL)&&(j<((i-1)*79+k))){j++;s=s->next;}inputlink(b); //调用输入函数,再建立一个链表q=b;while(q->next!=NULL){q=q->next; //查找要插入的位置}if(s!=NULL) //去掉头指针,两个指针合并为一个{q->next=s->next;s->next=b->next; //去掉b串头指针}elsecout<<"找不到插入位置!"<<endl; //找不到插入位置}void chuan::delete1(link* &c) //删除功能{int g=0,j=0,i=0;cout<<"输入想删除的行位置:";cin>>i;cout<<"输入想删除的列位置:";cin>>g;if(((i-1)*79+g)>count) //判断删除位置是否合法{cout<<"删除失败!文章没有那么长!"<<endl;}i=(i-1)*79+g;cout<<"输入想删除字符的个数:";cin>>j;link *p,*q;int k=0;p=c;while ((p!=NULL)&&(k<i-1)) //查找第i-1位置{k++;p=p->next;}q=p;while((q!=NULL)&&(k<i+j)) //查找i+j位置{k++;q=q->next;}if(p!=NULL){if(q!=NULL)p->next=q;else p->next=NULL;}else cout<<"删除错误!删除的内容不存在!"<<endl;}link* chuan::index(link* &head){int i=0;link *p,*q,*r,*e; //假设不同的链串inputlink(e);p=head->next;q=e->next;r=p;while ((p!=NULL)&&(q!=NULL)){if (p->data==q->data){p=p->next;q=q->next;}else{r=r->next; //指针回溯p=r;q=e->next;i=i+1;}}if(q==NULL){cout<<"查找成功!";cout<<"查找的内容在第"<<((i/79)+1)<<"行;"<<"第"<<(i%79+1)<<"列!"<<endl;//确定位置,查找成功return r;}else {cout<<"查找失败!该文章中没有你所查找的内容!";return NULL;}}void chuan::delete2(link* &head,char &x) //删除链表中一个相同字符{cout<<"输入想删除的字符(按回车结束):";cin>>x; //输入端口link *p,*q;if(head->next==NULL) //判断链表是否为空cout<<"不能删除!"<<endl;else{q=head;p=head->next;while(p!=NULL) //指针前进{if(p->data==x){q->next=p->next;delete p;p=q->next;cout<<x<<"字符已删除!"<<endl;}else{q=p;p=p->next;}}}}void chuan::count1(link* &head) //统计字符功能{int i=0; //分不同变量统计字符个数int j=0;int s=0;int k=0;int l=0;link *p,*q;p=head;q=head->next;if(q!=NULL){while(q!=NULL){if((q->data>=65)&&(q->data<=90)) //大写字母i=i+1;else if((q->data>=97)&&(q->data<=122)) //小写字母j=j+1;else if((q->data>=48)&&(q->data<=57)) //数字s=s+1;else if(q->data==32) //空格l=l+1;else//(((q->data>=33)&&(q->data<=47))||((q->data>=58)&&(p->data<=64))||((q->data>=91)&&(q->d ata<=96))||((q->data>=123)&&(q->data<=127))) //其他字符{k=k+1;}q=q->next;}cout<<"大写字母的个数为:"<<i<<endl;cout<<"小写字母的个数为:"<<j<<endl;cout<<"数字字符的个数为:"<<s<<endl;cout<<"空格字符的个数为:"<<l<<endl;cout<<"其他各类字符数为:"<<k<<endl;cout<<"文章字数统计,总数为:"<<count<<endl;}}void chuan::print(link * &head) //输出功能{int i=0,j=0;link *p,*q;if(head->next==NULL) //判断文章是否为空{cout<<"输入的文章为空!"<<endl;system("pause");}else{p=head; //确定头结点q=head->next; //指针前进}while(q!=NULL){i=i+1;j=j+1;cout<<q->data;if(i%79==0)cout<<endl; //每行输出不多于80个字符,完成输出功能q=q->next;}count=j; //统计文章总字数cout<<endl;}//主文件,main文件,源文件,”主文件.cpp”#include"链串.h"#include<iostream>#include <windows.h>using namespace std;int main(){int i=0,j=0;chuan a;char x,k;system("color 09");cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<"\t\t\t\t欢迎进入文章编辑系统"<<endl;cout<<"\t\t\t\t\t请等待";for(int t=6;t>0;t--){Sleep(1000);cout<<".";}system("cls");system("color 04");cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<" 警告:欲用此系统,必先建立自己的文章"<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;system("pause");system("cls");system("color 0F");link *head;a.inputlink(head);cout<<"输入的文章为:"<<endl;a.print(head);do{cout<<endl;cout<<" 1.插入字符或者文章"<<endl;cout<<" 2.删除字符串或文章"<<endl;cout<<" 3.查找字符串"<<endl;cout<<" 4.删除文章中出现的单个字符"<<endl;cout<<" 5.统计文章中数字,大写字母,小写字母以及各种符号的个数"<<endl;cout<<" 6.显示当前文章内容"<<endl;cout<<" 0.退出本系统"<<endl;cout<<"请输入选择的功能项:";cin>>k;if((k<='0')&&(k>='7')){cout<<"输入错误请重新输入!"<<endl;}{switch(k) //实现菜单控制{case '1':a.insert(head);a.print(head);system("pause");system("cls");break;case '2':a.delete1(head);a.print(head);system("pause");system("cls");break;case '3':a.index(head);a.print(head);system("pause");system("cls");break;case '4':a.delete2(head,x);a.print(head);system("pause");system("cls");break;case '5':a.count1(head);system("pause");system("cls");break;case '6':a.print(head);system("pause");system("cls");break;case '0':exit(0);}}}while(k!=0); return 0;}。