数据结构课程设计实习报告

2024-06-12 21:08

本文主要是介绍数据结构课程设计实习报告,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.设计目的
  1. 复习MFC的相关操作。

  2. 巩固《数据结构》的基础知识并实现:List, Stack. Sort

  3. 熟练调用系统类库,加深对软件本质的理解。

  4. 理解多态,宏的意义,并运用。

二.设计任务

根据《数据结构》课程设计的结构体系,基于MFCSDI应用程序。利用树状图实现各级菜单,并实现对应的消息响应。线性表,一元多项式相加,栈的应用,排序都基于对话框。

三.程序结构

1.程序结构图:


2.类图:


3.类关系图


4.FileViewTreeView

      FileView显示数据,TreeView处理消息响应;有代表性的代码如下:

voidCFileView::FillFileView()

{

   HTREEITEM hRoot = m_wndFileView.InsertItem(_T("数据结构"),0, 0);

   m_wndFileView.SetItemState(hRoot,TVIS_BOLD,TVIS_BOLD);

 

   HTREEITEM hSrc = m_wndFileView.InsertItem(_T("绪论"),0, 0, hRoot);

 

   m_wndFileView.InsertItem(_T("什么是数据结构"),2,2, hSrc);

   m_wndFileView.InsertItem(_T("基本概念和术语"),2, 2, hSrc);

   m_wndFileView.InsertItem(_T("抽象数据类型的表示和实现"),2,2 ,hSrc);

   m_wndFileView.InsertItem(_T("算法和算法分析"),2, 2, hSrc);

 

   m_wndFileView.Expand(hRoot,TVE_EXPAND);

   m_wndFileView.Expand(hSrc,TVE_EXPAND);

……

}

voidCViewTree::OnNMClick(NMHDR *pNMHDR,LRESULT *pResult)

   {

   DWORD dwpos = GetMessagePos();

   TVHITTESTINFO ht = { 0 };

   ht.pt.x =GET_X_LPARAM(dwpos);

   ht.pt.y =GET_Y_LPARAM(dwpos);

   ::MapWindowPoints(HWND_DESKTOP,pNMHDR->hwndFrom,&ht.pt, 1);

   TreeView_HitTest(pNMHDR->hwndFrom, &ht);

   CString sel =this->GetItemText(ht.hItem);

#defineJUDGE(x)if(sel==x)

   JUDGE(_T("图的定义和术语"))

       AfxMessageBox(_T("图:是一种较线性表和树更为复杂的数据结构。结点直接的关系可以是任意的,图中任意两个数据元素之间都可能相关。\n顶点:数据元素。\n弧:两个顶点之间的关系。\n弧头:弧的终端点。\n弧尾:弧的初始点。\n有向图:有指向的图。\n无向图:没有指向的图。\n连通图:任意两个顶点都连通。"));

   JUDGE(_T("线性表的顺序表示和实现"))

       {

       CListDLg*m_listDlg =newCListDLg();

       m_listDlg->DoModal();

       }

   JUDGE(_T("线性表的链式表示和实现"))

       {

       CListDLg*m_SqListDlg =newCListDLg();

       m_SqListDlg->DoModal();

       }

   JUDGE(_T("一元多项式的表示及相加"))

       {

       CPolynomialDlg*m_pPolynomialDlg =newCPolynomialDlg();

       m_pPolynomialDlg->DoModal();

 

       }

   JUDGE(_T("栈的应用举例"))

       {

       CUSESTACK*m_stackDlg =newCUSESTACK();

       m_stackDlg->DoModal();

JUDGE(_T("插入排序"))

       {

       CSortDlg*sortDlg =newCSortDlg();

       sortDlg->DoModal();

       }

……

}

5.ListDlg

voidCListDLg::OnBnClickedButtonCreate()

   {

   UpdateData(TRUE);

   GetDlgItemTextW(IDC_EDIT_ITEMOFCREATE, m_itemOfCreate);

   for (int i = 0; i < m_itemOfCreate.GetLength(); i=i+2)

       {

       CStringstr(m_itemOfCreate.GetAt(i));

       List.push_back(_wtoi(str));

       }

 

   //length

这篇关于数据结构课程设计实习报告的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1055343

相关文章

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

浙大数据结构:树的定义与操作

四种遍历 #include<iostream>#include<queue>using namespace std;typedef struct treenode *BinTree;typedef BinTree position;typedef int ElementType;struct treenode{ElementType data;BinTree left;BinTre

【干货分享】基于SSM的体育场管理系统的开题报告(附源码下载地址)

中秋送好礼 中秋佳节将至,祝福大家中秋快乐,阖家幸福。本期免费分享毕业设计作品:《基于SSM的体育场管理系统》。 基于SSM的体育场管理系统的开题报告 一、课题背景与意义 随着全民健身理念的深入人心,体育场已成为广大师生和社区居民进行体育锻炼的重要场所。然而,传统的体育场管理方式存在诸多问题,如资源分配不均、预约流程繁琐、数据统计不准确等,严重影响了体育场的使用效率和用户体验。