数据结构课程设计报告

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

数据结构课程设计报告

题目:运动会分数统计 东北大学秦皇岛分校

目录

一、题目

二、时间

三、程序要求

四、数据结构设计

1.概述

2.关键算法

3.查询操作

五、详细代码

六、测试结果

1.主菜单窗口

3. 统计各学校总分

4. 按学校编号排序输出

5. 按学校总分排序输出

6. 按男团体总分排序输出

7. 按女团体总分排序输出

8. 按学校编号查询学校某个项目情况

9. 按项目编号查询取得名次的学校

七、测试非法数据

八、课程设计总结

一、课程题目:运动会分数统计

一、时间:19-20周

二、任务:参加运动会有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、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;

三、数据结构设计:

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.查询操作:

六、详细代码:

#include #include

#include

#include

//#include /*屏幕操作函数*/

#define MAX 50

//#define NULL 0

typedef struct node1{

int school; /*学校编号*/

int record; /*项目成绩*/

struct node1 *next; /*链域*/

}Schools;

typedef struct {

int item; /*项目编号*/

Schools *firstschool; /*链域指向链表中第一个结点*/

}ITEM;

typedef struct {

int z; /* 项目总数 */

ITEM a[MAX];

}ALLitems;

typedef struct node2 {

int item; /*该学校获奖的项目*/

int record; /*项目成绩*/

struct node2 *next; /*链域*/

}Items;

typedef struct {

int school; /*学校编号*/

int score; /*学校总分*/

int boys; /*男团体总分*/

int girls; /*女团体总分*/

Items *firstitem; /*链域指向链表中第一个获奖项目的结点*/ }SCHNode;

typedef struct {

int n; /* 学校总数 */

SCHNode b[MAX];

}ALLNode;

ALLitems *g1;

ALLNode *g2;

void funct1(ALLitems *g1,ALLNode *g2) { Schools *p1;

Items *p2;

int i,j,k,m,w,h,x;

相关文档
最新文档