ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:291.17KB ,
资源ID:17282492      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17282492.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计报告Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计报告Word文档下载推荐.docx

1、辅助数组close_edge初始化; U=u for(i=0;ivertexNum-1;i+) 在辅助数组中选择权值最小的顶点k并将k并入U集,修改辅助数组 iG-ne; coutn=n,e=for(i=0;n;i+) /初始化邻接矩阵 for(j=0;jedgesij=0; elseedgesij=INFINITY; endlstartendweight; G-edgesstartend=weight;edgesendstart=weight; 邻接矩阵为:i+) /输出邻接矩阵 if(G-edgesij=INFINITY) cout ; else edgesij coutedgesui;

2、close_edgeu.lowcost=0;n-1; w=INFINITY; j+) if(close_edgej.lowcost!=0&close_edgej.lowcostw) w=close_edgej.lowcost; k=j; close_edgek.lowcost=0;edgeskjedgeskj; 打印最小代价生成树的各条边: if(i! cout close_edgei.adjvertex, edgesiclose_edgei.adjvertexedgesiclose_edgei.adjvertex;总代价为:totalCost(3)主函数int main() int v; M

3、Graph G; * 构造n个城市连接的最小生成树问题 * 1.输入城市个数和道路数 2.输入相邻两城市和其间的距离 3.以邻接矩阵存储各个城市间的距离并输出矩阵 4.用PRIM算法得出n个城市连接的最小生成树 5.打印n个城市连接的最小生成树路径 CreateMgraph(&G);请输入从哪个城市开始:v; MiniSpanTree_PRIM(&G,v); return 0;6、运行及调试分析1、 调试分析本程序的主要功能是对无向网进行邻接矩阵的初始化,然后用Prim算法求出 城市间的最小生成树,得出最小代价。Prim算法的思路是逐步将城市纳入生成树中,这里的关键步骤是要找到权值最小的顶点k

4、,在PRIM算法中,第一个for循环的执行次数为n-1,第二个for循环中又包括一个while循环和一个for循环,执行次数为2(n-1)(n-1),所以PRIM算法的时间复杂度是O(n*n)。由此可见,Prim算法与网中边数无关,适合求边稠密的网的最小生成树。2、测试结果(1)输入城市间信息(2)输出城市间邻接矩阵(3)打印最小生成树各条边及最小代价7、课程设计总结最小生成树主要由PRIM算法完成,通过整体构思,先确立了基本步骤:1.建立一个具有n个顶点的无向图 2.创建一个邻接矩阵来存储该图,然后初始化矩阵 3.根据Prim算法,得到了最小生成树以及各边的权值。在不断地努力下,完成了此这次

5、课程设计的第一个任务。本次实验,既巩固和加深了对数据结构的理解,认识到数据结构是计算机专业一门重要的专业技术基础课程,还提高了我综合运用本课程所学知识的能力,提高了我的组织数据及编写程序的能力。而且在设计的过程中,并不是单纯的看看教材就能解决我们的实际问题,所以还要去查找各种我们所需要的资料。要完成一个课程设计的课题并不是一次就能编译成功的,中间会出现很多的大问题小问题,改错是个很繁琐的问题。通过这次课程设计培养了我独立思考,深入研究,分析问题,解决问题的能力。2、运动会分数统计一、问题描述参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+

6、1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n=20) 功能要求:1) 可以输入各个项目的前三名或前五名的成绩;2) 能统计各学校总分,3) 可以按学校编号、学校总分、男女团体总分排序输出;4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整型界面要求:有合理提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求

7、。根据运动会分数统计系统的问题分析及要求,可以将此系统分为四个模块:信息输入模块,信息统计模块,信息排序模块和信息查询模块。(1)信息输入模块:输入各个学校编号,项目编号,规定该项目取前3名还是前5名,然后输入此项目获得的名次数目以及获得的名次,得分由系统自动统计。(2)信息统计模块:主要用来统计各个学校获得的总分情况。主要涉及函数tongjiScore()。(3)信息排序模块:可以对学生信息实现按学校编号,按学校总得分,按男团体总分,按女团体总分排序。主要涉及函数Sort(),sort_schoolNum(),sort_score(),sort_maleScore(),sort_female

8、Score()(4)信息查询模块:可以按学校编号查询学校某个项目情况,按项目编号查询取得名次的学校。主要涉及函数 Query_itemNum(),Query_schoolNum() 。(1)项目数据表:运动会开始前必须详细制定本次运动会所需的参赛项目为接下来报名、场地的准备提供依据。该数据表包括每个项目的编号、取名次的数目、要取的名次以及各个名次对应的分数。在初始输入时仅输入项目编号、取名次的数目及要取的名次,而各名次对应的分数将由系统自动统计。#include#include using namespace std;#define n 4 /学校数目#define m 2 /男子项目个数#d

