运动会运动会分数统计(数据结构)

运动会运动会分数统计(数据结构)
运动会运动会分数统计(数据结构)

摘要:

本文详细介绍了运动会分数统计程序的设计与实现,该程序具有运动会成绩的输入,每个学校所参加的项目成绩的查询,修改,删除,统计操作以及学校成绩单和团体得分报表的输出等功能。概要设计部分给出了程序功能说明,数据结构设计和函数变量说明。详细设计和实现部分列出了系统功能模块、算法原理及流程图。最后还给出了调试和操作说明。在课程设计中,程序设计语言采用Visual C++,程序运行平台为Windows 98/2000/XP。对于获得名次的同学在存储其成绩的时候采用了链表的结构,有利于数据的存储与查找。程序通过调试运行,实现了最初的设计目标,并且经过适当完善后,在实际中可以解决更多的问题。

关键词:运动会分数统计;程序设计;C++;链表

目录

1需求分析 (3)

2概要设计 (4)

2.1 程序功能说明 (4)

2.2 数据结构设计 (4)

2.3 函数及变量说明 (5)

3详细设计和实现 (5)

3.1 系统功能模块 (5)

3.2 算法原理 (6)

3.3 流程图 (7)

4调试与操作说明 (7)

4.1调试过程中出现的问题及处理方式 (7)

4.2运行界面 (9)

总结 (12)

致谢 (13)

参考文献 (14)

1需求分析

运动会问题:参加运动会的N个学校编号为1—N。比赛分为M个男子项目和W个女子项目,项目编号分别为1—M和M+1—M+W。由于各项目的参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。

该系统具备的基本功能:该统计程序能产生各种成绩单和得分报表:各校的成绩单,内容包括各学校所取得每项成绩的项目号,名次(成绩),姓名和得分;产生团体总分报表,内容包括校号,男子团体总分,女子团体总分和团体总分。也能对其中的错误项进行修改或删除。

本课程设计主要解决在运动会上,将各个比赛项目所有获得名次的同学的成绩输入;成绩查询;成绩修改;成绩删除;以及成绩输出。

实验环境:Microsoft Visual C++ 6.0。Visual C++(简称VC)是Microsoft公司推出的目前使用极为广泛的基于Windows平台的C++可视化开发环境。Visual C++ 6.0提供的控制台应用程序对学习和掌握标准C++内容非常有利。“可视”的资源编辑器与MFC类以及应用程序向导,为快速高效地开发出功能强大的Windows应用程序提供了极大的方便。利用Visual C++ 6.0进行Internet、数据库及多媒体等多方面的程序开发也很容易。

本课程设计采用了C++。C++语言是在C语言的基础上发展起来的,不仅继承了C语言的所有特点,而且引入了面向对象的程序设计方法,改进了程序涉及思路,将编程方式进化到面向对象进行程序设计这一新的思维过程。

C++语言代表着对以往语言之精华的发展和提炼,并能很好的与C语言兼容,既支持面向对象的程序设计,也支持结构化的程序设计。它修补了C语言中的一些漏洞,提供更好的类型检查和编译时的分析,提供了异常处理机制,简化了程序的出错处理,利用throw、try和catch关键字,出错处理程序不必与正常的代码紧密结合,提高了程序的可靠性和可读性。函数重载允许相同的函数名具有不同参数表,系统根据参数的个数和类型匹配相应的函数。提供了模板机制。摸板包括类摸板和函数模板两种,它们将数据类型作为参数。对于具体数据类型,编译器自动生成模板类或模板函数,它提供了源代码复用的一种手段。

2概要设计

2.1 程序功能说明

该程序用于运动会上,涉及到比赛项目成绩的录入,某个学校在某个项目中获得成绩的查询,某个学校在某个运动项目中获得的成绩的修改,某个学校在某个运动项目中获得的成绩的删除,以及某个学校所有获得成绩的得分报表以及团体成绩的得分报表。其中比赛成绩的录入可以按照运动项目举行的次序输入,也可以输入自己指定的运动项目的成绩;自己扩展的功能是“某个学校在某个项目中获得成绩的查询,某个学校在某个运动项目中获得的成绩的修改,某个学校在某个运动项目中获得的成绩的删除”三项,这三项都要求输入学校以及运动项目编号,通过这两项作为参数具体的函数可以查询、修改成绩或者是删除某项成绩记录,进而影响到最后得分报表的输出。

2.2 数据结构设计

创建了学生成绩记录结点:

struct RE // 学生成绩记录

{

int iterm; //项目编号

int pos; //名次

int score; //成绩

int snum; //学校编号

char name[10]; //学生姓名

RE *next;

};

RE sc[20]={0};

其中具体的操作主要采用的是一个链表的结构,涉及到了链表的插入,链表的查找,以及链表的删除等知识点。链表的插入解决了各个项目中获得名次的同学的成绩的录入问题;链表的查找解决了运动项目成绩的查询;成绩的删除,先查找到其所在的结点,然后将该结点前后结点相连,再删除该结点。

2.3 函数及变量说明

void insertlist(int iterm,int n); 该函数用来添加成绩记录,iterm 是运动项目的编号,n为参加比赛的学校总数,需要注意地是根据运动项目是奇数还是偶数来判定最后结果取前三还是前五名,这里用(iterm%2)是否为零来判断。

RE *findlist(int snum,int fiterm); 该函数用来查找指定的学校的某项目成绩并返回该成绩所在节点的前一个节点的地址,其中snum是要查找的学校的编号,而fiterm为要查找的运动项目编号,返回一个指向RE型的指针,RE为定义的一个结构体类型,用来存储获得名次的学生的基本信息(包括学生姓名,取得的名次,获得的分数,所在的学校编号以及运动项目编号)。

RE *findend(int snum); 查找并返回每个学校的最后一个数据节点的地址,函数返回类型同上,snum为学校编号。

void printlist1(int snum); 输出每项具体的成绩,snum为学校编号。

void printlist2(int snum,int m,int w); 输出团体成绩,m为男生项目数,w为女生项目数。

