没有合适的资源?快使用搜索试试~ 我知道了~
学生信息管理系统,是典型的管理信息系统。它是一个教育单 位不可缺少的部分,它的内容对于学校管理者来说是至关重要的,能 有效的帮助学校和老师掌握学生的情况。使用学生信息管理系统对 学生信息进行管理,具有着手工管理所无法比拟的优点。例如:检索 迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、 保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息 管理的效率,也是学校实现科学化、正规化管理的重要条件。因 此,开发这样一个平台成为很有必要的事情。 设计该学生管理系统主要实现以下功能:根据成绩进行查找, 返回此学生的学号和姓名;给定一个学生信息,插入到表中指定的 位置;删除指定位置的学生记录;学生信息排列顺序;逐个显示学 生表中所有学生的相关信息;退出学生管理系统。 缺少一个表格,需要自己制作
资源推荐
资源详情
资源评论
课程设计报告
课程
名称
数据结
构课程
设计
班级
实验
日期
姓名
学号
实验
成绩
实验
名称
学生管理系统的设计与实现
问
题
定
义
与
功
能
描
述
定义一个包含学生信息的顺序表,使其具有如下功能:
(1)从文件 student.txt 成批输入学生信息;
(2)根据指定的位置可返回相应的学生信息(学号,姓名,成
绩);
(3)根据成绩进行查找,返回此学生的姓名;
(4)给定一个学生信息,插入到表中指定的位置;
(5)删除指定位置的学生记录;
(6)学生信息排列顺序;
(7)逐个显示学生表中所有学生的相关信息;
(8)根据学号进行查找,返回此学生的姓名;
(9)根据姓名进行查找,返回此学生的成绩;
(10)退出学生管理系统。
2
详
细
算
法
设
计
【需求分析】
学生信息管理系统,是典型的管理信息系统。它是一个教育单
位不可缺少的部分,它的内容对于学校管理者来说是至关重要的,能
有效的帮助学校和老师掌握学生的情况。使用学生信息管理系统对
学生信息进行管理,具有着手工管理所无法比拟的优点。例如:检索
迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、
保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息
管理的效率,也是学校实现科学化、正规化管理的重要条件。因
此,开发这样一个平台成为很有必要的事情。
设计该学生管理系统主要实现以下功能:根据成绩进行查找,
返回此学生的学号和姓名;给定一个学生信息,插入到表中指定的
位置;删除指定位置的学生记录;学生信息排列顺序;逐个显示学
生表中所有学生的相关信息;退出学生管理系统。
图 1-1 需求设计概要
输删除该学生信息
修改的学生信息
主要需求单
录入信息
学生排序
输出信息
删除信息
修改信息
添加信息
输入学生信息
按学生学号高低排序
添加学生信息
输出学生信息
3
【总体设计】
主菜单包括:输入函数、取值函数、删除函数、输出函数、查
找函数、添加函数等。
图 1-2 学生管理总体设计
【模块划分】
主
界
面
建立学生信息表
输入学生信息表
取值学生信息表
查找学生的成绩
插入学生的信息
删除学生的信息
排列学生的信息表
按学号查找学生信息
输出学生的信息
退出学生管理系统
4
一、主函数:main()
显示系统工作菜单,显示该系统的所有功能。告诉使用者所有
将会被调用的函数,再运用选择函数 switch 即可根据使用者所输入
的序号进入对应的功能程序。运行之后,然后可以继续选择那些可
以使用的功能,这样可以方便使用者使用,并且每一步都很清晰。
以键入 0 退出系统。
二 、 建 立 函 数 : Status InitList_Sq(SqList &L) L.elem = new
Student[MAXSIZE];
在该程序的前面已经定义了一个结构体 struct student 用来储
存学生的所有信息,(学号、姓名、数据结构、高等数学、大学英
语 )。
三、插入函数:Status ListInsert_Sq(SqList &L, int i, Student e)
用一个 for 语句做循环,不是 NULL 的话,指针指向下一个。
Status ListInsert_Sq(SqList &L, int i, Student e) { //算法 2.4 顺序
表的插入
//在顺序表 L 中第 i 个位置之前插入新的元素 e
//i 值的合法范围是 1<=i<=L.length+1
if ((i < 1) || (i > L.length + 1))
return ERROR; //i 值不合法
if (L.length == MAXSIZE)
return ERROR; //当前存储空间已满
for (int j = L.length - 1; j >= i - 1; j--)
L.elem[j + 1] = L.elem[j]; //插入位置及之后的元素后移
L.elem[i - 1] = e; //将新元素 e 放入第 i 个位置
++L.length; //表长增 1
return OK;
5
四、输出函数:
在主函数里边用 for 控制循环,输出学生信息,然后指针指向
下一个。
五、查询函数:int LocateElem_Sq(SqList L, double e)
输入一个学号,做一个 for 循环,即指针指向第一个地址,如
果要查询的学生的学号在学生里,就输出该学生信息,否则,就输
出查询的学生信息不存在。
int LocateElem_Sq(SqList L, double e) { //算法 2.3 顺序表的查找
//顺序表的查找
for (int i = 0; i < L.length; i++)
if (L.elem[i].id == e)
return i + 1;//查找成功,返回序号 i+1
return 0;//查找失败,返回 0
}
int LocateElem_Sq(SqList L, int e) { //算法按数据结构成绩查找
for (int i = 0; i < L.length; i++)
if (L.elem[i].price == e)
return i + 1;//查找成功,返回序号 i+1
return 0;//查找失败,返回 0
六、删除函数:Status ListDelete_Sq(SqList &L, int i)
输入一个序号,先找到这个序号对应学生的信息。如果输入的
序号在学生信息中,就可以顺利删除;如果输入的序号不在学生信
息中,输出“此学生信息不存在”。
Status ListDelete_Sq(SqList &L, int i) { //算法 2.5 顺序表的删
除
//在顺序表 L 中删除第 i 个元素,并用 e 返回其值
//i 值的合法范围是 1<=i<=L.length
if ((i < 1) || (i > L.length))
return ERROR; //i 值不合法
for (int j = i; j <= L.length; j++)
L.elem[j - 1] = L.elem[j]; //被删除元素之后的元素前移
--L.length; //表长减 1
剩余29页未读,继续阅读
资源评论
晨阳652
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2c60fbb3dt9ad50ed8864298eea1484b.MP4
- 基于yolov8+dlib实现视觉识别的安全驾驶监测系统部署到jetson NX平台源码+模型.zip
- Qt框架+OpenCV+动态爱心+编程教学+520
- 基于opencv+yolov8实现目标追踪及驻留时长统计源码.zip
- 水稻病害基于Yolov8算法优化目标检测识别与AI辅助决策python源码+模型+使用说明.zip
- 海尔618算价表_七海5.20_16.00xlsx(1)(2).xlsx
- WebCrawler.scr
- 【计算机专业毕业设计】大学生就业信息管理系统设计源码.zip
- YOLO 数据集:8种路面缺陷病害检测【包含划分好的数据集、类别class文件、数据可视化脚本】
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功