篮球赛场数据统计系统数据库设计实例

篮球赛场数据统计系统数据库设计实例

研究内容(篮球赛场数据统计系统)

   1)比赛前对球队、球员各项基本信息的录入功能;

   2)比赛时对进球得分、各种进球类型以及裁判评判情况等数据和信息的记录功能;

   3)比赛中对各种总体数据的实时统计实时分析,并根据各种相应数据生成形象生动地展现比赛总体情况的表格或图形,还有根据各种相应数据生成对赛场上各种情况的文字介绍的统计与分析功能;

   4)以及用户对实时球场情况评论投票和发布图片的功能,实现观众们的高互动性。

数据库设计

实体型关系:

比赛(比赛名称[matchname],时间[matchtime],地点[matchadd]

球队(球队名称[teamname],创建时间[estatime],所属国家[nation]

球员(姓名[playername],年龄[playerage],身高[playerheight]

裁判(姓名[judgename],年龄[judgeage],工作经验[judgeexper]

教练(姓名[tainname],年龄[tainage],工作经验[tainexper]

 

个人技术统计(队员姓名[playername],比赛名称[matchname],罚球[perpenalty]2分球[perscore2]3分球[perscore3],犯规次数[perbreak],得分[perscore]

与队员的联系(n:1)与比赛的联系(n:1

 

赛场技术统计(比赛名称[matchname],总罚球[totalpenalty],总2分球[totalscore2],总3分球[totalscore3],总犯规次数[totalbreak],总得分[totalscore]

与比赛联系(1:1

 

用户(用户名[username],密码[password],用户类型[usertype]

 

评论(用户名[username],比赛名称[matchname],评论时间[commentime],评论内容content

与用户联系(n:1)与比赛联系(n:1

 

上传图片(用户名[username],比赛名称[matchname],图片名称[]picturename,图片路径[picturepath]

与用户联系(n:1)与比赛联系(n:1

 

联系关系:

比赛球队和球员 参加(比赛名称[matchname]球队名称[teamname],球员姓名[playername]

球队和球员(m:n)     效力(球队名称[teamname],球员姓名[playername]

比赛和裁判(m:n)     执赛(比赛名称[matchname],裁判姓名[judgename]

比赛球队和教练   帮助(比赛名称[matchname],球队名称[teamname],教练姓名[tainname]

球队和教练(m:n)     帮助(球队名称[teamname],教练姓名[tainname]

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这个任务可以分为几个步骤来完成: 1. 设计一个队列,用于存储每个参赛队的编号。 2. 将所有参赛队按照赛事类别分组,分别存储在9个队列中。 3. 根据比赛顺序,依次从9个队列中取出下一个参赛队的编号,并将其放入一个待叫号的队列中。 4. 等待参赛队进场,比赛结束后,从待叫号队列中取出下一个参赛队的编号,进入赛场,同时将其从待叫号队列中删除。 下面是一个简单的示例代码,可以供参考: ```c++ #include <iostream> #include <vector> #include <queue> using namespace std; // 定义参赛队编号 const int TEAM_NUM = 100; // 定义赛事类别 enum SportType { BASKETBALL = 1, FOOTBALL, VOLLEYBALL, BADMINTON, TABLE_TENNIS, TENNIS, SWIMMING, RUNNING, SHOT_PUT }; // 定义参赛队结构体 struct Team { int id; // 参赛队编号 SportType type; // 赛事类别 }; // 定义比赛顺序 SportType order[] = {BASKETBALL, FOOTBALL, VOLLEYBALL, BADMINTON, TABLE_TENNIS, TENNIS, SWIMMING, RUNNING, SHOT_PUT}; int main() { // 定义9个队列,分别存储每个赛事类别的参赛队 queue<int> basketball; queue<int> football; queue<int> volleyball; queue<int> badminton; queue<int> table_tennis; queue<int> tennis; queue<int> swimming; queue<int> running; queue<int> shot_put; // 将所有参赛队按照赛事类别存储在相应的队列中 for (int i = 0; i < TEAM_NUM; i++) { Team team = {i+1, (SportType)((i % 9) + 1)}; switch (team.type) { case BASKETBALL: basketball.push(team.id); break; case FOOTBALL: football.push(team.id); break; case VOLLEYBALL: volleyball.push(team.id); break; case BADMINTON: badminton.push(team.id); break; case TABLE_TENNIS: table_tennis.push(team.id); break; case TENNIS: tennis.push(team.id); break; case SWIMMING: swimming.push(team.id); break; case RUNNING: running.push(team.id); break; case SHOT_PUT: shot_put.push(team.id); break; } } // 定义待叫号队列 queue<int> waiting; // 根据比赛顺序,依次从9个队列中取出下一个参赛队的编号,并将其放入待叫号队列中 for (int i = 0; i < 9; i++) { SportType type = order[i]; switch (type) { case BASKETBALL: if (!basketball.empty()) { waiting.push(basketball.front()); basketball.pop(); } break; case FOOTBALL: if (!football.empty()) { waiting.push(football.front()); football.pop(); } break; case VOLLEYBALL: if (!volleyball.empty()) { waiting.push(volleyball.front()); volleyball.pop(); } break; case BADMINTON: if (!badminton.empty()) { waiting.push(badminton.front()); badminton.pop(); } break; case TABLE_TENNIS: if (!table_tennis.empty()) { waiting.push(table_tennis.front()); table_tennis.pop(); } break; case TENNIS: if (!tennis.empty()) { waiting.push(tennis.front()); tennis.pop(); } break; case SWIMMING: if (!swimming.empty()) { waiting.push(swimming.front()); swimming.pop(); } break; case RUNNING: if (!running.empty()) { waiting.push(running.front()); running.pop(); } break; case SHOT_PUT: if (!shot_put.empty()) { waiting.push(shot_put.front()); shot_put.pop(); } break; } } // 等待参赛队进场,比赛结束后,从待叫号队列中取出下一个参赛队的编号 while (!waiting.empty()) { int team_id = waiting.front(); waiting.pop(); // 参赛队进场,比赛结束后才能进入下一队 // ... cout << "Team " << team_id << " enters the arena." << endl; } return 0; } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值