数据结构大作业--运动会分数统计

数据结构大作业--运动会分数统计
数据结构大作业--运动会分数统计

数据结构课程设计大作业

090821班

题目运动会分数统计

专业计算机科学与技术

学生姓名赵志强

学号 39

指导教师唐国民

完成日期 2010.12.2

湖州师院信息与工程学院

目录

一、实验内容概述 (4)

二、实验目的概述 (5)

三、解题思路的描述 (6)

四、源程序清单 (9)

五、程序调试及测试结果 (16)

六、结论与体会 (18)

七、参考文献 (19)

运动会分数统计

【内容摘要】

问题描述:参加运动会有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) 数据存入文件并能随时查询

6) 规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称

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

界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;

测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明。

【关键字】运动会分数统计,线性表,链表,遍历

【Abstract】

Description:There are various schools participate in the games, and stamp them from 1... n. Competition is divided into N male project, and N female project. Project Numbers for man from 1 to M, women's from m + 1 to M + w. Different project take the top five or top three points; The top five points respectively is: 7, 5, 3, 2, 1,and the top three points respectively is: 5, 3, 2,;Which to take the top five or top three set by the students themselves. (m < = 20, n < = 20)

Functional requirements:

1) can enter each item the top three or top five result,

2) can calculate each school’s total score,

3) men and women groups total score sorting results can output according to the

school numbers or name, school total score.

4) can follow the school Numbers inquires the school for a specific project; Can be obtained by project Numbers inquires top

three or top five schools.

5) data files, and can deposit enquiries

6) regulation: input data form and scope: can enter the school name, the name

of the sport

Output format: Chinese clew, each school grades for plastic

Interface requirements: there is a reasonable hint, each function may establish menu, according to the prompt, can complete the relevant function requirement.

Storage structure: the students themselves according to your own design system function requirements, but it will require games and related data to stored in data file. (data file of reading and writing data method and other related content in c language program design book, please self-study solve) please last due in material storage structure of where you use,

Test data: require all legal data; 1, 2, the overall illegal data; 3, local illegal data. Test procedures, to ensure the stability of the program. Test data and test results of material in submission, please state.

【Key words】Sports scores statistics,Linear list,Linked list,seek

一、实验内容概述

这次课程设计题目是运动会的分数统计系统,它要求参加运动会的n个学校编号为1—n。比赛分成m个男生项目和w个女生项目,项目编号为1-m和m+1-m+w。由于各项目参加人数差别比较大,有些项目取前五名,得分的顺序为7,5,3,2,1;还有些项目只能取前三名,得分顺序为5,3,2。需要产生各学校的成绩单和团体总分报表。

为了实现这个程序,调用了多个子函数。save函数是实现对数据的存储,getchar函数是从stdin流中读取字符,system函数是向系统发出一个DOS命令程序中用到的system(“pause”);其功能是运行的时候就可以出现:“请按任意键继续”,由于在这个从程序中的下一条命令是返回主菜单界面若不加一条命令的话,就会使显示是清屏。malloc函数的功能是内存分配如:

gl=(ALLitems*)malloc(sizeof(ALLitems))

g2=(ALLNode*)malloc(sizeof(ALLNode));

就是g1和g2指针非配内存地址空间大小。函数fclose的功能是关闭数据流,如程序中用到的flose(fp2)就是将fp2文件的数据流关闭,用在本程序的save函数中,当执行funct1输入信息保存后关闭当前信息流。程序中自定义的funct1-8的功能分别是:

funct1():输入各个项目成绩并存储文件

funct2():统计各学校总分

funct3():按学校编号排序输出

funct4():按学校总分排序输出

funct5():按男团体总分排序输出

funct6():按女团体总分排序输出

funct7():按学校编号查询学校某个项目情况

funct8():按项目编号查询取得名次的学校

funct0():退出

最后是主函数main()它是所有程序运行的入口

二、实验目的概述

“数据结构”是计算机科学与技术专业一门十分重要的专业技术基础课,计算机科学各领域

及有关的应用软件都要使用到各种数据结构。在我国,“数据结构与算法”已经作为理工科非计算机专业必修的信息技术基础课程之一。世界上许多科技人员对学习、研究数据结构和算法都非常重视,对于从是计算机科学及其应用的科技工作者来说,数据结构与算法更是必须透彻的掌握的重要基础。

学习数据结构与算法的最终目的是解决实际的应用问题,特别是非数值计算类型的应用问题,课程设计是加强学生实践能力的一个强有力的手段。作为一名计算机专业的学生,通过对计算机课程两年的学习,掌握C++和数据结构,在完成课程设计和变成过程中,要深化对数据结构与算法课程中的基本概念、理论和方法的理解,训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念,在老师的指导下完成最少换车次数问题,把自己所学的理论用具体的问题来解决,更加直接,易懂。提高程序设计与调试水平。

在通过学习数据结构,我们要掌握数据结构的各个算法,运用学过的算法去解决实际中的问题,将数据结构用用武之地,也能提高我们的运用能力和编写程序的能力,对我们的技能也有进一步的提高,对我们的未来之路铺路搭桥。

