文档库 最新最全的文档下载
当前位置:文档库 › 数据结构课程设计—运动会分数统计系统

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

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

运动会分数统计系统

一、需求分析

为了简便地对运动会的报名、成绩的录入和统计,本组设计开发了本系统,以解决需求。当然,本系统只是一个较为简单的系统,仍然存在着一些操作上以及显示上的问题,本组将在以后的学习中进行完善。

问题描述:参加运动会有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.本系统的流程图如下:

2. 本系统采用的存储结构为结构化设计理念,这是数据库的最基本的设计要求,主要包括三个数据表: (1) 项目数据表:运动会开始前必须详细制定本次运动会所需的参赛项

目为接下来报名、场地的准备提供依据。本数据表根据要求设计存储每个项目的编号、名称、要取的名次以及各个名次对应的学校的编号,在初始输入时仅输入项目编号、名称及要取的名次,而各名次对应的学校编号将由系统自动统计。这也有利于以后项目情况的查询。

typedef struct {

int itemnum; //项目编号 int top; //取名次的数目

int range[5]; //名次 int mark[5]; //分数

}itemnode; //定义项目结点的类型

Y

N

N

N

Y Case1

Case3

N

Y

Y

开始---初始化

输入

输入某项目各名次成绩

输入学校及男女项目范围

继续输

查询各学校成绩

Case2 查询团体总分

成绩查询

输出查询学校成绩

继续

结束—退出

继续

(2)学校数据表:本数据表储存了各个参赛学校的总体情况,包括学校的编号、名称、男子团体总分、女子团体总分和学校总分。其中学

校编号和名称是提前输入的,而其他三项内容将由系统进行自动统

计。

typedef struct

{

int schoolnum; //学校编号

int score; //学校总分

int mscore; //男团体总分

int wscore; //女团体总分

itemnode c[m+w]; //项目数组

}headnode;//定义头结点类型

(3)单项数据表:本数据表是对各个学校的报名情况及成绩进行汇总,为了操作方便,本数据表只包含了学校的编号、项目的编号以及其

在比赛中的成绩。

typedef struct /*单项成绩*/

{

int schoolnum; /*学校编号*/

int itemnum; /* 项目编号*/

int xmch; /*项目成绩*/

}danx;

danx dx[Y];

这三个数据表之间由项目编号和学校编号进行相关联接,形成一个整体。

三、详细设计

源代码:

#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

{

h[i].score=0;

h[i].mscore=0;

h[i].wscore=0;

} //初始化头结点

