集合类的设计与实现.doc

成绩评定表 学生姓名 班级学号 专 业 通信工程 课程设计题目 的设计与设计 评 语 组长签字: 成绩 日期 20 年 月 日 课程设计任务书 学 院 信息科学与工程学院 专 业 通信工程 学生姓名 班级学号 课程设计题目 集合类的设计与实现 实践教学要求与任务 工作计划与进度安排 第周:分析题目,查阅课题相关资料,进行类设计、算法设计; 第周:程序的设计、调试与实现; 第周:程序测试与分析,撰写课程设计报告,进行答辩验收。 指导教师: 201 年 月 日 专业负责人: 201 年 月 日 学院教学副院长: 201 年 月 日 摘 要 现实生活中许多数据的处理依赖于哈希表的应用,通过应用哈希表使复杂问题更加简单化。通过实用类模板,使用开放地址法和除留余数法来实现对哈希表的建立、插入、删除等功能,采用Visual C++ 6.0的控制台工程和MFC工程分别实现了哈希表的应用。 关键词:除留余数法;哈希表;开放地址法;MFC工程 目 录 1 -1- 2 算法基本原理 -1- 3 类设计 -3- 3.1 类的概述 -3- 3.2 类的设计 -3- 4 基于控制台的应用程序 -9- 4.1 主函数设计 -9- 4.2 运行结果及分析 -10- 5 基于MFC的应用程序 -12- 5.1 图形界面设计 -12- 5.2 程序代码设计 -15- 5.3 运行结果及分析 -16- 结 论 -20- 参考文献 -21- 需求分析 (1)‘a’..‘z’],集合 的大小n27。集合输入的形式为一个以“#”为结束标志的字符串,串中字 符顺序不限,且允许出现重复字符及非法字符,程序应能自动滤去。输出的 运行结果字符串将不含重复字符及非法字符。 (2) (3)”merry”,head2=”Christmas”,head1∪head2=”acehimrsty”, head1∩head2=”mr”,head1-head2=”ey”; 2).head1=”012abcde”,head2=”123cdefg”,head1∪head2=”abcdefg”, head1∩head2=”cde”,head1-head2=”ab”。 算法基本原理 否 是 图2-1单链表流程图 集合运算系统,是将两单链表进行交、并和差的集合运算,其流程图如图2-2所示。 图2-2 集合运算系统流程图 类设计 3.1 类的概述 从上面的算法分析可以看到,本设计面临的计算问题的关键是运算。可以定义一个类Linklist作为基类,从问题的需要来看,类括。 在的求解过程中,在的成员函数initLinklist(LinkList Head)中需要类的数据成员, LinkList Merge(LinkList Head1,LinkList Head2),LinkList Insection(LinkList Head1,LinkList Head2),LinkList Deprive(LinkList Head1,LinkList Head2)分别求得两集合的并,交,差运算结果。 整个程序中的存储采用的是动态内存分配方式。。类的设计#includeiostream using namespace std; typedef struct Node { char data; Node *next; }Node,*LinkList; #define SIZE sizeof(Node) #define FALSE 0 #define TRUE 1 class Linklist { public: initLinklist(LinkList Head) { char ch; Node *p=Head; Head-next=NULL; Head-data=\0; cinch; while(ch!=#) { Node *newNode=(Node*)malloc(SIZE); newNode-data=ch; p-next=newNode; p=p-next; cinch; } p-next=NULL; } int Check(char ch,LinkLis

文档评论(0)

1亿VIP精品文档

相关文档