在这个实验中,我主要是类的成员函数去解决问题,除了学习到C语言的知识外,同样还学习到C++的知识,对我的知识也有很大扩展,将C和C++相结合,达到共同解决问题的目的。

在这个运用中,主要是学会类的定义以及使用,还有类的成员函数的定义和使用,通过用类的对象去调用类的成员函数,最后达到目的,这能够体现出面向对象的编程方法,与以往的面向过程的编程方法有很大的层次性的提高,达到提高思维能力。

三、解题思路的描述

1.本程序中学校的存储结构为链表:

其中

school类为:

class school:public athlete /*学校*/

{

……

public:

int count; /*学校获奖数*/

int serial; /*学校编号*/

int menscore; /*男选手总分*/

int womenscore; /*女选手总分*/

int totalscore; /*总分*/

athlete ath[MaxSize]; /*获奖运动员信息数组,包括分数,名次,项目*/ school *prev;//前指针

school *next; //后指针};

其中部分主要的函数:

添加操作add(school* &head)

查询操作checkFunc(school *head,int &n)

文件保存save(school *head)

总分快速排序tquicksort(vector& v, int first, int last)

总分基数排序 tbaseSort(vector& v, int d)

2.关键算法

{……

添加项目号

for ( i = 1 ; i <= n ; i++ )

{ 输入第i名运动员的学校编号temp……

while(first!=head) //遍历链表,直到找到编号为serial的学校所在结点,或first指向表头head

{ if (first->serial ==要添加的编号)

{

(first->ath[first->count]).item =要添加的项目号;

(first->ath[first->count]).range =i(名次)

First指向的学校的项目加一;

更新总分break; }first = first->next;……}

3.查询操作:

4.链表存储

#include

#include #include

#define LT(a,b) ((a)<(b))

#define LIST_INIT_SIZE 100//线性表存储空间的初始分配量

#define LISTINCREMENT 10//线性表存储空间的分配增量

typedef int InfoType; // 定义其它数据项的类型

typedef int KeyType; // 定义关键字类型为整型

struct RedType // 记录类型

{

KeyType key; // 关键字项

InfoType otherinfo; // 其它数据项,具体类型在主程中定义

};

typedef struct

{

int schnum;//学校的编号

int mscore[20];//学校在各个男生项目的积分

int wscore[20];//学校在各个女生项目的积分

}school;//学校记录类型

typedef int ElemType;

struct SqList

{

ElemType *elem;// 存储空间基址

int length; // 当前长度

int listsize; // 当前分配的存储容量(以sizeof(ElemType)为单位) };

struct List

{

RedType r[20];

int length;

};

int InitList(SqList &L) // 算法.3

{ // 操作结果:构造一个空的顺序线性表

L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));

if(!L.elem)

exit(-1); // 存储分配失败

L.length=0; // 空表长度为

L.listsize=LIST_INIT_SIZE; // 初始存储容量

return 1;

}

int ListInsert(SqList &L,int i,ElemType e) // 算法.4

{ // 初始条件:顺序线性表L已存在,≤i≤ListLength(L)+1

// 操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加

ElemType *newbase,*q,*p;

if(i<1||i>L.length+1) // i值不合法

return 0;

if(L.length>=L.listsize) // 当前存储空间已满,增加分配

{

if(!(newbase=(ElemType

*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType))))

exit(-1); // 存储分配失败

L.elem=newbase; // 新基址

L.listsize+=LISTINCREMENT; // 增加存储容量

}

q=L.elem+i-1; // q为插入位置

for(p=L.elem+L.length-1;p>=q;--p) // 插入位置及之后的元素右移

*(p+1)=*p;

*q=e; // 插入e

++L.length; // 表长增

return 1;

}

void InsertSort(List &L)

{ // 对顺序表L作直接插入排序。算法.1

int i,j;

for(i=2;i<=L.length;++i)

if LT(L.r[i].key,L.r[i-1].key) // "<",需将L.r[i]插入有序子表

{

L.r[0]=L.r[i]; // 复制为哨兵

for(j=i-1;LT(L.r[0].key,L.r[j].key);--j)

L.r[j+1]=L.r[j]; // 记录后移

L.r[j+1]=L.r[0]; // 插入到正确位置

}

}

void print(List L)

{

int i;

for(i=1;i<=L.length;i++)

printf("(%d,%d,%d)\n",L.length-i+1,L.r[i].otherinfo,L.r[i].key);

printf("\n");

}

void main() //规定男生项目前三名分别积分、、,女生项目前五名分别积分、、、、

//规定没有名次则积分为,不考虑并列的情况

//请正确输入各学校对应项目的积分

{

int n,m,w,i,j;

school a[20];

int summscore[20],sumwscore[20],sumscore[20];//定义存储各个学校男团、女团、总分 RedType d[20];//定义排序所需的数组为RedType型

SqList L,Lm,Lw;//定义存放各个学校总分、男团、女团积分的顺序线性表

List Lr;//定义积分排序所需的顺序线性表

InitList(L);//初始化各线性表

InitList(Lm);

InitList(Lw);

cout<<"请输入参加运动会的学校数目(~20):"<

cin>>n;

while(n<5||n>20)

{

cout<<"输入学校数目有误,请重新输入!"<

cout<<"请输入参加运动会的学校数目(~20):"<

cin>>n;

}

cout<<"请分别输入男生、女生的项目数目(~20):"<

cin>>m>>w;

cout<<"规定男生项目前三名分别积分、、"<

cout<<"女生项目前五名分别积分、、、、"<

cout<<"没有名次则积分为,且本程序不涉及并列排名的情况!"<

cout<<"请正确输入各学校对应项目的积分!\n"<

for(i=1;i<=n;i++)

{

a[i-1].schnum=i;//赋给学校对应的编号

printf("请输入学校%d 男生各个项目的成绩:\n",i);

for(j=1;j<=m;j++)//分别输入对应学校的各个男生项目的积分情况

cin>>a[i-1].mscore[j-1];

printf("请输入学校%d 女生各个项目的成绩:\n",i);

for(j=1;j<=w;j++)//分别输入对应学校的各个女生项目的积分情况

cin>>a[i-1].wscore[j-1];

}

for(i=0;i

{

summscore[i]=a[i].mscore[0];

for(j=1;j

summscore[i]+=a[i].mscore[j];//求出学校男团总分并存储到数组中对应位置 ListInsert(Lm,i+1,summscore[i]);//将学校男团总分插入存放在线性表对应位置 sumwscore[i]=a[i].wscore[0];

for(j=1;j

sumwscore[i]+=a[i].wscore[j];//求出学校女团总分并存储到数组中对应位置 ListInsert(Lw,i+1,sumwscore[i]);//将学校女团总分插入存放在线性表对应位置 sumscore[i]=summscore[i]+sumwscore[i];//求出学校总分并存储到数组中对应位置 ListInsert(L,i+1,sumscore[i]);//将学校总分插入存放在线性表对应位置

}

int flag=1;

char ch;

while(flag)//当flag为真时执行循环

{ printf("请选择:\n");

printf("1.查看各学校总分统计,并按学校编号排序输出查看 \n");

printf("2.按学校总分排序输出查看 \n");

printf("3.按男团总分排序输出查看 \n");

printf("4.按女团总分排序输出查看 \n");

printf("5.按学校编号查询学校某个项目的情况 \n");

printf("6.按项目编号查询取得前三或前五名的学校 \n");

printf("7.退出程序 \n");

cin>>ch;

switch(ch)

{

case '1'://查看各学校总分统计,并按学校编号排序输出查看

for(i=0;i

{

printf("学校编号:%d 学校总分:%d\n",i+1,L.elem[i]);

}

break;

case '2'://按学校总分排序输出查看

Lr.length=n;

for(i=0;i

{

d[i].key=L.elem[i];

d[i].otherinfo=i+1;

Lr.r[i+1]=d[i];

}

InsertSort(Lr);

cout<<"按学校总分排序后以(名次,学校编号,学校总分)形式输出为:"<

print(Lr);

break;

case '3'://按男团总分排序输出查看

Lr.length=n;

for(i=0;i

{

d[i].key=Lm.elem[i];

d[i].otherinfo=i+1;

Lr.r[i+1]=d[i];

}

InsertSort(Lr);

cout<<"按男团总分排序后以(名次,学校编号,男团总分)形式输出为:"<

print(Lr);

break;

case '4'://按女团总分排序输出查看

Lr.length=n;

for(i=0;i

{

d[i].key=Lw.elem[i];

d[i].otherinfo=i+1;

Lr.r[i+1]=d[i];

}

InsertSort(Lr);

cout<<"按女团总分排序后以(名次,学校编号,女团总分)形式输出为:"<

print(Lr);

break;

case '5'://按学校编号查询学校某个项目的情况

cout<<"请输入要查询的学校编号:"<

cin>>s;

while(s<1||s>n)//输入学校编号不在初始定义范围之内

{

cerr<<"输入学校编号有误,请重新正确输入!"<

cout<<"请输入要查询的学校编号:"<

cin>>s;//重新输入

}

i=0;

while(a[i].schnum!=s)

++i;//通过循环找到输入编号的对应学校在数组a中的位置

cout<<"请输入要查询的项目序号:"<

cin>>t;

while(t<1||t>m+w)//输入项目序号不在初始定义范围之内

{

cout<<"输入项目序号有误,请重新正确输入!"<

cout<<"请输入要查询的项目序号:"<

cin>>t;//重新输入

}

if(t<=m)//该项目属于男生项目

printf("该学校该项目积分为:%d\n",a[i].mscore[t-1]);//从学校男生项目积分数组里输出

else //该项目属于女生项目

printf("该学校该项目积分为:%d\n",a[i].wscore[t-m-1]);//从学校女生项目积分数组里输出

break;

case '6'://按项目编号查询取得前三或前五名的学校

cout<<"请输入要查询的项目序号:"<

cin>>t;

while(t<1||t>m+w)//输入项目序号不在初始定义范围之内

{

cout<<"输入项目序号有误,请重新正确输入!"<

cout<<"请输入要查询的项目序号:"<

cin>>t;//重新输入

}

if(t<=m)//该项目属于男生项目

{

i=0;

while(a[i].mscore[t-1]!=5)

++i;//通过循环找到该项目第一名学校在a中的位置

printf("获得该项目第一名的是学校:%d 号\n",i+1);

i=0;

while(a[i].mscore[t-1]!=3)

++i;//通过循环找到该项目第二名学校在a中的位置

printf("获得该项目第二名的是学校:%d 号\n",i+1);

while(a[i].mscore[t-1]!=2)

++i;//通过循环找到该项目第三名学校在a中的位置 printf("获得该项目第三名的是学校:%d 号\n",i+1);

}

else//该项目属于女生项目

{

i=0;

while(a[i].wscore[t-m-1]!=7)

++i;//通过循环找到该项目第一名学校在a中的位置 printf("获得该项目第一名的是学校:%d 号\n",i+1);

i=0;

while(a[i].wscore[t-m-1]!=5)

++i;//通过循环找到该项目第二名学校在a中的位置 printf("获得该项目第二名的是学校:%d 号\n",i+1);

i=0;

while(a[i].wscore[t-m-1]!=3)

++i;//通过循环找到该项目第三名学校在a中的位置 printf("获得该项目第三名的是学校:%d 号\n",i+1);

i=0;

while(a[i].wscore[t-m-1]!=2)

++i;//通过循环找到该项目第四名学校在a中的位置 printf("获得该项目第四名的是学校:%d 号\n",i+1);

i=0;

while(a[i].wscore[t-m-1]!=1)

++i;//通过循环找到该项目第五名学校在a中的位置 printf("获得该项目第五名的是学校:%d 号\n",i+1);

}

break;

default:flag=0;printf("程序结束,按任意键退出!\n");//退出程序 }

}

getchar();

}

五、程序调试及测试结果

1.输入学校数目及其名称

2.分别输入男、女项目数,在项目总排序中对应项的学校编号排名,及弹出菜单

3.菜单:选择1

4.菜单:选择2

5.菜单:选择3

6.菜单:选择4

7.菜单:选择5

8.菜单:选择6

9.菜单:选择7

六、结论与体会

1、调试中所遇到的较重要问题的回顾

(1)、问题:每一次查到文件中保存的资料,发现只有一条记录,而且该条记录是最近输入的一条记录

分析原因:每一次打开该文件进行写入操作时,文件中原有内容被清空了!

解决办法:该文件要由iso::app参数规定的按追加输出方式打开,文件中原有内容就会保持不变,文件指针被自动移到文件的末尾。

(2)、问题:怎样可以按项目编号查询取得前三或前五名的学校呢?一般的遍历输出很难达到预期效果,

发现过程:能完整的输出前三或前五名的学校,但不能按排名的次序依次输出,这就很不完美!分析原因:我原来是这么来实现,检查每个学校该项目的得分,一旦得分不为零就把该学校输出。解决办法:设置了一个局部变量flag来标记名次,初始值设为1,然后利用do ……while语句来实现循环查找,第一次查找该项目第一名的学校,找到后flag自增来实现查找第二名,直到找到所有符合条件的学校。

2、心得和体会

通过对数据结构和课程设计的学习,使我们能够以问题求解方法、程序设计方法以及一些典型的数据结构算法为研究对象,分析数据对象的特征,掌握数据组织的方法和在计算机中的表示方法,为数据选择适当的逻辑结构、存储结构以及相应的处理算法,使我们初步掌握了算法的时间、空间复杂度的分析技巧,并逐步培养了良好的程序设计风格以及进行复杂程序设计的技能。数据结构一科的重要内容和主要难点是让我们理解、习惯和熟悉算法构造性思维方法。

在课设过程中,我深刻认识到算法的逻辑性对程序的重要影响,算法的准确度对程序运行结果的重要影响,构建最小代价生成树时,一个细微的循环控量的错误都能影响到程序的正确性,而所有的代码机制都是为一个目标的实现而运作的,所以,细致是实现算法和程序准确性必不可少的。

七、参考文献

a)姜学军,朱筠.数据结构(C语言描述).北京:中国轻工业出版社,2004.9

b)谭浩强.C语言程序设计.北京:清华大学出版社,1991

c)谭浩强.C++程序设计.北京:清华大学出版社,2005

d)徐孝凯.数据结构简明教程.北京:清华大学出版社,1995

e)殷人昆.数据结构(用面向对象方法与C++描述).北京:清华大学出版社,

1997

指导教师:日期实验成绩:

数据库课程设计报告-校运动会管理系统

数据库课程设计报告 运动会数据库系统 目录 第一章系统概述 (2) 1. 1系统开发背景与意义 (2) 1.1.1系统开发背景 (2) 1.1.2系统开发意义 (2) 第二章系统需求分析 (3) 2.1 需求分析概述 (3) 2.2.1功能需求分析 (3) 2.2.2 可行性分析 (3) 2.2 系统数据流图 (4) 2. 3 数据字典 (6) 第三章系统总体设计 (8) 3. 1 系统概念设计 (10) 3.1.1 概念模型(E-R图) (10) 3..2 关系模式....................................... 错误!未定义书签。第四章数据库定义和数据安全性与完整性定义.............. 错误!未定义书签。 4. 1 数据库定义......................................... 错误!未定义书签。 4. 2 数据安全性与完整性定义............................. 错误!未定义书签。

第一章系统概述 1.1系统开发背景与意义 1.1.1系统开发背景 高等院校运动会是高校体育工作的重要组成部分。近年来,随着招生规模的扩大, 导致比赛项目、参赛人数不断增加,同时人们对比赛结果的准确性和实时性要求也越来越高,参赛队需要得到及时、准确的相关信息 ,从而有效进行竞赛的决策指导,这些问题和需求是采用人工方式或单机版运动会管理系统都难以解决的。为此,我们对运动会的信息综合管理系统进行了研究,使运动会的筹备、组织、管理、协调等工作全面实现了计算机网络化、自动化,极大的提高了工作效率和信息处理的实时性。 高校运动会作为各项体育运动的基础,具有广泛的群众性。每届的高校运动会声势浩大,是提高、检验学生的健康水平,开展全民健身运动的有效途径。由于比赛项目较多,参赛人数广,数据处理量大且变化时效性要求高,管理较为复杂,其编排,记录,公告工作是一项复杂的工程。为了解决在运动会管理和组织所面临的各种问题,我们开发了一套适合高校的运动会管理系统。在分析运动会管理需求的基础上,通过比较分析不同的开发模式和特点,系统采用简单实用的Windows环境下的基于浏览器/服务器的模式构建,用SQL Server2008作为后台数据库,提供对数据库的查询、添加、修改、删除等操作来实现信息网上管理,并对信息管理功能进行了详细的分析,以实现动态、交互、高效的网络化信息管理。系统能够对运动员的报名信息进行准确统计,能够有效处理赛程中的实时数据。 1.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 {

(完整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所示,图中数字是各函数的编号。

运动会成绩管理系统精选文档

运动会成绩管理系统精 选文档 TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-

目录 第一章概述……………………………………………………………………………… 第二章需求分析………………………………………………………………………… 问题陈述……………………………………………………………………… 功能分析……………………………………………………………………… 数据流图………………………………………………………………………… 数据字典………………………………………………………………………… 第三章.概念结构设计……………………………………………………………………第四章逻辑结构设计………………………………………………………………………第五章软件功能设计……………………………………………………………… 第六章代码设计和界面设计……………………………………………………………… 小结…………………………………………………………………………………… 参考文献………………………………………………………………………………

课程设计任务书 1、课程设计题目 运动会成绩管理系统 2、设计任务和内容 一个运动会成绩管理系统是根据学校的实际运动会工作专门设计的一个管理信息系统。该系统能够对项目、运动员、成绩进行有效管理。对以上信息管理主要包括:登记各项比赛成绩、根据预赛成绩产生预(决)赛名单,同时能够进行适当的统计工作和结果输出,可以满足各个单位、个人成绩查询的需求。 本课题任务是开发一个运动会成绩管理系统,并撰写符合规范的课程设计说明书以体现设计过程和设计结果。 3、设计步骤和要求 设计步骤: 首先进行相关资料查阅和学习,了解基本的业务流程和系统数据功能要求。然后结合软件工程的理论和教材中数据库设计的六个阶段(重点是前三个阶段)完成设计任务,即系统结构设计(需求分析、概念结构设计、逻辑结构设计、物理结构设计)和系统功能设计。 设计要求: 1、撰写课程设计说明书。其要求如下: (1)基本要求: ①能反映完成了上述设计内容要求。 ②要求撰写不少于5000个文字(20页)的文档。 ③文档中至少要包括:数据流图、数据字典、E-R图、数据库表的详 细 说明、系统功能结构图、主要功能模块说明。 ④课程设计说明书一律用碳素墨水书写,其中用户界面设计可以附 界面 的计算机截图或手工绘图。 (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) 功能要求: 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 输出查询学校成绩 继续 结束—退出

校运动会管理系统

C 语言课程设计

学校运动会管理系统 专业:网络工程 班级:网133 报告人:王先海 139074347 刘随心 139074338 葛翔 139074332 指导老师:陶陶 报告日期:2014年12月13号

一、需求分析 1、问题描述: 建立运动员信息系统,包括运动员、裁判员以及运动信息的成绩管理,运动员信息为编号、姓名、身份信息(教师、学生)、参加的比赛项目等;裁判员信息为编号、姓名、身份信息(教师、学生)、裁判的项目;运动会信息包含各个比赛项目的信息、时间安排、裁判信息、比赛成绩等。 2、功能要求: (1)各种运动信息需要利用文件的形式进行存储。 (2)输入功能:可以从键盘或文件中一次性输入多条信息; (3)输出功能:可将运动员、裁判员、以及比赛信息打印输出或显示; (4)查找功能:根据运动员、裁判员等查找出所需要的比赛信息; (5)增加、删除、修改功能:完成运动员信息的多种更新; (6)统计功能:完成各类比赛信息的统计功能,例如某项比赛的名词排名,各个运动员的积分成绩统计等。 二、总体设计

1、将学校运动会管理系统系统进行模块化分析

三、详细设计 本程序包含除main函数外包含20个函数:menu()、menu2()、reads(struct athletes ath[N]) 、 reads1(struct referee ref[N])、reads2(struct All_the_events sport[N]) 、save(struct athletes ath[N],int n)、 show_athletes()、how_referee()、add()、 According_to_the_number_to_find_players_informat ion ()、 According_to_the_name_to_find_players_informatio n ()、 According_to_the_number_to_Modify_the_players_in formation ()、 According_to_the_name_to_Modify_the_players_info rmation ()、 According_to_the_name_to_delete_the_players_info rmation ()、 According_to_the_name_to_find_referee_informatio n ()、show_all_events () 、 Output_on_a_single_information ()、 sort()、keep() 、sheep()。

C语言课程设计报告_运动会分数统计系统

课程设计报告 课程名称《C语言程序设计》 课题名称运动员分数统计系统 专业电气工程及其自动化 班级电气1186 学号201113010628 姓名何长学 指导教师王颖 2012 年6月15日

湖南工程学院 课程设计任务书 课程名称《C语言程序设计》课题运动员分数统计系统 专业班级电气1186 学生姓名何长学 学号201113010628 指导老师王颖 审批 任务书下达日期2012年6月04日 任务完成日期2012年6月15 日

一、设计内容与设计要求 1.课程设计目的: 全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为后继课程(数据结构、数据库和汇编语言等课程)的实验以及课程设计打下较扎实的基础。 2.课题题目 ⑴班级成绩管理系统 ⑵班级档案管理系统 ⑶飞机订票系统 ⑷猜数字游戏 ⑸电子英汉词典设计 ⑹心算抢答系统 ⑺运动会分数统计系统 ⑻小学生心算CAI系统 3.设计要求: 掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的中型问题,为将来开发软件积累一些典型的案例处理经验。 具体要求如下: ⑴设计课题题目:每位同学根据自己学号除以8所得的余数加一 选择相应题号的课题。换题者不记成绩。 ⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包 括系统设计目的与意义;系统功能需求;输入输出的要求。②完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系; 每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,

运动会分数统计系统

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

目录

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

《数据结构》课程设计报告-运动会分数统计 一元多项式 迷宫求解 文章编辑 纸牌游戏等

南京林业大学 数据结构课程设计报告 专业:计算机科学与技术 课程名称:数据结构 姓名: 学号:090801126 指导老师: 时间: 2011年1月

目录要点: 一.具体内容(题目) (1) 二.需求分析(功能要求) (2) 三.概要设计(程序设计思想) (3) 四.详细设计(源代码) (6) 五.调试分析(运行结果显示及说明) (31) 六.课设总结 (34) 具体内容: 题目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:一元多项式** 任务:能够按照指数降序排列建立并输出多项式; 能够完成两个多项式的相加,相减,并将结果输入; 题目4:迷宫求解 任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出; 题目5:文章编辑** 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符,共N行; 题目6:Joseph环 任务:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m 时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有的人出列为止。设计一个程序来求出出列的顺序。

运动会成绩管理系统

运动会成绩管理系统 1.绪论 运动会成绩管理程序设计的开发是为了方便记录比赛成绩,运动员的状况和成绩,对比赛成绩进行排名。这个系统以快捷,简便为原则,更加方便了对运动会成绩的记录。运动会是很早以前就有的一项组织性活动,它的存在使人们的身体得到了锻炼。运动会是一项必不可少的活动,所以开发这个系统可以使运动会成绩的记录变的更加方便。 设计一个运动会成绩管理程序,主要实现以下功能: 1、检录功能,登录参赛运动员的信息; 2、记录成绩功能,每项比赛结束后记录参赛运动员的成绩; 3、针对不同比赛对运动员的成绩排名次; 4、可对运动员的信息和成绩进行修改、删除、查询操作。 2.系统分析 2.1功能需求 本系统要求对运动员的信息进行登录修改,记录,查询,要求可以对运动员的成绩进行单项排名。主要实现程序最初运行时运动员数据的录入以及其后的运行数据的追加功能,实现的功能是按照号码对运动员的数据记录进行修改、记录、查询、删除,按照题目的具体要求实现的是某项成绩的递减排序以及名次显示。 2.2数据需求 在这些函数当中,添加运动员数据函数例如运动员序号、运动员名称、百米赛跑成绩、三级跳成绩和撑杆跳成绩。

2.3性能需求 本系统的性能需求:要求运行稳定、数据可靠、输出准确、响应速度快、可安全运行、能很好的保存、删除、修改。可以及时保存存储删除数据,可对成绩进行排名,显示即时成绩 3.总体设计 3.1功能模块设计 经过对程序设计题目的分析可知,整个程序的设计实现大致分为5个模块,每一个模块对应一个函数。在这些函数当中,添加运动员数据函数,删除数据函数,某项成绩排序函数的实现严格按照题目的要求,而更改数据函数和显示函数属于附加功能。读取文件函数和保存信息函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。录入信息模块是录入运动员信息、查询信息模块是查询运动员信息的、修改信息模块可以对运动员信息进行修改、删除模块可对运动员信息进进行删除、成绩排名是对运动员的成绩进行排名,功能模块见图1所示。

大数据结构实验运动会分数统计实验报告材料

‘ 实验报告 题目:运动会分数统计 班级:14电子商务平台建设班完成日期:2015.10.10 学号:20141103468 :少辉 学号:20141103421 :德龙 学号:20141103407 :柴益新 一:需求分析 参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。 【基本要求】 产生各学校的成绩单,容包括各校所取得的每项成绩的项目号、名次(成绩)、和得分;产生团体总分报表,容包括校号、男子团体总分、女子团体总分和团体总分。 结于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为公里数的项目取前三名,设计一组实例数据。 【项目约束】 可以假设n≤20,m≤30,w≤20,长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按

名次顺序输入运动员、校名(和成绩)。 二:概要设计 采用结构体二维数组存储方式产生各学校的成绩单,容包括各校所取得的每项成绩的项目号、名次(成绩)、和得分;产生团体总分报表,容包括校号、男子团体总分、女子团体总分和团体总分。 三:详细设计 1:数据结构的定义 元素类型、变量、指针类型 (1)项目数据表:运动会开始前必须详细制定本次运动会所需的参赛项目为接下来报名、场地的准备提供依据。本数据表根据要 求设计存储每个项目的编号、名称、要取的名次以及各个名次 对应的学校的编号,在初始输入时仅输入项目编号、名称及要 取的名次,而各名次对应的学校编号将由系统自动统计。这也 有利于以后项目情况的查询。

校运动会管理系统报告C语言含完整代码

校运动会管理系统报告C语言含完整代码 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

目录 陈

一、程序分析与设计 (标题四号宋体加黑,正文五号宋体,行间距-固定值18,首行缩进2字符) 1.题目描述 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;即要求输入一些基础数据,如院系名称,每个院系参赛选手及选手编号。竞赛项目名称与代号。这些数据存储在文本文件中,不需要每次都单条录 入。 各项目名次取法有如下几种: 取前4名:第1名得分6,第2名得分4,第3名得分2,第4名得分1; 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。 所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。 2.需求分析 根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操 作,由于在程序中提供查询功能所以应有显示、查找等操作。 3.总体设计 根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块 2、比赛结果录入模块 3、查询模块。具体校际运动会管理系统分为信息的输 入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。 4.详细设计 (1)主函数

主函数一般设计的比较简洁,只提供输入,处理和输出部分的函数调用。其中功能模块用菜单方式选择。 (2)密码登陆函数 首先进入欢迎界面,提示用户输入密码进入系统,密码输入次数限制为三次,三次输入错误则退出系统,登陆成功显示菜单栏 (3)菜单函数 提醒用户根据要求选择功能,以及多次功能选取 (4)输入函数 进入该功能后提醒用户输入相应信息,即数据结构,数据结构采用结构体的形式,选手结构体成员包括选手的姓名、编号、各项目的成绩排名、选手所在学院等。 (5)查找函数 提醒用户输入运动员的姓名或编号,根据姓名或编号逐一比对信息,若条件满足则输出该选手的数据,若不满足则返回‘你要找的运动员未找到’(6)排序函数 根据运动员的百米成绩进行冒泡排序,并输出结果 (7)修改函数 提醒用户输入运动员的姓名,根据姓名逐一比对信息,若找到则提供修改选项,对数据进行覆盖 (8)得分计算函数 根据用户输入各项成绩排名,进行得分运算 并得出学院排名

数据结构实验运动会分数统计一实验报告

实验报告一 题目:运动会分数统计 班级:通信工程姓名:张雪婷 学号:20081121037 完成日期:2010-4-5 一、需求分析 要产生N个参加运动会的学校的成绩单,内容包括各校所取得的每项成绩的项目号,名次,姓名和得分;产生团体总分报表。内容包括校号,男子团体总分,女子团体总分和团体总分。 二、概要设计 1、结构体定义及模块 struct athlete //运动员结构体 { }; struct Seqlist //数组结构体 { Athlete elem[MAXSIZE]; int last; }; void build( Seqlist &list,int n) { 建立数组用来存放数据 } void display(Seqlist L,int num,int n ) { 输出学校的成绩单及团体总分等信息 } int main() { 实现总体调用函数 } 2、本程序包括的模块有: 1>创建一个线性数组来存放数据,输入学生的信息 2>打印成绩单,输出学校的团体总分,男团,女团总分 3>主控模块 三、详细设计

1、数据结构体的定义 struct Athlete 运动员结构体。定义了运动员中的属性 { int school; int item; //项目编号 int place; //名次 int score; char name[22]; char sex; }; struct Seqlist 结构体数组 { Athlete elem[MAXSIZE]; int last; }; 2、函数调用之间的关系 四、调试分析 1、用线性数组来实现这个实验,首先应当对线性数组了解透彻,如何传参。 2、用结构体定义的时候要明确题目目标,如结构体都有那些属性 3、在打印模块,for循环中要掌握好循环变量,分清运动员数和学校数。 4、收获:在完成本次实验中采用了线性数组存储信息,是我对这种存储方式有了更深的认识,也加深了掌握。本次程序分为两大模块,使得程序清晰易懂,各模块具有良好的重要性,确实得到了良好的程序设计训练。 五、用户使用说明: 1、本程序的运行环境为Dve-C++. 2、进入演示程序后及用户界面为: 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 日

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

. 计算机学院信管专业 数据结构课程设计 题目:运动会分数统计班级: 姓名:学号: 同组人: 起迄日期: 课程设计地点: 指导教师: 评阅意见: 成绩评定: 评阅人:日期: 完成日期: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)采用顺序表的查找来完成。

运动会成绩管理系统设计样本

引言 运动会是学校重大活动之一, 是检验学生的健康水平和提高身体素质的有效途径之一。在规模上虽然不如大型运动会, 但由于比赛项目多, 参赛人数广, 数据处理量大, 管理比较复杂, 特别编排, 记录, 公告工作是一项复杂的工程。因此提高学校运动会召开的质量和水平显得尤为重要。学校虽然早已运用了运动会成绩管理信息系统, 节约了不少的人力、物力, 但随着科技与时代的发展, 单机版的管理系统已经不能完全满足需求。例如: 运动会期间的信息无法及时共享, 包括赛事状况, 比赛成绩以及运动会中的各种表单等。给用户带来了诸多不便。因此开发管理系统势在必行。

一.系统概述 1.1.开发背景 着科技飞速发展, 人类社会进入一个崭新的信息时代, 许多事实已证明利用现代科技( 如: 信息管理系统) 管理与日俱增的信息是节约成本、提高办事效率的有效途径, 同时, 信息化也是各个企业、高校无法阻挡的发展趋势。现今, 国内各个学校网络普遍连入教育科研网或直接连接互联网, 大部分学校都建立了校园网, 信息的发布已是教育行业不可缺少的手段。从而对具有强大的, 可扩展的, 灵活的内容管理技术的需求也更加迫切。与此同时, 也都面临着管理各种格式的信息的挑战, 用户对数据管理的需求已经超出了传统数据管理的概念。 学校运动会是高校重大活动之一, 提高学校运动会召开的质量和水平显得尤为重要。虽然如此, 许多高校现阶段的运动会信息管理水平却让人十分忧心, 依然是人工手动管理, 如运动会比赛成绩的记录、查询、公告等一系列工作, 使得高校耗费巨大的人力、物力、财力, 为避免这一现象、节约成本。唯一可行方法就是用信息系统高效的管理功能替代人工对学校运动会的低效管理。不但能使信息管理人员从手工计算、统计与处理工作中解脱出来, 而且还能提高学校运动会信息管理水平和工作效率, 减少人力、物力、财力的无谓花费。

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*/ {

运动会成绩管理系统(JAVA)

运动会成绩管理系统(J A V A) -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

一、开发背景 (3) 二、系统描述 (3) 三、详细设计 (5) 1、模块功能 (5) 1.1、系统人员管理模块 (5) 1.2、运动员管理模块 (6) 1.3、运动员成绩管理模块 (6) 2、数据库结构设计 (7) 3、界面及代码设计 (9) 3.1、登录子系统开发 (9) 3.2、系统用户管理模块 (11)

3.3、运动员信息管理模块 (15) 3.4、运动员成绩管理模块 (17) 四、心得体会 (20) 五、参考文献 (21) 一、开发背景 当前,运动会已经在全国普遍开展,许多学校每年都定期的举行不同规模的田径运动会。但是,在运动会举行过程中一直存在着参赛人数多,项目设置复杂,时间安排紧凑等问题,而且这些问题能否解决直接关系着运动会的成功与否。另一方面,人们对于比赛结果的实时性、准确性、安全性、可靠性的要求也越来越高,而这些要求是人工操作很难实现的。同时竞赛组织者要尽量减少人为因素的干扰,减少赛场作弊行为的发生,还要为参赛的教练员和运动员

及时准确地提供竞赛的相关信息,辅助进行竞赛的决策指导。因此,计算机技术的融入就成为一种必然,而且逐渐成为运动会信息管理的核心所在。 根据调查,现在全国已经有不少学校在田径运动会举办过程中采用了现代化的计算机技术进行运动会的系统管理,有的已经达到了一个相当高的水平。但是我们发现这些运动会管理系统的设计和实现标准不一,参差不齐,而且更多的情况下这些系统只是实现了对运动会的分数统计等功能,在提供运动会的整个举办过程中的人性化、自动化服务等方面还有许多不足和欠缺。我们小组根据当前学校运动会的开展组织情况,结合运动会的组织原则和相关规定,运用现代计算机技术,以全新的模式设计开发了适合田径运动会的校级运动会管理系统。 采用了本运动会管理系统后,运动员在比赛前由院系统一输入个人信息即可,这样就方便了运动员的报名,有错误时可以及时汇报修改。裁判员单独对各自的项目进行管理,保证上了比赛的公正、公平。每个项目都有单独的帐号和密码对应,以保证成绩录入人员对自己管辖范围的唯一性和确定性。在成绩查询界面中可以准确及时的查询到各参赛队伍、各项目、各运动员的个人信息、比赛成绩、排名、和团体加分的情况。以上运动会中各环节组织和编排工作的系统实现,使大量繁琐的人工组织编排任务通过简单方便的操作便可以实现,大大减轻了运动会组织人员的劳动强度,节省了大量物力、人力、财力,提高了工作效率,保证了数据的实时性、准确性、安全性、可靠性,充分体现出了现代化的计算机技术在信息采集、处理、和管理等方面的无可比拟的优越性。

相关文档
最新文档