for(i=0;i

{

printf("*****学校编号:");

scanf("%d",&h[i].schoolnum); //输入头结点信息

for(j=0;j

{

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

{

printf("*****名次:");

scanf("%d",&h[i].c[j].range[s]); //输入所获名次信息

if(h[i].c[j].top==3)

switch(h[i].c[j].range[s])

{

case 0: h[i].c[j].mark[s]=0; break;

case 1: h[i].c[j].mark[s]=5; break;

case 2: h[i].c[j].mark[s]=3; break;

case 3: h[i].c[j].mark[s]=2; break;

}

else

switch(h[i].c[j].range[s])

{

case 0: h[i].c[j].mark[s]=0; break;

case 1: h[i].c[j].mark[s]=7; break;

case 2: h[i].c[j].mark[s]=5; break;

case 3: h[i].c[j].mark[s]=3; break;

case 4: h[i].c[j].mark[s]=2; break;

case 5: h[i].c[j].mark[s]=1; break;

}

h[i].score=h[i].score+h[i].c[j].mark[s];

//按取前三名还是取前五名分别记分

if(j<=m-1)

h[i].mscore=h[i].mscore+h[i].c[j].mark[s];

//是男子项目则记到男子分数里面去

else

h[i].wscore=h[i].wscore+h[i].c[j].mark[s];

//是女子项目则记到女子项目里面去

}

printf("\n");

}

}

}

void output() //输出函数

{

int choice,i,j,k;

int remember[n];

int sign;

do

{

printf("*******************1.按学校编号输出.*******************\n"); printf("*******************2.按学校总分输出.*******************\n"); printf("*******************3.按男团总分输出.*******************\n"); printf("*******************4.按女团总分输出.*******************\n");

printf("\n\n******************* 请选择编号

*************************\n\n:");

scanf("%d",&choice);

switch(choice)

{

case 1:

for(i=0;i

{

printf("\n\n*****学校编号:%d\n",h[i].schoolnum);

printf("*****学校总分:%d\n" ,h[i].score);

printf("*****男团总分:%d\n",h[i].mscore);

printf("*****女团总分: %d\n\n\n",h[i].wscore);

} //按编号顺序输出

break;

case 2:

for(i=0;i

remember[i]=i;

for(i=0;i

{

for(j=i+1;j

if(h[remember[i]].score

k=remember[i];

remember[i]=remember[j],remember[j]=k;

} // 用冒泡排序方法,用辅助数组记住头结点下标

for(i=0;i

{

printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum); printf("*****学校总分:%d\n" ,h[remember[i]].score);

printf("*****男团总分:%d\n",h[remember[i]].mscore);

printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore);

//按所记下标顺序输出

} //按学校总分输出

break;

case 3:

for(i=0;i

remember[i]=i;

for(i=0;i

{

for(j=i+1;j

if(h[remember[i]].mscore

k=remember[i];remember[i]=remember[j];remember[j]=k;

}

for(i=0;i

{

printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum);

printf("*****学校总分:%d\n" ,h[remember[i]].score);

printf("*****男团总分:%d\n",h[remember[i]].mscore);

printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore); } //按男团总分输出

break;

case 4:

for(i=0;i

remember[i]=i;

for(i=0;i

{

for(j=i+1;j

if(h[remember[i]].wscore

k=remember[i];

remember[i]=remember[j];remember[j]=k;

}

for(i=0;i

{

printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum); printf("*****学校总分:%d\n" ,h[remember[i]].score);

printf("*****男团总分:%d\n",h[remember[i]].mscore);

printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore); }

break; //按女团总分输出}

printf("请选择 2 继续,0 跳出\n");

scanf("%d",&sign);

}while(sign==2); //循环执行输出语句

}

void inquiry() //查询函数

{

int choice;

int i,j,k,s;

printf("\n*****1:按学校编号查询\n");

printf("\n*****2:按项目编号查询\n");

printf("\n\n*****请选择查询方式:"); //提供两种查询方式 scanf("%d",&choice);

switch(choice)

{

case 1:

do

{

printf("要查询的学校编号:");

scanf("%d",&i);

if(i>n)

printf("错误:这个学校没有参加此次运动会!\n\n\n");

else

{

printf("要查询的项目编号:");

scanf("%d",&j);

if(j>m+w||j==0)

printf("此次运动会没有这个项目\n\n\n");

//学校编号超出范围,则输出警告

else

{

printf("这个项目取前 %d名,该学校的成绩如下:\n", h[0].c[j-1].top);

for(k=0;k<5;k++)

if(h[i-1].c[j-1].range[k]!=0)

printf("名次:%d\n",h[i-1].c[j-1].range[k]);

//输出要查询学校项目的成绩

}

}

printf("请选择 2 继续 , 0 跳出\n");

scanf("%d",&s);

printf("\n\n\n");

}while(s==2); //循环执行输出语句

break;

case 2:

do

{

printf("要查询的项目编号:");

scanf("%d",&s);

if(s>m+w||s==0)

printf("此次运动会不包括这个项目.\n\n\n");

//项目编号超出范围则输出警告

else

{

printf("该项目取前 %d名,取得名次的学校\n",h[0].c[s-1].top);

for(i=0; i

for(j=0;j<5;j++)

if(h[i].c[s-1].range[j]!=0)

printf("学校编号:%d,名次:%d\n",h[i].schoolnum,

h[i].c[s-1].range[j]);

} //输出该项目取得名次学校的成绩 printf("\n\n\n继续 2,跳出 0\n");

scanf("%d",&i);

printf("\n\n\n");

}while(i==2);

break;

}

}

void writedata() //把数据存储在文件中{

FILE *report;

int i;

if((report=fopen("sportsdata.txt","w"))==null)

{

printf("不能打开文件\n");

exit(1);

}

for(i=0;i

fwrite(&h[i],sizeof(headnode),1,report);

fclose(report);

} //按头结点块写入

void readdata() //读出文件中数据的函数{

FILE *report;

int i,j,k,s;

if((report=fopen("sportsdata.txt","r"))==null)

{

printf("file can not be opened\n");

exit(1);

}

for(i=0;i

{

printf("******学校编号:");

fread(&k,sizeof(int),1,report);

printf("%d\n",k);

printf("******学校总分:");

fread(&k,sizeof(int),1,report);

printf("%d\n",k);

printf("******男团总分:");

fread(&k,sizeof(int),1,report);

printf("%d\n",k);

printf("******女团总分:");

fread(&k,sizeof(int),1,report);

printf("%d\n",k);

printf("\n\n\n");

getch();

for(j=0;j

{

printf("******项目编号:");

fread(&k,sizeof(int),1,report);

printf("%d\n",k);

printf("******所取名次数量:");

fread(&k,sizeof(int),1,report);

printf("%d\n",k);

for(s=0;s<5;s++)

{

fread(&k,sizeof(int),1,report);

if(k!=0)

printf("******名次:"),

printf("%d\n",k);

}

for(s=0;s<5;s++)

{

fread(&k,sizeof(int),1,report);

if(k!=0) printf("******分数:"),

printf("%d\n",k);

}

}

printf("\n\n\n");

getch();

}

fclose(report); //关闭文件

} //按照读一个数据就输出一个数据的方式显示数据内容

void main()

{

int choice;

printf("======================欢迎使用======================\n"); printf("\n\n*****************运动会分数统计系统********************\n");

printf("\n\n********************1.输入信息*************************\n"); printf("********************2.输出信息*************************\n");

printf("********************3.查询信息*************************\n");

printf("********************4.调用信息*************************\n");

printf("********************5.退出系统*************************\n\n\n"); printf("================================================\n\n");

printf("********请选择要实现步骤的编号:\n\n");

scanf("%d",&choice);

switch(choice)

{

case 1:

inputinformation();writedata();readdata();main();

case 2:

output();main();

case 3:

inquiry();main();

case 4:

readdata();main();

case 5:

exit(0);

default:

exit(0);

}

}

四、调试分析

1.调试过程中出现的问题和处理方式:

为了使系统具有一点的容错性,当输入错误信息时应给出相应提示以正确输入数据,如:printf("要查询的项目编号:");

scanf("%d",&s);

if(s>m+w||s==0)

printf("此次运动会不包括这个项目.\n\n\n");

想在每次查询结束想返回主菜单进行其它项时,应在main( )函数中调用其它函数时再调用main( )函数,如:

switch(choice)

{

case 1:

inputinformation();writedata();readdata();main();

case 2:

output();main();

case 3:

inquiry();main();

case 4:

read data();main();

程序出现语法错误,发现是输入名次信息的地方忘带地址符&,或是程序不完整,只写了一个大括号。如:

printf("*****名次:");

scanf("%d",&h[i].c[j].range[s]);

2. 调试分析:

(1).函数调用。函数调用是语言中一块十分重要部分,它可以把一个程

序分成若干部分,然后进行配置,所以这块内容对我们很重要。

(2).对结构体的不熟练。刚开始对结构体不太了解,使调试程序时费了

我不少的时间。结构体的嵌套使我很费力气,通过长时间的运用,终于可以得心应手。结构体在我的实习中站了很大的比重,我也很重视它。通过与线性表,循环等的有机搭配,我完成了实习任务。

(3).循环的问题。这是我很苦恼,大量的循环语句的应用,分析。使我

很头疼,循环是计算机语言中很重要的部分,什么程序也离不开循环,这个问题的解决使我有了坚实的基础。对多层循环的应用也有了深刻的理解。3.调试结果:

(1)首先运行文件运动会统计分数系统

(2) 输入信息:

程序首先赋初值,定义学校的个数为2,男生项目为1,女生项目为1。输入1得到进入输入信息模块。

按回车键可得到学校的得分信息和按编号获得的所以信息。

(3)输出信息:

输入2进入输出信息模块,该模块分四项:

①按学校编号输出:

②按学校总分输出:

③按男团总分输出:

④按女团总分输出:

⑤输入2返回输出信息模块,输入0返回主菜单。

(4)查询信息:

输入3进入信息查询模块:

①按学校编号查询

②按项目编号查询

③输入错误信息时给出提示:

④输入2继续查询,输入0返回主菜单

4、总结

(1).调试中所遇到的较重要问题的回顾:

1)提出问题:所有输入输出内容只能在一屏内显示,学过c语言,就

知道”\n”是换行,”\f”是换屏的,可是在这里就是无法实现。

解决问题: 输入clrscr();

2)提出问题:设置选项,供用户输入选择时,当按任意键时都会跳入

下一步操作,或者直接退出系统。

分析问题:在供用户选择时,提供了几个选项,就写几个case语句,

但是当用户输入的并不是这几个数字时,系统就不能做

出正确判断。

解决问题:修改case语句,添加default语句提示出错,要求重新

输入;

Default:{

clrscr(); /*清屏*/

printf("输入错误,请重新选择");

}

3)提出问题:当同一项目中有同一学校的两个人时,便不能正确输出

或者输出相同人名。

分析问题:由于同时有两个相同学校编号的人存在,系统在输出时,

不能确定那个是正确的,或者用后来的覆盖以前的。

解决问题:用for函数实现从开始到结尾的遍历。

(2).算法的效率及改进设想

时间复杂度的计算:数据初始录入中学校为O(b),项目为O(c),成绩的录入为O(a),统计函数调入内存函数为O(a+b+c),学校成绩统计为O((a+2)*b),项目统计为O((a+1)*c),按学校编号、按学校总成绩、男团和女团输出函数为O(b^2/2),查询某校某项目函数为O(c*b*5/2),查询某项目的信息为O(5*b*c/2)。

在整个设计过程中本组在存储方面曾存在一定的分歧,后根据大家对以后的操作的分析采用现在的存储结构。

在调用方面本组负责本块的人员先前采用递归的方法而出现了许多错误,经过大家的讨论决定采用现在的do…while语句。

改进设想:因大部分显示均是以学校为单位,所以将以由有关人的各种信息为集合的结构改为以由有关学校的各种信息为集合的结构。

在这次调试过程中遇到过一些问题,但经过我们不懈努力,解决了大部分。

比如说在运用数据结构排序的时候,方法的选择上,总是想用时间复杂度小的算法,但结果出了问题,最后还是用了我们熟悉的选择排序。

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

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

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

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

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

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

课程设计(论文)任务书 软件学院信息专业 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 日

数据库课程设计 运动会成绩管理系统

数据库原理与应用课程设计 说明书 题目:运动会成绩管理系统 学院: 班级: 完成人:组号: 姓名:XXX 学号:XXXX 成绩: 姓名:XXX 学号:XXXX 成绩: 指导教师: 山东科技大学 2014年6月27日

课程设计任务书 一、课程设计题目:运动会成绩管理系统 二、课程设计应解决的主要问题:(按实现的系统功能) (1)运动项目、运动员、运动成绩以及班级名次的记录存储 (2)添加修改和删除项目表、运动员表和成绩表信息 (3)自动生成班级名次表(触发器) (4)运动员表有改动时,自动更新班级名次表(触发器) (5)成绩表有改动时自动对成绩表中记录按项目排名次(触发器) (6)成绩表自动排名自动更新班级名次表中班级总分(存储过程) (7)更新班级总分之后自动对班级排名(学院名次,学校名次)(存储过程) (8)对成绩表进行初次排名功能 (9)通过项目号获得相应项目的排名表(表值函数) (10)通过学号或姓名或运动号获得某学生运动成绩表(表值函数) (11)通过班级名称获得某班所有运动员运动成绩表(表值函数) (12)通过学院名称获得学院所有运动员运动成绩表(表值函数) (13)获得全校所有运动员的运动成绩表(表值函数) (14)获得全校所有班级总分数以及在学院排名和早全校排名(表值函数)三、任务发出日期:2014-4-25 课程设计完成日期:2014-6-27

小组分工说明 小组编号题目:运动会成绩管理系统 小组分工情况: XXX:参与数据库的讨论和设计;搜集整理数据、录入数据;设计了具体的逻辑结构,绘制E-R图;创建数据库以及项目表、运动员表、成绩表和班级名次表;实现了表之间的关联,创建必要的默认值、规则;创建了相应的索引;创建了班级名次表的视图。 XXX:参与数据库的讨论和设计;创建某项目名次表值函数;创建触发器实现成绩表的按项目自动排名功能;创建存储过程实现班级名次表的班级总成绩的更新功能;创建存储过程实现班级名次表的排名功能;创建触发器实现运动员表改动时自动更新班级名次表的功能;创建多个表值函数用于实现不同的查询功能:项目查询函数,个人成绩查询函数,班级成绩查询函数,学院成绩查询函数,全校成绩查询函数,全校班级名次查询函数。整个数据库部分的设计共创建了三个触发器,四个存储过程以及七个表值函数。另外还设计了本运动会成绩管理系统的界面部分,以及文档编辑工作。 组长签字: 年月日 指导教师对课程设计的评价 成绩: 指导教师签字: 年月日

数据结构课程设计—运动会分数统计系统[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; //项目编号

运动会成绩管理系统

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

2.3性能需求 本系统的性能需求:要求运行稳定、数据可靠、输出准确、响应速度快、可安全运行、能很好的保存、删除、修改。可以及时保存存储删除数据,可对成绩进行排名,显示即时成绩 3.总体设计 3.1功能模块设计 经过对程序设计题目的分析可知,整个程序的设计实现大致分为5个模块,每一个模块对应一个函数。在这些函数当中,添加运动员数据函数,删除数据函数,某项成绩排序函数的实现严格按照题目的要求,而更改数据函数和显示函数属于附加功能。读取文件函数和保存信息函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。录入信息模块是录入运动员信息、查询信息模块是查询运动员信息的、修改信息模块可以对运动员信息进行修改、删除模块可对运动员信息进进行删除、成绩排名是对运动员的成绩进行排名,功能模块见图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以内的整数(如果做得更好可以输入学校的名称,运动项目的名称) 输出形式:有中文提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。 (数据文件的数据读写方法等相关内容在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 结构体 运动项目 { 项目编号;名次;};

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

运动会分数统计系统 课程设计报告 数据结构 院系: 专业: 班级: 学号: 姓名: 教师: 时间:

一、问题描述 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)、信息查询模块实现信息的查询。 (4)、信息调用模块实现信息的调用,即从文件中读出信息并输出。

运动会分数统计系统 信息统计模块信息输出模块信息查询模块信息调用模块信分信 息数息 输统存 入计档 2、概要设计 此系统采用顺序存储结构存储,定义了一个结构体数组存放参赛学校的信息。之所以采用顺 序存储结构,是因为用它来实现信息的存储、查询比较方便,节省时间,效率高,而且也方便把信息 写入文件以及读取文件。 (1)、结构体定义如下:①、定义运动项目数据类型,用于存放运动项目的信息,包括项目名称、项目编号、用 户自己定义的取前 3 名还是前 5 名的积分、名次、分数。 typedef struct { char proname[10];//项目名称 int pronum;// 项目编号 int top;//取前 3 名或前 5 名积分,由用户自己定义 int range[5];// 名次 int mark[5];// 分数 }Pronode;//项目结点类型定义 ②、定义学校数据类型,用于存放参赛学校的信息,包括学校名称、学校编号、学校总 分、男子团体总分、女子团体总分以及项目数组。 typedef struct { char schname[20];//学校名称 int schnum;// 学校编号 int score;// 总分 int Mscore;//男子团体总分 int Wscore;// 女子团体总分 Pronode a[M+W];//项目数组 }Schnode;// 学校结点类型定义 ③、定义一个学校结点类型的结构体数组Schnode s[N] 。采用数组结构有利于随机存储 和查询。

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

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

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) 二、系统分析与设计 (1) (一)系统功能要求 (1) (二)系统模块结构设计 (1) (一)统计各系别总分:VOID FUNCT1() (4) (二)按系别编号排序:VOID FUNCT2() (5) (三)按系别总分排序:VOID FUNCT3() (6) (四)按男团体总分排序:VOID FUNCT4() (7) (五)按女团体总分排序:VOID FUNCT5() (8) (六)按系别编号查询某个项目情况:VOID FUNCT6() (10) (七)按项目编号查询取得名次的系别:VOID FUNCT7() (11) (八)退出系统:VOID FUNCT0() (13) 四、系统测试 (13) (一)测试VOID HUANYINGNI()函数,VOID INPUT()函数 (13) (二)测试VOID MULU()函数 (14) (三)测试VOID FUNCT1()函数 (14) (四)测试VOID FUNCT2()函数 (15) (五)测试VOID FUNCT3()函数 (15) (六)测试VOID FUNCT4()函数 (15) (七)测试VOID FUNCT5()函数 (16) (八)测试VOID FUNCT6()函数 (16) (九)测试VOID FUNCT7()函数 (16) (十)测试VOID FUNCT0()函数 (16) 五、总结 (17) 六、附件(代码) (18)

学生运动会成绩管理系统 一、系统开发的背景 为了学校方便管理学生运动会成绩,查询各系总分、各项目排名、以及各系获奖情况,因此我们用所学的知识设计了一个学生运动会管理系统,以此方便学校对运动会情况的了解及查询。 二、系统分析与设计 (一)系统功能要求 该系统可以实现:1) 可以输入各个项目的前三名的成绩;2) 能统计各系别总分;3) 可以按系别编号、系别总分、男女团体总分排序输出;4) 可以按系别编号查询某系某个项目的情况;5) 可以按项目编号查询取得前三名的系别。 (二)系统模块结构设计 概要设计: 1 结构体 运动项目 { 项目编号;名次;}; 系别 { 系别编号;项目;团体总分;男团体总分;女团体总分;}; 2 主程序(main) 包括登陆欢迎程序,分数录入程序,查询程序,退出程序通过对系统功能的分析,学生运动会成绩管理系统功能如图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) 功能要求: (1).可以输入各个项目的前三名或前五名的成绩; (2).能统计各学校总分; (3).可以按学校编号、学校总分、男女团体总分排序输出; (4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称) 输出形式:有中文提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动 1

会的相关数据要存储在数据文件中。 1.1 功能需求 本系统主要是运动会分数统计方案设计。 运动会分数统计方案适合采用结构体数组,为了实现系统功能,主要应实现以下几部分:比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。 1.2数据需求 需要输入学校编号,项目编号,取得的名次,以及哪些名次。1.3 性能需求 本程序在运行期间,为了避免在运行大量数据时不会出错,并且能够在很短的时间内将运行结果稳定输出,就需要系统达到安全性能好,可靠性高,稳定性强,处理数据迅速等特点。 2总体设计 2.1系统设计方案 本方案要求准备结构体数组、读写文件。还能把信息直接输入存储到文件中,读取文件中信息,从而得到结果。 (1) 菜单设计 分为主函数菜单、比赛成绩输出菜单、查询分数统计结果菜单、查询方式子菜单。 (2) 数据保存方式 建立文件,数据保存在文件中。运动运分数统计程序 (3) 数据类型 采用结构体类型。 (4) 存储结构

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

摘要: 本文详细介绍了运动会分数统计程序的设计与实现,该程序具有运动会成绩的输入,每个学校所参加的项目成绩的查询,修改,删除,统计操作以及学校成绩单和团体得分报表的输出等功能。概要设计部分给出了程序功能说明,数据结构设计和函数变量说明。详细设计和实现部分列出了系统功能模块、算法原理及流程图。最后还给出了调试和操作说明。在课程设计中,程序设计语言采用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关键字,出错处理程序不必与正常的代码紧密结合,提高了程序的可靠性和可读性。函数重载允许相同的函数名具有不同参数表,系统根据参数的个数和类型匹配相应的函数。提供了模板机制。摸板包括类摸板和函数模板两种,它们将数据类型作为参数。对于具体数据类型,编译器自动生成模板类或模板函数,它提供了源代码复用的一种手段。

相关文档
相关文档 最新文档