数据结构基于顺序存储结构对学生成绩表的设计课程设计实验报告

上传人:s9****2 文档编号:477606137 上传时间:2022-08-05 格式:DOC 页数:24 大小:384.14KB
返回 下载 相关 举报
数据结构基于顺序存储结构对学生成绩表的设计课程设计实验报告_第1页
第1页 / 共24页
数据结构基于顺序存储结构对学生成绩表的设计课程设计实验报告_第2页
第2页 / 共24页
数据结构基于顺序存储结构对学生成绩表的设计课程设计实验报告_第3页
第3页 / 共24页
数据结构基于顺序存储结构对学生成绩表的设计课程设计实验报告_第4页
第4页 / 共24页
数据结构基于顺序存储结构对学生成绩表的设计课程设计实验报告_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《数据结构基于顺序存储结构对学生成绩表的设计课程设计实验报告》由会员分享,可在线阅读,更多相关《数据结构基于顺序存储结构对学生成绩表的设计课程设计实验报告(24页珍藏版)》请在金锄头文库上搜索。

1、数 据 结 构 课 程 设 计设计题目:基于顺序存储结构对学生成绩表的设计 课题名称 基于顺序存储结构对学生成绩表的设计院 系年级专业学 号姓 名成 绩课题设计目的与设计意义1、课题设计目的: 通过对学生成绩管理系统的简单模拟,用菜单选择方式完成下列功能:1、增加学生信息 2、删除学生信息 3、修改学生信息 4、查询学生信息 5、显示学生信息 6、退出管理系统。本课程设计的实质是完成对学生成绩信息的建立、查找、插入、处理、删除等功能, 通过线性表的顺序存储实现数据的操作,从而加深了使用数组实现顺序存储结构的方法。通过课程设计,加深对数据结构课程所学内容的进一步理解和巩固;加深对结构化课程设计思

2、想的理解,并设计合理的模块化结构。2、课题设计意义:基本掌握面向过程程序设计的基本思路和方法; 达到熟练掌握数据结构的基本知识和技能; 能够利用所学的基本知识和技能,解决简单的程序设计问题. 并且提高程序开发功能,能运用合理的控制流程编写清晰高效的程序;培养分析问题、解决问题的能力。 在课程设计中,我们充分发挥小组优势完成课程设计,同时也体会到课题设计小组合作的重要性与必要性。指导教师:年 月 日 目 录一、课题的目的和意义1二、需求分析22.1、问题描述32.2、数据需求分析32.3、 功能需求分析3三、概要设计33.1、系统模块划分33.2 系统模块结构图4四、详细设计44.1 结构类型定

3、义44.2初始化54.3 创建学生成绩信息表54.4 插入和删除学生信息64.5 求每个学生的平均成绩74.6 对学生的平均成绩排序84.7 查找学生的信息84.8 输出学生信息表94.9 主函数10五、运行结果和分析125.1、主界面125.2、创建学生成绩信息并输出以后的结果135.3、插入学生成绩信息并输出后的运行结果145.4、求出学生的平均成绩、进行排序并输出以后的结果155.5、根据学号查找学生的成绩信息后的结果16六、实验总结16七、源代码16八、参考文献23一、课题的目的和意义:数据结构作为一门学科主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。因此,主要有三个方面

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

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

6、的理论知识和方法独立分析和解决问题的能力;(4)、训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。试验目的如下:(1)、掌握线性表的顺序存储结构和链式存储结构;(2)、熟练掌握顺序表和链表基本算法的实现;(3)、掌握利用线性表数据结构解决实际问题的方法和基本技;(4)、按照实验题目要求独立正确地完成实验内容(编写、调试算法程序,提交程序清单及相关实验数据与运行结果);(5)、按时提交实验报告。二、需求分析:当今时代是飞速发展的时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境.计算机的最大好处在于利用它能够进行 信息管理.

7、使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性.尤其对于复杂的信息管理,计算机能够充分发挥它的优越性.学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的成绩。 2.1、问题描述统计学生的成绩信息,这些信息包括学生的姓名,学号以及各门课的成绩,将这些信息录入以后,进行相关的系统管理,如插入、删除学生信息、求平均成绩、排序以及查找等管理。 2.2、数据需求分析: 本系统的主要数据信息有学生实验课成绩信息表。学生信息表包括:学号, 姓名

