一 题目要求 课题:校运动会管理系统的设计与实现 具体要求: (1)信息初始化,依次输入: N—参赛学校总数 M—男子竞赛项目数 W —女子竞赛项目总数 各项目名次取法有以下几种: ①取前五名:第一名得分 7 分,第二名得分 5 分,第三名得分 3 分,第四名 2 分,第五名得分 1 分。 ②取前三名:第一名得分 5 分,第二名得分 3 分,第三名得分 2 分。 ③用户自定义:各名次权值由用户定义。 (2)提醒用户填写比赛结果,输入各项目获奖运动员的信息。 (3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。 二 需求分析 根据题目要求,将学校的信息和比赛项目等信息存放到指定的文件中,并能实现相关信息的浏览功能,故在程序中应提供输入,输出,显示,查找,排序等操作。 三 总体设计 由需求分析可讲系统分为信息输入模块,比赛录入模块和查询模块三个模块,并追加一些辅助模块以增加程序的功能,方便使用。 四 详细设计 1 主函数 主要通过 main()函数及 choose()函数实现. void main() /***************主函数**************/ { int choos printf("\n\n * * * 运动会分数统计 * * *\n\n\n"); printf("共有多少个学校参赛:"); scanf("%d",&a); while(a<=0||a>20) { if(a<=0) { printf("\n 参赛学校个数不能是负数或零\n\n"); printf("共有多少个学校参赛:"); scanf("%d",&a); } if(a>20) { printf("\n 参赛学校个数不能大于20\n\n"); printf("共有多少个学校参赛:"); scanf("%d",&a); } } printf("有几个男子组:"); scanf("%d",&c); printf("有几个女子组:"); scanf("%d",&d); for(i=0;i<=a;i++) { f[i]=(struct node *)malloc(sizeof(struct node)*(c+d+3)); for(j=0;j<=c+d+2;j++) f[i][j].num=0; } choos=choose(); while(1) { while(choos<0||choos>8) choos=choose(); (*g[choos])(); printf("\n"); choos=choose(); } } int choose() { int choo; printf("\n\n 1*输入成绩\n"); printf(" 2*统计各学校的总分\n"); printf(" 3*按学校编号排序输出\n"); printf(" 4*按学校总分排序输出\n"); printf(" 5*按男团体总分排序输出\n"); printf(" 6*按女团体总分排序输出\n"); printf(" 7*按学校编号查询学校某个项目的成绩\n"); printf(" 8*按项目编...