[理学]数据库课程设计统计成绩.doc

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]数据库课程设计统计成绩

题目:统计成绩 姓名: ************ 学号: *********** 班级: *********** 专业: 学院: 指导老师:********* 2011年6月14日 数据结构课程设计 一、实验题目 统计成绩: 任务:给出n个学生的考试成绩表,每条信息有姓名与分数组成, 分数高低次序,打印出每个学生在考试中获得的名次,分数相同的为同一名次; 按名次列出每个学生的姓名与分数。 要求:学生的考试成绩表必须通过键盘输入数据而建立,同时要对输出进行格式控制。 二、实验目的 通过本次实践实验活动加强对数据结构的掌握,以及对算法的理解能力及设计程序的能力,以实现对C语言以及C++语言的掌握,并用C语言或c++程序设计语言来编程,解决实际现实生活中的问题。理解数据结构的精髓,将现实生活中的客观事物抽象为一种具体的数据结构,并设计一种具体的算法思想步骤,解决这些客观事物所涉及到的问题。从而也使得我们更加熟练地掌握C语言及C++语言和数据结构。 三、实验内容 1. 需求分析: 在生活中,特别是在学校,我们经常要对学生的考试成绩进行处理,因此,设计一个统计学生成绩的程序是非常有用的。在此程序中,用线性表和快速排序函数实现。 算法思想如下: 建立一个存放学生信息的线性表,手动输入学生信息,将其存放在线性表中相应位置,用一个QuickSort()函数对学生成绩进行快速排序,手动控制排序方式(按科目排序,按总分排序)排序后用display()函数输出。其中需注意的是: (1)考生成绩手动输入。 (2)分数相同名次相同。 (3)对输出格式进行控制,使输出整齐。 (4)可以对多门课程进行排名并输出。 (5)可以打印成绩。保存到文本文档。 2.概要设计: ai的结构如下: 存储结构如下: 图1-1 存储结构 程序结构: 图1-2 程序结构图 如图,main( )函数调用了四个子函数, creat( )、QuickSort( )、place ( )、display ( )。 其中,creat( )把手动输入的学生成绩建立一个线性表。 QuickSort( )实现学生成绩的排序,它调用了一个子函数,QSort( )实现快速排序,而QSort( ) 又调用了Partition( ),枢轴函数。 dayin( )为实现打印学生成绩单的函数。 place( )用来排学生名次。 display( )用来输出排序后的学生成绩表。 函数及变量说明: creat( )为输入学生信息函数,用来输入各个学生的学号,姓名,各科成绩,学生人数由自己定,利用for语句来输入相关信息,最后在输出所输入的学生信息。 Partition()为枢轴函数,交换顺序表L中子表stu[low..high]的记录,枢轴记录到位,并返回其 所在位置,此时在它之前(后)的记录均不大(小)于它。 void QSort()快速排序函数,此函数中调用了枢轴函数int Partition(),对顺序表L中的子序列L.stu[low..high]作快速排序。 void QuickSort( )为对数据进行排序的函数,此函数中调用了快速排序函数,对数据进行总体的排序,用在主函数中,输入信息后,对总分或者单科成绩进行排序。 void place( )为排名次函数,利用for()对每个学生名次进行定义,同时总分相同的学生名次相同。 dayin( )为实现打印学生成绩单的函数。 void display( )为输出函数,用printf对每个学生的信息进行输出,并进行格式控制,使输出对齐,其中void display2()为输出学生总分排序后的信息的函数, display1()为手动输入学生信息后输出控制格式后的学生信息的函数,display2()为总分排序时输出函数,较void display1()多了总分名次一项。 display3()为单科排序时输出函数,较void display2()多了单科名次一项。其中关于格式的控制,如输出函数的一部分printf(%12s %10s %6d %6d %6d\n,中的“%12s”要求输出宽度为若实际位数多于定义的宽度,则按实际位数输出, 若实际位数少于定义的宽度则补以空格或0。main( )为主函数,其中定义了一个新的线性表,调用函数进行学生信息的创建及分数排序,利用switch语句调用以上函数实现各个菜单的功能。 程序流程图: 3. 详细设计: 主函数: #includestdio.h #includestdlib.h #define maxsize 200 //maxsize为学生最大个数 #includec8-2.h // 对两个数值型关键字比较的约定 #includec1.h// typedef double KeyType;//定义

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档