void modlist(int snum,int miterm); 修改成绩 miterm为要修改的项目编号

void deletelist(int snum,int diterm); 删除成绩记录,diterm为要删除的项目编号

还有主函数void main( )里用一个嵌套在do—while循环语句中的switch 语句来控制要执行操作的编号,用户可以有多种选择,根据不同的需要选择不同的操作,这个也很关键。

3详细设计和实现

3.1 系统功能模块

系统功能模块如下:

图3.1 系统功能模块图

3.2 算法原理

该程序先采用了一个嵌套在do—while循环语句中的switch语句来控制要执行操作的编号,用户可以有多种选择,根据不同的需要选择不同的操作。

其中具体的操作主要采用的是一个链表的结构,涉及到了链表的插入,链表的查找,以及链表的删除等知识点。链表的插入解决了各个项目中获得名次的同学的成绩的录入问题,具体为:为每个学校建立一个头结点,若该学校有同学取得名次,建立一个新的结点来存储该同学的信息,并将其插到该学校所在链表的最后一个结点后面。链表的查找解决了运动项目成绩的查询,以及后面的成绩的输出、删除都要用到链表的查找,查找时先将头结点的地址赋给查找函数,根据查找的条件依次与每个结点中相应的比较,若相等则输出所需要的信息,否则返回“查找的元素不存在”信息。而成绩的删除,先查找到其所在的结点,然后将该结点前后结点相连,再删除该结点;成绩的修改要先查找到其所在的结点,然后再重新录入数据;至于学校所获得的各项成绩的输出,将该校所在的头结点的地址赋给控制输出的函数,利用指针的移动依次将各项成绩输出,而团体成绩的输出,先要根据运动项目编号来确定是男生还是女生项目,然后再依次累加,

分别得到男女生的团体得分,最后将两者相加,得到学校的团体得分。

3.3 流程图

4调试与操作说明

4.1调试过程中出现的问题及处理方式

在void printlist1(int snum)函数中,当将要输出成绩的学校所在的链表的头结点所指向的下一个结点的地址赋给temp的时候,

RE *temp;

temp=&sc[snum-1];

temp=temp->next;

要检测temp是否为NULL,如果为NULL会发生溢出,程序无法向下继续进行

解决的方法是加上

if(temp==NULL)

cout<<"该学校在该项目上没有取得任何成绩"<

此句可以有效的防止溢出发生

此类问题还发生在void printlist2(int snum,int m,int w)和void modlist(int snum,int miterm)里面,在后面的那个函数里面RE *curr=findlist(snum,miterm);在这个赋值语句后面也要跟上

if(curr==NULL) return;

curr=curr->next;

if(curr==NULL) {

cout<<"该学校在该项目上没有任何成绩记录"<

return;}

这也是为了防止溢出的发生而设定的条件。

在插入结点的时候是将其直接插到该学校所在链表的最后,因此需要找到每个学校所在链表的最后一个结点的地址,而函数RE *findlist(int snum,int fiterm); 只是返回需要查找的结点的地址,不一定是最后一个结点解决办法是重新定义一个函数,RE *findend(int snum);尽管这样在效率上可能会有些差,因为每次插入的时候都要从头结点开始查找,时间上的开销会大一些,但还是可以解决上述问题的

此外,还有一些就是细节问题了,如:主函数中的

if(num>6||num<0) {

cout<<"输入有误,请重新输入要操作的项目编号"<

cin>>num;}

这个if语句判断输入的操作编号是否在目录中,如果超出范围重新输入;

还有函数void insertlist(int iterm,int n)里面在用new申请空间的时候为防止内存分配空间错误用下面的语句来监控

if(temp==NULL)

cout<<"内存分配错误"<

以及函数void insertlist(int iterm,int n)里面在输入学校编号的时候用下面的

if语句判断输入的学校编号是否符合要求,如果超出范围重新输入if(temp->snum>n) {

cout<<"输入的学校编号有误,请重新输入"<

cin>>temp->snum;}

4.2运行界面

图4.1 初始运行界面

图4.2 输入具体项目成绩的界面

图4.3 查找成功的界面

图4.4 修改成绩的界面

图4.5 编号为1的学校的成绩单界面

图4.6 编号为1的学校的团体得分报表界面

总结

这次课程设计使我对做系统的认识深刻了许多。虽然在整个设计过程中遇到很多问题不会解决,但在自己的努力以及同学老师的帮助下,最终完成了改系统。当看到自己做的程序能运行时,心中充满了成就感。在克服困难的过程中,对自己所学知识的掌握程度也有了比较清楚的了解。综合起来,主要体现在以下几个方面:

首先,对数据结构的掌握还不够。虽然完成了程序,但是只用到了基本的结点以及链表,在数据结构的选择上避重就轻,覆盖面较小,不能很好的体现各种数据结构的掌握度,同时也缺少了适当的锻炼,在这方面还需要自己主动去提高。

其次,在程序整体的设计上还不够完善,各模块可以适当增加内容,界面还可以更加的人性化些,同时可考虑从面向对象方面入手,这样整个程序才具有更强的美观性与实用性。

最后,我觉得该程序还有很大的改进空间,譬如可以用多文件做,这样功能更强大,也便于以后更好地改进和完善程序;而在程序的内容方面,还能增加更多功能,以满足不同需要的各种要求。

但是,值得欣慰的是,该程序基本完成里设计要求,并能顺利运行,界面清晰易理解,且具备各项基本功能,易于操作;而且代码部分有注释,简单易懂。

总而言之,这次课程设计给了我很大启发,我明白了,不管遇到什么问题,只要抓住根源,不气馁,从不同方面去攻破它,终究会成功,生活也是如此。这次课程设计是我真正的去做的一个系统,肯定会有很多不足,但是我很欣慰。

致谢

本次课程设计中,我有通过自己的努力,但也得到了很多来自他方的帮助,在这里我要谢谢所有帮助过我的老师同学。

