合肥学院

计算机科学与技术系

课程设计报告

2009~2010学年第二学期

课程

数据结构与算法

课程设计名称

单循环赛中选手胜负序列求解问题

学生姓名

王梦宇

学号

0804012009

专业班级

08计科(2)

指导教师

张贯虹 王昆仑

2010年6月

题目:单循环赛中选手胜负序列求解问题

题目内容:有n个选手p1,p2,p3,…,pn参加了的单循环赛,每对选手之间非胜即负。现在要求求出一个选手序列p1’,p2’,p3’,…,pn’,使其满足pi’胜pi+1’(i=1,…,n-1)。

1、问题分析和任务定义

单循环赛的定义:

单循环赛,是所有参加比赛的队两两进行比赛并且每两队均能相遇一次,最后按各队在全部比赛中的积分、得失分率排列名次。如果参赛球队不多,而且时间和场地都有保证,通常都采用这种竞赛方法。

单循环比赛轮次的计算:

本题有两种不同的理解,第一个是按比赛的积分排名产生胜负序列,第二个是按比赛过程中各个选手间的胜负关系产生胜负序列,具体分析如下:

(1)按比赛中积分排名产生胜负序列:

比赛可规定各个选手之间均遭遇且只遭遇一次,比赛时胜方得1分,负方得-1分,在比赛结束时按积分排序进行排名,由此产生胜负序列关系。

(2)按比赛过程中各个选手间的胜负关系产生胜负序列:

该种方法是以过程中的胜负为标准从而产生胜负序列,当然,这种胜负序列很大的可能性是不唯一的,本程序按课程设计任务书的要求,仅求出其中的一个胜负序列关系,即是在有向图中求解出一条包含所有顶点的简单路径的问题。

2、数据结构的选择和概要设计

(1)对于第一种情况,本实验选用的数据结构是结构体。结构体中包含选手的名字,编号和胜负所得的积分。胜负序列的求解转化为了对所有选手的积分的排序问题。然后根据积分的多少从大到小输出选手的名次、选手姓名、选手编号信息。其概要设计如下:

定义了一个都文件Score.h.主要包含了以下几个功能:

1

1

★★★★欢迎进入积分处理比赛结果菜单★★★★

1 输入比赛选手的信息

2 输出比赛选手的比赛名次

3 根据选手编号查询选手的比赛名次及得分

4 根据选手姓名查询选手的比赛名次及得分

0 结束本菜单操作

*****注:第一次使用本系统时请选择1号功能*****

判断

0

3

2

1

4

使用子函数Creat()用于输入选手信息

使用子函数Order()用来根据积分对选手进行排名

使用子函数Search_num(int num)根据编号查询选手信息

使用子函数Search_name(string name)根据姓名查询选手信息

跳出循环

图1 Score函数的主框架

(2)对于第二种情况,本实验采用的数据结构是有向图,每个选手视为一个顶点,每条边视为选手之间的胜负关系,箭头指向的一方为失败方。所以胜负序列的求解就转化为了图的深度遍历问题(实际上跟有向图的深度遍历不太一样,详情请看源代码附录)。另外为了便于深度遍历有向图,本实验采用的存储结构为图的邻接矩阵存储。

主要框架如下:

Win_Fail.h

Win_Fail.h的功能

子函数Graph *Creat_Graph(int n)用于创建图

子函数Print_Graph(Graph *g,int n)用于输出矩阵

void Push(int num)用于顶点进栈

子函数Pop(int num)用于出栈

子函数intTest(Graph *g,int i,int n)用于测试

子函数voidSearch(Graph *g,int i,int n)用于深度搜索

初始化函数Init()

图2 Win_Fail.h的主框架

(3)主函数的主要框架

主菜单

主菜单

欢迎使用单循环赛中选手胜负序列求解问题程序"

本程序有以下三个功能:

1:以单循环赛中的积分排名为标准

2:以单循环赛过程中的胜负为标准

0:结束操作

Case 1:子函数Score()用于根据积分求解选手序列

Case2:子函数Process()用于根据选手之间的胜负关系求解

Case3:跳出主菜单,即程序运行结束

判断

图3 主函数功能框架

3、详细设计和编码

(1)、对于第一种情况:根据积分求解的详细设计及编码

1、定义如下数据结构的选手类型

typedef struct{ //结构体

string name; //选手的姓名

int num; //选手的编号

int score; //选手所得分数

} player;

2、全局变量的定义

player pl[max];定义全局变量,其中max为

