第一范文网 - 专业文章范例文档资料分享平台

运动会分数统计系统数据结构课程设计论文修改版11

来源:用户分享 时间:2025/5/22 17:09:04 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

一、 概述

1.1设计目的

《数据结构》主要介绍一些最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等 各种领域。

数据结构课程设计是为数据结构课程独立开设的实践性教学环节。数据结构课程设计对于巩固数据结构知识,加强学生的实际动手能力和提高学生综合素质是十分必要的。课程设计的目的:

1)要求学生达到熟练掌握C语言的基本知识和技能。

2)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力。

3)提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。

4)培养算法分析能力。分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。

5)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。

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)查看参赛学校信息和比赛项目信息等。

界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

1.3相关知识

1)链表的存储用法:是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

2)文件与结构体存储:结构体是一种复杂的数据类型,结构体类型的定义只是列出了该结构的组成情况,编译系统并未因此而分配存储空间,当定义了结构体类型的变量或数组后,编译系统才会分配存储空间

3)栈的出栈用法:堆栈是RAM中划出的一片特殊存储区,用于临时存放一些重要数据(这些数据存放一会后是必须回到原位的),其中数据的位置由堆栈指针确定,而数据的存放和读取则由入栈指令和出栈指令控制,入出必须对应成对的使用才能使压入的数据正确的回到压入前的位置。

4)查找方法:顺序查找是一种最基本和最简单的查找方法。它的思路是,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查到所要找的元素为止。否则就是表中没有要找的元素,查找不成功。对于表中记录的关键字是无序的表,只能采用这种方法。

存储结构:顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构。

5)链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储表示称为链式存储结构。 索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。 散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。

二 、系统设计

2.1系统功能要求

1).可以输入各个项目的前三名或前五名的成绩; 这里需要用到栈的存储用法,链表的存储用法,结构存储。

2).能统计各学校总分

这里就应该采用文件与结构体存储,并处理好关系。

3).可以按学校编号、学校总分、男女团体总分排序输出; 这里要用到的是栈的出栈用法,链表的用法,文件等。

4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

而这里要用到的是文件,查找方法,存储结构这三大块。

2.2 数据结构设计 2.2.1主函数

void main() {

int choice;

printf(\╔===================★ welcome ★======================╗\\n\ printf(\运动会比赛计分系统*******************\\n\ printf(\★★★★★★ Design by 谭斌 ★★★★★★ \\n\ printf(\输入比赛信息*********************\\n\ printf(\输出比赛信息*********************\\n\ printf(\查询比赛信息*********************\\n\ printf(\退出系统 *********************\\n\\n\ printf(\╚======================================================╝\\n\\n\\n\ printf(\请选择要实现步骤的编号:\\n\\n\ scanf(\ switch(choice) { case 1:

inputinformation(); writedata(); main(); case 2: output(); main(); case 3: inquiry(); main();

case 4: exit(0); default: exit(0); } }

2.2.2数组 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];//定义一个头结点数组

2.2.3文件的储存

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

FILE *report;

int i;

if((report=fopen(\

{

printf(\不能打开文件\\n\

运动会分数统计系统数据结构课程设计论文修改版11.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6aqlt8auo70c4dk2wbh1_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top