首先,我要谢谢淮阴工学院计算机工程系给我提供了这次难得的实践机会,以及实验室人员提供的方便舒适的实验环境!其次,我要谢谢这次课程设计的辅导老师给予我的帮助和辛勤指导,以及和我一起合作的同学的共同互助。在设计过程中,我遇到了诸多的困难与麻烦,如果没有他们的悉心指导与共同研讨,我也不能这么顺利的完成本次的课程设计,在这里衷心得对他们表示深深的谢意,谢谢!最后,我要谢谢我的其他同学,多谢他们给我所提的建议以及他们给予我的帮助。

当然,在本次课程设计的完成过程中,我也参考了很多资料参考书,以及浏览了很多网站。所以我也要谢谢这些书籍的著作者,及各网站提供信息的作者们。在这里还要特别谢谢https://www.360docs.net/doc/5811156421.html,网站给我的指导和帮助。同时谢谢淮阴工学院图书馆,给我提供了丰富的书籍资料!

参考文献

1 陈志泊,王春铃.面向对象的程序设计语言——C++.北京:人民邮电出版社,2004

2 郑阿奇,丁有和,郑进,周怡君.Visual C++实用教程.北京:电子工业出版社,2005

3 殷人昆.数据结构(用面向对象方法与C++语言描述).清华大学出版社,2007

4 吴乃陵况迎辉.C++程序设计.第2版.高等教育出版社,2006

5 揣锦华.面向对象程序设计与VC++实践.西安电子科技大学出版社,2005

(完整word版)运动会分数统计系统实验报告

运动会分数统计系统的实现 09计科(2)班 E10914044 杨素传 一、设计要求 1、问题描述 参加运动会有n个学校,学校编码为1,2,…,n,比赛分成m个男子项目和w个女子项目。项目编号为男子1,2,…,m,女子m+1,m+2,…,m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为7,5,3,2,1;前三名的积分分别5,3,2;哪些取前五名或前三名由学生自己设定(m<=20,n<=20)。 2、需求分析 (1)可以输入各个项目的前三名或前五名成绩; (2)能统计各学校成绩; (3)可以按学校编号、学校总分、男女团体总分排序输出; (4)可以按学校编号查询学校某项目情况,可以按项目编号查询取得前三名或前五名的学校。 二、概要设计 1、主界面设计 为了实现运动会分数统计系统,设计一个含有多个菜单项的主控菜单子程序以连接系统的各项子程序,方便用户使用本程序。本系统主控菜单运行界面图1所示。 图1 运动会分数统计系统程序主菜单 2、存储结构设计 本程序采用链式存储类型(LNode)存储运动会分数统计系统的节点信息。运动会分数统计系统的链表中的结点包括8个域:项目编号域(objnum)、项目类型(objtype)、运动员编号(athnum)、运动员姓名(athname[20])、学校编号(schnum)、校名(schname[30])、

运动员分数(athscore)和指向下一个节点的指针欲(struct LNode *next)。 3、系统功能设计 本系统设置了8个子功能菜单。8个子功能的设计描述如下: (1)录入各项目的成绩。由函数creatLink()实现。当用户选择该功能时,系统会以用户输入的数据运动会分数统计链表。 (2)统计各学校分数。由函数schoolScore()实现。当用户选择该功能时,系统会统计各学校分数。 (3)按学校编号顺序输出。由函数printfSchoolNumber()实现。当用户选择该功能时,系统会按学校编号顺序输出数据。 (4)按学校总分顺序输出。由函数printfSchoolScore()实现。当用户选择该功能时,系统会按学校总分顺序输出数据。 (5)按男女团体总分顺序输出。由函数printfManWomanScore()实现。当用户选择该功能时,系统会按男女团体总分顺序输出数据。 (6)按学校编号查询学校某项目情况。由函数printfSchoolObject()实现。当用户选择该功能时,系统会按学校编号输出学校某项目情况。 (7)按项目编号查询取得前三名或前五名的学校。由函数printfObjectSchool()实现。当用户选择该功能时,系统会按项目编号查询取得前三名或前五名的学校情况。 (8)退出。由exit(0)函数实现。 三、模块设计 1、模块设计 本程序包含两个模块:主程序模块和工作区选择模块。其调用关系如图2所示。 主程序模块工作区选择模块 图2 模块调用示意图 2、系统子程序及功能设计 本系统共设置个6子程序,各子程序的函数名及功能说明如下。 (1)LinkList creatLink() //创建链表(录入各项目的成绩) (2)int schoolScore(LinkList L) //统计各学校总分 (3)void printfSchoolNumber() //按学校编号顺序输出 (4)void printfSchoolScore() //按学校总分顺序输出 (5)void printfManWomanScore(LinkList L //按男女团体总分排序输出 (6)void printfSchoolObject(LinkList L) //按学校编号查询学校某项目情况 (7)void printfObjectSchool(LinkList L) //按项目编号查询取得前三名或前五名的学校 (8)int main() //主函数 3、函数主要调用关系图 本系统6个子系统之间的主要调用关系如图3所示,图中数字是各函数的编号。

数据结构课程设计报告(运动会分数统计系统)

课程设计(论文)任务书 软件学院信息专业 1 班 一、课程设计(论文)题目运动会分数统计系统 二、课程设计(论文)工作自 2010 年 12 月27 日起至 2010 年 12 月31 日止。 三、课程设计(论文) 地点: 创新大楼软件学院大楼 四、课程设计(论文)内容要求: 1.课程设计的目的 为了配合《数据结构》课程的教学,使学生能更深刻地领会《数据结构》这门课程的重要性,特开设此课程设计;编写一些在特定数据结构上的算法,通过上机调试,更好的掌握各种数据结构及其特点,培养学生综合运用所学理论知识解决复杂实际问题的实践能力、研究性学习能力和团队合作能力。 2.课程设计的任务及要求 1)基本要求 (1)课程设计前必须选定课程设计题目,并认真进行需求分析; (2)上机调试之前要认真准备实验程序及调试时所需的测试数据; (3)程序结构要清晰,重点函数的重点变量,重点语句要加上清晰的程序注释;(4)独立思考,独立完成,调试过程要规范,认真记录调试结果; (5)撰写课设报告,对设计进行总结和讨论。 2)课程设计论文编写要求 (1)要按照书稿的规格撰写打印课设论文 (2)论文包括任务书、目录、绪论、正文、总结、参考文献、附录等 (3)正文中要有问题描述、设计求解算法、算法的实现、调试分析与结果 (4)课设论文装订按学校的统一要求完成 3)课设考核 从以下几方面来考查: (1)出勤情况和课设态度; (2)设计任务的难易程度及设计思路; (3)课设任务完成情况;

