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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程设计报告运动会分数统计.docx

1、数据结构课程设计报告运动会分数统计课程设计报告课程名称 数据结构课程设计 专业班级 软件1241 姓 名 屠舒剑 学 号 1204431126 指导教师 丁柏秀 赵洁红 起止时间 2014.2.252014.2.28 成 绩 评 定考核内容设计表现设 计报 告答辩综合评定成 绩计算机技术与工程学院课程设计考核和成绩评定办法1 课程设计的考核由指导教师根据设计表现、设计报告、设计成果、答辩等几个方面,给出各项权重,综合评定。该设计考核教研室主任审核,主管院长审批备案。2 成绩评定采用五级分制,即优、良、中、及格、不及格。3 参加本次设计时间不足三分之二或旷课四天以上者,不得参加本次考核,按不及格

2、处理。4 课程设计结束一周内,指导教师提交成绩和设计总结。5 设计过程考核和成绩在教师手册中有记载。课程设计报告内容 课程设计报告内容、格式各专业根据专业不同统一规范,经教研室主任审核、主管院长审批备案。注: 1. 课程设计任务书和指导书在课程设计前发给学生,设计任务书放置在设计报告封面后和正文目录前。 2. 为了节省纸张,保护环境,便于保管实习报告,统一采用A4纸,实习报告建议双面打印(正文采用宋体五号字)或手写。一、课程设计目的本次课程设计的目的就是要达到理论与实际应用相结合,使我们能过根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好

3、的程序设计技能。掌握基本的输入、输出方法,理解程序的分支结构,实现条件判断和循环程序的设计。掌握线性表的应用。二、课程设计要求数据结构课程设计则要培养、训练学生选用合适的数据结构并运用程序设计语言(C/C+)编写质量高的应用程序。并建立初步评价算法程序的能力。为编译技术、操作系统、数据库及算法设计与分析等后继课程的学习以及为应用软件特别是非数值应用软件的开发打下良好的理论基础和实践基础重点和难点: 1. 针对具体问题如何选择或设计合适的数据结构; 2. 如何根据一定的存储策略实现数据的存储表示; 3. 基于上述数据结构设计并实现完成具体要求的算法; 4. 对算法的时间性能进行分析。针对每一个设

4、计题目写出1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么? 2. 逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;3. 详细设计:定义相应的存储结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明

5、确具体。详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;4. 程序编码:把详细设计的结果进一步求精为程序设计语言程序。同时加入一些注解和断言,使程序中逻辑概念清楚;5. 程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;三、具体设计题目1问题描述运动会分数统计系统 设计目的:用数据结构中的线性表作数据结构,结合语言基本知识。编写一个运动会分数管理系统。以把所学数据结构知识

6、应用到实际软件开发中去。 设计内容:可以输入各个项目的前三名或前五名的成绩; 能统计各学校总分, 可以按学校编号、学校总分、男女团体总分排序输出; 可以按学校编号查询学校某个项目的情况; 可以按项目编号查询取得前三或前五名;设计要求:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目 的名称) 输出形式:有中文提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能 要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储 在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请 自

7、学解决)请在最后的上交资料中指明你用到的数据结构; 测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行 程序测试,已保证程序的稳定。测试数据及测试结构请在上交的资料中写明;2问题分析和任务定义 本程序主要是使用链表来实现操作,一个运动会运动项目和参加运动会的成员。因此构造两个链表。为了操作的方便,并且能够保存输入数据,所以通过文件操作来实现数据的读和写。每次添加新的数据后都要输入“0”退出,数据才能保存。对于排序功能,采用了冒泡排序法。 该题是要求通过巩固线性表,在所学C+语言基础上用其设计运动会分数统计系统,包括运动会参加者及其成绩信息的输入,显示,查找,删除,存盘

8、和装入功能。限制条件是要有较好的界面和较强的容错能力而且上机能正常运行。3逻辑设计 设计该题需要两个类,一个是School类包括信息的内容有学校名字(name)、学校编号(number)、男团总分(boy)、女团总分(girl)和一个头结点的前驱指针,另一个是Sport类包括项目名称(name)、性别(isboy)、名次(is3)、项目编号(number)、第一名(first)、第二名(second)、第三名(third)、第四名(fourth)、第五名(fifth)和一个结点的前驱指针,后继指针和数据。各模块需对两个结构体中的内容进行操作,该系统包括add()模块,output()模块,se

9、arch()模块,order()模块,save()模块,load() 模块。模块之间调用关系如下图所示:4详细设计 1)输入信息的伪代码描述如下: First申请空间建立双链表空头结点; while(flag=Y|flag=y) 工作指针p申请空间 向双链表中动态增加节点 2)显示信息的伪代码描述如下: 双链表节点p初始化 While(p!=first) 工作指针p后移 3)查找信息的伪代码描述如下: 工作指针p初始化 while(p!=first & p & p的姓名和已存在的名字不同) 工作指针p后移 4)删除信息的伪代码描述如下: 工作指针p初始化 查找到所要删除的姓名的信息 摘链 5)

