数据结构课程设计报告附源代码学生管理系统.doc

上传人:cn****1 文档编号:548251466 上传时间:2023-02-12 格式:DOC 页数:28 大小:1.05MB
返回 下载 相关 举报
数据结构课程设计报告附源代码学生管理系统.doc_第1页
第1页 / 共28页
数据结构课程设计报告附源代码学生管理系统.doc_第2页
第2页 / 共28页
数据结构课程设计报告附源代码学生管理系统.doc_第3页
第3页 / 共28页
数据结构课程设计报告附源代码学生管理系统.doc_第4页
第4页 / 共28页
数据结构课程设计报告附源代码学生管理系统.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《数据结构课程设计报告附源代码学生管理系统.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计报告附源代码学生管理系统.doc(28页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告(一)一报告题目:学生管理系统二实验目的:1. 熟习线性链表,掌握线性链表的基本操作;2. 练习求线性表中指定结点元素及更正指定结点的元素、求指定结点的前驱 /后继元素、删除指定结点的元素、在指点节点地址插入元素等。3. 经过文件保留和读取文件来提高文件操作的能力;4. C语言编程能力的提高训练。三实验环境:C语言编程,VC+6.0编程工具实现。四软件系统构造1.整体架构/层次:学生管理系统(汉化版)学生管理功能录入查删修新学找除改生信学学学息/插生生生入新信信信学生数据息息息数据存取办理显将学从文示生信件读全部息存取学学入文生数生件(录据(装信息入)入)2.各功能的实现流程图:优

2、选函数1:录入功能实现流程图开始输入新学生信息按学号非降序插入到链表中达成优选函数4:删除功能实现流程图开始输入要更正的学生学号按学号查找该学生找到了该学生信息?能否更正“不用更正”N达成?Y/NY返回主菜单优选函数2:查找功能实现流程图开始输入学生查找学号按学号查找学生否找到记录?是显示该学生信息N达成查找?Y/NY返回主菜单优选函数3:删除功能实现流程图开始输入要删除学生的学号查找该学生否链表中存在?是删除该学生信息N删除达成?Y/NY返回主菜单优选函数5:显示功能实现流程图开始链表能否为空?能否输出“无记录”显示函数输出所有记录返回主菜单优选函数6:文件装入功能实现流程图开始输入文件名打

3、开文件成功?能否按非降序插入链表输出“装入成输出“打开功”文件失败”返回主菜单优选函数7:文件保留功能实现流程图开始输入文件名打开文件成功?能否写入文件输出“存入成功”输出“打开文件失败”返回主菜单优选函数8:退出菜单功能实现流程图开始确立退出吗?Y/NYN返回主菜单t=0/*t=1是菜单执行条件*/退出结束优选五软件功能设计:本软件是要编写一个学生管理系统,一个学生有很多相关数据,包含学号、姓名、性别、年龄、家庭地址、练习电话,所以我们利用线性链表的知识来编写程序,这是因为线性链表有很多优异的特色,所以该程序是对线性链表的应用练习。本软件利用线性链表的特色,结合文件相关函数的运用,它可以实现

4、以下功能:1. 用结点的数据域存放学生的学号、姓名、性别、年龄、家庭地址、练习电话;2. 利用结点的指针域接见某个结点的前驱也许后继;3. 录入新学生信息并按非降序插入到链表中;4. 查找给定学号的结点学生信息;5. 删除给定学号的结点学生信息;6. 更正给定学号的结点学生信息;7. 显示所有结点的学生信息;8. 将链表中的学生信息所有存入文件;9. 将已存在的学生信息文件中的学生信息按学号非降序插入到当前链表中;六.源程序代码:优选#include#include#include#include#defineNAMELEN15#defineADDRLEN10#defineTELLEN15#d

5、efineOVERFLOW0#defineERROR0#defineFALSE0#defineOK1#defineTRUE1structstudlongnum;charnameNAMELEN+1;charsex;intage;charAddrADDRLEN+1;longrxsj;charlxfsTELLEN+1;typedefstudElemType;/链表结点元素为构造体FILE*fp;typedefstructLNodeElemTypedata;LNode*next;*LinkList;/typedefLNode*;intInitList(LinkList&L)/操作结果:构造一个空的线性

6、表LL=(LinkList)malloc(sizeof(LinkList);/产生头结点,并使L指向头结点if(!L)/储存分配失败exit(OVERFLOW);L-next=NULL;/指针域为空returnOK;优选intListTraverse(LinkListL,void(*vi)(ElemType)/条件:线性表已存在/操作结果:一次对L的每个数据元素调用函数vi()。一旦vi()失败,则操作失败LinkListp=L-next;while(p)vi(p-data);p=p-next;printf(n);returnOK;voidInsertAscend(LinkListL,Elem

7、Typee)/按学号非降序插入LinkListq=L,p=L-next;while(p&e.nump-data.num)q=p;p=p-next;q-next=(LinkList)malloc(sizeof(LNode);/插在q后q-next-data=e;q-next-next=p;voidReadIn(stud&e)/由键盘输入结点信息inta=1;printf(学号:);scanf(%ld,&e.num);printf(姓名(=%d个字符):,NAMELEN);scanf(%s,e.name);while(a)printf(性别(m:男f:女):);scanf(%s,&e.sex);if(e.sex!=m&e.sex!=f)printf(格式不对,重输入:);elseif(e.sex=m|e.sex=f)a=0

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

当前位置:首页 > 大杂烩/其它

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