封 皮
(按学校要求手工填写)
课 程 设 计 任 务 书
学院 学生姓名 设计题目 内容及要求: 专业 学号 集合类的设计与实现 1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; 2.初步掌握程序设计过程中的结构化程序设计的一般方法,及数据类型在设计中的应用。 3.能够利用所学的基本知识和技能,解决简单的程序设计问题; 通过类与对象的设计,编制一个能演示执行集合的并、交和差运算的程序,要求如下: (1)集合的元素限定为小写字母字符[‘a’,…,’z’]。 (2)演示程序以用户和计算机的对话方式执行。 (3)以有序链表表示集合。 (4)可进一步实现集合的元素判定和子集判定运算。 进度安排: 第17周:分析题目,查阅课题相关资料,进行类设计、算法设计; 第18周:程序的设计、调试与实现; 第19周:程序测试与分析,撰写课程设计报告,进行答辩验收。 指导教师(签字): 年 月 日 学院院长(签字) 年 月 日 目 录
1 需求分析 ............................................................................................ - 1 - 2 算法基本原理 ................................................................................... - 1 - 3 类设计 ................................................................................................ - 1 - 4 详细设计 ............................................................................................ - 1 -
4.1 类的接口设计 ................................................................................................. - 2 - 4.2 类的实现 ......................................................................................................... - 2 - 4.3 主函数设计 ..................................................................................................... - 4 -
5 DOS界面程序运行结果及分析 ....................................................... - 5 -
5.1 程序运行结果 ................................................................... 错误!未定义书签。 5.2运行结果分析 .................................................................................................. - 6 -
6 基于MFC的图形界面程序开发 ..................................................... - 6 -
6.1 基于MFC的图形界面程序设计 ................................................................... - 6 - 6.2 程序测试 ....................................................................................................... - 21 - 6.3 MFC程序编写总结 ....................................................................................... - 23 -
7 参考文献 .......................................................................................... - 24 -
1 需求分析
1问题描述:用有序单链表表示集合,实现集合的交、并、差运算,且空间复杂度为O(1)
2基本功能:可快速的分别求出两个字符集合的交、并、差。 3输入和输出:
(1)输入:在C++环境下编写的程序,其输入是简单、方便的,即 按提示分别输入两集合的元素。
? 输入字符的范围:小写字母a,b,...,y,z,大写字母A,B,...Y,Z,和数
字0,1,...8,9;
? 输入形式:字符集合,按顺序大小排序输入,允许出现重复字符,程序
能自动滤去;
(2)输出:程序采用单链表的存储结构,使得运算快捷简便,显示的结果也明了。 输出结果不含重复或非法字符;
2 算法基本原理
Setl={a,b,x,w},Set2={a,b,y,z}, Setl∪Set2={a,b,,x,y,z,w} Setl∩Set2={a,b} Setl-Set2= {x,w }
3 类设计
从上面的算法分析可以看到,本设计关键是集合的并,交,差运算。可以定义一个类int_set,然后由该类定义出私有和公有成员函数,为主函数的执行做好铺垫
4 详细设计
整个程序分为三大块,先是类的接口,定义出基类后再在类中定义出相关成员函数:接着是累的实现部分,写出具体的函数代码,用以执行相关功能;最后则是
- 1 -
主函数,用一天调用各个函数并执行相应的输入输出功能
4.1 类的接口设计
#include
~int_set(){delete []p;}
int_set(int x) { }
cur_size=0; max_size=x; p=new char[x];
int_set(const int_set & a)
{ //必须有拷贝构造函数,因为下面以对象为返回值 }
max_size=a.max_size; cur_size=a.cur_size; p=new char[a.max_size]; for(int i=0;i p[i]=a.p[i]; private: int max_size; int cur_size; char *p; public: 4.2 类的实现 int search(char x){ // } void ifsearch(char x) - 2 - 判断一个元素是否在集合中 for(int i=0;i if(p[i]==x){return 1;} return 0; 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库集合类的设计与实现(MFC)在线全文阅读。
相关推荐: