数据结构运动会计分系统.docx

上传人:b****9 文档编号:74392 上传时间:2022-10-02 格式:DOCX 页数:30 大小:595.62KB
下载 相关 举报
数据结构运动会计分系统.docx_第1页
第1页 / 共30页
数据结构运动会计分系统.docx_第2页
第2页 / 共30页
数据结构运动会计分系统.docx_第3页
第3页 / 共30页
数据结构运动会计分系统.docx_第4页
第4页 / 共30页
数据结构运动会计分系统.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

数据结构运动会计分系统.docx

《数据结构运动会计分系统.docx》由会员分享,可在线阅读,更多相关《数据结构运动会计分系统.docx(30页珍藏版)》请在冰豆网上搜索。

数据结构运动会计分系统.docx

青岛理工大学

数据结构课程设计报告

题目一:

运动会计分系统题目二:

电梯模拟

院(系):

计算机工程学院

学生姓名:

钟文

班级:

计算092学号:

200907021

起迄日期:

指导教师:

张艳

指导教师评语:

成绩:

签名:

2010—2011年度第2学期

1、问题描述与分析

1.1课程设计目的:

《数据结构》主要介绍一些最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。

数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。

数据结构课程设计是为数据结构课程独立开设的实践性教学环节。

数据结构课程设计对于巩固数据结构知识,加强学生的实际动手能力和提高学生综合素质是十分必要的。

课程设计的目的:

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

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

3.提高程序设计和调试能力。

学生通过上机实习,验证自己设计的算法的正确性。

学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。

4.培养算法分析能力。

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

5.初步掌握软件开发过程的问题分析、系统设计、程

序编码、测试等基本方法和技能。

1.2课程设计内容

(1)、课程设计内容:

运动会分数统计

问题描述:

参加运动会有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、局部非法数据。

进行程序测试,以保证程序的稳定。

测试数据及测试结果请在上交的资料中写明;

(2)、课程设计的要求

数据结构课程设计用C/C++/C#编程实现。

课程设计的一般步骤:

1.问题描述与分析:

根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?

限制条件是什么?

2.数据结构设计:

为实现每个功能选择的逻辑结构和存储结构,分析原因及合理性。

3.软件结构设计:

设计软件模块之间的结构。

4.算法设计:

算法的设计及算法分析。

每个部分的算法设计说明,可以用流程图描述算法。

5.程序编码:

把详细设计的结果进一步求精为程序设计语言程序。

源程序要按照软件工程的规则来编写,要求结构清晰,重要功能部分要加上清晰的程序注释。

6.调试分析:

掌握调试工具的各种功能,设计测试数据,测试输出的结果。

并进行算法的时间复杂度和空间复杂度的分析。

7.总结:

课程设计过程的收获,遇到问题以及解决问题的思路和方法,程序调试能力的思考,对数据结构这门课程的认识及思考等。

8.编写课程设计报告

2、程序设计描述

2.1运行环境:

MicrosoftVisualC++6.0。

VisualC++(简称VC)是Microsoft公司推出的目前使用极为广泛的基于Windows平台的C++可视化开发环境。

VisualC++6.0提供的控制台应用程序对学习和掌握标准C++内容非常有利。

“可视”的资源编辑器与MFC类以及应用程序向导,为快速高效地开发出功能强大的Windows应用程序提供了极大的方便。

利用VisualC++

6.0进行Internet、数据库及多媒体等多方面的程序开发也很容易。

2.2系统流程图:

c

mscore

headnode

动会

分 itemnode

数统计

Globals

schoolnumscorewscore

itemnummarkrangetop

