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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构 基于顺序存储结构对学生成绩表的设计 课程设计 实验报告Word文档格式.docx

1、数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。在当今信息时代,信息技术己成为当代知识经济的核心技术。我们时刻都在和数据打交道。比如人们在外出工作时找最短路径,在银行查询存款、通过互联网查新闻、以及远程教育报名等,所有这些都在与数据发生关系。实际上,现实世界中的实体经过抽象以后,就可以成为计算机上所处理的数据。数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、

2、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。通过此次课程设计主要达到以下目的:(1)、了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;(2)、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(3)、提高综合运用所学的理论知识和方法独立分析和解决问题的能力;(4)、训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风

3、。试验目的如下:(1)、掌握线性表的顺序存储结构和链式存储结构;(2)、熟练掌握顺序表和链表基本算法的实现;(3)、掌握利用线性表数据结构解决实际问题的方法和基本技;(4)、按照实验题目要求独立正确地完成实验内容(编写、调试算法程序,提交程序清单及相关实验数据与运行结果);(5)、按时提交实验报告。二、需求分析:当今时代是飞速发展的时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境.计算机的最大好处在于利用它能够进行 信息管理.使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性.尤其对于复杂的信息管理,计算机能够充分发挥它的优越性.学生成绩管理系统是

4、一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的成绩。 2.1、问题描述统计学生的成绩信息,这些信息包括学生的姓名,学号以及各门课的成绩,将这些信息录入以后,进行相关的系统管理,如插入、删除学生信息、求平均成绩、排序以及查找等管理。 2.2、数据需求分析:本系统的主要数据信息有学生实验课成绩信息表。学生信息表包括:学号, 姓名,实验成绩,平时成绩,总成绩等。2.3、 功能需求分析:本系统主要实现对学生实验课成绩信息进行管理, 需要实现以下几个方面的管理功能: (1)学

5、生管理:学生信息的添加、删除、修改、查询、排序。 (2)打印输出:学生实验课成绩信息。2.4、课程设计思想及开发环境: 设计思想:本课题的实质是完成对学生成绩表的合并、提取、排序、查询等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功 能并得出运行结果。可将此系统分为如下模块,合并两个信息表、从表中提取信息、降序排序模块、按条件进行查询、退出系统。 编写语言: C 语言 开发工具:Visual C+ 6.0 VC+是微软公司开发的一个IDE(集成开发环境)。学习 VC 要了解很多 Windows 平台的特性并且还要掌握 MFC、AT

6、L、COM 等的知识,VC 基于 C,C+语言,主要由是 MFC 组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说 VC 在 Windows 平台无所不能。最大缺点是开发效率不高。三、概要设计 3.1、系统模块划分数据结构的研究内容:数据的逻辑结构,数据的存储结构,数据的操作。线性表是一种典型的线性数据结构,它可以采用链式结构与顺序存储结构来存储。 本课程设计采用的是顺序存储结构,并上施加了一些操作:插入,删除,查找, 排序,修改等。 (1)主界面模块提供实验课成绩管理系统的主菜单界面,供用户选择与执行各项管理工作。 (2)查询模块用于

7、用户根据学号进行成绩的查询。 (3)录入模块用于将用户的基本信息存储到数据库。 (4)删除模块用于根据学号删除用户的基本信息。 (5)插入模块用于将用户的基本信息插入到记录中。 (6)排序模块用于根据用户的要求进行排序。本学生所负责的模块是完成记录的排序与输出,不仅可以自动对学号进行排序还可以对平均成绩进行排序。 3.2 系统模块结构图 根据系统功能设计,对应的系统模块结构图如图 3.2所示。 图 3.2 系统模块图四、详细设计4.1 结构类型定义 要想让计算机对数据进行处理,首先要将数据存储到计算机。为此,必须先定义数据的存储类型。定义数据存储类型时要注意各学生信息应对应什么样的类型,由于本

8、课题采用的顺序存储结构,结构类型定义如下:/*结构类型的定义*/#include#define m 2 #define maxsize 1024typedef int datatype;typedef structint num;char name20;float score3;float ave;std; std stumaxsize; int last;sqlist;sqlist *l;4.2初始化在创建学生信息前,先要将顺序存储结构的线性表置成空表,即进行初始化。 /*初始化*/ void setnull(sqlist *l) l-last=0;4.3 创建学生成绩信息表即将学生的姓名、

