数据结构顺序表课程设计.doc

上传人:jian****018 文档编号:8913724 上传时间:2020-04-01 格式:DOC 页数:35 大小:671.50KB
返回 下载 相关 举报
数据结构顺序表课程设计.doc_第1页
第1页 / 共35页
数据结构顺序表课程设计.doc_第2页
第2页 / 共35页
数据结构顺序表课程设计.doc_第3页
第3页 / 共35页
点击查看更多>>
资源描述
课程设计报告撰写要求 一 纸张与页面要求 1 采用国际标准 A4 型打印纸或复印纸 纵向打印 2 封页和页面按照下面模板书写 正文为 小四宋体 1 5 倍行距 3 图表及图表标题按照模板中的表示书写 二 课设报告书的内容应包括以下各个部分 按照以下顺序装订 1 封页 见课设模版 2 学术诚信声明 所有学生必须本人签字 否则教师拒绝给予成绩 2 任务书 学生教师均要签字 信息填写完整 3 课程设计总结及体会 4 目录 5 正文一般应包括以下内容 1 题目介绍和功能要求 或描述 课程设计任务的详细描述 注意不能直接抄任务书 将内容做更详细的具体的分析与描述 2 系统功能模块结构图 绘制系统功能结构框图及主要模块的功能说明 3 使用的数据结构的描述 数据结构设计及用法说明 4 涉及到的函数的描述 5 主要算法描述 程序流程图 6 给出程序测试 运行的结果 设计多组数据加以描述 包括输入数据和输出结果 7 参考文献 格式要求 1 作者 等 书名 出版地 出版社 出版年 6 附录 程序清单 应带有必要的注释 沈阳航空航天大学 课 程 设 计 报 告 课程设计名称 数据结构和算法课程设计 课程设计题目 顺序表结构和算法 院 系 计算机学院 专 业 网络工程 班 级 1434010401 学 号 143401040116 姓 名 汪敏新 指导教师 武卫东 说明 结论 优秀 良好 中等 及格 不及格 作为相关教环节考核必要依据 格式不符合要 求 数据不实 不予通过 报告和电子数据必须作为实验现象重复的关键依据 学术诚信声明 本人声明 所呈交的报告 含电子版及数据文件 是我个人在导师指 导下独立进行设计工作及取得的研究结果 尽我所知 除了文中特别 加以标注或致谢中所罗列的内容以外 报告中不包含其他人己经发表 或撰写过的研究结果 也不包含其它教育机构使用过的材料 与我一 同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明 并表示了谢意 报告资料及实验数据若有不实之处 本人愿意接受本 教学环节 不及格 和 重修或重做 的评分结论并承担相关一切后 果 本人签名 日期 年 月 日 沈阳航空航天大学 课 程 设 计 任 务 书 课程设计名称 XXXX 课 程 设 计 专 业 学生姓名 班级 学号 题目名称 起止日期 年 月 日起至 年 月 日止 课设内容和要求 参考资料 教 研 室 审 核 意 见 教 研 室 主 任 签 字 指导教师 签名 年 月 日 学 生 签名 年 月 日 课程设计总结 课程设计课程设计结束了 在这次的课程设计中不仅检验了我所学习的知识 也培养了我如何去把握一件事情 如何去做一件事情 又如何完成一件事情的方 法和技巧 在设计过程中 和同学们相互探讨 相互学习 相互监督 我学会了 运筹帷幄 学会了宽容 学会了理解 也学会了做人与处世 这次课程设计对我 来说受益良多 课程设计是我们专业课程知识综合应用的实践训练 着是我们迈 向社会 从事职业工作前一个必不少的过程 千里之行始于足下 通过这次 课程设计 我深深体会到这句千古名言的真正含义 我今天认真的进行课程设计 学会脚踏实地迈开这一步 就是为明天能稳健地在社会大潮中奔跑打下坚实的基 础 由于本课题中的许多知识点都没有学过都要靠自己到课外的资料中去查找 在用的时候难免出现这样那样的错误 如开始设计出来的菜单不是预想的那样 而是总个窗中出现混乱 解决的这个问题的办法是调整 一个系统的菜单和提示 信息非常重要 如果没有这些用户根本不知道怎么用你设计的这个系统 在设计 的调试过程中也无法顺利的完成调试工作 有了一个清晰简单的菜单和一些提示 信息这后 调试过程完成的非常顺利 回顾起此次课程设计 至今我仍感慨颇多 的确 从拿到题目到完成整个编程 从理论到实践 虽然只有几天 但可以学到 很多的东西 不仅可以巩固了以前所学过的知识 而且学到了很多在书本上所没 有学到过的知识 通过这次课程设计使我懂得了理论与实际相结合是很重要的 只有理论知识是远远不够的 只有把所学的理论知识与实践相结合起来 从理论 中得出结论 才能真正为社会服务 从而提高自己的实际动手能力和独立思考的 能力 在设计的过程中遇到问题 难免会遇到过各种各样的问题 同时在设计的 过程中发现了自己的不足之处 对以前所学过的知识理解得不够深刻 掌握得不 够牢固 比如说结构体通过这次课程设计之后 一定把以前所学过的知识都用上 本次课程设计结束了 对于我的影响很大 我通过这次实践学到了许多知识 学到了设计一个简单的系统 要注意哪些方面 也使我知道自己哪些方面做得还 不够 目 录 目录 学术诚信声明 I 1 问题分析和任务定义 1 1 1 题目 1 1 2 内容 1 2 系统功能模块结构图 2 3 数据结构设计及使用说明 3 3 1 定义线性表抽象数据类型 3 3 1 1 基本操作 3 3 2 详细设计和编码 4 3 2 1 类型定义 4 3 2 2 顺序表初始化 4 3 2 3 子函数输出函数 4 4 相关函数的描述 6 4 1 本函数包含的十个函数 6 4 1 1 各函数之间的调用关系 6 4 2 主函数的代码 7 4 3 用法说明 7 5 算法的程序流程图 8 6 程序测试结果 9 7 参考文献 11 8 附录 程序清单 12 2 1 问题分析和任务定义 1 1 题目 顺序表结构和算法 1 2 内容 1 设计出顺序表结构的相关函数库 以便在程序设计中调用 2 实现顺序表的各种基本函数以及常用函数 3 给出 1 2 个例子 通过调用自己的库函数来实现问题的求解 4 设计顺序表的相关函数 以便在程序调用中调用 进行顺序表中元素的插 入 查找 取出 删除等操作 1 3 要求 1 设计软件的系统功能模块及各模块的程序流程图 2 采用模块化编程 系统中的各项功能分别用函数编写 3 学生独立完成系统的设计 编码和调试工作并通过指导老师的检查 4 按课程设计规范撰写课程设计报告 2 系统功能模块结构图 顺 序 表 定 义 线 性 表 main函 数 部 分 申 请 空间 访 问 所有 节 点 插 入 规律 删 除 显 示 选项 插 入 函数 更 改 函数 搜 索 函数 图 1 顺序表结构功能模块图 3 数据结构设计及使用说明 3 1 定义线性表抽象数据类型 3 1 1 基本操作 SqLsetnull L 操作前提 L 是一个未初始化的线性表 操作结果 将 L 初始化为一个空的线性表 操作前提 L 是一个已初始化的空表 操作结果 建立一个非空的线性表 L SqLinsert L s i 操作前提 线性表 L 已存在 操作结果 将元素 s 插入到线性表 L 的 i 位置 SqLdelete L i 操作前提 线性表 L 已存在 操作结果 将线性表 L 中 i 位置的元素删除 SqLlocate L x 操作前提 线性表 L 已存在 操作结果 在线性表 L 中查找元素 x 若存在 返回元素在表中的序号位置 若不存在 返回 1 SqLlength L L 初始条件 线性表 L 已存在 操作结果 返回 L 中数据元素个数 SqLget L i 初始条件 线性表 L 已存在 操作结果 判断第 i 个数据元素值是否存在 存在则返回 1 否则 返回 0 3 2 详细设计和编码 3 2 1 类型定义 typedef struct Datatype data maxlen int last Sequenlist 将 data 和 len 封装成一个结构体 3 2 2 顺序表初始化 Sequenlist SqLsetnull Sequenlist L L Sequenlist malloc sizeof Sequenlist L last 1 return L 3 2 3 子函数输出函数 void print Sequenlist L int h printf 显示结果为 for h 0 hlast 1 h printf d L data h 输出顺序表中所有元素 printf n 判表满 int SqLempty Sequenlist L if L last 1 50 return 1 else return 0 插入函数 int SqLinsert Sequenlist L Datatype s int i int j if SqLempty L 1 printf 表满溢出 n return 0 else if iL last 2 printf 位置出错 n return 0 else for j L last j i 1 j L data j 1 L data j 节点往后移动一个位置 L data i 1 s 插入新元素 s L last last 仍指向最后一个元素 return 1 取数函数 int SqLget Sequenlist L int i int x if iL last 1 printf 取数出错 return 0 else x L data i 1 return 1 更新函数 int SqLupdate Sequenlist L int i int s if iL last 2 printf 位置出错 n return 0 else L data i 1 s return 1 其中用 switch 来做选择操作 从而实现个子函数对应的功能 4 相关函数的描述 4 1 本函数包含的十个函数 主函数 main 初始化顺序表函数 SqLsetnull 显示顺序表内容函数 print 插入元素函数 SqLinsert 删除元素函数 SqLdelete 查找元素函数 SqLlocate 取值函数 SqLget 判表满 main SqLsetnull print SqLinsert SqLupdate SqLdelete Delete x SqLlocate SqLget Update x SqLempty 4 1 1 各函数之间的调用关系 4 2 主函数的代码 main 说明一个单链表 L 初始化 L 建立 L 显示 L 4 3 用法说明 程序执行后 首先输出 请输入表长 n 输入表长后 输出 请输入 n 个元素值 输入 n 个元素值后 输出 请选择 任意选择指定操作的某一操作序号 如 3 输入需要删除的元素 然后程序自动执行结果并显示出来 5 算法的程序流程图 开 始 顺 序 表 输 入 一 组 数据 增 加 数 删 除 数 插 入 数 搜 索 数 结 束 输 入 数 字 是 否 满足 条 件 图二 顺序表的程序流程图 6 程序测试结果 执行情况如下 请正确输入 4 个元素 1 2 3 4 请选择 1 显示所有元素 2 增加一个元素 3 按数值删除某个元素 4 按位置删除某个元素 5 按位置更新 6 按数值更新 7 按位置查找某元素 8 按值查找某元素 9 退出程序 3 需要删除的元素 4 显示结果为 1 2 3 测试结果如下图所示 图三 插入一个数字 图四 删除一个数字 图五 更改一个数字 7 参考文献 1 严蔚敏 陈文博 数据结构应用算法教程 M 北京 清华大学出版社 2011 5 2 张小莉 王淼 罗文劼 数据结构与算法 M 北京 机械工业出版社 2014 4 8 附录 程序清单 include include typedef int Datatype typedef struct Sequenlist Datatype data 50 int last Sequenlist Sequenlist SqLsetnull Sequenlist L L Sequenlist malloc sizeof Sequenlist L last 1 return L void print Sequenlist L int h printf 显示结果为 for h 0 hlast 1 h printf d L data h 输出顺序表中所有元素 printf n int SqLempty Sequenlist L if L last 1 50 return 1 else return 0 int SqLinsert Sequenlist L Datatype s int i int j if SqLempty L 1 printf 表满溢出 n return 0 else if iL last 2 printf 位置出错 n return 0 else for j L last j i 1 j L data j 1 L data j 节点往后移动一个位置 L data i 1 s 插入新元素 s L last last 仍指向最后一个元素 return 1 int SqLdelete Sequenlist L int i int j if L last 0 printf 顺序表空 return 0 else if iL last 1 检查空表及删除位置的合法性 printf 参数出错 return 0 else for j i j last 1 j L data j 1 L data j L last return 1 int SqLupdate Sequenlist L int i int s if iL last 2 printf 位置出错 n return 0 else L data i 1 s return 1 int SqLget Sequenlist L int i int x if iL last 1 printf 取数出错 return 0 else x L data i 1 return 1 void SqLlocate Sequenlist L int x int i z 0 for i 0 ilast 1 i if L data i x printf 该元素的位置为 d i 1 z 1 if z 0 printf 不存在此元素 void Delete x Sequenlist L int x int j k z 0 for j 0 jlast 1 j if L data j x for k j klast 1 k L data k L data k 1 向前移动一个位置 L last j 返回到删除的位置 z 1 if z 0 printf 不存在此元素 void Update x Sequenlist L int x int j k z 0 t 1 for j 0 jlast 1 j if L data j x printf 将第 d 次出现的数 d 更改为 t x scanf d L data j k z 1 t if z 0 printf 不存在此元素 int main Sequenlist L int i j t s h m n flag 1 L SqLsetnull printf 请输入表长 scanf d L last i 1 printf 请输入 d 个元素值 i 确定表长 for t 0 tdata t 输入表中元素 while flag 使用标识 flag printf 请选择 n printf 1 显示所有元素 n printf 2 增加一个元素 n printf 3 按数值删除某个元素 n printf 4 按位置删除某元素 n printf 5 按位置更改 n printf 6 按数值更改 n printf 7 按位置查找 取 元素 n printf 8 按值查找一个元素 n printf 9 退出程序 n 输入顺序表元素之后显 示选项 scanf d switch j 当输入数字 j 时自动调用函数库中 的函数实现功能 case 1 print L break case 2 printf 输入需要插入的数值和位置 scanf d d h SqLinsert L s i if h printf 插入之后的线性表 显示插入元 素后的顺序表 print L break case 3 printf 输入需要删除的元素 scanf d Delete x L s 显示删除元素后的顺序表 print L break case 4 printf 输入需要删除的数值位置 scanf d h SqLdelete L s printf n if h printf 删除之后的线性表 n 显示删 除元素后的顺序表 print L break case 5 printf 输入需要更改的位置和更改后的数据 scanf d d h SqLupdate L m n if h printf 插入之后的线性表 显示更新元 素后的顺序表 print L break case 6 printf 输入需要更改的数 scanf d Update x L m print L break case 7 printf 取出第 n 个元素 scanf d h SqLget L i if h printf 所取的数据元素为 printf d n L data i 1 输出所取 元素 else printf 输入序号超出范围 n 输入不合法报错 break case 8 printf 输入需要查找的数值 scanf d SqLlocate L s printf n break case 9 flag 0 printf 程序结束 按任意键退出 n return 0
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!