




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计说明书题 目集合的并交差运算学 号姓 名指导教师日 期内蒙古科技大学课程设计任务书课程名称数据结构课程设计设计题目集合的并交差运算指导教师周、康、兰时间一、教学要求1. 掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。集合的并交差运算以链表存储集合,在此基础上完成对集合的操作。要求设计类(或类模板)来描述集合,包含必要的构造函数和析构函数,以及其他能够完成如下功能的成员函数:v 输入、输出集合v 查询集合中的元素v 在集合中进行插入、删除元素v 实现集合的并、交、差运算 并设计主函数测试该类。三、设计要求及成果1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告四、进度安排资料查阅与讨论(1天)系统分析(2天)系统的开发与测试(5天)编写课程设计说明书和验收(2天)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。4. 根据答辩的情况,应能够以清晰的思路和准确、简练的语言叙述自己的设计和回答教师的提问六、建议参考资料1数据结构 (C语言版)严蔚敏、吴伟民 主编 清华大学出版社 2004.112数据结构课程设计案例精编(用C/C+描述),李建学 等 编著,清华大学出版社 2007.23.数据结构:用面向对象方法与C+语言描述,殷人昆 主编,清华大学出版社 2007附录:程序代码#include #include#include typedef struct LNode/定义单链表结点类型char data; struct LNode *next; LinkList;class jihe int length; LinkList *L; public:jihe()L=(LinkList*)malloc(sizeof(LinkList);length=0; L-next=NULL;jihe()LinkList *p;while (L-next)p = L-next;L-next = p-next;free(p);void ListCreat(int i);void ListDisp(int i);void BingJi();void JiaoJi(); void ChaJi(int i);void ListInsert(int i);void ListDelete(int i);int ListLength(int i); void Search( int i); jihe a3;jihe b;/*长度*/ int jihe:ListLength(int i) LinkList *p;p = ai.L;while (p-next != NULL)p = p-next;ai.length +;return ai.length;/*输入*/ void jihe:ListCreat(int i) /*尾插法插入元素*/ coutnext=NULL; r=ai.L; cinc; while(c!=n) p=(LinkList*)malloc(sizeof(LinkList); if(c= ) else p-data=c; r-next=p; r=p; c=cin.get(); r-next=NULL; cout输入完毕,请按回车键返回主菜单!next; while(p!=NULL) coutdatanext; a2.L-next=NULL; coutendl; cout输出完毕,请按回车键返回主菜单!endl; getchar();/*插入*/void jihe:ListInsert(int i)char z;docout请输入插入位置以及数值:d;cindata; LinkList *q,*p; int j;int n;n=ListLength(i); if(dn+1) cout操作失败!; else j=0; p=ai.L; while(jnext; j+; q=(LinkList *)malloc(sizeof(LinkList); q-data=data; q-next = p-next; p-next=q; cout插入成功!; cout是否继续插入(y/n),并以回车键结束!z;while(z=y);/*查找*/void jihe:Search(int i)char key; cout输入要查找的关键字:key;int low=1;ListLength(i);int high=ai.length;int mid;int j=0;LinkList *p;while(low=high)mid=(low+high)/2;j=0; p=ai.L;/将指针指向链表的头结点首地址 while(jnext; j+;if(key=p-data)cout位置为mid查找成功!按回车键返回主菜单endl;getchar();return;else if(keydata)high=mid-1;elselow=mid+1;coutendl对不起,集合中没有该元素!按回车键返回主菜单endl;getchar();return;/*删除*/void jihe:ListDelete(int i)char z;docout请输入要删除元素的位置:d; int n;n=ListLength(i); LinkList *p,*q; int j; char s; while(dn) cout对不起!您输入的位置有误,请重新输入!d; j=0; p=ai.L; while(jnext; j+; q=p-next; p-next=q-next; s=q-data; free(q); cout删除数值:sendl;cout是否继续删除(y/n),并以回车键结束!z;while(z=y); /*并集*/void jihe:BingJi() LinkList *L1,*L2,*L3;L1=a0.L;L2=a1.L;L3=a2.L;LinkList *p1;LinkList *p2;LinkList *s;p1=L1-next;while (p1!=NULL) s=(LinkList *)malloc(sizeof(LinkList); s-data=p1-data;s-next=L3-next;L3-next=s;p1=p1-next;p2=L2-next;while (p2!=NULL) p1=L1-next; while(p1!=NULL)&(p1-data!=p2-data) p1=p1-next;if (p1=NULL)s=(LinkList *)malloc(sizeof(LinkList); s-data=p2-data;s-next=L3-next;L3-next=s;p2=p2-next;/*交集*/void jihe:JiaoJi() LinkList *L1,*L2,*L3;L1=a0.L;L2=a1.L;L3=a2.L; LinkList *p1=L1-next,*p2,*s; p1=L1-next; while (p1!=NULL) p2=L2-next; while (p2!=NULL) & (p2-data!=p1-data) p2=p2-next; if (p2!=NULL) & (p2-data=p1-data) s=(LinkList *)malloc(sizeof(LinkList); s-data=p1-data; s-next=L3-next; L3-next=s; p1=p1-next; /*差集*/void jihe:ChaJi(int i)LinkList *L1,*L2,*L3;if(i=1) L1=a0.L; L2=a1.L; L3=a2.L;elseL2=a0.L; L1=a1.L; L3=a2.L; LinkList *p1=L1-next,*p2,*s; while (p1!=NULL) p2=L2-next; while (p2!=NULL) & (p2-data!=p1-data) p2=p2-next; if (p2=NULL) s=(LinkList *)malloc(sizeof(LinkList); s-data=p1-data; s-next=L3-next; L3-next=s; p1=p1-next; int xz()cout 请选择集合:nt1、集合A t2、集合Bi;for(;i!=1 & i!=2;)cout指令错误,请正确输入!i;if(1=i) cout已选择集合A:endl; if(2=i) cout已选择集合B:endl; -i;return i;void main() int f;int x;coutendlttt (_)欢迎进入集合的运算系统(_)endl;coutendltttttt endl; do cout* 1、赋值操作t2、输出列表endl 3、查找元素t4、插入元素endl 5、删除元素t6、A B endl 7、A Bt8、A - B endl 9、B - At10、exitendl; cout*; coutx; switch(x) case 1:coutendl赋值操作:endl;f=xz();af.ListCreat(f); break; case 2:coutendl输出链表:endl;f=xz();af.ListDisp(f); break; case 3:coutendl查找元素:endl;f=xz();af.Search(f); break; case 4:coutendl插入元素:endl;f=xz();af.ListInsert(f); break; case 5:coutendl删除元素:endl;f=xz();af.ListDelete(f); break; case 6:coutendlA B:endl;b.BingJi();b.ListDisp(2); br
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中英语大概念教学在提升学生阅读理解能力中的应用论文
- 中国医药商业行业市场发展趋势预测报告-智研咨询重磅发布
- 节日费发放管理制度
- 英俊镇应急管理制度
- 茶酒行员工管理制度
- 评估绿色建筑的指标系统
- 财务管理应用手册
- 论述类文本之主观题答题技巧
- 设备维修工个人工作总结不足
- 江苏省扬州市七校联考2024-2025学年高二下学期5月月考地理试题(含答案)
- 2024年人教版八年级语文下册期末考试卷(附答案)
- 国开《农村社会学》形考作业1-4参考答案
- 电子烟质量管理手册
- 城市数字底座CIM数字城市发展方向与技术
- 财政学学习通题库及答案
- 2023-2024学年全国初二下历史人教版期末试卷(含答案解析)
- 耳穴考核试题及答案
- 形势与政策智慧树知到答案2024年西北师范大学
- 2024-2030年中国射击场行业市场发展趋势与前景展望战略分析报告
- 施工现场建筑垃圾减量化专项方案
- 高三数学一轮复习题型与战法精准训练(新高考专用)7.2.2点线面的位置关系(针对练习)(原卷版+解析)
评论
0/150
提交评论