9、学号以及成绩输入,在输入的程序中,注意输入的各学生信息所定义的类型以及所要输入的顺序思想:本课程能够提示用户输入相应的信息,并能够自动进行运算,将数据保存到文件中,并进行输出。相关代码:/* 构建学生信息库 */void creat_stu(sqlist *l)int i,j;printf(输入学生的基本信息:n);for(i=0;istui.num);输入第%d学生的姓名: scanf(%s,l-stui.name);stui.ave=0;请输入学生的成绩: 数据结构: 英语: 数学分析:for(j=0;jlast)=maxsize-1)overflowreturn 0;elseif(i(l

10、-last)+1)errorfor(j=l-last;j=i-1;j-)stuj+1=l-stuj;stui-1=x;return 1;对于删除学生信息,首先也需要对删除的位置进行判断,判断它的位置是否合法,然后对所要删除的学生信息进删除,并且删除过后需将表长减1.删除函数如下:/*删除学生信息*/int deleter(sqlist *l,int i)if(ilast+1)for(j=i;=l-stuj-1=l-last-;return(1);4.5 求每个学生的平均成绩对于输入的学生信息往往需要对它进行相关的处理,如对各学生的成绩求总和,再算出平均分。先求每个学生的总成绩,然后再除以课门数

11、。/*求学生的平均成绩*/void average(sqlist *l)float sum=0;sum=sum+l-stui.scorej;stui.ave=sum/3;第%d学生的平均成绩%.2f:,i+1,l-stui.ave);4.6 对学生的平均成绩排序将学生的平均成绩算出来以后,可以对学生的平均成绩进行排序。对于学生平均成绩的排序,本程序主要用冒泡法对其进行排序,关于冒泡法排序,就是从让第一个学生的平均成绩和下一个学生的平均成绩进行比较,若第二个学生的成绩比第一个学生的成绩高,则将他们的位置进行调换,否则位置不变。接着让排好序的第二个学生的成绩与下一个进行比较再排序,依此类推,直到比

12、较完为止。/*对学生平均成绩排序*/void sort(sqlist *l) int i,j; std t; for(i=0; for(j=0;last-i;j+) if(l-stuj.avestuj=l-stuj+1;stuj+1=t; 4.7 查找学生的信息对于创建好的学生信息,有时候需要对此进行查找。本程序是根据学生的学号查找学生的成绩信息,就是输入学号,从第一个学生的学号开始进行筛选,直到找到相应的学号为止。/*查找学生的信息*/void get(sqlist *l) int i,j,k; printf(输入要查找学生的学号:k);stui.num=k) 学号t姓名n%dt%snstu

13、i.num,l-学生的成绩:%.2ft4.8 输出学生信息表 在对学生的成绩进行创建、插入、删除、求平均分以及排序以后,往往需要将学生的成绩信息进行输出。对于输出函数,就是根据所需要求进行输出就可以了。/*输出学生信息*/void print(sqlist *l)第%d学生的学号:%dn第%d学生的姓名:%sn第%d学生的平均成绩:.2%fn%.2fn4.9 主函数主函数是一个完整的程序不可或缺的,其它的辅助函数都需要通过主函数进行调用。为了使编译出来的函数清晰明了,所以本程序用菜单来将每个子程序将它们的结果运行出来。这就需要运用循环语句和情况语句。/*主函数*/void main() int

14、 i=1,j; sqlist l; std x; while(i) # n # 学生成绩管理系统 # n # 1:初始化 # n #-# n # 2:输入学生的信息 # n # 3:插入学生的信息 # n # 4:删除学生的信息 # n # 5:求每个学生的平均成绩 # n # 6:对学生的平均成绩排序 # n # 7:查找学生的信息 # n # 8:输出学生的成绩信息 # n请输入你的选择:i); switch(i) case 1:setnull(&l);break; case 2:creat_stu(& case 3:请输入插入学生的位置:输入插入学生的学号:x.num);输入插入学生的姓

15、名:,x.name); x.ave=0;输入学生的成绩:x.scorej); insert(&l,x,i);case 4:请输入删除的学生的位置:deleter(&l,i); case 5:average(& case 6:sort(& case 7:get(& case 8:print(&n1:继续n0:结束n五、运行结果和分析5.1、主界面: 图5.1 主界面5.2、创建学生成绩信息并输出以后的结果: 图5.2 创建学生成绩信息5.3、插入学生成绩信息并输出后的运行结果: 图5.3 插入学生信息5.4、求出学生的平均成绩、进行排序并输出以后的结果: 图5.4 排序输出后的结果5.5、根据学

16、号查找学生的成绩信息后的结果: 图5.5 按学号查找学生的信息六、实验总结:在这次课程设计中,我做的是建立学生的成绩信息系统,学生信息主要包括:学号、姓名、成绩等。运用了冒泡法来编写算法,加深了我对该算法的理解。同时,我还了解了编写算法的基本流程。通过本次课程设计,我第一次体会到了编写程序的艰辛,在此过程中,将编写的程序是改了又改,但是,当我费了好大劲将程序运行出来的时候,我才真正体会到了快乐的滋味。在编写过程中我对数据结构的基本编程方法也有了更加深层的理解,虽然只是短短的两个星期,但这已经足够了。这两个星期过得真的很充实。但看到自己所编写的程序能够运行的时候,感到很有成就感。也要我懂得了做任何事要细心,有时候细节正的决定成败。我现在对于我所学习的课程有了更加深刻的认识,对数据结构也更加感兴趣了。感谢学校给我们提供了这个平台,让我们能够把理论运用到实践中去。同时,我还要感谢老师,在这次课程设计中老师也对我们提供了很大的帮助。七、源代码:void setnull(sqlist *l)sum=0;std t;if(l-t=l-st

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

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