inputinformation)(

inquiry()main()output()readdata()writedata()h

N

成绩查询

Case2

查询团体总分

Case1

查询各学校成绩

继续

开始---初始化

输入

Y

N

输入学校及男女项目范围

输入某项目各名次成绩

Y

继续输

Case3

Y

输出查询学校成绩

N

Y

继续

N

结束—退出

2.3函数及变量说明:

voidinputinformation()为输入信息函数。

用来输入各个学校各个项目前三名或前五名的成绩,结果取前三名还是前五名自己定,利用swith语句前三名的分数赋为5、3、2,前五名的成绩赋为7,5、3、2、1,未取得成绩则赋为0。

并统计团体总分,男团总分和

女团总分。

voidoutput()为输出函数。

列出一个输出目录利用swich语句使函数按学校编号输出或按学校总分、男团总分、女团总分由高到低排序输出。

利用辅助数组remember[]和冒泡排序的方法使之按分数的由高到低输出。

利用循环语句dowhile()当输入2时返回输出目录,输入0是跳出循环返回主菜单。

voidinquiry()为查询函数。

列车一个查询目录利用swich语句使函数按学校编号或项目编号查询,输出某学校的某个项目的得分情况或某个项目的前几名的学校。

再利用循环语句dowhile()当输入2是返回查询目录,输入0时跳出循环返回主菜单。

voidwritedata()是数据存储函数。

建立一个文件

sportsdata.txt,将输入的数据存入此文件中。

voidreaddata()是读入数据函数。

它将写入sportsdada.txt

中的数据直接调用并显示出来。

voidmain()是主函数。

列出主菜单,利用switch语句调用以上函数实现各个菜单的功能。

3、调试分析

3.1调试过程中出现的问题和处理方式:

为了使系统具有一点的容错性,当输入错误信息时应给出相应提示以正确输入数据,如:

printf("要查询的项目编号:

");

scanf("%d",&s);if(s>m+w||s==0)

printf("此次运动会不包括这个项目.\n\n\n");

想在每次查询结束想返回主菜单进行其它项时,应在main()

函数中调用其它函数时再调用main()函数,如:

switch(choice)

{

case1:

inputinformation();writedata();readdata();main();case2:

output();main();case3:

inquiry();main();case4:

readdata();main();

程序出现语法错误,发现是输入名次信息的地方忘带地址符&,或是程序不完整,只写了一个大括号。

如:

printf("*****名次:

");scanf("%d",&h[i].c[j].range[s]);

3.2调试分析:

(1).函数调用。

函数调用是语言中一块十分重要部分,它可以把一个程序分成若干部分,然后进行配置,所以这块内容对我们很重要。

(2).对结构体的不熟练。

刚开始对结构体不太了解,使调试程序时费了我不少的时间。

结构体的嵌套使我很费力气,通过长时间的运用,终于可以得心应手。

结构体在我的实习中站了很大的比重,我也很重视它。

通过与线性表,循环等的有机搭配,我完成了实习任务。

(3).循环的问题。

这是我很苦恼,大量的循环语句的应用,分

析。

使我很头疼,循环是计算机语言中很重要的部分,什么程序也离不开循环,这个问题的解决使我有了坚实的基础。

对多层循环的应用也有了深刻的理解。

3.3调试结果:

(1)首先运行文件运动会统计分数7.exe:

(2)输入信息:

程序首先赋初值,定义学校的个数为2,男生项目为1,女生项目为1。

输入1得到进入输入信息模块。

按回车键可得到学校的得分信息和按编号获得的所以信息。

(3)输出信息:

输入2进入输出信息模块,该模块分四项:

①按学校编号输出:

②按学校总分输出:

③按男团总分输出:

④按女团总分输出:

⑤输入2返回输出信息模块,输入0返回主菜单。

(4)查询信息:

输入3进入信息查询模块:

①按学校编号查询

②按项目编号查询

③输入错误信息时给出提示:

④输入2继续查询,输入0返回主菜单

(5)调用信息

输入4时显示出所有的信息:

4、总结

(1).调试中所遇到的较重要问题的回顾:

1)提出问题:

所有输入输出内容只能在一屏内显示,学过c语言,很知道”\n”是换行,”\f”是换屏的,可是在这里就是无法实现。

解决问题:

输入clrscr();

2)提出问题:

设置选项,供用户输入选择时,当按任意键时都会跳入下一步操作,或者直接退出系统。

分析问题:

在供用户选择时,提供了几个选项,就写几个case语句,但是当用户输入的并不是这几个数字时,系统就不能做出正确判断。

解决问题:

修改case语句,添加default语句提示出错,要求重新输入;

Default:

{

clrscr(); /*清屏*/printf("输入错误,请重新选择");

}

3)提出问题:

当同一项目中有同一学校的两个人时,便不能正确输出或者输出相同人名。

分析问题:

由于同时有两个相同学校编号的人存在,系统在输出时,不能确定那个是正确的,或者用后来的覆盖以前的。

解决问题:

用for函数实现从开始到结尾的遍历。

(2).算法的效率及

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

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

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