集合类的设计与实现(MFC)

上传人:mg****2 文档编号:146933102 上传时间:2020-10-05 格式:DOC 页数:28 大小:499.50KB
返回 下载 相关 举报
集合类的设计与实现(MFC)_第1页
第1页 / 共28页
集合类的设计与实现(MFC)_第2页
第2页 / 共28页
集合类的设计与实现(MFC)_第3页
第3页 / 共28页
集合类的设计与实现(MFC)_第4页
第4页 / 共28页
集合类的设计与实现(MFC)_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《集合类的设计与实现(MFC)》由会员分享,可在线阅读,更多相关《集合类的设计与实现(MFC)(28页珍藏版)》请在金锄头文库上搜索。

1、. . . . . S. . . . . . 封封 皮皮 (按学校要求手工填写)(按学校要求手工填写) . . . . . S. . . . . . 课 程 设 计 任 务 书 学院专业 学生学号 设计题目集合类的设计与实现 容及要求: 1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; 2.初步掌握程序设计过程中的结构化程序设计的一般方法,及数据类型在设 计中的应用。 3.能够利用所学的基本知识和技能,解决简单的程序设计问题; 通过类与对象的设计,编制一个能演示执行集合的并、交和差运算的程序, 要求如下: (1)集合的元素限定为小写字母字符a,z。 (2)演示程序以用户和

2、计算机的对话方式执行。 (3)以有序链表表示集合。 (4)可进一步实现集合的元素判定和子集判定运算。 进度安排: 第 17 周:分析题目,查阅课题相关资料,进行类设计、算法设计; 第 18 周:程序的设计、调试与实现; 第 19 周:程序测试与分析,撰写课程设计报告,进行答辩验收。 指导教师(签字): 年 月 日 学院院长(签字) 年 月 日 . . . . . S. . . . . . 目目 录录 1 需求分析.- 1 - 2 算法基本原理 .- 1 - 3 类设计.- 1 - 4 详细设计.- 2 - 4.1 类的接口设计 .- 2 - 4.2 类的实现.- 2 - 4.3 主函数设计 .

3、- 4 - 5 DOS 界面程序运行结果及分析.- 5- 5.1 程序运行结果 .- 5 - 5.2 运行结果分析 .- 5 - 6 基于 MFC 的图形界面程序开发.- 6 - 6.1 基于 MFC 的图形界面程序设计.- 6 - 6.2 程序测试 .- 17 - 6.3 MFC 程序编写总结.- 19 - 7 参考文献 .- 19 - . . . . . S. . . . . . 1 1 需求分析需求分析 1 问题描述:用有序单链表表示集合,实现集合的交、并、差运算,且空间复 杂度为 O(1) 2 基本功能:可快速的分别求出两个字符集合的交、并、差。 3 输入和输出: (1)输入:在 C+

4、环境下编写的程序,其输入是简单、方便的,即 按提示分别输入两集合的元素。 输入字符的围:小写字母 a,b,.,y,z,大写字母 A,B,.Y,Z,和数字 0,1,.8,9; 输入形式:字符集合,按顺序大小排序输入,允许出现重复字符,程序 能自动滤去; (2)输出:程序采用单链表的存储结构,使得运算快捷简便,显示的结果 也明了。 输出结果不含重复或非法字符; 2 2 算法基本原理算法基本原理 Setla,b,x,w,Set2a,b,y,z, SetlSet2a,b,x,y,z,w SetlSet2a,b SetlSet2 x,w 3 3 类设计类设计 从上面的算法分析可以看到,本设计关键是集合的

5、并,交,差运算。可以 定义一个类int_setint_set,然后由该类定义出私有和公有成员函数,为主函数的执行 做好铺垫 4 4 详细设计详细设计 整个程序分为三大块,先是类的接口,定义出基类后再在类中定义出相关成员 函数:接着是累的实现部分,写出具体的函数代码,用以执行相关功能;最后 . . . . . S. . . . . . 则是主函数,用一天调用各个函数并执行相应的输入输出功能 4.1 类的接口设计 #include class int_set private: int max_size; int cur_size; char *p; public: int_set(const in

6、t_set cur_size=a.cur_size; p=new chara.max_size; for(int i=0;icur_size;i+) pi=a.pi; int_set(int x) cur_size=0; max_size=x; p=new charx; int_set()delete p; 4.2 类的实现 int search(char x) /判断一个元素是否在集合中 for(int i=0;imax_size;i+) if(pi=x)return 1; return 0; void ifsearch(char x) . . . . . S. . . . . . if(s

7、earch(x)coutx在集合中!endl; else coutx不在集合中!=max_size)cout集合已满,不可再添加元素!endl; else if(!search(x) pcur_size=x; cur_size+; void dec(char x) / 从集合中去掉一个元素 for(int i=0;imax_size;i+) if(pi=x) for(i;imax_size-1;i+)pi=pi+1; cur_size-; /输入 friend istream for(int i=0;ia.pi;/不能直接写 pi a.cur_size=a.max_size; return i

8、n; /in 可以换别的 /输出 friend ostream ia.cur_size;i+)couta.pi ; coutendl; return out; int_set jiao(int_set for(int i=0;ib.cur_size;i+) . . . . . S. . . . . . I if(search(b.pi) temp.ptemp.cur_size=b.pi; temp.cur_size+; return temp; int_set bing(int_set for(int i=0;imax_size;i+)temp.pi=pi; temp.cur_size=cur

9、_size; for( i=0;ib.cur_size;i+) if(!search(b.pi) temp.ptemp.cur_size=b.pi; temp.cur_size+; return temp; int_set cha(int_set for(int i=0;imax_size;i+)temp.pi=pi; temp.cur_size=cur_size; for(i=0;ib.cur_size;i+) I if(temp.search(b.pi)temp.dec(b.pi); return temp; /*/ ; 4.3 主函数设计 void main() int_set obj1

10、(8); int_set obj2(6); cinobj1; /输入集合 cinobj1; obj1.add(7); /添加一个元素 coutobj1; obj1.add(8); /再添加一个元素 obj1.ifsearch(3); /判断元素是否在集合中 obj1.ifsearch(0); coutobj1.jiao(obj2); /求交集 /*若没拷贝构造函数,则指针 被提前释放了,输出大的随机数*/ coutobj1.bing(obj2); /求并集 coutobj1.cha(obj2); /差运算 5 5 DOSDOS 界面程序运行结果及分析界面程序运行结果及分析 5.15.1 程序运行结果程序运行结果 .

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号