8、,实验成绩,平时成绩,总成绩等。 2.3、 功能需求分析:本系统主要实现对学生实验课成绩信息进行管理, 需要实现以下几个方面的管理功能: (1)学生管理:学生信息的添加、删除、修改、查询、排序。 (2)打印输出:学生实验课成绩信息。2.4、课程设计思想及开发环境: 设计思想:本课题的实质是完成对学生成绩表的合并、提取、排序、查询等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功 能并得出运行结果。可将此系统分为如下模块,合并两个信息表、从表中提取信息、降序排序模块、按条件进行查询、退出系统。 编写语言: C 语言 开发工具:Visu

9、al C+ 6.0 VC+是微软公司开发的一个IDE(集成开发环境)。学习 VC 要了解很多 Windows 平台的特性并且还要掌握 MFC、ATL、COM 等的知识,VC 基于 C,C+语言,主要由是 MFC 组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说 VC 在 Windows 平台无所不能。最大缺点是开发效率不高。三、概要设计 3.1、系统模块划分数据结构的研究内容:数据的逻辑结构,数据的存储结构,数据的操作。线性表是一种典型的线性数据结构,它可以采用链式结构与顺序存储结构来存储。 本课程设计采用的是顺序存储结构,并上施加了一

10、些操作:插入,删除,查找, 排序,修改等。 (1)主界面模块提供实验课成绩管理系统的主菜单界面,供用户选择与执行各项管理工作。 (2)查询模块用于用户根据学号进行成绩的查询。 (3)录入模块用于将用户的基本信息存储到数据库。 (4)删除模块用于根据学号删除用户的基本信息。 (5)插入模块用于将用户的基本信息插入到记录中。 (6)排序模块用于根据用户的要求进行排序。本学生所负责的模块是完成记录的排序与输出,不仅可以自动对学号进行排序还可以对平均成绩进行排序。 3.2 系统模块结构图 根据系统功能设计,对应的系统模块结构图如图 3.2所示。学生成绩管理系统插入信息插入信息求平均分进行排序输入信息输

11、出信息 图 3.2 系统模块图四、详细设计4.1 结构类型定义 要想让计算机对数据进行处理,首先要将数据存储到计算机。为此,必须先定义数据的存储类型。定义数据存储类型时要注意各学生信息应对应什么样的类型,由于本课题采用的顺序存储结构,结构类型定义如下:/*结构类型的定义*/#include#define m 2 #define maxsize 1024typedef int datatype;typedef structint num;char name20;float score3;float ave;std;typedef struct std stumaxsize; int last;s

12、qlist;sqlist *l;4.2初始化在创建学生信息前,先要将顺序存储结构的线性表置成空表,即进行初始化。 /*初始化*/ void setnull(sqlist *l) l-last=0;4.3 创建学生成绩信息表即将学生的姓名、学号以及成绩输入,在输入的程序中,注意输入的各学生信息所定义的类型以及所要输入的顺序思想:本课程能够提示用户输入相应的信息,并能够自动进行运算,将数据保存到文件中,并进行输出。 相关代码: /* 构建学生信息库 */void creat_stu(sqlist *l)int i,j;printf(输入学生的基本信息:n);for(i=0;istui.num);p

13、rintf(输入第%d学生的姓名:n,i+1); scanf(%s,l-stui.name);l-stui.ave=0;printf(请输入学生的成绩: 数据结构: 英语: 数学分析:n);for(j=0;jstui.scorej);l-last+;4.4 插入和删除学生信息有时候输入的学生信息不够完整,或者输入的学生信息多余,所以需要对其进行增加和删除。思想:对于插入函数,首先要确定插入的位置,并且需要判断该顺序表的空间是否已满,若没有满,则需要再判断插入的位置是否合法。在满足上述判断以后,在插入要插入的学生信息,并且最后需要将表长加1;插入函数如下:/*插入学生信息*/int insert

14、(sqlist *l,std x,int i)int j;if(l-last)=maxsize-1)printf(overflow);return 0;elseif(i(l-last)+1)printf(error);return 0;elsefor(j=l-last;j=i-1;j-)l-stuj+1=l-stuj;l-stui-1=x;l-last+;return 1;思想:对于删除学生信息,首先也需要对删除的位置进行判断,判断它的位置是否合法,然后对所要删除的学生信息进删除,并且删除过后需将表长减1.删除函数如下:/*删除学生信息*/int deleter(sqlist *l,int i)int j;if(ilast+1)printf(error);return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号