数据结构课程设计

发布 2022-10-01 20:28:28 阅读 5325

数据结构c++课程设计。

题目: 集合的并、交和差运算

1、设计题目。

集合的并、交和差运算。

2、小组成员分工说明。

一个人。3、需求分析。

1)运行环境(软、硬件环境)

软件环境:microsoft vista操作系统,visual c++ 6.0

硬件环境:2.0gb内存。

2)输入的形式和输入值的范围。

运行所给的测试数据,集合的元素限定为小写字符〔a. .z〕:

第一组: set1=magazine ,set2=*****

第二组: set1=0120per4a6tion89,set2=error data

输出的形式描述。

程序运行并、交和差运算后得到数据,输出字符。

3)功能描述

能演示执行集合的并、交和差运算。

4)测试数据。

(1) set1=magazine ,set2=*****,set1∪set2=aeginmprz,set1∩set2=ae,set1-set2=gimnz。

(2) set1=0120per4a6tion89,set2=error data,set1∪set2=adeinoprt,set1∩set2=aeort,set1-set2=inp。

四、概要设计。

1)抽象数据类型定义描述。

顺序表的抽象数据类型描述)

adt seqlist is

data线性表的长度。

operation

seqlist

初始化值:无。

动作:置顺序表的长度为0

length

输入:无。前置条件:表已存在。

功能:求表的长度。

输出:返回表的长度,即表中数据元素的个数。

后置条件:表不变。

get输入:元素的序号i

前置条件:表已存在,i合法。

功能:在表中取序号为i的数据元素。

输出:若i合法,返回序号为i的元素值,否则抛出异常。

后置条件:表不变。

locate

输入:数据元素item

前置条件:表已存在。

功能:**性表中查找值等于item的元素。

输出:若查找成功,返回x在表中的序号,否则返回0

后置条件:表不变。

insert

输入:插入位置i;待插元素item

前置条件:表已存在,i合法。

功能:在表的第i个位置处插入一个新元素x

输出:若插入不成功,抛出异常。

后置条件:若插入成功,表中增加一个新元素。

delete

输入:删除位置i

前置条件:表已存在。

功能:删除表中的第i个元素。

输出:若删除成功,返回被删元素,否则抛出异常。

后置条件:若删除成功,表中减少一个元素。

empty输入:无。

前置条件:表已存在。

功能:判断表是否为空。

输出:若是空表,返回1,否则返回0

后置条件:表不变。

clear输入:无。

前置条件:无。

功能:清空顺序表。

输出:无。后置条件:表的长度是0

end adt seqlist

2)功能模块设计(如主程序模块设计)

3)模块层次调用关系图。

五、详细设计。

实现概要设计中定义的所有的类的定义及类中成员函数,并对主要的模块写出伪码算法。

1、顺序表存储结构的定义。

2、成员函数类的定义。

3、并、交和差三个操作函数的实现。

1)并运算:将b中的元素插到a后面后形成新的集合,定义字符i在a到z之间,并将新的集合中的个元素与i进行比较,若相同则将此时i的值插入c中作为输出值,若不同则i++继续比较。

template

seqlist bin(seqlist a,seqlist b)

seqlist c;

int m=1;

int a=

for (int b=0;b<=

for(char i='a';i<='z';i++)定义字符i在a到z之间。

return c;

2)交运算:定义定义字符i在a到z之间,先将i与a中数据元素进行比较,再将i与b中元素进行比较,如果两次比较都有与i相同的元素,则将该i值插入c中作为输出。

template

seqlist jiao(seqlist a,seqlist b)

seqlist c;

int m=1;

int flag=0;

for(char i='a';i<='z';i++,flag=0)//定义字符i在a到z之间。

return c;

3)差运算:定义字符i在a到z之间,先将i与a中数据元素进行比较,如果相同,再将i与b中元素进行比较,,如果不同则将i插入c作为输出。

template

seqlist cha(seqlist a,seqlist b)

seqlist c;

int m=1;

int flag=0;

for(char i='a';i<='z';i++,flag=0)//定义字符i在a到z之间。

if(flag==0)

如果不同则将i插入c

m++;break;

return c;

4、main函数。

int main()

char a[50];

char b[50];

cout<<"set1:";输入set1数据。

'/0');所给数据中有空格,所以不能直接用cin

cout< cout<<"set2:";输入set2数据。

cout< seqlist a(a,50),b(b,50),c,d,e;

c=bin(a,b);/调用集合的并运算。

cout<<"set1∪set2=";

cout< d=jiao(a,b);/调用集合的交运算。

cout<<"set1∩set2=";

cout< e=cha(b,a);/调用集合的差运算。

cout<<"set1-set2=";

cout< return 0;

六、调试分析。

包括调试过程中遇到的问题及解决的方法、算法的时间空间复杂性分析、经验体会。

七、 用户使用说明。

详细列出每一步的操作说明。

1、 输入set1的数据。

2、 输入set2的数据

3、 分别输出 set1∪set2=

set1∩set2=

set1-set2=

八、 测试结果。

九、附录:程序设计源**。

#include

using namespace std;

const int maxsize=200; /maxsize是顺序表中最大项数。

template //定义模板类seqlist

class seqlist

public:

seqlist无参构造函数

seqlist(t a,int n); 有参构造函数。

seqlist(const seqlist &a);/a中元素固定不变。

int length();求线性表的长度

t get(int i); 按位查找,取线性表的第i个元素

int locate(t item);/查找元素item

void insert(int i, t item); 在第i个位置插入元素item

t delete(int i); 删除线性表的第i个元素

void display();遍历线性表,按序号依次输出各元素

int empty();判断线性表是否为空表。

void clear();清空线性表。

private:

t data[maxsize]; 存放数据元素的数组

int length; /线性表的长度

;//存储结构定义。

template

seqlist::seqlist()

length=0;

//无参构造函数实现,初始化表,置表的长度为0

template

seqlist::seqlist(t a,int n)

if (n>maxsize) throw "数组元素个数不合法";

for (int i=0; i data[i]=a[i];

length=n;

//有参构造函数实现。

template

seqlist::seqlist(const seqlist &a)

for (int i=0; i< i++)

data[i]=

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...