10、存盘的伪代码描述如下: 以二进制写的方式打开文件 While(p!=first) 工作指针p后移 向文件中写入结点个数 逐个写入作息 关闭文件 6)装入的伪代码描述如下: 建立双链表空头结点 以二进制读的方式打开文件 工作指针p初始化 从文件中动态载入节点数据 关闭文件5程序源代码如下:#include#include#include#include#include#include#include#includeclass Schoolprivate: char name25; int number; int boy; int girl;public: School *next; void S

11、chool_add(); void School_sort(); void School_output(School *p); int School_isexist(int a); void School_show(int a); void School_search(int a); void School_addmark(int a,int b,int c); /a为分数,b为学校编号,c为性别编号 void School_order(School *temp,int type);class Sportprivate: char name20; int isboy; int is3; int

12、 number; int first; int second; int third; int fourth; int fifth;public: Sport *next; int Sport_isexist(int a); void Sport_add(); void Sport_output(Sport *p); void Sport_search(int a);School *head1;Sport *head2;void School:School_add() School *p; int mark=0; p=new School; cout请输入学校名称:p-name; int c;

13、while(mark!=1) cout请输入学校编号:c; p-number=c; mark=1; p-boy=0; p-girl=0; p-next=head1-next; head1-next=p; cout成功添加一条信息!endl; cout是否继续添加?(y/n)input; switch(input) case y: mark=0; School_add(); case n: mark=1; return; delete p;void School:School_output(School *p) cout学校名称 编号 男团总分 女团总分 团体总分next; while(p) c

14、outnamettnumberttboyttgirlttboy+p-girl)next; int School:School_isexist(int a) int b=0; School *p; p=head1; p=p-next; while(p) if(p-number=a) return 1; p=p-next; return 0;void School:School_show(int a) School *p; p=head1; p=p-next; while(p) if(p-number=a) coutname next; cout无next; while(p) if(p-numbe

15、r=a) cout学校名称name 男团总分boy 女团总分girl 团体总分boy+p-girl) next; cout无此编号!next; while(p) if(p-number=b) if(c=1) p-boy=p-boy+a; else p-girl=p-girl+a; p=p-next; void School:School_sort() School *q,*small; School *temp1; temp1 = new School; temp1-next = NULL; q = head1; q = q-next; small = head1; small = small

16、-next; temp1-girl = q-girl; q-girl = small-girl; small-girl = temp1-girl; temp1-boy = q-boy; q-boy = small-boy; small-boy = temp1-boy; strcpy(temp1-name,q-name); strcpy(q-name,small-name); strcpy(small-name,temp1-name); temp1-number = q-number; q-number = small-number; small-number = temp1-number;vo

17、id School:School_order(School *temp,int type) School *q,*small; School *temp1; School sh; temp1 = new School; temp1-next = NULL; while(q&small) switch(type) case 0: for(q=head1;q=q-next;q!=NULL) for(small=head1;small=small-next;small!=NULL) if(q-boy+q-girl)boy+small-girl) sh.School_sort(); break; ca

18、se 1: for(q=head1;q=q-next;q!=NULL) for(small=head1;small=small-next;small!=NULL) if(q-boyboy) sh.School_sort(); break; case 2: for(q=head1;q=q-next;q!=NULL) for(small=head1;small=small-next;small!=NULL) if(q-girlgirl) sh.School_sort(); break; case 3: for(q=head1;q=q-next;q!=NULL) for(small=head1;sm

19、all=small-next;small!=NULL) if(q-numbernumber) sh.School_sort(); break; default: coutERROE!number=a) return 1; p=p-next; return 0;void Sport:Sport_add() /需要修改 Sport* p; int mark=0; p=new Sport; coutp-name; int c; while(mark!=1) coutc; if(Sport_isexist(c) coutnumber=c; mark=0; while(mark!=1) coutc; m

20、ark=1; p-isboy=c; mark=0; while(mark!=1) coutc; mark=1; p-is3=c; mark=0; School sh; while(mark!=1) coutc; if(!sh.School_isexist(c) coutfirst=c; if(p-is3=0) sh.School_addmark(5,c,p-isboy); else sh.School_addmark(7,c,p-isboy); mark=0; while(mark!=1) coutc; if(!sh.School_isexist(c) coutsecond=c; if(p-i

21、s3=0) sh.School_addmark(3,c,p-isboy); else sh.School_addmark(5,c,p-isboy); mark=0; while(mark!=1) coutc; if(!sh.School_isexist(c) coutthird=c; if(p-is3=0) sh.School_addmark(2,c,p-isboy); else sh.School_addmark(3,c,p-isboy); mark=0; if(p-is3=1) while(mark!=1) coutc; if(!sh.School_isexist(c) coutfourt

22、h=c; sh.School_addmark(2,c,p-isboy); mark=0; while(mark!=1) cout请输入第五名学校的编号:; if(!sh.School_isexist(c) coutfifth=c; sh.School_addmark(1,c,p-isboy); else p-fourth=0; p-fifth=0; p-next=head2-next; head2-next=p; cout成功添加了一个运动项目next; cout当前项目名称t编号B/G3/5 第一名第二名 第三名 第四名 第五名 endl; School sh; while(p) coutnamet number isboy is3 first); sh.School_show(p-second); sh.School_show(p-third); sh.School_show(p-fourth); sh.School_show(p-fifth); p=p-next; coutn; coutnext; while(p) if(p-number=a) cout项目名:nameendl

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

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