(4)动手调试能力; (5)论文撰写的层次性、条理性、格式的规范性。 4)参考文献 [1] 严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社, 2007年. [2] 谭浩强. C语言程序设计[M]. 北京:清华大学出版社,2006年. 5)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 程序设计与调试3计算机房 撰写论文1图书馆 6)任务及具体要求 任务: 参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。 要求: 产生各学校的成绩单,内容包括各学校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。 学生签名: 2010年12月27 日 课程设计(论文)评审意见 (1)任务难易及设计思路:优()、良()、中()、一般()、差()(2)动手调试能力评价:优()、良()、中()、一般()、差()(3)任务完成情况评价:优()、良()、中()、一般()、差()(4)论文撰写水平及规范性评价:优()、良()、中()、一般()、差()(5)考勤和态度:优()、良()、中()、一般()、差() 评阅人:职称:讲师 2011年1 月3 日

数据结构课程设计—运动会分数统计系统[1]课案

运动会分数统计系统 一、需求分析 为了简便地对运动会的报名、成绩的录入和统计,本组设计开发了本系统,以解决需求。当然,本系统只是一个较为简单的系统,仍然存在着一些操作上以及显示上的问题,本组将在以后的学习中进行完善。 问题描述:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 功能要求: 1) 可以输入各个项目的前三名或前五名的成绩; 2) 能统计各学校总分, 3) 可以按学校编号或名称、学校总分、男女团体总分排序输出; 4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 输出形式:有中文提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。 测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。 二、概要设计 1. 本系统的流程图如下: Y N Case1 Case3 N Y Y 开始---初始化 输入 输入某项目各名次成绩 输入学校及男女项目范围 继续输 查询各学校成绩 Case2 查询团体总分 成绩查询 继续

2. 本系统采用的存储结构为结构化设计理念,这是数据库的最基本的设计要求,主要包括三个数据表: (1) 项目数据表:运动会开始前必须详细制定本次运动会所需的参赛项 目为接下来报名、场地的准备提供依据。本数据表根据要求设计存储每个项目的编号、名称、要取的名次以及各个名次对应的学校的编号,在初始输入时仅输入项目编号、名称及要取的名次,而各名次对应的学校编号将由系统自动统计。这也有利于以后项目情况的查询。 typedef struct { int itemnum; //项目编号 int top; //取名次的数目 int range[5]; //名次 int mark[5]; //分数 }itemnode; //定义项目结点的类型 (2) 学校数据表:本数据表储存了各个参赛学校的总体情况,包括学校 的编号、名称、男子团体总分、女子团体总分和学校总分。其中学校编号和名称是提前输入的,而其他三项内容将由系统进行自动统计。 typedef struct { int schoolnum; //学校编号 N N Y 输出查询学校成绩 继续 结束—退出

1.1运动会分数统计

#include #include #include #define N 20 /*学校最大数目*/ #define M 20 /*男子项目最大数目*/ #define W 20 /*女子项目最大数目*/ typedef struct { int inum; /*项目编号*/ int top; /*取名次的数目*/ int range[5]; /*名次*/ int mark[5]; /*分数*/ }itemnode; /*存放项目信息*/ typedef struct { int snum; /*学校编号*/ int score; /*学校总分*/ int mscore; /*男团体总分*/ int wscore; /*女团体总分*/ itemnode t[M+W]; /*项目数组*/ }snode; /*存放学校信息*/ snode a[N]; /* 定义一个学校数组*/ void menu(int n,int m,int w) /*菜单函数*/ { int c; void input(int n,int m,int w); void output(int n,int m,int w); void sortput(int n,int m,int w); void search(int n,int m,int w); printf("\t\t\t欢迎使用\t\t\t\t\n\n"); printf("\t***********运动会分数统计系统***********\n\n"); printf("\t\t*******1.信息输入*******\n"); printf("\t\t*******2.统计输出*******\n"); printf("\t\t*******3.排序输出*******\n"); printf("\t\t*******4.信息查询*******\n"); printf("\t\t*******0.退出系统*******\n\n"); printf("=======================================================\n\n"); printf("请选择要实现步骤的编号(0--4):"); scanf("%d",&c); switch(c) { case 1: input(n,m,w);break; case 2: output(n,m,w);break; case 3: sortput(n,m,w);break; case 4: search(n,m,w);break; case 0: printf("谢谢使用,再见!\n"); exit(0); default: printf("输入错误,请重试!\n"); menu(n,m,w); } } void savetofile() /*信息存入文件file*/ {

运动会分数统计系统

******************* 实践教学 ******************* 兰州理工大学 软件学院 2011年秋季学期 计算机应用基础课程设计 题目:运动会分数统计系统 专业班级:软件技术(2)班 姓名:刘正翔 学号: 指导教师:张墨逸 成绩:

目录

摘要 C语言通常别称为高级语言中的中级计算机语言。C语言由于它的可移植性和高效率,各种C语言编译程序均可产生非常紧凑、执行快捷的目标码。它比任何一种BASIC语言编译程序的目标码都紧凑、快速。这就要求有较高的理论水平,而且还要求有实际的动手能力。因此掌握C语言程序设计是学好软件技术的第一步。 本课程设计的主要目的是提高实践能力,包括提高C语言的编程能力,长期以来,注重书本知识,轻视实际动手设计能力是教学中普遍存在的现象。进行课程设计的目的就是要改变这种状况,使学习者既具有完备的理论知识,也能够解决在实际学习,生活工作中遇到的问题。学生应该能够把学习到的理论知识运用到实际中去,将知识转变为实际的能力,同时通过这些理论知识和实际的应用推动理论和实践的发展。 关键字:函数,定义,子程序,文本编辑 运动会分数统计系统 1 问题描述与分析 课程设计目的 为了巩固我们数据结构知识,加强我们的实际动手能力和提高我们综合素质,提高我们对计算机软件工程的认识学院组织我们进行了数据结构课程设计。此次课程设计要达到以下几点目的:(1)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力。 (2)提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。 (3)培养算法分析能力。分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。 (4)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。

运动会分数统计系统的设计与实现

目录 1 实习目的 (1) 2 问题描述 (1) 3 需求分析 (1) 4 概要设计 (2) 5 详细设计 (5) 5.1数据结构定义 (5) 5.2各个函数分析 (5) 6 调试与测试 (19) 6.1调试 (19) 6.2 测试 (19) 7 使用说明 (22) 8 总结 (23) 9 参考文献 (23) 10 附录 (23)

运动会分数统计系统的设计与实现 1 实习目的 通过学习,了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。 2 问题描述 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)实现如下功能:(1)可以输入各个项目的前三名或前五名的成绩; (2)能统计各学校总分; (3)可以按学校编号或名称、学校总分、男女团体总分排序输出; (4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校; (5)数据存入文件并能随时查询。 3 需求分析 3.1功能需求 本系统主要是运动会分数统计方案设计。 运动会分数统计方案适合采用结构体数组,为了实现系统功能,主要应实现以下几部分:比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。 3.2 数据需求

需要输入学校编号,项目编号,取得的名次,以及哪些名次。 3.3 性能需求 本程序在运行期间,为了避免在运行大量数据时不会出错,并且能够在很短的时间内将运行结果稳定输出,就需要系统达到安全性能好,可靠性高,稳定性强,处理数据迅速等特点。 4 概要设计 4.1系统设计方案 本方案要求准备结构体数组、读写文件。还能把信息直接输入存储到文件中,读取文件中信息,从而得到结果。 (1) 菜单设计 分为主函数菜单、比赛成绩输出菜单、查询分数统计结果菜单、查询方式子菜单。 (2) 数据保存方式 建立文件,数据保存在文件中。运动运分数统计程序 (3) 数据类型 采用结构体类型。 (4) 存储结构 采用结构体类型数组存储结构存储。 (5) 算法设计 输入比赛结果模块中运用了冒泡算法将输入的数据排序。 4.2 数据库设计 系统用到的抽象数据类型定义: typedef struct { int itemnum; //项目编号

运动会分数统计

运动会分数统计 【问题描述】 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。 项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分; 取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2; 哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 【任务要求】 功能要求: 1).可以输入各个项目的前三名或前五名的成绩; 2).能统计各学校总分, 3).可以按学校编号、学校总分、男女团体总分排序输出; 4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称) 输出形式:有中文提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。 (数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决) 请在最后的上交资料中指明你用到的存储结构; 测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。 进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;【测试数据】 自行设定,注意边界等特殊情况。 */

