项目名称: 学生信息管理系统。
学生姓名: 欧莹。
学号: 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 初始化时每个方格都是关闭的,一个...