单循环比赛算法设计c语言,单循环赛中选手胜负序列求解问题-数据结构与算法课程设计报告.doc...相关推荐

  1. 如何求解问题--数据结构与算法入门

    如何求解问题–数据结构与算法入门 在学习数据结构与算法前,我们大多有这样的困惑,难道学习了数据结构与算法就能帮助我们解决学习Java.Python时的大作业吗?数据结构与算法是什么? 回答这个问题之前 ...

  2. c语言程序设计教程高佳琴主编答案,数据结构与算法应用教程.ppt

    <数据结构与算法应用教程.ppt>由会员分享,可在线阅读,更多相关<数据结构与算法应用教程.ppt(41页珍藏版)>请在人人文库网上搜索. 1.书名:数据结构与算法应用教程 I ...

  3. 用c语言编写的99秒表,单片机00到99秒表的课程设计 含源程序,仿真图,文档

    这是我上个月做的单片机秒表课程设计,这个课程设计是实现00到99秒的一个秒表, 并且有开始和复位功能, 用了一个星期的时间, 附件里面包含秒表的单片机源程序,proteus仿真电路图和课设文档, 都是 ...

  4. 单片机串口中断控制流水灯c语言,基于单片机AT89C51控制的中断控制流水灯_课程设计报告...

    <基于单片机AT89C51控制的中断控制流水灯_课程设计报告>由会员分享,可在线阅读,更多相关<基于单片机AT89C51控制的中断控制流水灯_课程设计报告(25页珍藏版)>请在 ...

  5. c语言用两个栈构造队列伪码,数据结构习题线性表栈队列.doc

    数据结构习题线性表栈队列 线性表(58) 1. 在单链表.双链表和单循环链表中,若仅知道指针p指向某结点,不知道头指针,能否将结点*p从相应的链表中删去?若可以,其时间复杂度各为多少? 2.设线性表的 ...

  6. 算法那么重要,你还不会?ACM金牌选手教你轻松学习数据结构与算法

    无论是传统IT行业.互联网行业.新兴人工智能行业,参加过算法大赛都是企业追捧的人才,并且对本科生的保研.考研,算法竞赛成绩都具有极高的加分值. 李开复曾经把基础课程比拟为"内功", ...

  7. mooc数据结构与算法python版第十一周作业_中国大学 MOOC_数据结构与算法Python版_2020最新答案学习指南...

    中国大学 MOOC_数据结构与算法Python版_2020最新答案学习指南 更多相关问题 [判断题]实际集成运放的上限截止频率为无穷大 [多选题]现代城市的发展凸现出与以往不同的动力机制包括 教师在引 ...

  8. mooc数据结构与算法python版期末测验_中国大学MOOC(慕课)_数据结构与算法Python版_测试题及答案...

    中国大学MOOC(慕课)_数据结构与算法Python版_测试题及答案 更多相关问题 采用fopen()函数打开文件,支持文件读取的参数有: [简答题]简单阐述高分子材料热-机械特征及成型加工的关系,并 ...

  9. 在设计四人抢答器中灯全亮_数字电子技术课程设计报告(四人抢答器).doc

    Word格式 完美整理 数字逻辑电路 课程设计报告 系 (部): 三 系 专 业: 通 信 工 程 班 级: 12 通 信 2 班 姓 名: 杨 超 学 号: 20120306201 成 绩: 指导老 ...

  10. 大学生就业咨询系统c语言,大学生就业咨询系统课程设计方案报告.doc

    大学生就业咨询系统课程设计方案报告 数据库课程设计报告 课程设计题目:大学生就业咨询系统 学 生 姓 名: 杨帅 专 业 :计算机科学与技术 班 级 : 1230501 学 号 : 201230050 ...

最新文章

  1. 在ECS上使用Windows “跨区卷”、“条带卷”讨论以及扩容操作
  2. POJ2186:Popular Cows(tarjan+缩点)
  3. python数字的鲁棒输入_请教关于python的手写数字识别神经网络问题~~~~
  4. matlab 矩阵加减乘除运算
  5. maven(三)最详细的profile的使用
  6. 送福利 | 送书5本《ASP.NET Core项目开发实战入门》带你走进ASP.NET Core开发
  7. sdram 时钟相位_零基础学FPGA (二十五)必会! 从静态时序分析到SDRAM时序收敛(下篇)...
  8. java floyd_百度百科里面的floyd算法java的代码,总是无法运行。请问是代码有问题吗,如何编译啊?...
  9. Redis 会遇到的「坑」,你踩过几个?
  10. perl CGI::Session
  11. 自己动手开发编译器(四)利用DFA转换表建立扫描器
  12. LintCode—链表求和(167)
  13. button执行onclick函数_JavaScript 函数定义与调用
  14. 基于 libdmtx和zxing的DM二维码识别总结
  15. Unity贴图ASTC压缩格式
  16. 前20位Googler今安在?
  17. 来自阿里巴巴佛系Java程序员的指南,附项目源码
  18. 自动化测试 selenium 模块 webdriver使用
  19. redis java excel_7.redis excel读写
  20. 中文的括号和英文的括号区别_浅谈中英文混排图书的标点和体例

热门文章

  1. 代码的检查走查与评审
  2. 揭秘springboot集成tomcat原理
  3. 【实践】地理探测器GeoDetector软件使用
  4. 地理探测器软件下载与使用
  5. networkx 有向图强连通_基于networkx分析Louvain算法的社团网络划分
  6. JDBC实战(一)JDBC概述
  7. 有哪些好的网课软件推荐吗?3款实用学习软件蹭课必备
  8. vue导出Excel图片
  9. 手把手教你安装IAR
  10. STM32F103单片机跑马灯程序/寄存器