目录 一、需求分析 (3) 二、概要设计 (1) 三、详细设计 (3) 四、程序调试与实现 (7) 五、用户使用说明..................................................................... 错误!未定义书签。 六、附录..................................................................................... 错误!未定义书签。

运动会分数统计数据结构课程设计(含源代码)

. 计算机学院信管专业 数据结构课程设计 题目:运动会分数统计班级: 姓名:学号: 同组人: 起迄日期: 课程设计地点: 指导教师: 评阅意见: 成绩评定: 评阅人:日期: 完成日期:2013年12月

目录 1、需求分析 (02) 2、概要设计 (03) 3、详细设计 (04) 4、调试分析和测试结果 (05) 5、总结 (13) 6、参考文献 (14) 7、致 (14) 8、附录 (14)

1、需求分析 (1)任务: 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w 个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) (2)功能要求: a).可以输入各个项目的前三名或前五名的成绩; b).能统计各学校总分, c).可以按学校编号、学校总分、男女团体总分排序输出; d).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 (3)规定: 输入数据形式和围:20以的整数(如果做得更好可以输入学校的名称,运动项目的名称) (4)输出形式: 有中文提示,各学校分数为整形 (5)界面要求: 有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 (6)存储结构: 学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在

数据文件中。 (7)测试数据: 要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明; 2、概要设计 (1)文字分析 本课设要求输入信息,统计分数,执行排序与查找功能,在要求中没有在建立数据之后进行插入和删除操作,而在排序和查找过程中有许多的随机读取数据操作,因此使用顺序结构而不用链表。由于各个要求属性具有一定的联系,在定义数据时使用结构体和结构体数组来存储信息数据。考虑到程序的要求在设计函数时将学校个数和项目个数设计为可变的数据,为方便使用设计菜单函数(menu),而由于要求将信息存储在文件中故设计文件的存储(savetofile)与读取函数(readfromfile),信息输入函数(input)在输入基本信息后由系统统计总分的容并全部存入文件file中,在接下来的函数中开始都需要读取文件中的信息,信息的输出(output)输出输入函数中统计后的各项信息,在排序输出(sortput)中使用冒泡排序法进行不同关键字的排序,查询函数(search)采用顺序表的查找来完成。

运动会分数统计系统

数据结构课程设计 运 动 会 分 数 统 计 东华大学信息科学与技术学院 班级:电气0910班 姓名:周涛涛 学号:090901017

