数据结构课程设计

发布 2022-10-01 21:29:28 阅读 6630

项目名称: 学生信息管理系统。

学生姓名: 欧莹。

学号: 14406005

班级: 14届物联网一班。

指导教师: 张树。

2024年6月28日。

目录。1 需求分析 1

1.1 任务综述 1

1.2测试数据: 1

2 概要设计 1

2.1学生信息抽象数据类型的定义(包括每个基本操作的说明) 1

2.2主要模块划分 2

2.3主要模块之间的调用关系图 3

3 详细设计 3

3.1 数据的存储结构 3

3.2 每个操作的伪码算法 3

3.3 函数的调用关系图 4

4 实验结果 5

5 体会 10

6 参考文献 10

附录:源程序清单 11

1 需求分析。

1.1 任务综述。

随着计算机技术的进步和人们对系统需求进一步提高,学校对于学生信息管理也相应提升。学校对于学生信息管理主要侧重于数据的更新快捷、准确、占用较少的人力资源,而达到的最大的办公效率。

该系统为学生信息管理系统,是鉴于目前学校快速发展,学校规模越来越大,学校与时俱进,课程不断改革,学生数量与课程数量都在迅速的增长,学生信息呈**性增长的前提下,原始的手工管理耗费学生与工作人员大量的时间和精力,而效率与准确性却很低,学校对学生信息管理的自动化与准确化得要求日益强烈,为满足学校管理学生信息的需要,设计并完成该系统。系统完成后可用于学校学生信息管理,能够实现对学生信息进行存储、录入、查询、删除、修改等功能。

1)输入的形式和输入值的范围。

首先进入的是菜单界面,输入用户名,以及正确的密码。输入数字1或2选择需求的功能,1是进入学生信息管理系统,2是退出程序。

2)输出的形式。

进入该系统之后,会出现子菜单,可任意输入1-7这几个数字进行不同的选择。1是录入学生信息,系统将会提示输入学生人数的量是多少。2是显示学生信息,该选项可显示录入学生的各种信息。

3是根据学生的学号进行由大到小的排序,4是插入学生信息,5是输入要删除学生的学号,即可删除该学生的信息。6输入学号,查找任意一个学生的信息。7返回到上级菜单。

1.2测试数据:

正确输入数据系统将会正确的保存信息,若不准确的输入数据会导致程序出现乱码或无法正常执行程序。

2 概要设计。

2.1学生信息抽象数据类型的定义(包括每个基本操作的说明)

adt sqlist

数据关系:r1=

操作:void password();

操作结果:启动密码函数。

int menu();

操作结果:建立菜单。

int submenu();

操作结果:建立子菜单。

void submain();

初始条件:正确输入密码 。 操作结果:启动程序函数。

void load();

初始条件:s**e函数中保存学生信息。 操作结果:读取到录入的学生信息。

void s**e();

初始条件:对学生信息进行多样化操作(录入,删除,排序,插入等)。 操作结果:将学生信息保存至“文件中。

void s**e1();

初始条件:对学生信息进行多样化操作。 操作结果:将学生信息保存至“文件中。

void inputinfor();

初始条件:程序已启动。 操作结果:录入学生信息。

void display();

初始条件:文件中存入录入的学生信息。 操作结果:显示学生信息。

void taxis();

初始条件:文件中存入录入的学生信息。 操作结果:按照学号大到小排序。

void insert();

初始条件:程序已启动。 操作结果:插入学生信息。

void delinfor();

初始条件:文件中存入录入的学生信息。 操作结果:输入学号删除学生信息。

void query();

初始条件:文件中存入录入的学生信息。 操作结果:输入学号查找学生信息。

adt sqlist

2.2主要模块划分。

学生信息管理系统主要有录入、显示、排列、删除、插入、查询六个功能模块,一个主程序模块。

1)主程序模块。

void main()

2)录入模块。

void inputinfor() 录入学生信息*/

3)显示模块。

void display ()显示学生信息*/

4)排列模块。

void taxis() 按学号进行排序。

5)插入模块。

void insert() 插入学生信息*/

6)删除模块。

void delinfor() 删除学生信息*/

7)查询模块。

void query() 查找学生信息*/

