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

上传人:牧羊曲112 文档编号:4298723 上传时间:2023-04-14 格式:DOC 页数:11 大小:441KB
返回 下载 相关 举报
集合类的设计与实现(MFC).doc_第1页
第1页 / 共11页
集合类的设计与实现(MFC).doc_第2页
第2页 / 共11页
集合类的设计与实现(MFC).doc_第3页
第3页 / 共11页
集合类的设计与实现(MFC).doc_第4页
第4页 / 共11页
集合类的设计与实现(MFC).doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《集合类的设计与实现(MFC).doc》由会员分享,可在线阅读,更多相关《集合类的设计与实现(MFC).doc(11页珍藏版)》请在三一办公上搜索。

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

2、相关资料,进行类设计、算法设计;第18周:程序的设计、调试与实现;第19周:程序测试与分析,撰写课程设计报告,进行答辩验收。指导教师(签字):年 月 日学院院长(签字)年 月 日目 录1 需求分析- 1 -2 算法基本原理- 1 -3 类设计- 1 -4 详细设计- 2 - 类的接口设计- 2 - 类的实现- 2 - 主函数设计- 4 -5 DOS界面程序运行结果及分析- 5- 程序运行结果- 5 -运行结果分析- 5 -6 基于MFC的图形界面程序开发- 6 - 基于MFC的图形界面程序设计- 6 - 程序测试- 17 - MFC程序编写总结- 19 -7 参考文献- 19 -1 需求分析

3、1问题描述:用有序单链表表示集合,实现集合的交、并、差运算,且空间复杂度为O(1) 2基本功能:可快速的分别求出两个字符集合的交、并、差。 3输入和输出:(1)输入:在C+环境下编写的程序,其输入是简单、方便的,即 按提示分别输入两集合的元素。l 输入字符的范围:小写字母a,b,.,y,z,大写字母A,B,.Y,Z,和数字0,1,.8,9;l 输入形式:字符集合,按顺序大小排序输入,允许出现重复字符,程序能自动滤去;(2)输出:程序采用单链表的存储结构,使得运算快捷简便,显示的结果也明了。 输出结果不含重复或非法字符;2 算法基本原理Setla,b,x,w,Set2a,b,y,z, SetlS

4、et2a,b,x,y,z,w SetlSet2a,b SetlSet2 x,w 3 类设计从上面的算法分析可以看到,本设计关键是集合的并,交,差运算。可以定义一个类int_set,然后由该类定义出私有和公有成员函数,为主函数的执行做好铺垫4 详细设计整个程序分为三大块,先是类的接口,定义出基类后再在类中定义出相关成员函数:接着是累的实现部分,写出具体的函数代码,用以执行相关功能;最后则是主函数,用一天调用各个函数并执行相应的输入输出功能 类的接口设计#includeclass int_setprivate:int max_size; int cur_size;char *p;public:in

5、t_set(const int_set & a) . menu item to system menu.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); The framework does this automatically For MFC applications using the document/view model,void CJI

6、HEDlg:OnPaint() if (IsIconic()CPaintDC dc(this); HCURSOR CJIHEDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;int CJIHEDlg:panduanCF()UpdateData(1);();CString m,n; for (int i=0;i=()/2;i+) AfxExtractSubString(m, (LPCTSTR)m_1, i, ); for (int j=i+1;j=()/2;j+) AfxExtractSubString(n, (LPCTSTR)m_1, j, ); if

7、(m=n) AfxMessageBox(重复输入!);m_1=0;m_2=0;UpdateData(0);return 1; for ( i=0;i=()/2;i+) AfxExtractSubString(m, (LPCTSTR)m_2, i, ); for (int j=i+1;j=()/2;j+) AfxExtractSubString(n, (LPCTSTR)m_2, j, ); if(m=n) AfxMessageBox(重复输入!);m_1=0;m_2=0;UpdateData(0);return 1; return 0;5求相应集合的运算代码void CJIHEDlg:Onjia

8、o() UpdateData(1); (); if(panduanCF() return; CString tem,dem; if(m_1=0 & m_2=0) AfxMessageBox(交集为空,请输入元素); m_3=0;return ;else if(m_1=0|m_2=0) m_3=空集; else for (int i=0;i=()/2;i+) for (int j=0;j=()/2;j+) AfxExtractSubString(tem, (LPCTSTR)m_1, i, ); AfxExtractSubString(dem, (LPCTSTR)m_2, j, ); if(tem

9、=dem) if()=0) m_3=tem; else m_3=m_3+ +tem; if(m_3=0) m_3=空集; UpdateData(0);void CJIHEDlg:Onbing() UpdateData(1); (); UpdateData(0); if(m_1=0 & m_2=0) AfxMessageBox(并集为空,请输入元素); return ; if(panduanCF() return; if(m_1=0 | m_2=0) m_3=m_1+m_2;UpdateData(0);return; m_3=m_1; CString tem; CString dem;for (int i=0;i();i+) AfxExtractSubString(tem, (LPCTSTR)m_2, i, ); int flag=0;C+语言程序设计(第3版). 北京:清华大学出版社,20073钱能. C+程序设计教程(第二版). 北京:清华大学出版社,20054陈志泊,王春玲. 面向对象的程序设计语言C+. 北京:人民邮电出版社,20025李庆扬,王能超,易大义. 数值分析. 湖北:华中理工大学出版社,1986【6】张俊,张彦铎。C+面向对象程序设计。北京:中国铁道出版社,2008

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号