一.需求分析 1问题描述 运动会分数统计 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w 个女子项目。项目编号为男子1~m,女子m+1~m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些项目取前五名或前三名由学生自己设定。(m<=20,n<=20) 2. 基本要求: 1) 可以输入各个项目的前三名或前五名的成绩; 2) 能统计各学校总分; 3) 可以按学校编号、学校总分、男女团体总分排序输出; 4) 可以按学校编号查询学校某个项目的情况; 5) 可以按项目编号查询取得前三或前五名的学校。 3.测试数据 1)首先进入成绩录入界面,先输入学校编号1,再输入学校1各个项目成绩0或1(‘0’表示没获得该项目的该名次,‘1’表示获得了该项目的该名次); 然后再输入第二个学校编号2,再输入成绩;当输入其他的学校编号和成绩会提示错误输入,重新输入。 2)然后进入总目录,输入:1 统计各学校总分并输出; 3)输入:2 按学校编号排序输出; 4)输入:3 按学校总分排序输出; 5)输入:4 按男团体总分排序输出; 6)输入: 5 按女团体总分排序输出; 7) 输入:6 按学校编号查询学校某个项目情况; 8)输入:7 按项目编号查询取得名次的学校; 9)输入:0 退出系统; 10)输入其他数据会提示错误输入,重新输入。 二、概要设计 1 结构体 运动项目 { 项目编号;名次;};

C++运动会分数统计系统

课程设计报告 运动会分数统计系统 1. 系统需求分析 问题描述: 参加运动会有n个学校,学校编号为1,2,〃〃〃,n,比赛分为m个男子项目和w个女子项目。项目编号为男子1,2,〃〃〃,m个,女子m+1个,m+2个,〃〃,m+w。不同的项目取得前五名或前三名积分;取前五名的积分分别为7,5,3,2,1;前三名的积分分别为5,3,2;项目编号为奇数的取前五名,项目编号为偶数的取前三名(m≤20,n≤20)。每个项目结束时,将其编号输入,并按名次顺序输入运动员姓名、学校编号和成绩。 请用C/C++编写一系统,模拟运动会分数统计过程,软件应包括如下几个方面: (一)功能要求: (1)成绩输入: 要求:可以输入各个项目的前三名或前五名的成绩。 (2)成绩查询: 要求:可以按学校编号查询学校各项目情况;可以按项目编号查询取得前三名或前五名的学校。 (3)成绩统计: 要求:能统计各学校总分。 (4)成绩排序: 要求:可以按学校编号、学校总分、男女团体总分排序输出。 (二)其它要求: (1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅 读; (2)至少采用文本菜单界面(如果能采用图形菜单界面更好); (3)学生可自动增加新功能模块(视情况可另外加分); (4)写出课程设计报告,具体要求见相关说明文档。 2 概要设计 2.1 系统功能设计 根据运动会分数统计系统问题的分析和设计要求,可以将该系统可以分为三个模块:信息统计模块、信息输出模块、信息查询模块,其系统功能结构图如图1所示。 (1)信息统计模实现信息的输入、统计。 (2)信息输出模块,实现信息的输出。

(3)信息查询实现信息的查询。 图1 系统功能结构图 3.详细设计: 毕业设计有困难?加QQ929486211 (1)定义运动项目数据类型,用于存放运动项目,包括项目编号、项目所取名次数、名次、分数。 (2)定义学校数据类型,用来存储参赛学校信息,包括学校编号、学校总

运动会分数统计系统课程设计报告

运动会分数统计系统 课程设计报告 数据结构 院系: 专业: 班级: 学号: 姓名: 教师: 时间: 一、问题描述 1、功能 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,与w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20),按要求实现相应的数据输入、查询、计分等功能。 2、数据 建议输入学校的名称,运动项目的名称等,其余信息学生自行设计; 输出形式:有合理的提示,各学校分数为整形; 数据的存储结构自行设计。 建议运动会的相关数据要存储在数据文件中。

