数据结构(C语言版)实验报告-集合的交并差_第1页
数据结构(C语言版)实验报告-集合的交并差_第2页
数据结构(C语言版)实验报告-集合的交并差_第3页
数据结构(C语言版)实验报告-集合的交并差_第4页
数据结构(C语言版)实验报告-集合的交并差_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

数据结构与算法数据结构与算法 实验报告实验报告 一 一 需求分析需求分析 问题描述 问题描述 编制一个能演示执行集合的并 交和差运算的程序编制一个能演示执行集合的并 交和差运算的程序 基本要求 基本要求 集合元素限定为小写字母集合元素限定为小写字母 a z 演示程序以用户和计算机对话方式执行 集合的输入形式演示程序以用户和计算机对话方式执行 集合的输入形式 为一个以为一个以 回车符回车符 为结束标志的字符串 串中字符顺序不限 且允许出现重复字符或非为结束标志的字符串 串中字符顺序不限 且允许出现重复字符或非 法字符 程序运用时自动过滤去 输出的运算结果中将不含重复字符和非法字符 计算机法字符 程序运用时自动过滤去 输出的运算结果中将不含重复字符和非法字符 计算机 终端中显示提示信息之后 由用户自行选择下一步命令 相应输入数据和运算结果在其后终端中显示提示信息之后 由用户自行选择下一步命令 相应输入数据和运算结果在其后 显示 显示 数据测试 数据测试 1 Set1 magazine Set2 paper Set1 Set2 aegimnprz Set1 Set2 ae Set1 Set2 gimnz Set2 aegimnprz Set1 Set2 ae Set1 Set2 gimnz 2 2 Set1 012oper4a6tion89 Set2 errorSet1 012oper4a6tion89 Set2 error data data Set1 Set2 adeinoprt Set1 Set2 aeort Set1 Set2 adeinoprt Set1 Set2 aeort Set1 Set2 inp Set1 Set2 inp 二 二 概要设计概要设计 运用顺序表运用顺序表 1 定义顺序表定义顺序表 typedef struct SET char elem int size int length set 2 2 基本操作 基本操作 setset InitSet setInitSet set s s 初始化集合初始化集合 setset Input setInput set s s 向集合中输入元素向集合中输入元素 setset InsertSet setInsertSet set s s charchar e e 向集合中插入元素向集合中插入元素 setset DelateSet setDelateSet set s ints int n n 从集合中删除元素从集合中删除元素 voidvoid display setdisplay set s s 显示集合显示集合 setset SetMix setSetMix set set1 setset1 set set2 setset2 set set3 set3 求集合的交集求集合的交集 setset check setcheck set s s 检查集合中是否有数字或者重复字母检查集合中是否有数字或者重复字母 setset Sort setSort set s s 对集合中的元素进行排序对集合中的元素进行排序 三 三 详细设计详细设计 1 头文件头文件 include include include 2 定义定义 define MAX SIZE 20 顺序表的初始大小 顺序表的初始大小 define ADD SIZE 10 顺序表的递增大小 顺序表的递增大小 3 结构类型结构类型 typedef struct SET char elem int size int length set 4 初始化集合初始化集合 set InitSet set s s elem char malloc MAX SIZE sizeof char s size MAX SIZE s length 0 return s 5 向集合中输入元素向集合中输入元素 set Input set s char newbase gets s elem s length strlen s elem if s size s length newbase char realloc s elem s size ADD SIZE sizeof char s elem newbase s size ADD SIZE return s 6 向集合中插入元素向集合中插入元素 set InsertSet set s char e s elem s length e s elem s length 1 0 s length return s 7 从集合中删除元素从集合中删除元素 set DelateSet set s int n int i for i n i s length i s elem i 1 s elem i s length return s 8 显示集合显示集合 void display set s puts s elem 9 检查集合中是否有数字或者重复字母检查集合中是否有数字或者重复字母 set check set s int i j count for i 1 i s length i for j 1 j i j if s elem i 1 s elem j 1 s DelateSet s i i break for i 1 i z s elem i 1 a s DelateSet s i i return s 10 求集合的并集求集合的并集 set SetMix set set1 set set2 set set3 int i for i 1 i set1 length i set3 InsertSet set3 set1 elem i 1 for i 1 i set2 length i set3 InsertSet set3 set2 elem i 1 set3 check set3 set3 Sort set3 return set3 11 求集合的交集求集合的交集 set SetSame set set1 set set2 set set3 int i j for i 1 i set1 length i for j 1 j set2 length j if set1 elem i 1 set2 elem j 1 set3 InsertSet set3 set1 elem i 1 break set3 check set3 set3 Sort set3 return set3 12 求集合的差求集合的差 set SetReduce set set1 set set2 set set3 int i j for i 1 i set1 length i set3 InsertSet set3 set1 elem i 1 for i 1 i set3 length i for j 1 j set2 length j if set3 elem i 1 set2 elem j 1 set3 DelateSet set3 i set3 check set3 set3 Sort set3 return set3 set Sort set s int i j char temp for i 0 i s length 1 i for j 0 js elem j 1 temp s elem j s elem j s elem j 1 s elem j 1 temp return s 13 主程序主程序 main int i set set1 set2 set3 set1 InitSet set1 printf 输入第一个集合 set1 Input set1 set2 InitSet set2 printf 输入第二个集合 set2 Input set2 set3 InitSet set3 printf 选择要进行的操作 1 求交集 2 求并集 3 求集合的差 scanf d if i 1 set3 SetSame set1 set2 set3 set3 check set3 set3 Sort set3 printf 交集为 display set3 else if i 2 printf 并集为 set3 SetMix set1 set2 set3 set3 check set3 set3 Sort set3 display set3 else if i 3 printf 集合的差 set3 SetReduce set1 set2 set3 set3 check set3 set3 Sort set3 display set3 else printf 输入错误 return 0 四 四 调试分析调试分析 1 本程序的模块划分比较合理 且尽可能的将指针的操作封装在结点和链表的两个模块中 致使集合模本程序的模块划分比较合理 且尽可能的将指针的操作封装在结点和链表的两个模块中 致使集合模 块的调试比较成功 块的调试比较成功 2 将数据存入数组再转入链表 可以忽略输入集合的长度 设计更加巧妙 便于用户使用 将数据存入数组再转入链表 可以忽略输入集合的长度 设计更加巧妙 便于用户使用 3 本实习作业采用数据抽象的程序设计方法 将程序划分为三个层次 元素结点 有序链表 主控模块 本实习作业采用数据抽象的程序设计方法 将程序划分为三个层次 元素结点 有序链表 主控模块 使得设计思路清晰 实现时调试顺利 各模块具有较好的可重复性 确实得到了一次良好的程序设计训练 使得设计思路清晰 实现时调试顺利 各模块具有较好的可重复性 确实得到了一次良好的程序设计训练 五 五 用户守则用户守则 1 可执行文件为 可执行文件为 a exe 2 为了界面更加友好特将背景颜色设计为黑色 字体为白色 为了界面更加友好特将背景颜色设计为黑色 字体为白色 3 进入演示程序后即显示文本形式的用户界面 再按提示一步步完成 进入演示程序后即显示文本形式的用户界面 再按提示一步步完成 六 六 测试结果测试结果 测试数据 测试数据 1 1 求交集求交集 2 求并集求并集 3 求集合的差求集合的差 测试数据 测试数据 2 1 交集交集 2 并集并集 3 差差 七 七 附录 源代码 附录 源代码 include include include define MAX SIZE 20 define ADD SIZE 10 typedef struct SET char elem int size int length set set InitSet set s s elem char malloc MAX SIZE sizeof char s size MAX SIZE s length 0 return s set Input set s char newbase gets s elem s length strlen s elem if s size s length newbase char realloc s elem s size ADD SIZE sizeof char s elem newbase s size ADD SIZE return s set InsertSet set s char e s elem s length e s elem s length 1 0 s length return s set DelateSet set s int n int i for i n i s length i s elem i 1 s elem i s length return s void display set s puts s elem set check set s int i j count for i 1 i s length i for j 1 j i j if s elem i 1 s elem j 1 s DelateSet s i i break for i 1 i z s elem i 1 a s DelateSet s i i return s set SetMix set set1 set set2 set set3 int i for i 1 i set1 length i set3 InsertSet set3 set1 elem i 1 for i 1 i set2 length i set3 InsertSet set3 set2 elem i 1 set3 check set3 set3 Sort set3 return set3 set SetSame set set1 set set2 set set3 int i j for i 1 i set1 length i for j 1 j set2 length j if set1 elem i 1 set2 elem j 1 set3 InsertSet set3 set1 elem i 1 break set3 check set3 set3 Sort set3 return set3 set SetReduce set set1 set set2 set set3 int i j for i 1 i set1 length i set3 InsertSet set3 set1 elem i 1 for i 1 i set3 length i for j 1 j set2 length j if set3 elem i 1 set2 elem j 1 set3 DelateSet set3 i set3 check set3 set3 Sort set3 return set3 set Sort set s int i j char temp for i 0 i s length 1

温馨提示

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

评论

0/150

提交评论