2022年顺序表结构的学生信息管理系统 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年顺序表结构的学生信息管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年顺序表结构的学生信息管理系统 .pdf(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、海 南 大 学数据结构课程设计题目:学生信息管理系统学号:20142835320016 姓名:侯孟禹年级:2014 级学院:应用科技学院系别:工学部专业:物联网工程指导教师:梁建慧完成日期:2016 年 6 月 10 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 36 页 - - - - - - - - - 目录中文摘要 . 3English abstract . 4方案分析 . 5程序设计 . 6输入输出模块 . 6信息的录入 . 6信息的遍历 . 7信息的查询 .
2、 8管理模块 . 11信息的删除 . 11信息的修改 . 12信息的排序 . 16时间复杂度 . 17文件操作模块 . 18数据写入文件 . 18数据读出文件 . 19测试 . 22结论 . 27感谢 . 28参考文献 . 28附录: . 28名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 36 页 - - - - - - - - - 中文摘要学生信息管理系统是人们日常生活中经常要用到的管理工具,它以文件的方式保存用户录入的数据, 并提供查询功能供用户查询和使用学生信息管
3、理系统。本次设计的学生信息管理系统,支持基本的录入、删除、查找、修改和文件读写等功能。此学生信息管理系统基于结构化程序设计思想和所使用的C语言开发环境与开发工具,并运用“软件工程”和“数据结构”中的有关概念和方法,针对具体设计题目和要求, 分析功能要求, 划分功能模块, 用链表结构设计功能模块函数,以菜单方式调用相应功能模块来实现信息和数据处理。关键词:学生管理系统;顺序表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 36 页 - - - - - - - - - Eng
4、lish abstract Student information management system is often used in Peoples Daily life management tool, it saves the user input data in the form of documents, and provide the query function for the use of user queries and student information management system. The design of student information mana
5、gement system, support basic input, delete, search, modify, and read and write files, and other functions. The student information management system based on structured programming ideas and the use of C language development environment and development tools, and using the software engineering and d
6、ata structure of the relevant concepts and methods, in view of the specific design questions and requirements, analysis of functional requirements, the division of function modules, with chain table structure design, function module function, to call the corresponding function module menu way to imp
7、lement the information and data processing Keywords: student management system; sequence listt 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 36 页 - - - - - - - - - 方案分析经过对程序设计题目的分析可知, 学生信息基本属性包括学号、 姓名、性别、住址、联系电话。 整个程序的设计实现大致分为多个模块,每一个模块对应一个函数。在这些函数当中需要具有如下功能,学
8、生信息的录与删除、 查找和修改学生信息、按学号排序函数等。 读取文件函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。在数据关系上, 我采用了顺序表的方案, 顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。 线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。本系统中以数组为存储体, 每一个数组元素为一个包含学生所有信息的结构体,这在技术上与法律法规上都具有可行性。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
9、- - - - 名师精心整理 - - - - - - - 第 5 页,共 36 页 - - - - - - - - - 程序设计输入输出模块信息的录入/*/ int input(Sqlist *q) int i,j; printf(输入所要录入个数 :); scanf(%d,&i); for(j=q-length ;jlength;j+) printf(学号: ); scanf(%d,&(q-elemj.number); printf(姓名: ); scanf(%s,&(q-elemj.name); printf(性别: ); scanf(%s,&(q-elemj.sex); printf(地
10、址: ); scanf(%s,&(q-elemj.adress); printf(电话号码: ); scanf(%s,&(q-elemj.tlnumber); q-length=q-length +i; return OK; /*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 36 页 - - - - - - - - - 此函数功能:学生信息的录入函数构思:用户输入需要录入的学生信息的个数i 。通过 for 语句控制输入函数的循环次数从而达到多次对学生信息的录入。录入
11、的循环需要考虑到顺序表原来的长度和录入后顺序表的长度。函数返回值为OK或者 ERROR,返回 OK表示操作成功,返回 ERROR 表示操作失败。信息的遍历/*/ int traverse(Sqlist *q) int i,j=q-length; if(!q-elem) return ERROR; for(i=0;ielemi.number); printf( 姓名: %s ,q-elemi.name ); printf( 性别: %s ,q-elemi.sex ); printf( 地址: %s ,q-elemi.adress); printf( 电话号码: %sn,q-elemi.tlnum
12、ber ); printf(n); return OK; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 36 页 - - - - - - - - - /*/ 函数功能:对所有学生信息的遍历函数构思:首先判断顺序表是否为空,为空则返回ERROR ,操作失败。由于已知表长 length,所以可以通过 for 循环语句, length 为循环控制条件,依次输出顺序表中的学生信息。信息的查询/*/ int seek(Sqlist *q) /查找函数int e,i=0,j=q-l
13、ength; int choose; char s10; printf(1:学号查询 2:姓名查询 n); printf(请输入操作: ); scanf(%d,&choose); /分为学号查找和姓名查找switch(choose) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 36 页 - - - - - - - - - case 1: printf(输入所要查询的学号: ); scanf(%d,&e); while(q-elem i.number !=e) i+;
14、if(i=j) printf(没有该学生信息 !n); return ERROR; printf(学号: %d ,q-elemi.number ); printf(姓名: %s ,q-elemi.name ); printf(性别: %s ,q-elemi.sex ); printf(地址: %s ,q-elemi.adress); printf(电话号码: %sn,q-elemi.tlnumber ); return OK; case 2: printf(输入所要查询的姓名: ); scanf(%s,s); while(strcmp(q-elem i.name,s) i+; if(i=j)
15、printf(没有该学生信息 !n); return ERROR; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 36 页 - - - - - - - - - printf(学号: %d ,q-elemi.number ); printf(姓名: %s ,q-elemi.name ); printf(性别: %s ,q-elemi.sex ); printf(地址: %s n,q-elemi.adress); printf(电话号码: %sn,q-elemi.tlnum
16、ber ); return OK; return OK; /*/ 函数功能:学生信息的查询函数构思: 对学生信息的查询分为学号查询和姓名查询。这样做的好处为, 当我们只知道学生学号与姓名其中一个信息的时候就可以方便的查询到学生的全部信息。函数体首先提示用户选择查询方式,并通过switch ()语句判断用户想要通过什么方式查询信息。 学号查询所使用的是简单的数字的比较,判断学号是否相同,从而达到查找的目的。如果学号相同,则输出该学生的全部信息。否,则提示用户没有找到该学生的信息。姓名查找则是通过字符串比较函数strcmp() ,比较用户输入的字符串与数据库中的字符串是否有相同。若有,则输出该学生
17、全部信息。否,则提示用户没有找到该学生的信息。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 36 页 - - - - - - - - - 管理模块信息的删除/*/ int qdelete(Sqlist *q) /删除函数int e,i=0,j=q-length,k ; printf(输入所要删除的学号: ); scanf(%d,&e); while(q-elem i.number !=e) i+; if(i=j) printf(没有该学生信息 !n); return
18、ERROR; printf(学号: %d ,q-elemi.number ); printf(姓名: %s ,q-elemi.name ); printf(性别: %s ,q-elemi.sex ); printf(地址: %s ,q-elemi.adress); printf(电话号码: %sn,q-elemi.tlnumber ); k=j-i-1; while(k-) q-elem i=q-elem i+1; i+; (q-length)-; return OK; /*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名
19、师精心整理 - - - - - - - 第 11 页,共 36 页 - - - - - - - - - 函数功能:学生信息的删除函数构思: 想要删除学生信息, 首先需要找到该学生所在线性表的位置。函数通过比较学生学号的方式找到学生信息在顺序表中的位置。然后将该学生的信息输出。线性表中的删除就是简单的后面的数组信息覆盖前面的数组信息。所以只要控制好删除位置后面的数组元素前移的次数就可以达到对学生信息的删除。这里循环控制通过 while 语句, k 为顺序表长度减去删除位置再减一,i 控制数组元素。最后,顺序表长度减一,返回OK ,表示函数操作成功。信息的修改/*/ int alter(Sqlis
20、t *q) int e,i=0,j=q-length,choose,c; char s10,n10; printf(1:按学号查找并修改 2:按姓名查找并修改 n); printf(请输入操作: ); scanf(%d,&choose); switch(choose) /选择需要修改的信息case 1: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 36 页 - - - - - - - - - printf(输入所要查找的学号: ); scanf(%d,&e); wh
21、ile(q-elem i.number !=e) i+; if(i=j) printf(没有该学生信息 !n); return ERROR; printf(学号: %d ,q-elemi.number ); printf(姓名: %s ,q-elemi.name ); printf(性别: %s ,q-elemi.sex ); printf(地址: %s ,q-elemi.adress); printf(电话号码: %sn,q-elemi.tlnumber ); break; case 2: printf(输入所要查找的姓名: ); scanf(%s,s); while(strcmp(q-el
22、em i.name,s) i+; if(i=j) printf(没有该学生信息 !n); return ERROR; printf(学号: %d ,q-elemi.number ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 36 页 - - - - - - - - - printf(姓名: %s ,q-elemi.name ); printf(性别: %s ,q-elemi.sex ); printf(地址: %s ,q-elemi.adress); print
23、f(电话号码: %sn,q-elemi.tlnumber ); break; printf(1:修改学号 2 :修改姓名 3 :修改性别 4 :修改地址 5 :修改电话号码 n); printf(请输入操作: ); scanf(%d,&c); switch(c) case 1: printf(输入新的学号: ); scanf(%d,&(q-elemi.number); return OK; case 2: printf(输入新姓名: ); scanf(%s,n); strcpy(q-elem i.name,n); return OK; case 3: printf(输入性别: ); scanf
24、(%s,n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 36 页 - - - - - - - - - strcpy(q-elem i.sex,n); return OK; case 4: printf(输入新地址: ); scanf(%s,n); strcpy(q-elemi.adress,n); return OK; case 5: printf(输入新的电话号码: ); scanf(%s,n); strcpy(q-elemi.tlnumber,n); ret
25、urn OK; return OK; /*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 36 页 - - - - - - - - - 函数功能:修改学生信息函数构思: 同样,想要修改学生信息首先需要找到该学生的信息所在的位置。学生信息位置的查找跟上述学生信息查询函数的方式相同。为学号查找与姓名查找。查找到学生信息后,提示用户需要修改的项目,分别为学号、姓名、性别、地址以及电话号码。通过 seitch语句判断用户输入的数以知晓用户想要修改哪一项。提示以后输入新的数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年顺序表结构的学生信息管理系统 2022 顺序 结构 学生 信息管理 系统
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内