3、操作 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分, 3)可以按学校编号或名称、学校总分、男女团体总分排序输出; 4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的 学校。 4、要求 提供系统菜单,界面友好,提示信息完整。 二、系统分析及设计 1、需求分析 根据运动会分数统计系统的问题分析及设计要求,可以将此系统分为四个模块:信息统计模块、信息输出模块、信息查询模块、信息调用模块。其系统功能结构图如图所示。 (1)、信息统计模块实现信息的输入、统计、存档。 (2)、信息输出模块实现信息的输出。 (3)、信息查询模块实现信息的查询。 2、概要设计 此系统采用顺序存储结构存储,定义了一个结构体数组存放参赛学校的信息。之所以采用顺序存储结构,就是因为用它来实现信息的存储、查询比较方便,节省时间,效率高,而且也方便把信息写入文件以及读取文件。 (1)、结构体定义如下: ①、定义运动项目数据类型,用于存放运动项目的信息,包括项目名称、项目编号、用户自己定义的取前3名还就是前5名的积分、名次、分数。 typedef struct {

运动会运动会分数统计(数据结构)

摘要: 本文详细介绍了运动会分数统计程序的设计与实现,该程序具有运动会成绩的输入,每个学校所参加的项目成绩的查询,修改,删除,统计操作以及学校成绩单和团体得分报表的输出等功能。概要设计部分给出了程序功能说明,数据结构设计和函数变量说明。详细设计和实现部分列出了系统功能模块、算法原理及流程图。最后还给出了调试和操作说明。在课程设计中,程序设计语言采用Visual C++,程序运行平台为Windows 98/2000/XP。对于获得名次的同学在存储其成绩的时候采用了链表的结构,有利于数据的存储与查找。程序通过调试运行,实现了最初的设计目标,并且经过适当完善后,在实际中可以解决更多的问题。 关键词:运动会分数统计;程序设计;C++;链表

目录 1需求分析 (3) 2概要设计 (4) 2.1 程序功能说明 (4) 2.2 数据结构设计 (4) 2.3 函数及变量说明 (5) 3详细设计和实现 (5) 3.1 系统功能模块 (5) 3.2 算法原理 (6) 3.3 流程图 (7) 4调试与操作说明 (7) 4.1调试过程中出现的问题及处理方式 (7) 4.2运行界面 (9) 总结 (12) 致谢 (13) 参考文献 (14)

1需求分析 运动会问题:参加运动会的N个学校编号为1—N。比赛分为M个男子项目和W个女子项目,项目编号分别为1—M和M+1—M+W。由于各项目的参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。 该系统具备的基本功能:该统计程序能产生各种成绩单和得分报表:各校的成绩单,内容包括各学校所取得每项成绩的项目号,名次(成绩),姓名和得分;产生团体总分报表,内容包括校号,男子团体总分,女子团体总分和团体总分。也能对其中的错误项进行修改或删除。 本课程设计主要解决在运动会上,将各个比赛项目所有获得名次的同学的成绩输入;成绩查询;成绩修改;成绩删除;以及成绩输出。 实验环境:Microsoft Visual C++ 6.0。Visual C++(简称VC)是Microsoft公司推出的目前使用极为广泛的基于Windows平台的C++可视化开发环境。Visual C++ 6.0提供的控制台应用程序对学习和掌握标准C++内容非常有利。“可视”的资源编辑器与MFC类以及应用程序向导,为快速高效地开发出功能强大的Windows应用程序提供了极大的方便。利用Visual C++ 6.0进行Internet、数据库及多媒体等多方面的程序开发也很容易。 本课程设计采用了C++。C++语言是在C语言的基础上发展起来的,不仅继承了C语言的所有特点,而且引入了面向对象的程序设计方法,改进了程序涉及思路,将编程方式进化到面向对象进行程序设计这一新的思维过程。 C++语言代表着对以往语言之精华的发展和提炼,并能很好的与C语言兼容,既支持面向对象的程序设计,也支持结构化的程序设计。它修补了C语言中的一些漏洞,提供更好的类型检查和编译时的分析,提供了异常处理机制,简化了程序的出错处理,利用throw、try和catch关键字,出错处理程序不必与正常的代码紧密结合,提高了程序的可靠性和可读性。函数重载允许相同的函数名具有不同参数表,系统根据参数的个数和类型匹配相应的函数。提供了模板机制。摸板包括类摸板和函数模板两种,它们将数据类型作为参数。对于具体数据类型,编译器自动生成模板类或模板函数,它提供了源代码复用的一种手段。

数据结构课程设计-运动会分数统计(C语言版)

目录 第一章绪论 (1) 运动会分数统计系统的背景 (1) 运动会分数统计系统的任务和目标 (1) 第二章运动会分数统计系统的需求分析 (2) 功能需求 (2) 功能模块 (2) 数据要求 (3) 性能要求 (3) 第三章系统开发工具及关键技术 (4) 系统开发工具 (4) 3.1.1 CodeBlocks (4) 关键技术 (4) 3.2.1 C语言 (4) 3.2.2 数组 (4) 3.2.3 链表 (4) 第四章运动会分数统计系统的实现 (5) 数据结构设计 (5) 结构定义 (5) 系统界面的实现 (6) 4.3.1 主菜单窗口 (6) 4.3.2 输入各个项目成绩并存储文件 (6) 4.3.3 统计各学校总分 (8) 4.3.4 按学校编号排序输出 (8) 4.3.5 按学校总分排序输出 (8) 4.3.6 按男团体总分排序输出 (9) 4.3.7 按女团体总分排序输出 (9) 4.3.8 按学校编号查询学校某个项目情况 (10) 4.3.9 按项目编号查询取得名次的学校 (10) 第五章结束语 (11) 课程设计总结 (11) 致谢 (11) 参考文献 (12) 附录 (13)

第一章绪论 运动会分数统计系统的背景 在信息技术已经深入人类工作生活的今天,计算机软件得到了广泛的应用,越来越多的政府和企业将其业务纳入计算机软件系统。 随着社会进步,体育事业的发展,为了提高运动会成绩统计准确,减少设计者们的工作量,开发了本系统。 运动会分数统计系统的任务和目标 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前前三名积分;前三名的积分分别为:5、3、2。(m、w<=20,n<=10)。 目标: 1.可以输入各个项目的前三名或前五名的成绩; 2.能统计各学校总分; 3.可以按学校编号、学校总分、男女团体总分排序输出; 4.可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)。

数据结构课程设计 运动会分数统计

实验报告 班级: 姓名:学号 日期 课题一运动会分数统计 一.需求分析: 1.任务: 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1~m,女子m+1~m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些项目取前五名或前三名由学生自己设定。(m<=20,n<=20) .2。功能要求: 1) 可以输入各个项目的前三名或前五名的成绩; 2) 能统计各学校总分; 3) 可以按学校编号、学校总分、男女团体总分排序输出; 4) 可以按学校编号查询学校某个项目的情况; 5) 可以按项目编号查询取得前三或前五名的学校。 3.程序执行的命令包括: 1)输入所需要的各项数据2)对成绩进行排序3)查找成绩4)退出结束 4.测试数据: 输入五个学校的名字:东华,上外,外贸,视觉,工技大 输入四个体育项目:篮球,游泳,足球,马拉松。 输入篮球前五名的学校代码排名情况:1 3 5 2 4 输入游泳前三名学校代码排名情况:1 2 3 输入足球前三名学校代码情况:1 4 2 输入马拉松前三名的学校代码排名情况:1 5 3 二.概要设计:

