1、摘 要随着科学的发展社会的进步学校的规模也得到了扩大,学生人数也越来越多,信息量增大,信息管理也越来越困难。传统的低效率学生管理办法已经不能满足于当下大量信息快速处理的要求。同时计算机与网络技术的发展使电脑办公越来越成熟,所以设计一个学生管理系统提高学生管理效率使学生管理规范化系统化成为必要。学生管理系统是主要用Qt开发工具和C/C+计算机语言开发设计。学校管理员和教师可以通过该系统高效快速的对学生信息进行管理,学生通过该系统查询信息。本系统主要是信息管理系统分为学生模块和教师模块。教师模块实现有关学生信息的录入,录入信息主要包括学生的基本信息、学生所在班级和学生成绩等。学生模块主要是信息查询
2、,包括查询基本信息、所在班级、学生成绩。该系统有对学生信息的修改添加、删除、成绩排序等管理,也有对教师信息的管理。该系统要求实现操作简单便捷,处理信息快速、高效、灵活、实用。关键字:学生管理系统;计算机;信息管理;高效3ABSTRACTWith the development of science and the progress of the society of the school scale has been expanded, the number of students is more and more, also have multiplied the management of
3、 information.The low efficiency of traditional students management way already cant satisfied with the requirement of rapid processing of information.At the same time the development of computer and network technology makes the computer office is more and more mature, so to design a student manageme
4、nt system to improve students efficiency of management so that the students management standardization systematic become necessary.Student management system is mainly use Qt development tools and C/C + + computer language development design.The school administrators and teachers can through the syst
5、em efficient and fast to manage student information, student query information through this system.This system mainly is information management system is divided into student and teacher module.Teacher module implements the status of information input, including the basic information of the students
6、, a classroom, the courses and grades, etc.Students mainly information query module, including basic information query, class, student performance.The system is modified to add students, delete students, change passwords, student achievement sorting, etc.Requirements on the system operation is simpl
7、e and convenient, rapid, efficient, flexible, and processing information and practical.Key words:Student management system;computer;information management;efficient目 录第一章 引言61.1 系统开发背景61.2 系统开发目的71.3 开发意义7第二章 开发环境及开发工具82.1 硬件环境82.2 Qt Creator82.2.1 Qt Creator简介82.2.2 Qt Creator功能82.2.3 Qt Creator优点9
8、2.3 C语言介绍92.3.1 C语言起源92.3.2 C语言特性92.3.3 C语言的不足10第三章 系统需求分析113.1 系统功能需求113.1.1 添加功能123.1.2 删除功能123.1.3 修改功能133.1.4 查看功能133.1.5 学生排序133.2 系统性能需求133.3 系统操作需求133.4 系统安全需求143.5 资金需求143.6 系统可行性分析14第四章 系统模块设计154.1 设计目标154.2 项目规划154.3 系统流程图154.3.1 主界面设计模块154.3.2 管理员设计模块164.3.3 教师设计模块174.3.4 学生设计模块184.3.5 学生
9、管理系统界面18第五章 系统功能设计195.1 函数说明195.2 结构体说明205.2.1 学生结构体205.2.2 教师结构体215.3 链表说明215.3 功能函数设计流程图225.3.1 排序函数程序设计流程图225.3.2 查询函数程序设计流程图225.3.3 插入函数程序设计流程图235.3.4 删除函数程序设计流程图235.4 功能函数程序代码245.4.1 插入函数程序代码245.4.2 删除函数程序代码245.4.3 修改函数程序代码245.4.4 查找函数程序代码245.4.5 排序函数程序代码24第六章 系统功能实现256.1 学生排序256.1.1 按学号排序256.1
10、.2 按数学成绩排序256.2 添加学生266.3 删除学生276.4 修改学生276.5 查询学生286.5.1 按学号查找286.5.2 按姓名查找296.6 系统测试29结 语30参考文献31致 谢32附 录33第一章 引言学生管理系统是为学校处理学生信息而设计的工作高效,操作方便,处理信息快的学生信息管理系统。它主要应用者是学校管理者和大量学校的学生,对于学校的学生和管理者来说都有很大的影响。学生信息管理系统不仅用于学生用户信息查询,还用于学校管理者对学生信息管理,而且是一种高效便捷的手段。传统的人工管理办法管理学生人员信息有很多的缺点如:工作效率低、保密性差、更新时间长等对信息的查询
11、和信息管理造成了很大的不便。在社会发展,人类进步的同时,计算机也不甘落后,成熟的技术和完善的功能,使得用计算机管理人员信息得到了广泛的认可。计算机功能强大,运算速度快,管理效率高查询方便快捷也得到了越来越多的人认识,而且在社会的各个领域都加入了计算机运算。计算机的优势也越发的明显。用计算机来管理学生信息,有着与传统的人工管理所没有的优点,例如:查询方便快捷、及时快速更新、安全可靠、实用价值高成本费用低等。即计算机的运用大大的提高了学生信息管理的效率,也促进了学校的科学化、正规化、系统化管理,提高了学校现代化的管理水平。因此开发这个学生信息管理系统很有必要。1.1 系统开发背景随着科技的发展,计
12、算机已由原来封闭的分立式发展成为了网络式并且已经成为现代信息技术的主要媒介。随着互联网技术的出现和应用软件的开发,计算机已经在人们生活中不可或缺。现在的计算机向着小体积、低价格、强功能的方向发展。计算机的普及给人们的生活方式带来了改变,进入办公室改变了办公方式提高了办公的效率,进入家庭也同样改变了人们的生活习惯。便携式微型计算机的不断涌现,使计算机不可逆转的迅速普及。将分散的计算机通过电缆线或无线电波互相连接,组成了一个庞大的计算机网络,网络化使得各种分散的资源信息得到共享提高了计算机实际效用。例如通过网络人们便可以足不出户而知天下事。计算机应用成为现代化不可缺少的一部分,目前计算机还在向着人
13、工智能方向发展,实现高效自动办公,来大大提高办公效率。开发相应的办公软件使用计算机办公更加快捷,方便。网络的功能越来越强大,许多学校都在建设自己的网络系统,实现办公自动化、管理科学化等。但是目前许多学校计算机管理利用率却不是很高,主要原因缺少应用平台。因此要开发出一套功能完善、操作简单的学生管理系统,以提高学校学生信息管理水平。1.2 系统开发目的编写本文档是为了对此项目能有个总体的认识,使该项目有个设计方向,不至于浪费人力物力而白费功夫,从而达到节约时间节省经费的目的。该项目为学生信息管理系统,由于现有大多数软件在许多方面有不足如:只能实现学生基本的信息添加、删除、查询等,而不知道排名,在排
14、序方面有所不足等。在教师方面根本就不能做到完全对学生信息进行维护。因此该项目除了实现学生的基本信息如:添加、删除、查询、班级等,还添加了新的排序功能,可以根据学生各科目学习成绩高低进行自动排名。不再需要为了给学生成绩排名而一个一个的查询学生成绩进行对比,进而提高了工作效率。而且系统的保密性和规范化减少了因人为因素带来的错误和舞弊的可能。该系统的开发主要运用到的开发工具有C语言和Qt Creator,涉及到许多相关函数,结构体等内容。1.3 系统开发意义在我国许多地区自动化水平不是很高,许多中小学还停留在人工管理基础上,需要浪费大量的人力资源来整理学生档案而且容易出现人为错误,还要浪费大量的纸张
15、等物力资源。这个落后于时代的管理机制不利于现在的可持续发展,为了适应信息时代的发展,开发新的学生管理系统意义重大。传统的人工管理机制必将被以计算机为基础的信息管理办法所取代。为了提高学生信息管理的工作效率,我编写的学生管理系统优点主要优点有:可以增、删、改、查学生的相关信息,安全性好、效率高;不许要太多的工作人员,而且工作轻松只需要查询或录入人员信息;能够给学生按成绩高低排序。第二章 开发环境及开发工具2.1 硬件环境硬件环境,主要是处理器为:Inter(R) Core(TM) i3-2348M CPU 2.3 GHZ;RAM大小为:4.00GB;磁盘大小:500G;分辨率800*600的(3
16、2位)的笔记本。也可以根据需要选择配置更高的计算机。2.2 Qt Creator2.2.1 Qt Creator简介Qt Creator是一个开发工具应用软件,是为了程序员开发软件提供工具和开发环境。Qt Creator是一款集成开发环境平台(IDE),此开发环境有跨平台运行功能还支持多系统包括Linux(32和64位)、Mas OS X以及Windows等优势使程序开发人员编程更加容易快速。Qt Creator作为一个程序开发工具软件其功能强大,操作简单易懂,目的是帮助开发人员能够利用Qt Creator这个开发应用软件和Qt应用程序框架,更好更快的编写程序开发软件,完成开发任务。Qt Cr
17、eator的功能非常强大,包含了项目生成向导、编译器、浏览文件及类的工具、Qt Designer、Qt Assistant、Qt Linguist、图形化的GDB调试前端、集成Qmake构建工具等,还包含有大量的C+代码,提高开发人员的工作效率。2.2.2 Qt Creator功能Qt Creator能够按照用户需要创建相应的工程也可以直接的导入已经存在的工程文件。然后Qt Creator根据用户需求所创建的工程类型生成相应的文件。例如:创建一个图形界面的应用程序,Qt Creator会有相应的必备文件.ui生成。我们可以通过Qt Designer对.ui文件进行修改,修改.ui即可以直接在图
18、形界面上修改也可以修改相应的程序,当两方修改有冲突时系统会自动以程序的修改为准。Qt Creator是由一个代码编辑器和一个集成的Qt Designer两部分组成。所以Qt Creator有编译器的功能可以方便快捷的编写和改写程序,调试,运行,不同于一般的文本编译器。Qt Designer是用来从Qt组件设计和创建图形用户界面。作为一个功能强大的集成开发环境,Qt Creator还可以理解一个C+和QML语言作为代码而不只是纯文本文件的人工智能。因此Qt Creator可以让我们能写出良好格式的代码、在编写程序时预测想要输入的内容,进而自动完成代码输入、显示内联错误和警告信息,使程序的编写更加
19、高效快捷。2.2.3 Qt Creator优点Qt Creator优点是它允许一个开发团队在不同的开发平台上共同开发调试一个项目。这一点方便了团队开发人员团体协作和大项目的开发。可以创建工程,运行仿真。创建工程的目的是为了创建和运行应用程序,因为Qt Creator作为编译器,编写的程序调试运行时需要相同的信息。而这个信息就是在工程创建时和程序运行设置中指定的。创建一个工程的时候可以文件分组,可以添加自定义创建步骤,其包含了框架界面文件和资源文件还有指明程序运行配置。2.3 C语言介绍C语言是一种计算机语言,用C语言编写函数来实现相应的功能达到人与计算机的沟通目的。也是一种功能强大通用性好的过
20、程式编程语言。C语言可以用于开发系统和应用软件。结合汇编语言其功能功能更加强大。C语言运行速度快效率较高可以用于系统的开发如windows、UNIX系统都运用了C语言;结构多样,能够灵活的表达相应。2.3.1 C语言起源C语言是丹尼斯里奇(Dennis Ritchie)在1970年发明的,与Ken Thompson开发的B语言相比功能得到了完善。B语言是在美国贝尔实验室设计出来并用于编写第一个UNIX操作系统,在程序数据处理机PDP上得以实现。B语言精简雅致,靠近硬件,但是过于简单,没有数据类型,许多功能都不能实现存在很多缺点。2.3.2 C语言特性C语言是一门强大而发展速度快的计算机语言,是
21、当今使用最广泛的编程语言之一。很多系统软件,如PC-DOS,DBASE 等都是通过C语言编写的。C语言编程时可以加上一些汇编语言子程序,使语言功能更加强大显示出C的优势所在。C语言的特性有以下几点:1.C是中级语言。它有高级语言的基本语句结构也有低级语言的实用性。C语言也可以象汇编语言一样对计算机最基本的单元进行操作,例如对位、字节和地址等进行操作。2.C是结构式语言。用C语言编程时,代码和数据的空间是分开的。C语言程序的结构化使得程序层次明显,方便调用、调试与维护。C 语言通常按功能模块编写函数,可以直接调用,通过循环和条件语句控制程序函数执行,使程序更加彻底的结构化。3.C语言功能完善。C
22、语言的数据类型多样,还有指针的使用,程序效率高。有图形功能支持多种显示器和驱动器。而且还有决策功能可以进行计算和逻辑判断等。4. C语言适用范围广泛。C语言不仅可以在不同的种操作系统上使用,如DOS、UNIX,而且还适用于不同的机型。2.3.3 C语言的不足1.C语言在数据的封装上存在不足,这使得C语言在数据的安全性上有局限性,这也是有别于C+的地方。 2. C语言并没有严格意义上的语法限制,因此对变量的类型约束不是严格,通常对数组下标越界的检查不严等从而有一定的安全隐患。从而在应用层面上C语言比起其它高级语言困难。3.指针是C语言中一大特色,接近硬件,对硬件进行操作时,优于其它高级语言,但是
23、存在着安全隐患,带来了很多不安全因素。C+就在这方面做了改进,在保留了指针操作的同时又强调了安全性。而Java取消了指针操作,来提高安全性。第三章 系统需求分析学生管理系统是一个简单的系统,不许要多复杂的设计,所以在编写学生信息管理系统时,要根据功能需求和学校的实际情况。不能盲目的编写加入不必要的功能节省开支避免资源的浪费。从目前学校的无纸质化管理,管理系统主要要求达到的功能有插入学生,由管理员和老师对学生进行录入;删除学生,由管理员对学生删除;更新学生,由管理员对学生信息进行修改和给学生排序等。3.1 系统功能需求如图1,学生管理系统的总体功能框图。有对学生信息的管理和对教师信息的管理,其功
24、能对学生可分为添加学生、修改学生、删除学生、查找学生、给学生排序;对教师有添加教师、删除教师、查询教师等功能。图1 学生管理系统总体功能框图如图2,为学生管理系统的学生模块,其学生模块功能有对学生的插入、删除、更新和排序等功能。管理员和教师都可以对学生模块功能进行操作。图2 学生管理模块功能教师管理模块如图3对教师的管理,功能分为四个部分分别为管理员对教师的添加、删除、修改和查找等。查找有多中方式,如查找教师时可以根据个人情况按照工号或者姓名查找。修改时也可以修改不同的信息,如修改教师姓名、修改班级等可以根据需要增加更多的功能。图3 教师管理模块功能3.1.1 添加功能因为管理员可以对所有用户
25、进行管理包括学生和教师,所以添加时系统管理员可以添加学生也可以添加教师,而教师不能对教师进行管理,只能管理学生即添加学生。当添加学生时,用户在添加输入框中输入学生信息包括姓名、学号、成绩、名次、密码、班级等,用户核查无误后确认,将数据添加到文件中。当添加教师时,管理员输入教师信息包括姓名、工号、班级、密码等,用户核查无误后确认,将数据添加到文件中。3.1.2 删除功能管理员要对所有用户进行管理包括教师和学生,教师只对学生的信息进行管理,所以删除时系统管理员可以对学生也可以对教师进行操作,而教师有权限不能对教师和学生进行操作此功能,只能由管理员操作。当管理员要删除学生时,首先要查看是否有该学生,
26、有则输入学生学号,查询并把文件中的信息读到一个数组中进行操作然后写入文件该记录。当管理员要删除教师时,首先要检查该教师是否存在,若存在则输入教师工号,查询并把文件中的信息读到一个数组中删除然后写入文件该记录。3.1.3 修改功能管理员可以对系统所有用户进行管理操作,包括教师和学生。如管理员对学生进行修改时,首先要确定该生是否存在若存在则可以对此学生进行修改信息的操作。当教师对学生信息进行管理操作时也要确保系统中该学生存在。而管理员还可以对教师进行管理操作也可以修改教师信息。3.1.4 查看功能查询功能可以分为管理员查看学生信息、管理员查看教师信息和教师查询学生信息。如管理员查询学生信息,首先要
27、确定该学生是否存在,若不存在则不能查询,若存在则可以根据输入对应的学号来查询该学生的信息。3.1.5 学生排序可以根据不同的方式给学生排序,如按照学号从大到小排序按顺序显示出所有学生信息。也可以根据学生成绩从大到小排序按成绩高低显示出所有学生信息等。3.2 系统性能需求作为一个学生信息管理系统,需要记录大量的学生信息,而这些学生信息又要给人员查询和修改,必需要建相关文件来储存信息。系统要求稳定,编程时边界值设定要清楚。3.3 系统操作需求教师及管理员并不都是专业的计算机人员,要能够方便的管理学生信息,就要有简单易懂的管理操作界面。例如能够比较快速地找到一个学生的信息,学校管理人员主要通过简单的
28、人机界面,根据需要进行访问信息管理系统相应学生信息。不同的功能要选择不同的信息管理界面来操作。有时要实现一种功能也有多中方式,如排序就有按学号或学生成绩排序的。查找也有按学号和姓名查找学生的等。3.4 系统安全需求学生信息管理系统将用户分为三级。一级用户为管理员,可以对所有用户信息进行管理;二级用户为教师,只能对学生用户进行管理;三级用户是学生也是用户的主体,但是有很大的限制只能对学生信息进行相关的查询。管理员为系统管理方,对系统的管理操作没有限制。对系统中所有人员信息增、删、改、查各功能进行管理。教师的管理范围有所限制只针对自己相应的班和院系进行管理,这是为了提高信息上传的效率,而将学生录入
29、工作分别下放到各个院系部。各院系部管理教师具有对本院系部的部分管理使用权限,相当于普通管理员的身份。教师不具有更新、和删除档案的权限,但是为方便管理教师拥有信息反馈的权限。第三方为学生用户,学生只能查看个人的基本信息,该系统对学生有很大的限制。用户权限必须要管理员分配,不向其他用户提供访问,具有一定的安全性。3.5 资金需求学校不是一个营利性组织,项目主要经费来源是上级单位拨款,所以开发系统要把节省费用成本问题考虑进来,而本系统比较容易维护,管理起来不要多少人力,可以节省工资,所需费用主要有几个方面。如购买和安装设备的费用:计算机硬件、系统软件、电源等;软件开发费用:因为是在学校而且系统也比较
30、简单所需技术人员基本上本校工作人员就可以完成,而这项开发费用可节省下来算在人员工资中;人员费用:主要有系统开发、系统操作和维护人员的工资、工作培训费用等;消耗品费用:系统开发时所用材料和系统正常运行时的消耗,例如所用电费,打印所需纸张和开发软件工具等开支;因为许多学校都有校园网可以将管理系统直接建立在其上,部分开支忽略不计。其它费用,对于学校管理信息系统则应着重分析其所产生的工作效率。例如,系统正常运行后可以带来哪些方便,能够方便提供哪些以前无法及时提供的信息,用户查询和使用信息的方便程度提高多少、速度增加了多少,对于管理人员进行决策提供了多少帮助等等。3.6 系统可行性分析可行性分析主要研究
31、的目的主要是花最小代价能够在一定尽可能的时间内确定问题能否解决。由于该管理系统并不复杂,可以在Windows环境使用比较经济。本系统无太多复杂操作要求操作简单运用自如。从此种情况来看,本系统的建立在费用,时间和技术上来讲是可行。所需要的开发成本也不是很高。第四章 系统模块设计4.1 设计目标该系统的设计目标是减少不必要的资源,节省学校资源。不用像传统的用纸张管理,冗余、更新速度慢、耗时。用计算机管理信息大大提高了学生信息管理的效率。首要目标是提高学生信息管理的准确性,即在编程时要注意变量有取值范围分析来提高准确性。其次要有方便快捷的操作,减少了信息管理上的人为失误,即可以通过相应的功能函数来时
32、现。学生管理系统不需要很多的工作人员,而且操作简单,效率高,可以为学校省掉许多不必要的支出。所以设计要以少量的人轻松做出大量的工作,方便人员管理,减少工资支出为目标。4.2 项目规划学生信息管理系统是学校不可缺少的一部分,该系统主要包括用户登录;管理员对用户信息进行增、删、改、查、排序等管理;教师对学生进行修改、查询和排序等管理;学生对自己信息进行查询等几个页面。因此此系统具有较强的使用性。学生信息管理系统的用户主要分为三个级别,第一级为管理员管理所有用户模块、第二级为教师管理学生模块和第三级为学生查询自己信息模块。4.3 系统流程图学生信息管理系统界面主要有主界面登录模块、管理员界面管理模块
33、、教师界面管理模块、学生信息查询模块等。4.3.1 主界面设计模块主界面模块有4个选项,选项0为退出系统,选项1为管理员登录系统,选项2为教师登录系统,选项3为学生登录系统,如图4流程图,由主界面进入登录选择,当选择执行序号输入1即管理员登录则进入管理员界面,在管理员界面再选择,要退出选择0,返回上一层选择2,登录系统则输入相应密码。由主界面进入登录选择,当选择执行序号为2时即教师登录则进入教师登录界面,在教师登录界面再选择,要退出选择0,返回上一层选择2。要登录系统则应输入对应的登录密码。如由主界面进入登录选择,选择3进入学生登录界面,在学生登录界面再选择,要退出选择0,返回上一层选择2。要
34、登录信息系统则应首先选择要登录用户的类型输入相应的执行序号,然后输入对应用户名和密码。由主界面进入登录系统,选择0则退出登录界面。图4主界面模块设计流程图4.3.2 管理员设计模块如图5,管理员模块管理系统所有用户成员信息,拥有对系统的所有操作权,即可以对学生信息进行管理也可以对教师信息进行管理。管理员可以进行插入、删除、修改查询、排序等对用户的所有管理操作。图5 管理员模块界面设计流程图4.3.3 教师界面模块如图6,教师模块只能对学生进行管理,拥有部分管理权限。但教师模块中没有删除学生的功能项,教师相当于一个拥有部分权限的管理员仅对学生模块进行管理。图6 教师模块界面设计流程图4.3.4
35、学生界面模块学生模块如图7,由于是学生管理系统要对学生信息进行管理所以学生操作受到了很大的限制,学生只能查询自己的信息,修改姓名、密码等基本信息。图7 学生模块界面设计流程图4.3.5 学生管理系统界面模块图8 学生管理系统界面设计流程图第五章 系统功能设计5.1 函数说明表1 编写程序中相关函数说明函数名称函数功能参数返回值creatStuLin创建学生信息链表无前一节点creatTchLin创建教师信息链表无前一节点stuSortLan按语文成绩排序链表头节点已经移动好的节点地址stuSortRank按名次排序链表头节点已经移动好的节点地址displayStuSort按排序显示链表中学生链
36、表头节点排序种类代号无compareLan比较节点中的语文成绩两个学生链表节点1为大于0为小于findStuClass按班级查找学生链表头节点查找班级没有则返回NULL有则返回相应节点地址findStuName按姓名查找学生链表头节点查找的姓名没有则返回NULL有则返回相应节点地址findStuID按学号查找链表头节点查找的学号没有则返回NULL有则返回相应节点地址modifyStuRank修改学生名次链表头节点返回链表头节点modifyStuLan修改学生语文成绩链表头节点返回链表头节点assignStuC学生C语言成绩重新赋值学生指针C语言成绩学生指针modifyStuC修改学生C语言成绩
37、链表头节点链表头节点modifyStuPassWd修改学生密码链表头节点链表头节点modifyStuName修改学生姓名链表头节点链表头节点stuModifyStu学生修改学生链表头节点要修改的代号链表头节点tchModifyStu教师修改学生链表头节点要修改的代号链表头节点续表1adminModifyStu管理员修改学生链表头节点要修改的代号链表头节点deleteStu管理员删除学生链表头节点表头指针addStu管理员添加学生链表头节点表头指针writeStuLin链表数据写入文件链表头节点无findTchClass按班级查找教师链表头节点所查班级有则返回表头指针无则返回NULLmodify
38、TchClass修改教师班级链表头节点不存在教师返回NULL存在返回表头指针5.2 结构体说明5.2.1 学生结构体如下程序为定义的学生结构体,可知学生结构体包含有学生的所有信息成员,如学生的学号、学生的姓名、学生密码、学生年龄、学生所在班级、学生各科的成绩等定义如下。学生结构体程序:typedef struct nodeint stuId;/学生学号char *name;/学生姓名char *passWd;/学生密码int age;/学生年龄int sclass;/学生所在班级int scoreM;/学生各科成绩int scoreC;int scoreL;int rank;struct no
39、de *prior;struct node *next;sNode,*student;5.2.2 教师结构体如下程序为定义的教师结构体,结构体中包含了教师信息的所有成员如:教师工号、教师登录密码、教师的班级和教师姓名等。教师结构体程序:typedef struct tnodeint tchId;/教师工号char *name;/教师姓名char *passWd;/教师登录密码int tclass;/教师所在班级struct tnode *prior;struct tnode *next;tNode,*teacher;5.3 链表说明链表是一种特殊的线性表,由于链表不要求逻辑上相邻元素在物理位置
40、上也相邻,即有链式结构,所以它没有顺序存储结构在做插入时需要移动大量元素的弱点。单链表不好确定确定前驱元素的位置。希望快速确定表中任何一个元素的前驱和后继元素所在单元。双链表的节点中有两个指针部分,一个指向后面元素,一个指向前面元素,如图9所示。所以双链表可以直接确定一个单元的前驱单元和后继单元,用一种更自然的方式表示元素的位置,即用指向双链表中第i个单元而不是指向其前一个单元的的指针来表示的第i个位置。图9 双链表示意图双链表的单元类型定义如下:typedef struct tnodeelemtype data;struct tnode *prior;struct tnode *next;t
41、Node,*teacher;5.3 功能函数设计流程图5.3.1 排序函数程序设计流程图排序方式采用冒泡排序,冒泡排序函数流程图如图10所示给10个数字进行冒泡排序的程序设计流程图。图10 冒泡排序流程图5.3.2 查询函数程序设计流程图查找元素,首先判断其元素是否存在,若存在则进行查找运算,如图11。例如要查找(按学号查找)学生信息,则首先要判断学生链表中是否有该学生,若有则进行查找运算,显示出要查找学生的信息。 图11 查询功能函数设计流程图 图12 插入函数设计流程图5.3.3 插入函数程序设计流程图插入成员时,要判断位置是否合法,若合法进行插入运算如图12。例如要插入学生,首先要判断其
42、是否存在,若存在,则不能插入。即插入失败。5.3.4 删除函数程序设计流程图删除元素函数流程图如图13判断位置是否合法,若合法进行删除运算。如管理员删除学生(按学号查找删除),函数参数是学生链表头结点,通过移动指针删除相应学号的学生。图13 删除函数程序设计流程图5.4 功能函数程序代码5.4.1 插入函数程序代码见附录中插入函数部分。5.4.2 删除函数程序代码见附录中删除部分函数。5.4.3 修改函数程序代码见附录中修改部分函数。5.4.4 查找函数程序代码见附录中查找部分函数。5.4.5 排序函数程序代码见附录中排序部分函数第六章 系统功能实现6.1 学生排序6.1.1 按学号排序学生排
43、序界面如图14,要按学号排序则选择执行序号1,然后查看全部学生则学生的排列是按学号的大小顺序而排,如图15,学生按学号从小到大排列顺序,即正确。图14 排序界面图15 学生按学号排列6.1.2 按数学成绩排序学生要按数学成绩排列,如图14,应选择执行序号3排序学生,然后查看全部学生排列顺序如图16,学生信息均按照数学成绩从低到高的顺序排列,即正确。图16 学生按数学成绩排列6.2 添加学生要添加学生首先进入到学生管理系统中的学生管理页面如图17,然后在选择执行序号中选择1添加学生,则就会出现要添加添加学生的学号、姓名、密码、年龄、班级、数学成绩、C语言成绩、语文成绩和名次的输入框如图18。在添
44、加学生输入框中根据要求填入要添加学生的信息。然后查看所有学生信息是否成功加入其中,如图19,与图15比较多了一个添加学生,即添加学生成功。或者直接查询该添加的学生是否存在,如果能够查找到则添加学生则成功如果不能查找到添加学生则添加失败。图17 学生管理选择页面图 18 学生信息输入框图19 添加后显示所有学生信息6.3 删除学生要删除学生首先要进入到学生管理系统的学生管理页面如图17,选择执行序号2,删除学生,在输入框如图20中输入要删除学生的学号1,然后查看全部的学生信息如图21与图19比较,发现没有了学号为1001的学生,即成功删除该学生。图 20 删除学生学号输入框图 21 删除学生后全
45、部学生信息6.4 修改学生要修改学生信息首先要进入学生管理页面如图17,在学生管理页面上选择执行序号3修改学生信息。进入修改页面如图22,选择执行序号6,修改数学成绩,在输入框中输入要修改学生学号1002,然后输入新的数学成绩100如图23,再查看学号为1002的学生信息,如图24,则信息与图21比较学号为1002的学生数学成绩已经成功修改为新的成绩。图22 学生修改页面图23 信息输入框图24 更改数学成绩后学生信息6.5 查询学生要想查找学生信息,首先要进入学生管理系统的学生管理页面如图17,选择执行序号4查找学生,进入查找学生页面如图25,图25 学生查找页面6.5.1 按学号查找要按学
46、号查询学生信息,则首先进入查找页面如图25,在查找页面上选择执行序号1按学号查找,如图26输入要查找学生的学号1003运行,显示出了学生学号为1003的学生信息,即按学号查找学生正确。图26 按学号查找6.5.2 按姓名查找要按姓名查找信息,首先进入查找页面如图17,选择执行序号2按姓名查找,然后输入要查找学生姓名如图27运行,则得到相应的姓名学生的信息,即正确。图27 按姓名查找6.6 系统测试该系统通过以上增、删、改、查等功能的测试即正确。系统的三方用户类型有管理员、教师、学生。管理员具有具有对学生和教师所有信息的增、删、该、查的权限,教师有部分权限对学生的增、该、查。学生只有对自己的信息查看和部分信息更改。三方用户都按照6.5中的测试符合程序要求即正确。结 语我们要根据学校的实际情况来设计符合学校要求的学生信息管理系统,满足对学校学生信息管理的需要。设计