数据结构算法模拟系统

一、前言

  学习数据结构已经有很长时间了,加上之前搞过一段时间的ACM,虽然搞得并不怎么样吧,但是喜欢的东西不能放弃,一直打算写一个算法模拟系统,对常用的一些算法进行简单的模拟,于是我的毕业设计就这样诞生了。我相信这个简单的系统可以给初学数据结构和算法的人带来一定的帮助。在此做个介绍并留个纪念。另外,我很喜欢一个朋友的作品,分享给大家,希望你们也能喜欢。

二、项目中用到的设计模式

    mvc模式+观察者模式

  其中Model需要继承Observalbe类,充当被观察者,View需要实现Obsever接口,充当观察者。

  被观察者类要添加它的观察者类,调用addObserver(Observer o)方法来添加观察者,addObserver()方法把观察者对象添加到观察者对象列表中。如果被观察事件发生了,需要通知观察者事件发生了,然后观察者会做出相应的处理,要执行的语句是setChanged()notifyObservers()。其中setChange()方法将内部的一个标志位变动一下,表示内容已经发生了变化, notifyObservers()方法会去调用观察者对象列表中所有的Observerupdate()方法,通知它们数据发生了变化。只有在setChange()被调用后,notifyObservers()才会去调用update()

三、数据结构中一些模型的设计

 

四、项目功能模块

  1.系统前台设计

 

  2.系统后台设计

 

五、效果展示

  界面很丑啊,没办法,艺术细菌太少了......

 

                   模拟系统之选择算法分类                                          模拟系统之选择具体的算法进行模拟

 

       模拟系统之点击开始                      模拟系统之输入算法所需要的数据

 

       模拟系统之算法模拟开始                练习系统之查看算法题目

 

      练习系统之编辑代码并提交运行                用户交流之登录

 

      用户交流之注册                    用户交流之发送消息

 

      用户交流之发送模板邮件                用户交流之收到模板邮件

六、秀一下朋友的作品

  如果无法显示,请使用火狐或者谷歌浏览器或者请戳 这里 浏览。作品很好,我很喜欢,你们呢?这艺术细胞,嘎嘎的啊!

作者: 常雪

联系方式(qq或微信):

        1141884216

第一次利用github来部署静态网页,在这里记录一下:

  用 GitHub 来部署静态网页: https://segmentfault.com/a/1190000002765287

  部署成功的demo: https://github.com/hjzgg/picChangeTest

  demo演示效果: http://hjzgg.github.io/picChangeTest

  3D图片切换demo: https://github.com/hjzgg/3D_PictureChange

如果你想修改这个例子中的图片,看一下 3D图片切换demo 这个demo,我这里简单封装了一个jquery插件,直接引用插件并修改参数就可以了。 

七、完整项目地址

   这里介绍了项目如何配置运行,以及项目的源码,请详细阅读README.md这个文件。如果有什么疑问,欢迎留言或者qq联系我。

  我的毕设: https://github.com/hjzgg/Graduation_Design

八、感受

  这个毕设项目持续了2个多月,每个算法的模拟实现都是根据个人的想法,简单的1天就搞定了,复杂的3,4天才搞定。因为时间有限,只是将数据结构大学课本中的一些常用算法进行了模拟,完成之后感觉对javase的使用更加熟练了,期间更尝试了mvc+观察者的设计模式。由于做毕设期间还在实习,所以项目的后台工程也就是本次实习用到的java web技术,例如maven,springmvc,springdata jpa等等。整个项目用到了大学里编程中的大部分知识,也用到了实习过程中的一些知识,对我来这个毕设真是大学四年期间和实习期间知识与技术积累的一个总结,无论好与坏,这都是自己的进步。慢慢积累,慢慢成长。

数据结构》(C语言版)<br>算法源码及运行演示系统使用说明<br>一、启动演示系统<br>双击演示系统应用程序文件“DS_VC_ALGO.EXE”启动演示系统,出现图1所示界面。<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>图1 《数据结构》(C语言版)算法源码及运行演示系统主界面<br>二、演示系统使用步骤<br>除了个别算法之外,演示系统给出了《数据结构》(C语言版)书中算法对应的程序代码(CPP文件)和测试运行程序(VC++6.0的EXE文件)。通过本系统,可以显示算法的源代码以及运行结果。具体操作步骤如下:<br>1.选择相应章<br>单击演示系统界面右侧章选择按钮。<br>例如,要选择第6章,则单击“第6章”选择按钮。<br>当相应章被选择后,窗口的右侧部分将列出本章的算法选择按钮。<br>例如,选择第6章后,窗口的右侧部分将显示第6章中的算法6.1-6.13和6.15的选择按钮。由于书中的算法6.14和6.16只是示意性算法,故未给出源码,其按钮上的文字为灰色,处于“无效”状态。<br>2.选择相应章中的算法<br>单击窗口右侧部分所列举的本章某个算法选择按钮,被选择的算法的源码将在窗口左侧空白区域中显示。对于较长的源码,单击显示区域后,可用键盘的光标键和翻页键浏览源码。<br> 例如,选择了第6章中的算法6.5后界面如图2所示:<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>图2 选择算法6.5<br>3.运行测试程序<br>单击窗口上部的“运行”按钮,将弹出运行窗口,运行所选算法测试程序。若运行按钮为灰色,表示该算法无单独测试程序。<br> 例如,算法6.5的测试运行窗口如图3所示:<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>图3 测试运行窗口<br>测试运行说明:<br>测试运行窗口显示程序的执行过程及结果。若在显示过程中出现运行窗口无法正常演示的情况,只需调节运行窗口大小即可正常显示(调节最小化按钮或窗口最大化/还原按钮“ ”)。<br>三、退出演示系统<br>使用完毕后,单击窗口右上角关闭按钮“ ”退出演示系统。<br>四、测试程序示例<br>在《数据结构》的课程教学中,各抽象数据类型的设计与实现是重要的学习和实践环节。为此,本系统只给出了各算法源码的测试程序的可执行文件。在此,给出算法6.5的测试程序示例,以供参考。<br>算法6.5是中序遍历线索二叉树的非递归算法,要对其源码进行测试,可首先调用算法6.6及6.7建立中序线索二叉树。以下是测试程序的源码,相关类型和辅助函数定义在文件include06.h和include06.cpp中,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值