赛事管理系统

数据结构课程设计

背景

本次课程设计要求协助中国大学生计算机设计大赛江苏省组委会,设计一款赛事管理系统,实现赛务相关的数据管理及信息服务,该系统能够为省级赛事管理解决以下问题:

信息登录

​ 能够管理各参赛队的基本信息(包含参赛队编号,参赛作品名称,参赛学校,赛事类别,参赛者,指导老师),赛事类别共11项(参见大赛官网jsjds.blcu.edu.cn);包括增加、删除、修改参赛队伍的信息。

信息查找

​ 从team.txt中读取参赛队伍的基本信息,实现基于二叉排序树的查找。根据提示输入参赛队编号,若查找成功,输出该赛事类别对应的基本信息(参赛作品名称、参赛学校、赛事类别、参赛者和指导老师信息),同时,输出查找成功时的平均查找长度ASL;否则,输出“查找失败!”。

详细内容

​ 能够提供按参赛学校查询参赛团队(或根据赛事类别查询参赛团队),即,根据提示输入参赛学校名称(赛事类别),若查找成功,输出该学校参赛的(该赛事类别的)所有团队的基本信息,输出的参赛团队按赛事类别有序输出。(排序算法可从选择排序、插入排序、希尔排序、归并排序、堆排序中任意选择,并为选择算法的原因做出说明。)

赛事过程

​ 为省赛现场设计一个决赛叫号系统。所有参赛队按赛事组织文件中的赛事类别分到9个决赛室,决赛室按顺序叫号,被叫号参赛队进场,比赛结束后,下一参赛队才能进赛场。请模拟决赛叫号系统,演示省赛现场各决赛室的参赛队进场情况。(模拟时,要能直观展示叫号顺序与进场秩序一致)

地图信息

​ 赛事系统为参赛者提供赛地的校园导游程序,为参赛者提供各种路径导航的查询服务。以我校长山校区提供比赛场地为例,(请为参赛者提供不少于10个目标地的导航。可为参赛者提供校园地图中任意目标地(建筑物)相关信息的查询;提供任意两个目标地(建筑物)的导航查询,即查询任意两个目的地(建筑物)之间的一条最短路径。

设计要求

  1. 赛事数据要求存入文件(txt或excel)并能读入查询;
  2. 赛地目的地查询,需提供目的地(建筑物)名称、代号、简介、两地之间路径长度等信息;
  3. 输入数据形式和范围:赛事相关数据可从键盘输入,或自文件导入。
  4. 界面要求:交互设计要合理,每个功能可以设计菜单,用户根据提示,完成相关功能的要求。

实现步骤提示

  1. 分析任务,进行模块划分。
  2. 定义数据结构,建议按照抽象数据类型的定义、表示和实现来描述,用类C语言(伪代码)来描述数据的存储表示和相应操作的具体实现过程。
  3. 设计合适的算法来实现其功能,并绘制函数调用关系图。

测试数据

要求使用全部合法数据,整体非法数据,局部非法数据。进行程序测试,以保证程序的健壮性。

基本构建
定义了一个名为Team的类,其中包含了6个私有属性:teamID、projectName、school、eventCategory、competitors和teacher。
class Team {
private String teamID;
private String projectName;
private String school;
private String eventCategory;
private String competitors;
private String teacher;

public Team(String ID, String project, String school, String category, String competitors, String teacher) {
    this.teamID = ID;
    this.projectName = project;
    this.school = school;
    this.eventCategory = category;
    this.competitors = competitors;
    this.teacher = teacher;
}

增加参赛队伍

private static void addTeam() {
Scanner input = new Scanner(System.in);
System.out.print("Enter team ID: ");
String teamID = input.nextLine();
System.out.print("Enter project name: ");
String projectName = input.nextLine();
System.out.print("Enter school: ");
String school = input.nextLine();
System.out.print("Enter event category: ");
String category = input.nextLine();
System.out.print("Enter competit

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值