赛事管理系统

一、问题定义

管理各参赛队伍信息

二、问题分析

 此问题与学生管理系统类型,主要内容包括参赛队伍的基本信息(包含参赛队编号,参赛作品名称,参赛学校,赛事类别,参赛者,指导老师),以及实现增删查改等操作

初始菜单  欢迎语句及其功能,选择对应功能

队伍类:

属性:参赛队编号,参赛作品名称,参赛学校,赛事类别,参赛者,指导老师

其中,赛事类别包括(1)软件应用与开发;(2)微课与教学辅助;(3)物联网应用;(4)大数据应用;(5)人工智能应用;(6)信息可视化设计;(7)数媒静态设计;(8)数媒动漫与短片;(9)数媒游戏与交互设计;(10)计算机音乐创作;(11)国际生“学汉语,写汉字”

添加功能

键盘录入信息,并且参赛队伍编号唯一

删除功能

键盘录入需要删除的队伍编号,若存在,则删除;若不存在,则提示后回到初始菜单。

修改功能

键盘录入需要修改的队伍编号,编号存在,继续录入,不存在,提示后回到初始菜单

查询功能

在下一部分单独进行叙述

基本框架

欢迎页面:

switch(choose){

case1:添加队伍

case2:删除队伍

case3:修改队伍

case4:查询队伍

}

首先,需要构建一个队伍类,用来存放相关的属性

 然后从外部获取一个值,返回这个值并设置给对应属性(以id为例)

 接下来开始创建管理页面,创建一个测试类,写出代码的主要部分(增删查改和索引方法)(索引方法是为了查找并返回内容,便于修改)

三、具体模块

getindex方法

getindex()函数,用于构造指定类型的数组。此函数还用于获取特定索引处的数组元素

实际代码演示:(此处以id为例)

//通过id获取索引方法

public static int getIndex1(ArrayList<Team> list, String id) {

    //遍历集合

    for (int i = 0; i < list.size(); i++) {

        //得到每一个队伍对象

        Team tem = list.get(i);

        //得到每一个队伍对象的id

        String tid = tem.getId();

        //拿着集合中队伍id和需要查询的id进行比较,若一样返回索引

        if (tid.equals(id)) {

            return i;



        }

    }

    //循环结束后未找到,说明不存在

    return -1;

}

 菜单页面

为更好的实现人机交互,便于用户的理解和使用,需要设计合理的菜单页面  。下面是菜单页面的例子需要设计一个while循环,保证每进行完一个功能后都可以返回菜单进行下一步操作。用Switch来进行快速的运行

loop:

while (true) {

    System.out.println("---------------欢迎来到计算机设计大赛管理系统 --------------");

    System.out.println("1:添加队伍");

    System.out.println("2:删除队伍");

    System.out.println("3:修改队伍");

    System.out.println("4:查询队伍");

    System.out.println("5BST查找");

    System.out.println("6:叫号系统");

    System.out.println("7:退出系统");

    System.out.println("---------------请输入您的选择--------------");

    Scanner sc = new Scanner(System.in);

    String choose = sc.next();//nextnextin容错率更高

    switch (choose) {

        case "1" -> addTeam(list);

        case "2" -> deleteTeam(list);

        case "3" -> updateTeam(list);

        case "4" -> queryTeam(list);

        case "5" -> bstSearch(list);

        case "6" -> call(list);

        case "7" -> {

            System.out.println("退出系统");

            break loop;//否则只会跳出switch或者使用停止虚拟机运行System.exit(status:0);

        }

        default -> System.out.println("没有这个选项!");

    }



}

增加信息模块

