数据结构课程设计
100165 数据结构课程设计
一、总述
1. 教材
暂无。
但是课程设计要求 数据结构可视化,因此在实现过程当中,会有许多的选择。
这里提供一些网站,以供参考:
- Electron: 是一套热门的开源软件开发框架(
VsCode
,Teams
都得益于Electron
),由于其将浏览器渲染引擎与Node.js
某种程度上相结合,因此允许开发者使用一些 web 开发 时的手段; - tkinter: 是
Python
内置的GUI
工具(git push
时的身份验证就是tkinter
所写的),能够比较方便快捷地开发窗口应用程序; - Swing: 作为开发窗口应用程序的轻量级组件库,
Swing
十分常见(比如见到过的Mars
,JFLAP
),Kotlin
也可以使用Swing
进行开发; - Material-UI: 号称世界上最受欢迎的 React
UI
框架。 - Element-UI: Vue2.0 下的
UI
组件库,有着不逊色于Material-UI
的广度与功能; - Matlab / matplotlib: 无论是
Matlab
本身还是Python
的matplotlib
,在制作二维、三维静动态图片方面都有很好的表现; - C++ Qt5: 是常用的
C++ GUI
编程工具,配合对应的软件,可以做到类可视化程序设计。
2. 作业
所有同学需要根据自己的 学号 最后一位数字来决定自己的作业,这一点与曾经的 汇编语言程序设计 大作业 类似。
每位同学都会分到 2 道题目,一道 算法实现,一道 综合应用。 一般来说,算法实现 是干净利落的数据结构可视化题目,综合应用 的每道题目结合了一些实际问题,将数据结构与算法包装起来。
无论是 算法实现,还是 综合应用,10 道题之间的难度差距十分大:
(算法实现第 0 题) 试从空树出发构造一棵深度至少为3(不包括失误结点)的3阶B-树(又称2-3树) 并可以随时进行查找、插入、删除等操作。 要求:能够把构造和删除过程中的B-树随时显示输出来,能给出查找是否成功的有关信息。
(算法实现第 9 题) 几种排序:要求随机输入一组数据,随时给出某一趟排序的变化情况 (1)直接插入排序、折半插入排序、希尔排序; (2)冒泡排序、快速排序; (3)简单选择排序
(综合应用第 2 题) 上海的地铁交通网路已基本成型,建成的地铁线十多条,站点上百个 现需建立一个换乘指南打印系统,通过输入起点站和终点站,打印出地铁换乘指南 指南内容包括起点站、换乘站、终点站。 (1)图形化显示地铁网络结构,能动态添加地铁线路和地铁站点。 (2)根据输入起点站和终点站,显示地铁换乘指南。 (3)通过图形界面显示乘车路径。
(综合应用第 7 题) 参加奥运会有n个国家,各国编号为1……n。比赛分成m个男子项目,和w个女子项目。 项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分; 取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2; 哪些取前五名或前三名由学生自己设定。 (1)可以输入各个项目的前三名或前五名的成绩; (2)能统计各国总分, (3)可以按各国编号、各国总分、男女团体总分排序输出; (4)可以按各国编号查询国家某个项目的情况;可以按项目编号查询取得前三或前五名的国家。
3. 课堂
按道理是不会讲课的,讲也顶多讲一节课的要求,剩下的从设计到代码都是由学生自行完成。
二、任课教师
仍旧是数据结构课的老师们。
本课程的老师必须选择与数据结构课相同的老师,再加上这门课基本不上课,所以没什么可说的。
(注:以上仅作参考,实际情况应以当前学期老师要求为准)
文件列表
- 100165_数据结构课程设计
- doc
- template