数据结构实践预习报告

1.问题定义

赛事管理系统

2.问题分析

问题一:管理参赛队伍的基本信息,要求可以实现增删改等操作,这显然是一个对于存储方式的考察,每支队伍信息有十一项,所以每支队伍的基本信息要使用数组存储,然后将所有的队伍参赛信息进行存储,这里要考虑使用的存储方式是否便于增删改的操作。

问题二:从文件中中读取参赛队伍的基本信息,实现基于二叉排序树的查找。根据编号对参赛队伍信息进行查询输出,这显然是对二叉树内容的考察,使用遍历查询还是递归查询也要考虑,查找成功则输出队伍基本信息,反之输出查找失败。

问题三:任然是查询问题,要求根据参赛队伍学校名称或赛事类别进行查询,同时还要求对输出的信息进行排序,这就考察到了排序方法,确定该使用什么方法来对信息进行排序。

问题四:要求实现一个叫号系统,对参与决赛的队伍分别分配到9个决赛室,这里要求按顺序叫号,分别进入1到9决赛室,前一支队伍结束在叫下一支队伍,对所有队伍编号,模拟实际情况。

问题五:为参赛队伍提供地图导航服务,主要考察图论方面的知识,校园地图是无向连通图,导航要实现两个目的地之间的最短路径问题,需要采用经典算法解决最短路径问题,包括Dijkstra 算法,Floyd-Warshell 算法,Bellman-Ford 算法和深度优先遍历。不同算法有不同的好坏之处,具体使用什么方法自己决定。

3.概要设计

参赛队伍信息的数据结构:类--Team,用于存储每支参赛队伍的信息

public class Team{

        //为了便于后面对参赛队伍信息进行增删改,数据全部使用string类型

        //参赛队伍编号

        public int id;

        //参赛作品名称

        public string name;

        //参赛学校

        public string college;

        //赛事类别

        public char category;

        //参赛者

        public string player;

        //构造方法

        public Team (int id,string name,string college,char category,string player){

                this.id = id;

                this.name = name;

                this.college = college;

                this.category = category;

                this.player = player;

        }

}

//get set 方法,通过idea自带的重构方式写出来

接下来是每个问题对应的函数

问题一:增加参赛队伍信息,只需要新创建一个Team

类,对该类中的数据进行设置即可添加,删除只需要找到对应信息的id,进行删除操作即可,修改要先确定修改的信息,同样通过对应函数操作实行。

问题二:先将所有参赛队伍生成一个二叉树,通过查找关键字,对二叉树进行遍历,查找成功则输出信息,查找失败则输出“查找失败!”。

问题三:根据线性表的查找方式找出所需要的信息,然后编写相应的排序算法几即可。

问题四:写一个叫号系统的函数,对所有参赛队伍编号,挨个叫号,1到9个决赛室由操作员决定是否有参赛队伍,没有则叫号进入对应的决赛室即可模拟叫号。

问题五:创建一个点类,用来存储各个目的地的信息,然后采用邻接矩阵的存储方式对各个目的地之间进行存储,当参赛选手想要到达某个目的地时,之需要在起始位置与目的地之间运用最短路径算法即可实现导航。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值