欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:6975411       资源大小:162KB        全文页数:28页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、运动会分数统计系统数据结构课程设计论文修改版11湖南商学院课程设计(实习)报告题 目 运动会比赛计分系统姓 名:谭斌学 号:100910062专 业: 电子信息工程班 级: 电信1002班指导老师: 梁英组 员: 田驰颜伟计算机与电子工程学院2011年8月目 录1 概述 11.1设计目的 11.2 课程设计内容 11.3相关知识 22 系统设计 321系统功能要求 32.2.1主函数 32.22数组 42.23文件的储存 52.3程序流程图 53 调试与运行 73.1调试结果 73.1.1首先运行文件运动会统计分数7.exe 73.1.2 输入信息 83.1.3输出信息 83.1.4查询信息

    2、113.1.5 调用信息 113.2调试过程中出现的问题和处理方式 114 总结 124.1调试中所遇到的较重要问题的回顾 124.1.1提出问题 124.1.2解决问题 124.1.3提出问题 124.1.4分析问题 124.1.5解决问题 124.1.6提出问题 134.1.7分析问题 134.1.8解决问题 134.2算法的效率及改进设想 135 心得体会 14附1 15附2 26附3 27附4 28附5 29参 考 文 献 30一、 概述1.1设计目的数据结构主要介绍一些最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并

    3、对算法的效率进行简单的分析和讨论。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等 各种领域。数据结构课程设计是为数据结构课程独立开设的实践性教学环节。数据结构课程设计对于巩固数据结构知识,加强学生的实际动手能力和提高学生综合素质是十分必要的。课程设计的目的:1)要求学生达到熟练掌握C语言的基本知识和技能。2)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力。3)提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方

    4、法,迅速找出程序代码中的错误并且修改。4)培养算法分析能力。分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。5)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。1.2 课程设计内容问题描述:参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n=20)功能要求: (1)系统以菜单方式工作(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员

    5、信息。(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩(4)查看参赛学校信息和比赛项目信息等。界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。1.3相关知识1)链表的存储用法:是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。2)文件与结构体存储:结构体是一种复杂的数据类型,结构体类型的定义只是列出了该结构的组成情况,编译系统并未因此而分配存储空间

    6、,当定义了结构体类型的变量或数组后,编译系统才会分配存储空间3)栈的出栈用法:堆栈是RAM中划出的一片特殊存储区,用于临时存放一些重要数据(这些数据存放一会后是必须回到原位的),其中数据的位置由堆栈指针确定,而数据的存放和读取则由入栈指令和出栈指令控制,入出必须对应成对的使用才能使压入的数据正确的回到压入前的位置。4)查找方法:顺序查找是一种最基本和最简单的查找方法。它的思路是,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查到所要找的元素为止。否则就是表中没有要找的元素,查找不成功。对于表中记录的关键字是无序的表,只能采用这种方法。存储结构:顺序存储方法:它

    7、是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构。 5)链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储表示称为链式存储结构。 索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。 散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。 二 、系统设计21系统功能要求1).可以输入各个项目的前三名或前五名的成绩;这里需要用到栈的存储用法,链表的存储用法,结构存储。2)能统计各学校总分这里就应该采用文件与结构体存储,并处理

    8、好关系。3)可以按学校编号、学校总分、男女团体总分排序输出;这里要用到的是栈的出栈用法,链表的用法,文件等。4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。而这里要用到的是文件,查找方法,存储结构这三大块。2.2 数据结构设计2.2.1主函数void main() int choice; printf(n = welcome =n); printf(n *运动会比赛计分系统*n); printf(n Design by 谭斌 n); printf(nn *1.输入比赛信息*n); printf( *2.输出比赛信息*n); printf( *3.查询比赛信

    9、息*n); printf( *4. 退出系统 *nn); printf( =nnn); printf(请选择要实现步骤的编号:nn); scanf(%d,&choice); switch(choice) case 1: inputinformation(); writedata(); main(); case 2: output(); main(); case 3: inquiry(); main(); case 4: exit(0); default: exit(0); 2.22数组typedef struct int itemnum; /项目编号 int top; /取名次的数目 int

    10、range5; /名次 int mark5; /分数itemnode; /定义项目结点的类型typedef struct int schoolnum; /学校编号 int score; /学校总分 int mscore; /男团体总分 int wscore; /女团体总分 itemnode cm+w; /项目数组headnode;/定义头结点类型headnode hn;/定义一个头结点数组2.23文件的储存void writedata() /把数据存储在文件中 FILE *report; int i; if(report=fopen(sportsdata.txt,w)=null) printf

    11、(不能打开文件n); exit(1); for(i=0;im+w|s=0) printf(此次运动会不包括这个项目.nnn); 想在每次查询结束想返回主菜单进行其它项时,应在main( )函数中调用其它函数时再调用main( )函数,如: switch(choice) case 1: inputinformation();writedata();readdata();main(); case 2: output();main(); case 3: inquiry();main(); case 4: readdata();main(); 程序出现语法错误,发现是输入名次信息的地方忘带地址符&,或

    12、是程序不完整,只写了一个大括号。如: printf(*名次:); scanf(%d,&hi.cj.ranges);附录五: 总结4.1调试中所遇到的较重要问题的回顾4.1.1提出问题所有输入输出内容只能在一屏内显示,学过c语言,很知道”n”是换行,”f”是换屏的,可是在这里就是无法实现。4.1.2解决问题输入clrscr();4.1.3提出问题设置选项,供用户输入选择时,当按任意键时都会跳入下一步操作,或者直接退出系统。4.1.4分析问题在供用户选择时,提供了几个选项,就写几个case语句,但是当用户输入的并不是这几个数字时,系统就不能做出正确判断。4.1.5解决问题修改case语句,添加de

    13、fault语句提示出错,要求重新输入; default: clrscr(); /*清屏*/ printf(输入错误,请重新选择); 4.1.6提出问题当同一项目中有同一学校的两个人时,便不能正确输出或者输出相同人名。4.1.7分析问题由于同时有两个相同学校编号的人存在,系统在输出时,不能确定那个是正确的,或者用后来的覆盖以前的。4.1.8解决问题用for函数实现从开始到结尾的遍历。4.2算法的效率及改进设想算法的效率:总的来讲,严重引响执行速度的便是查找,查找任意一个数据,便要将其所在的结构从头至尾遍历一次,耗费大量的时间。 改进设想:因大部分显示均是以学校为单位,所以将以由有关人的各种信息为

    14、集合的结构改为以由有关学校的各种信息为集合的结构。在这次上机过程中遇到过一些问题,但经过我们不懈努力,解决了部分,还有的现在不能解决,留着我们日后思考和解决。比如说在运用数据结构排序的时候,方法的选择上,总是想用时间复杂度小的算法,但结果出了问题,最后还是用了我们熟悉的选择法排序。 结构体的运用上感觉不是很熟悉,遇到结构体的时候很陌生,这是以后必须要加强的。在我们的这个程序中用了两个结构体:struct node int num; ; struct node *f22; 我们同样遇到了一些还不能很好解决的问题,在输出的时候不能得到我们想要的效果,在按学校编号排序查询输出的时候,发生了重叠在做了

    15、几次修改之后都能使之满意,这有待学习和修改。 在编写之前,做整体的规划很重要,这才能让我们的效率更高和合作得更好。5 心得体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我

    16、们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。善于总结,也是学习能力的一种体现,每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结,找到自己的不足,这样所编写的程序才能逐步

    17、提高.源代码#include#include#include #include #define n 2/学校数目 #define m 1/男子项目数目 #define w 1/女子项目数目#define null 0typedef struct int itemnum; /项目编号int top; /取名次的数目int range5; /名次int mark5; /分数itemnode; /定义项目结点的类型typedef structint schoolnum; /学校编号int score; /学校总分int mscore; /男团体总分int wscore; /女团体总分itemnode

    18、 cm+w; /项目数组headnode;/定义头结点类型headnode hn;/定义一个头结点数组void inputinformation() /输入信息,建立系统int i,j,k,s;for(i=0;in;i+) hi.score=0;hi.mscore=0;hi.wscore=0; /初始化头结点for(i=0;in;i+) printf(*学校编号:);scanf(%d,&hi.schoolnum); /输入头结点信息for(j=0;jm+w;j+) printf(*项目编号:);scanf(%d,&hi.cj.itemnum);printf(*取前3名or前5名:);scanf

    19、(%d,&hi.cj.top);printf(*获得几个名次:);scanf(%d,&k); /输入项目信息for(s=0;s5;s+)hi.cj.ranges=0, hi.cj.marks=0; /初始化排名和分数for(s=0;sk;s+) printf(*名次:);scanf(%d,&hi.cj.ranges); /输入所获名次信息if(hi.cj.top=3)switch(hi.cj.ranges)case 0: hi.cj.marks=0; break;case 1: hi.cj.marks=5; break;case 2: hi.cj.marks=3; break;case 3:

    20、hi.cj.marks=2; break;elseswitch(hi.cj.ranges)case 0: hi.cj.marks=0; break;case 1: hi.cj.marks=7; break;case 2: hi.cj.marks=5; break;case 3: hi.cj.marks=3; break;case 4: hi.cj.marks=2; break;case 5: hi.cj.marks=1; break;hi.score=hi.score+hi.cj.marks;/按取前三名还是取前五名分别记分if(j=m-1)hi.mscore=hi.mscore+hi.cj.

    21、marks;/是男子项目则记到男子分数里面去elsehi.wscore=hi.wscore+hi.cj.marks;/是女子项目则记到女子项目里面去printf(n);void output() /输出函数 int choice,i,j,k;int remembern;int sign;doprintf(*1.按学校编号输出.*n);printf(*2.按学校总分输出.*n);printf(*3.按男团总分输出.*n);printf(*4.按女团总分输出.*n);printf(nn* 请选择编号*nn:);scanf(%d,&choice);switch(choice) case 1:for(

    22、i=0;in;i+) printf(nn*学校编号:%dn,hi.schoolnum);printf(*学校总分:%dn ,hi.score);printf(*男团总分:%dn,hi.mscore);printf(*女团总分: %dnnn,hi.wscore); /按编号顺序输出break;case 2: for(i=0;in;i+)rememberi=i;for(i=0;in;i+) for(j=i+1;jn;j+)if(hrememberi.scorehj.score)k=rememberi;rememberi=rememberj,rememberj=k; / 用冒泡排序方法,用辅助数组记

    23、住头结点下标for(i=0;in;i+)printf(*学校总分:%dn ,hrememberi.score);printf(*男团总分:%dn,hrememberi.mscore);printf(*女团总分: %dnnn,hrememberi.wscore);/按所记下标顺序输出 /按学校总分输出break; case 3: for(i=0;in;i+)rememberi=i;for(i=0;in;i+) for(j=i+1;jn;j+)if(hrememberi.mscorehj.mscore)k=rememberi;rememberi=rememberj;rememberj=k;for(

    24、i=0;in;i+)printf(nn*学校编号:%dn,hrememberi.schoolnum);printf(*学校总分:%dn ,hrememberi.score);printf(*男团总分:%dn,hrememberi.mscore);printf(*女团总分: %dnnn,hrememberi.wscore); /按男团总分输出break;case 4: for(i=0;in;i+)rememberi=i;for(i=0;in;i+) for(j=i+1;jn;j+)if(hrememberi.wscorehj.wscore)k=rememberi;rememberi=rememberj;rememberj=k;for(i=0;in;i+)printf(nn*学校编号:%dn,hrememberi.schoolnum);printf(*学校总分:%dn ,hrememberi.score);printf(*男团总分:%dn,hrememberi.mscore);printf(*女团总分: %dnnn,hrememberi.wscore);break; /按女团


    注意事项

    本文(运动会分数统计系统数据结构课程设计论文修改版11.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开