为了实现上述程序需要使用要串和线性表,因此需要两个抽象数据类型:串和线性顺序表。 1.串的抽象数据类型的定义如下: ADT String{ 数据对象:D={a i|a i∈characterSet,I=1,2,……,n,n>=0} 数据关系:R1={|a i-1,a i∈D,I=2,……,n} 基本操作: StrAssign(&T,chars) 初始条件:chars是字符串常量。 操作结果:生成一起值等于chars的字符串T. StrCopy(&T,s) 初始条件: 串S存在 操作结果:由串复制得串T. StrEmpty(s) 初始条件: 串S存在。 操作结果:若S为空串,则返回TRUE,否则返回FALSE. Strcompare(S,T) 初始条件:串S和T存在。 操作结果:若S>T,则返回>0;若S=T,则返回值=0,若S

运动会分数统计系统实验报告.doc

运动会分数统计系统的实现 9计科 (2)班 E10914044 杨素传 一、设计要求 1、问题描述 参加运动会有n 个学校,学校编码为1,2,, n,比赛分成m 个男子项目和w 个女子项目。项目编号为男子 1,2,, m,女子 m+1,m+2, ,m+w 。不同的项目取前五名或前三名积分;取前五名的积分分别为 7, 5, 3, 2, 1;前三名的积分分别 5, 3, 2;哪些取前五名或前三名由学生自己设定( m<=20,n<=20 )。 2、需求分析 (1)可以输入各个项目的前三名或前五名成绩; (2)能统计各学校成绩; (3)可以按学校编号、学校总分、男女团体总分排序输出; (4)可以按学校编号查询学校某项目情况,可以按项目编号查询取得前三名或前五 名的学校。 二、概要设计 1、主界面设计 为了实现运动会分数统计系统,设计一个含有多个菜单项的主控菜单子程序以连接系 统的各项子程序,方便用户使用本程序。本系统主控菜单运行界面图 1 所示。

图 1运动会分数统计系统程序主菜单 2、存储结构设计 本程序采用链式存储类型(LNode )存储运动会分数统计系统的节点信息。运动会分数 统计系统的链表中的结点包括8 个域:项目编号域(objnum )、项目类型( objtype )、运动员编号( athnum)、运动员姓名( athname[20] )、学校编号( schnum)、校名 ( schname[30])、运动员分数( athscore)和指向下一个节点的指针欲( struct LNode *next )。 3、系统功能设计 本系统设置了8 个子功能菜单。8 个子功能的设计描述如下: (1)录入各项目的成绩。由函数 creatLink() 实现。当用户选择该功能时,系统会以用户 输入的数据运动会分数统计链表。 (2)统计各学校分数。由函数 schoolScore()实现。当用户选择该功能时,系统会统计各 学校分数。 (3)按学校编号顺序输出。由函数printfSchoolNumber() 实现。当用户选择该功能时, 系统会按学校编号顺序输出数据。 (4)按学校总分顺序输出。由函数 printfSchoolScore() 实现。当用户选择该功能时,系统 会按学校总分顺序输出数据。 (5)按男女团体总分顺序输出。由函数 printfManWomanScore() 实现。当用户选择该功能时,系统会按男女团体总分顺序输出数据。 ( 6)按学校编号查询学校某项目情况。由函数printfSchoolObject() 实现。当用户选择该功能时,系统会按学校编号输出学校某项目情况。 ( 7)按项目编号查询取得前三名或前五名的学校。由函数printfObjectSchool() 实现。当用户选择该功能时,系统会按项目编号查询取得前三名或前五名的学校情况。 ( 8)退出。由exit(0) 函数实现。 三、模块设计 1、模块设计 本程序包含两个模块:主程序模块和工作区选择模块。其调用关系如图 2 所示。 主程序模块工作区选择模块 图 2模块调用示意图 2、系统子程序及功能设计 本系统共设置个 6 子程序,各子程序的函数名及功能说明如下。 ( 1)LinkList creatLink() // 创建链表(录入各项目的成绩) ( 2)int schoolScore(LinkList L) //统计各学校总分 ( 3)void printfSchoolNumber() //按学校编号顺序输出 ( 4)void printfSchoolScore() //按学校总分顺序输出 ( 5)void printfManWomanScore(LinkList L //按男女团体总分排序输出 ( 6)void printfSchoolObject(LinkList L) // 按学校编号查询学校某项目情况 ( 7)void printfObjectSchool(LinkList L) //按项目编号查询取得前三名或前五名的学校 ( 8)int main() //主函数 3、函数主要调用关系图 本系统 6 个子系统之间的主要调用关系如图 3 所示,图中数字是各函数的编号。

数据结构课程设计报告-运动会分数统计(能实现)

运动会分数统计 1需求分析 根据课程设计任务书要求,本系统开发主要完成以下功能和性能。 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 功能要求: (1).可以输入各个项目的前三名或前五名的成绩; (2).能统计各学校总分; (3).可以按学校编号、学校总分、男女团体总分排序输出; (4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称) 输出形式:有中文提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。 1.1 功能需求 本系统主要是运动会分数统计方案设计。 运动会分数统计方案适合采用结构体数组,为了实现系统功能,主要应实现以下几部分:比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。 1.2数据需求 需要输入学校编号,项目编号,取得的名次,以及哪些名次。 1.3 性能需求 本程序在运行期间,为了避免在运行大量数据时不会出错,并且能够在很短的时间内将运行结果稳定输出,就需要系统达到安全性能好,可靠性高,稳定性强,处理数据迅速等特点。 2总体设计 2.1系统设计方案 本方案要求准备结构体数组、读写文件。还能把信息直接输入存储到文件中,读取文件中信息,从而得到结果。 (1) 菜单设计 分为主函数菜单、比赛成绩输出菜单、查询分数统计结果菜单、查询方式子菜单。 (2) 数据保存方式 建立文件,数据保存在文件中。运动运分数统计程序 (3) 数据类型 采用结构体类型。 (4) 存储结构 采用结构体类型数组存储结构存储。 (5) 算法设计 输入比赛结果模块中运用了冒泡算法将输入的数据排序。 1

C语言课程设计----运动会分数统计系统源代码

源代码: #include #include #include #include #define n 2//学校数目 #define m 1//男子项目数目 #define w 1//女子项目数目 #define null 0 typedef struct { int itemnum; //项目编号 int top; //取名次的数目 int range[5]; //名次 int mark[5]; //分数 }itemnode; //定义项目结点的类型 typedef struct { int schoolnum; //学校编号 int score; //学校总分 int mscore; //男团体总分 int wscore; //女团体总分 itemnode c[m+w]; //项目数组 }headnode;//定义头结点类型 headnode h[n];//定义一个头结点数组 void inputinformation() //输入信息,建立系统 { int i,j,k,s; for(i=0;i

printf("*****项目编号:"); scanf("%d",&h[i].c[j].itemnum); printf("*****取前3名or前5名:"); scanf("%d",&h[i].c[j].top); printf("*****获得几个名次:"); scanf("%d",&k); //输入项目信息 for(s=0;s<5;s++) h[i].c[j].range[s]=0, h[i].c[j].mark[s]=0; //初始化排名和分数 for(s=0;s

相关文档
最新文档