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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

8 main()

1 2 3 4 5 6 7

图 3 系统函数调用关系图

四、详细设计

1、数据类型定义

( 1)本系统采用链式结构存储运动会分数统计的结点。节点定义如下:

typedef struct LNode{//链表节点数据结构

int objnum;

char objtype;

int athnum;

char athname[20];

int schnum;

char schname[30];

int athscore;

struct LNode *next;

}LNode,*LinkList;

( 2)各学校情况数据结构的结构定义成结构体数组形式。定义如下:

struct School{

int schoolnumber;

char schoolname[30];

int schoolscore;

}school[30];

2、系统主要子程序详细设计

( 1)创建链表(录入各项目的成绩)子程序设计

LinkList creatLink(){

LinkList L=(LinkList)malloc(LEN);

LinkList p,q;

int num,objnum,n;

char objtype;

L->next=NULL;

p=L;

printf(" 请输入男女项目总个数:");

scanf("%d",&num);

while(num--){

printf(" 请输入项目编号:");

scanf("%d",&objnum);

printf(" 请输入项目类型:");

相关文档
最新文档