1、 目 录 1 问题描述 . 1 2 需求分析 . 1 3 概要设计 . 2 31 抽象数据类型定义 2 32 模块划分 . 3 4 详细设计 . 4 41 数据类型的定义 5 42 主要模块的算法描述 5 5 测试分析 . 10 6 课程设计总结 13 参考文献 . 13 附录(源程序清单) 15 1 1 问题描述 设计一个运动会统分程序,参加运动会有 n 个学校,学校编号为 1n。比赛 分成 m个男子项目, 和 w 个女子项目。 项目编号为男子 1m, 女子 m+1m+w。 不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三 名的积分分别为: 5、 3、 2; 哪
2、些取前五名或前三名由学生自己设定。 (mn ; if(学校总数g2-n n20 /*重新输入n*/ 输入错误,重输入n的值; g1-z=男子项目+女子项目; 则项目编号为男子1-m,女子m+1- g1-z; 开始记录运动会成绩并以输入0为标志结束; 初始化项目链表; 初始化学校链表; 初始赋i=1; while(输入的项目编号要求0school; 生成一个新的项目结点p2=(Items *)malloc(sizeof(Items); 将i的值赋给p2-item; if(h=3为第三名) 将分值2同时赋给p2-record和p1-record; if(h=2为第二名) 将分值3同时赋给 p2-r
3、ecord和p1-record; 9 if(h=1第一名) 将分值5同时赋给p2-record和p1-record; 将g1-ai.firstschool插到p1的表尾; 将g2-bx.firstitem插到p2的表尾; g2-bx.score=g2-bx.score+p2-record; /* 累计总分 */ if(i小于m为男子项目); 则g2-bx.boys=g2-bx.boys+p2-record; 否则为女子项目 g2-bx.girls=g2-bx.girls+p2-record; 同时h-; while(x不等于0且h不等于0); if(j=2) /* 该项目有前五名时执行此语句
4、*/ 首先给h赋初值为5 do 输入学校的名次x; 生成一个新的学校结点 p1=(Schools *)malloc(sizeof(Schools); 将x的值赋给p1-school; 生成一个新的项目结点p2=(Items *)malloc(sizeof(Items); 将i的值赋给p2-item; if(h=5为第五名) 将分值1同时赋给p2-record和p1-record; if(h=4为第四名) 将分值2同时赋给 p2-record和p1-record; if(h=3第三名) 将分值3同时赋给p2-record和p1-record; if(h=2为第二名) 将分值2同时赋给p2-record和p1-record; if(h=1为第一名) 将分值3同时赋给 p2-record和p1-record; 将g1-ai.firstschool插到p1的表尾; 将g2-bx.f