数据结构实验预习报告

本文介绍了两个项目:1. 数据结构实验中的赛事统计程序,实现了添加信息、按学校和项目排序、查询等功能,数据存储在文件中;2. 设计的校园导游程序,使用邻接矩阵表示无向图,提供了景点信息查询和最短路径计算。这两个项目均涉及数据结构和算法的应用,如排序、搜索和图的遍历。
摘要由CSDN通过智能技术生成

项目1:中国计算机设计大赛赛事统计

【问题描述】

  参加计算机设计大赛的n个学校编号为1~n,赛事分成m个项目,项目的编号为1~m.比赛获奖按照得分降序,取前三名,写一个统计程序产生各种成绩单和得分报表。

【基本要求】

1)每个比赛项目至少有10支参赛队;每个学校最多有6支队伍参赛;

2)能统计各学校的总分;

3)可以按照学校编号或名称,学校的总分、各项目的总分排序输出;

4)可以按学校编号查询学校某个项目的获奖情况;可以按项目编号查询取得前三名的学校;

5)数据存入文件并能随时查询

【设计要求】

1)输入数据形式和范围:可以输入学校的名称,赛事项目的名称。

2)输出形式:有中文提示,各学校分数为整数

3)界面要求:交互设计要合理,每个功能可以设立菜单,根据提示,可以完成相关功能的要求。

4)存储结构:学生自己根据系统功能要求自己设计,但是赛事相关数据要存储在文件中。

【测试数据】

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

【实现提示】

  假设3<赛事项目数量<=10,学校名称长度不超过20个字符。每个赛事结束时,将其编号、名称输入,并依次输入参赛学校编号、学校名称和成绩。

【代码】

import java.sql.SQLOutput;

import java.util.*;

class test {

    static int m;

    static int n;

    static Project[] project = new Project[10];

    static School[] school = new School[10];

    static class Project {

        int projectCode;

        String projectName;

        int teamnum;

        int[] jointeam = new int[10];

        int[] score = new int[10];

  }

    static class School {

        int schoolCode;

        String schoolName;

        int sum;

    }

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("请输入项目的数目:");

        m = sc.nextInt();

        while(m<=3||m>10){ System.out.println("输入有误!");

            System.out.println("请重新输入");

            Scanner s = new Scanner(System.in);

            m = s.nextInt();

        }

        while(m>0&&m<=10){

            System.out.println("输入成功!一共有"+m+"个项目");

            break;

        }

        System.out.println("请输入学校的数目:");

        n = sc.nextInt();

        if (n <= 0) {

            System.out.println("输入有误!");

            System.out.println("请重新输入");

            Scanner c = new Scanner(System.in);

            n = c.nextInt();

        }

        while (true) {

            System.out.println("欢迎使用赛事统计查询系统");

            System.out.println("1.添加信息");

            System.out.println("2.按学校编号排序输出");

            System.out.println("3.按项目总分排序输出");

            System.out.println("4.按学校编号查询学校某个项目的获奖情况");

            System.out.println("5.按项目编号查询取得前三名的学校");

            System.out.println("0.退出");

            System.out.println("请输入你的选择:");

            String nothing = sc.nextLine();

            int option = sc.nextInt();

            if (option != 0 && option != 1 && option != 2 && option != 3 && option != 4 && option != 5) {

                System.out.println("输入错误");

                System.exit(0);

            }

            switch (option) {

                case 1:

                    addInformation();

                    break;

                case 2:

                    printByCodes();

                    break;

                case 3:

                    printByScore();

                    break;

                case 4:

                    findByCodes();

                    break;

                case 5:

                    getTopThree();

                    break;

                case 0:

                    System.out.println("谢谢使用");

                    System.exit(0);

            }

        }

    }

    public static void addInformation() {

   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值