9、efine w 2 /女子项目个数 int itemNum; /项目编号 int top; /取名次数目 int range5; /名次 int mark5; /分数ItemNode;(2)学校数据表:该数据表存储了各个参赛学校的总体情况,包括学校的编号、 男子团体总分、女子团体总分和学校总分。其中学校编号是提前输入的,而其他三项内容将在输入得分以及名次等信息后由系统进行自动统计。 int schoolNum; /学校编号 int score; /学校总分 int maleScore; / 男团体总分 int femaleScore; /女团体总分 ItemNode cm+w; /项目数组Sc

10、hoolNode;SchoolNode s20;(1)总体设计 运动会分数统计系统 输入信息 统计总分 信息排序 信息查询 按 按 按 按 按 按 学 学 男 女 学 项 校 校 团 团 校 目 编 总 总 总 编 编 号 分 分 分 号 号(2)信息输入及分数统计功能void input( )是信息输入函数,输入学校编号,项目编号、取名次的数目及要取的名次,而各名次对应的分数将由系统自动统计。信息输入完后,可以用tongjiScore()函数统计各个学校总分。开始初始化数组si,i=1;=n输入学校编号、项目编号、名次等信息 i+;n?tongjiScore()(2)信息排序功能menu2(

11、 ),sort_schoolNum(),sort_score(),sort_maleScore(),sort_femaleScore()是排序输出菜单函数以及四种排序输出。输出一个菜单显示各种排序功能,利用switch语句实现按学校编号,按学校总分,按男团体总分,按女团体总分排序。下图采用直接插入排序的方法实现按男团体总分由低到高输出。 显示排序菜单,选择排序功能for(i=2;=n;i+) while(s0.maleScore0) N Y N 交换数据输出结束(3)信息查询功能menu3( ),Query_schoolNum( ),Query_itemNum( ) 函数是查询菜单函数以及两个

12、信息查询函数。显示主菜单,利用switch( )语句选择功能,实现按学校编号查询某项目和按项目编号查询信息,并输出该学校某个项目情况或者某个项目取得前3或前5的学校信息。按学校编号查询某项目功能如下:输入查询的学校编号 学校是否存在? 输入查询的项目编号 提示错误,返回主菜单 项目是否存在?循环查找;输出信息(1)欢迎界面void menu() cout (o)(o) (o) (o) (o) 欢迎使用运动会分数统计系统! (o) Sleep(1200);system(cls (2)输入信息函数void input() int i,j,k,t; for(i=1; si.score=0; si.m

13、aleScore=0; si.femaleScore=0;cout请输入第个学校编号(共个):si.schoolNum;m+w; 请输入项目编号(共m+wsi.ci.itemNum;取前3名or前5名:si.cj.top;获得几个名次:k; for(t=0;tsi.cj.ranget; if(si.cj.top=3) switch(si.cj.ranget) case 1:si.cj.markt=5; break; case 2:si.cj.markt=3; case 3:si.cj.markt=2; if(si.cj.top=5)si.cj.markt=7; case 4: case 5:s

14、i.cj.markt=1; si.score=si.score+si.cj.markt; /按取前三名还是取前五名分别记分 if(jm) si.maleScore=si.maleScore+si.cj.markt; else si.femaleScore=si.femaleScore+si.cj.markt; cout 信息已输入完!(3)统计总分函数void tongjiScore() *统计各个学校总分的结果为:* |-|-|n ; | 学校编号 |学校总分 |n for(int i=1; cout |setw(8)si.schoolNumsi.score(4)按学校编号排序函数void

15、sort_schoolNum() /按学校编号输出 printf(nt* 按学校编号排序输出*n |-|-|-|-|n | 学校编号 | 男团体总分 | 女团体总分 | 学校总分 | nsi.maleScoresi.femaleScore setw(6)endl ; cout(5)按学校总分排序函数,采用了直接插入排序算法。(按男团体总分排序函数、按女团体总分排序函数与按总分排序方法差不多,就不贴这两个函数了)void sort_score() /按学校总分输出int i,j; for(i=2; s0.maleScore=si.maleScore; s0.femaleScore=si.fema

16、leScore; s0.score=si.score; s0.schoolNum=si.schoolNum; j=i-1; while(s0.scoresj.score&0) sj+1.maleScore=sj.maleScore; sj+1.femaleScore=sj.femaleScore; sj+1.score=sj.score; sj+1.schoolNum=sj.schoolNum; j-; sj+1.maleScore=s0.maleScore; sj+1.femaleScore=s0.femaleScore; sj+1.score=s0.score; sj+1.schoolNum=s0.schoolNum;nt* 按学校总分排序输出*n |-|-|-|-|n | 学校编号 | 学校总分 | 男团体总分 | 女团体总分 | n(6)按学校编号查询学校某个项目情况函数void Query_schoolNum() /按学校编号

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1