2.3主要模块之间的调用关系图,如图2-1所示:

图2-1 模块调用关系图。

3 详细设计。

3.1 数据的存储结构。

头文件。#include ""

#include ""

#include ""

#define size 10000 //宏定义。

结构体定义。

struct student //定义一个学生类型的结构体。

long num;//定义学号为长整型。

char name[15];/定义姓名为字符型,以及字符串长度为15

char sex[5];/定义性别为字符型,以及字符串长度为5

char date[20];/定义姓名为字符型,以及字符串长度为20

char adress[20];/定义地址为字符型,以及字符串长度为20

long telephone;//定义**号码为长整型。

char em[20];/定义em为字符型,以及字符串长度为20

stu[size];

存储函数s**e()以及读取函数load(),运用指针file * fpl;指向文件在整个程序中录入的所有学生信息都保存在文件中。

3.2 每个操作的伪码算法。

1)用户设置:用户密码的设置。

采用void password()加密函数,初始设置的的密码为“123456”,用户进入登录界面后,输入用户名,然后正确输入密码,界面会显示"欢迎登陆学生成绩管理系统 !"若输入错误,界面会显示"密码错误,请重新输入",即可重复多次输入指定密码进入到子菜单界面,进行用户选择。

2)学生信息的输入:输入学生的姓名,性别,出生年月,**号码,地址,邮箱(em)。

采用void inputinfor() 录入函数,首先定义录入学生的人数为整型变量i,学生人数最大值为m,学号随机生成,依次输入学生的信息,每输入一个学生的信息,i++且i(3)按学号排序:让用户对学生进行学号排序等操作。

采用void taxis() 排序函数按学号大小进行排序,该部分程序段采用for循环嵌套的模式将学员学号由大到小进行排序,然后用s**e函数保存排序后的学生信息,供用户使用。

4)插入学生信息:当新增学生后,可以录入新学生的信息。

采用void insert() 插入函数,重复执行第(2)部分的操作过程,定义录入学生的人数为整型变量i,录入学生的人数最大值为整型变量k,,运用输入函数printf和scanf函数来表明信息格式转换说明,运用for循环结构,实现插入的操作功能。

5)删除学生信息:毕业学生信息可以进行删除。

首先采用void delinfor() 函数,定义要删除的人数为整型变量q,q=0,系统中存在的学号为字符型a,在if条件语句中判断输入的学号是否存在, 如果存在,那么执行q++,否则界面会显示“查无此人”,然后继续下一个学生的学号输入,如此循环往复,输入完成后系统会弹出“是否继续删除(y or no!)”

6)查找学生信息:通过输入学号用户可以查找到某学生的相关信息。

运用void query() 查找函数,定义学生人数为i,查找到的学生人数为z,在for循环语句以及if的条件语句中判断输入的学号是否存在,如果存在执行z++,如果不存在,显示“查无此人”,现实的学生信息需用到void load() 读取文件函数。

3.3 函数的调用关系图,如图3-1所示:

4 实验结果。

1)进入菜单界面,如图4-1所示:

图4-1 菜单界面。

2)进入子菜单界面,如图4-2所示:

图4-2 子菜单界面。

3)录入学生信息。

录入学生人数为2,如图4-3所示:

图4-3 录入学生信息内容。

3)显示学生信息,如图4-4所示:

图4-4 显示学生信息。

4)将学号由大到小进行排序,排序结果如图4-5所示。

图4-5学号排序。

5)插入学生信息以及插入后学生信息结果如图4-6,4-7所示。

图4-6 插入学生信息。

图4-7 显示学生信息。

6)删除学生信息(输入要删除的学号:2014334)删除后结果如图4-8所示。

图4-8显示删除后的学生信息。

7)查找学生信息(要查找的学号:2014467),如图4-9所示。

图4-9查找学生信息。

5 体会。经过三个多星期来的课程设计,增加了我对学习数据结构的兴趣,虽然还不明确数据结构中更深奥的内容,但是从数据结构这门课程开始,我已发现程序设计的乐趣,在学习数据结构过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。在具体操作中对这学期所学的数据结构的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到数据结构具有的语句简洁,使用灵活,执行效率高等特点。

发现上机实训的重要作用,通过实际操作,学会数据结构程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...