首先利用空参构造创建一个队伍对象t,然后根据提示,输入队伍编号。用String来存储键盘输入的队伍编号,调用getindex1方法,将输入的id与已存在的id比较,若id已存在,输出"此id已经存在,请重新录入",若不存在,用t.setName等方法依次将信息录入。//添加队伍
public static void addTeam(ArrayList<Team> list) {
   
//利用空参构造先创建队伍对象
   
Team t = new Team();
   
Scanner sc = new Scanner(System.in);
   
String id = null;
    while
(true) {
        System.
out.println("请添加参赛队编号");
       
id = sc.next();
        boolean
flag = contains(list, id);
        if
(flag) {
           
//表示id已经存在需要重新录入
           
System.out.println("id已经存在,请重新录入");
       
} else {
           
//表示id不存在,可以录入
           
t.setId(id);
            break;
       
}
    }
    t.setId(id)
;

   
System.out.println("请添加参赛作品名");
   
String name = sc.next();
   
t.setName(name);

   
System.out.println("请添加参赛学校");
   
String school = sc.next();
   
t.setSchool(school);

   
System.out.println("请添加赛事类别");
   
String type = sc.next();
   
t.setType(type);

   
System.out.println("请添加参赛者");
   
String member = sc.next();
   
t.setMember(member);

   
System.out.println("请添加指导老师");
   
String teacher = sc.next();
   
t.setTeacher(teacher);
   
//把学生对象添加至集合中
   
list.add(t);
   
//提示
   
System.out.println("队伍信息添加成功");

删除信息模块

删除信息和增加信息相差不大,首先用String来存储键盘输入的队伍编号,调用getindex1方法,

对index进行判断,若大于等于0则表示存在,直接删除。如果是-1,不存在,结束方法回到菜单。

//删除队伍

public static void deleteTeam(ArrayList<Team> list) {

    System.out.println("删除队伍");

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入需要删除的队伍编号");

    String id = sc.next();

    //查询id 在集合中的索引

    int index = getIndex1(list, id);

    //index进行判断

    //若大于等于0则表示存在,直接删除

    //如果是-1,不存在,结束方法回到菜单

    if (index >= 0) {

        //若大于等于0则表示存在,直接删除

        list.remove(index);

        System.out.println("参赛编号为" + id + "的参赛队伍删除成功");

    } else {

        System.out.println("编号不存在,删除失败!");

    }



}

修改信息模块

前面与增加信息内容一致,根据提示,输入队伍编号。用String来存储键盘输入的队伍编号,调用getindex1方法,将输入的id与已存在的id比较,若id不存在,输出"要修改的队伍编号" + id + "不存在,请重新输入",若存在,用t.setName等方法依次将信息录入。

//修改队伍
public static void updateTeam(ArrayList<Team> list) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入需要修该的队伍的编号");
    String id = sc.next();
    int index = getIndex1(list, id);
    if (index == -1) {
        System.out.println("要修改的队伍编号" + id + "不存在,请重新输入");
        return;
    }
    //当代码执行到这里,表示当前id存在
    //获取需要修改对象
    Team tem = list.get(index);
    //输入其它信息并修改
    System.out.println("请输入要修改的参赛作品名");
    String newName = sc.next();
    tem.setName(newName);

    System.out.println("请输入要修改的参赛学校");
    String newSchool = sc.next();
    tem.setSchool(newSchool);

    System.out.println("请输入要修改的赛事类别");
    String newType = sc.next();
    tem.setType(newType);

    System.out.println("请输入要修改的参赛者");
    String newMember = sc.next();
    tem.setMember(newMember);

    System.out.println("请输入要修改的指导老师");
    String newTeacher = sc.next();
    tem.setTeacher(newTeacher);

    System.out.println("该参赛队伍信息已修改完成!");
}
目 录 1 1 奥运会赛事管理管理系统需求分析 1 1.1开发背景 1 1.2 系统主要业务分析 2 1.2.1 运动员信息管理业务分析 2 1.2.2 运动队信息管理业务分析 2 1.2.3比赛项目管理业务分析 3 1.2.4 计分项目管理业务分析 3 1.2.5 裁判员管理业务分析 4 1.2.6项目类型管理业务分析 4 1.2.7国家管理业务分析 5 1.2.8赛事地点管理业务分析 5 1.2.9赛事信息管理业务分析 5 1.2.10赛事纪录管理业务分析 6 1.2.11运动员参加项目管理业务分析 6 1.2.12赛事项目对应管理业务分析 7 1.2.13赛事裁判对应管理业务分析 7 1.3 系统功能需求分析 8 1.3.1运动员信息管理需求分析 8 1.3.2运动队信息管理需求分析 9 1.3.3比赛项目信息管理需求分析 10 1.3.4计分项目信息管理需求分析 11 1.3.5裁判员信息管理需求分析 12 1.3.6项目类型管理功能分析 12 1.3.7国家管理功能分析 13 1.3.8赛事地点管理功能分析 13 1.3.9赛事记录管理功能分析 14 1.3.10赛事信息管理功能分析 14 1.3.11运动员参加项目管理需求分析 15 1.3.12赛事项目对应管理需求分析 16 1.3.13赛事裁判对应管理需求分析 17 1.3.14查询、审核需求分析 18 1.3.15评分需求分析 18 1.4 系统数据模型 19 1.5 数据字典 24 2 奥运会赛事管理系统逻辑结构设计 33 2.1 系统模块划分 33 2.2 数据库逻辑结构设计 34 3 奥运会赛事管理系统功能设计 36 3.1.1 裁判信息增加操作 36 3.1.2裁判信息删除操作 36 3.1.3裁判信息修改操作 36 3.1.4裁判信息查询操作 37 3.1.5赛事信息增加操作 37 3.1.6赛事信息删除操作 37 3.1.7赛事信息修改操作 37 3.1.8赛事记录增加操作 37 3.1.9赛事记录删除操作 38 3.1.10赛事记录修改操作 38 3.1.11赛事地点增加操作 38 3.1.12赛事地点删除操作 38 3.1.13赛事地点修改操作 38 3.1.14赛事裁判对应表增加操作 39 3.1.15赛事裁判对应表删除操作 39 3.1.16赛事信息查询操作 39 3.1.17赛事记录查询操作 39 3.1.18赛事地点查询操作 39 3.1.19赛事裁判对应表查询操作 40 3.1.20保证同一时间只能举行一个项目的触发器 40 3.1.21 比赛项目增加操作(项目编号、项目类型编号、项目名称) 40 3.1.22 比赛项目删除操作(项目编号、项目类型编号、项目名称) 40 3.1.23比赛项目修改操作(项目编号、项目类型编号、项目名称) 41 3.1.24比赛项目查询操作(项目编号、项目类型编号、项目名称) 41 3.1.38运动员增加操作 43 3.1.39运动员删除操作 44 3.1.40运动员修改操作 44 3.1.41运动员查询操作 44 3.1.42国家增加操作 45 3.1.43国家删除操作 45 3.1.44国家修改操作 45 3.1.45国家查询操作 45 3.1.46计分项目增加操作 45 3.1.47计分项目删除操作 46 3.1.48计分项目修改操作 46 3.1.49计分项目查询操作 46 3.1.50运动员参加项目增加操作 46 3.1.51运动员参加项目删除操作 47 3.1.52运动员参加项目查询操作 47 3.1.53place的删除触发器 47 4 课程设计总结 47 4.1 总结 47 4.2 展望 48
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值