学生成绩管理系统_课程设计报告书
- 格式:doc
- 大小:1.36 MB
- 文档页数:38
课程设计课程名称:题目名称:学生成绩管理系统学生学院:专业班级:学号:学生姓名:指导教师:2011年1月4日摘要为了方便和规范教师对学生成绩的管理,方便学生能及时、快速的查找自己的课程信息和成绩,我们设计了这个系统。
这个系统前台使用VB语言,后台使用ACCESS建表,用ActiveX数据对象(ADO)为数据访问接口来实现应用程序与数据库的连接。
该系统主要包括以下四个模块,分别为用户管理模块,学生基本信息管理模块,课程基本信息管理模块和学生成绩管理模块。
可以实现对数据库中表的内容的修改、查询、删除等功能。
用户管理模块可以对用户名和密码进行添加和修改。
学生基本信息管理模块可以对学生基本信息加以添加、查询、修改、删除。
课程基本信息管理模块又包括对专业课程信息管理和选修课程信息管理。
分别可以实现对课程的添加、查询、修改、删除功能。
学生成绩管理模块包括专业课成绩管理和选修课成绩管理,可以对学生的成绩加以管理。
由于在数据库中建立了表的关系,当数据库中学生表没有这个学生基本信息就不能对该学生添加课程等信息,以防止输入错误的信息。
关键词:VB、ACCESS、学生成绩管理系统目录第一章问题描述 (1)1.1学生成绩管理系统的用途与需求 (1)1.2 学生成绩管理系统简介 (1)1.3数据需求 (1)1.4事务需求 (2)1.5 系统开发平台 (3)1.5.1硬件要求: (3)1.5.2软件要求: (3)第二章解决方案 (4)2.1 E-R模型设计 (4)2.1.1 实体列表 (4)2.1.2 系统的E-R模型 (4)2.2 设计数据库 (5)2.2.1创建数据库 (5)2.2.2创建数据表 (5)第三章系统实现 (7)3.1开发环境 (7)3.2系统流程图 (7)图3-1系统流程图 (7)3.3 程序调试情况 (8)3.4 功能显示 (9)3.5遇到的问题及解决方法 (14)结束语 (15)参考文献 (16)指导教师评语及成绩 (17)第一章问题描述1.1学生成绩管理系统的用途与需求开发一个学生成绩管理数据库的目的,主要是对查询学生成绩过程中的所有信息进行更加科学、规范和有效的综合管理,是为了让同学们能在任何时候都能查阅到有关自己学科成绩有关的信息,也有利于让他们充分了解有关自己在大学期间所有课程的学习情况,提高查询速度。
学生成绩管理系统-课程设计报告学生成绩管理系统-课程设计报告一、引言学生成绩管理系统是一种能够方便高效地管理学生学业成绩的软件系统。
随着教育信息化的发展,学生成绩管理系统已经成为各个学校和教育机构不可或缺的一部分。
本课程设计报告旨在设计和实现一款学生成绩管理系统,以满足学校对学生成绩管理的需求。
二、系统需求分析1.学生信息管理:系统需要能够存储学生的基本信息,包括学号、姓名、性别、年级等。
2.课程管理:系统需要能够管理学校的各门课程信息,包括课程名称、授课教师、学分等。
3.成绩录入:系统需要能够录入学生的成绩信息,包括学生学号、课程名称、成绩等。
4.成绩查询:系统需要提供成绩查询功能,学生和教师能够通过系统查询学生的成绩。
5.成绩统计:系统需要能够对学生的成绩进行统计和分析,包括计算平均成绩、最高分、最低分等。
6.成绩报表:系统需要能够生成成绩报表,以便学校和教师能够查看学生成绩的总体情况。
三、系统设计1.数据库设计:设计一个学生表和一个课程表,学生表包括学生的学号、姓名、性别、年级等信息,课程表包括课程的名称、授课教师、学分等信息。
成绩信息通过学生表和课程表建立关联关系。
2.用户界面设计:设计一个用户友好的界面,包括学生登录界面、教师登录界面和管理员登录界面。
学生能够查询个人成绩和课程信息,教师能够录入学生成绩和查询学生成绩,管理员能够管理学生和课程信息。
3.功能模块设计:将系统划分为学生管理模块、课程管理模块、成绩录入模块、成绩查询模块、成绩统计模块和成绩报表模块。
每个模块实现相应的功能,模块之间通过接口进行数据交互。
四、系统实现本系统采用Java语言和MySQL数据库进行开发。
使用Java技术实现用户界面和功能模块,使用MySQL数据库存储学生、课程和成绩信息。
五、系统测试与调试进行系统测试,包括功能测试、性能测试和稳定性测试。
通过测试发现并修复系统中存在的问题,确保系统能够正常运行。
六、系统部署与维护将系统部署到学校的服务器上,并进行系统维护工作,包括定期备份数据、更新系统版本等。
目录1、需求与功能分析32、系统总体框架43、模块设计与分析44、类的设计与分析65、特色算法分析767891、需求与功能分析(1)需求分析学生成绩管理系统主要提供成绩查询,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己相关信息,查看留言、提交留言。
教师可以通过成绩管理系统查阅学生成绩信息,教师信息,查看教师留言、学生留言、提交留言、留言的管理等相关操作。
系统管理员可以实现以上的所有功能,还有对学生的添加、删除、修改、教师的添加、删除、修改,数据库的备份、数据库的还原等相关操作。
根据开发要求,学生成绩管理系统主要应用于教育系统,完成对日常的教学、教务、教师以及学生的计算机化的管理。
开发学生成绩管理系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,(2?“2、系统总体框架3(1)行录入。
输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。
(2)输出学生资料模块:主要功能用来对学生的成绩进行输出。
在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。
具体包括学生的班级,学号,姓名和各科成绩。
在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。
(3)按学生姓名进行排列模块主要功能是用来对学生的资料按姓名进行排序。
在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按姓名进行排序,这样就方便查找姓氏相同或是相近的同学的资料。
(4)添加学生资料模块主要功能是用来添加学生资料,成绩。
如果系统有保存学生资料的情况下,想录入学生成绩(5可以输入(6(7成绩等信息。
(8)从文件中读入数据模块主要功能是用来从文件中读入学生数据。
由于一些资料可以用Word文档或Excel表格输入,故在此模块中增加了导入数据的功能。
这样就方便很多,不用把学生资料一个一个添加,节省了很多时间精力。
学生成绩管理课程设计报告_学生成绩管理课程设计报告学生成绩管理课程设计报告的撰写要设计很多个方面,但是有些关于技术层面的东西是比较难用文字描述,有的东西需要通过图表的形式呈现更加好,下面是一份关于学生成绩管理课程设计报告的内容:首先,主题描述管理内容包括:学生人数、姓名、班级、五门课程的成绩。
主要功能是:添加、修改、删除、读取、写入、查找、排序、计算总分、平均分、小计等。
编写代码并运行程序后,将出现以下参考界面:绩效管理=== == =1。
输入学生成绩2。
修改学生成绩3。
删除学生成绩4。
计算每个学生的总分。
计算每个学生的平均分数。
按学生编号或姓名查询学生成绩7。
按班级查询学生成绩。
排名成绩9。
选择(1~9, 0:退出): 第二,开发基于需求分析的学生成绩管理系统的目的主要是对学生成绩查询过程中的所有信息进行更加科学、规范和有效的综合管理。
它使学生能够随时获取有关其学业成绩的相关信息,也有利于他们充分了解自己在大学期间对所有课程的学习情况,提高查询速度。
学生成绩管理系统主要包括期末成绩管理、具体查询等。
系统还提供学生相关基本信息的统计、汇总和查询,方便学校领导对学生的管理,提高管理质量和管理效率,包括每个学生在校期间的基本情况和课程成绩汇总。
该系统采用面向对象的功能实现学生成绩的管理。
主要功能是管理学生的基本信息、成绩课程等。
查询、修改和删除每个学生的基本信息、专业成绩信息、选修课成绩信息和课程信息。
系统的结构分为学生基本情况管理模块、学生成绩管理模块和学生课程管理模块。
这是一个非常实用的编程示例。
编程要求非常详细,内容也比较多,有一定的难度。
首先,学生记录是一个复杂的数据结构,它至少应该包括学生人数、姓名、性别和年级。
因此,必须建立一个班级学生来记录班级、学生人数、姓名和年级。
此外,必须建立类对象数组s1[80]来记录多个学生的分数。
模块设计和分析(1)输入学生数据模块:主要功能是收集和输入学生的分数。
课程设计报告-学生成绩管理系统
学生成绩管理系统是一种用于记录学生成绩,查询学生成绩变动,以及分析学生成绩的系统。
在实际的教学管理中,有效的学生成绩管理系统不仅可以带来教师更便捷地管理学生成绩,更能及时地特别关注弱势学生能力的提高。
本项目设计一套学生成绩管理系统,主要包括3大模块:成绩管理模块、查询统计模块和分析调整模块。
在成绩管理模块中,主要实现学生成绩的登记汇总、信息修改,以及增删改查的功能。
在查询统计模块中,实现学生成绩的查询,对几个班级的成绩情况进行汇总统计,自动根据学生成绩给学生评定等级,如优秀、良好、及格等。
最后分析调整模块中,可以通过学生成绩的分布状况,进行信息可视化分析,有效发现学生的学习薄弱环节,加强教学管理,为学生提供合理的帮助。
本项目实现了基于C/S模式的学生成绩管理系统,使用MySQL等关系型数据库来存储学生成绩数据,用Java Swing的图形用户界面实现了用户的操作,包括界面的设计和功能的实现。
本系统可以有效地管理学生的成绩,极大地提高了教学质量,便于教师对学生学习情况进行及时的反馈与调整,以及定期查看学生成绩变化,方便教学管理者实施有效的督促措施。
同时,本系统也可以为学生自我评估和成绩分析提供有效的工具,从而有效提升学生的学习效率。
学生成绩管理系统c++课程设计报告一、引言学生成绩管理系统是一种在学校教学管理中广泛应用的软件系统,用于记录和管理学生的考试成绩、课程信息等。
本课程设计旨在利用C++语言设计并实现一个简单的学生成绩管理系统,以加深对C++编程语言的理解和应用。
二、系统设计1. 系统功能•添加学生信息:包括学生姓名、学号、班级等。
•删除学生信息:根据学号删除学生信息。
•查询学生成绩:输入学号查询学生的考试成绩。
•修改学生成绩:根据学号修改学生的考试成绩。
•显示所有学生信息:以表格形式展示所有学生的信息。
2. 类设计在设计学生成绩管理系统时,需要设计以下几个类:(1)学生类class Student {private:string name;int id;string className;float score;public:// 构造函数Student(string n, int i, string c, float s);// 获取学生信息void displayInfo();// 获取学生成绩float getScore();// 修改学生成绩void modifyScore(float s);};(2)学生管理类class StudentManager {private:vector<Student> students;public:// 添加学生信息void addStudent(Student s);// 删除学生信息void deleteStudent(int id);// 查询学生成绩void queryScore(int id);// 修改学生成绩void modifyScore(int id, float score);// 显示所有学生信息void displayAll();};三、系统实现1. 主函数主函数实现了与用户的基本交互,包括菜单的显示和选项的选择。
```cpp int main() { StudentManager sm; int choice; while (true) { // 显示菜单cout <<。
学生成绩系统管理课程设计总结报告一、引言学生成绩管理系统是一种用于管理学生成绩信息的软件系统,它可以帮助学校、教师和学生更好地管理和分析学生成绩数据。
本课程设计旨在设计和实现一个学生成绩管理系统,以提高学生成绩管理的效率和准确性。
二、需求分析在设计学生成绩管理系统之前,我们首先进行了需求分析。
根据实际需求,我们确定了以下功能:1. 学生信息管理:包括学生基本信息的录入、修改和删除。
2. 课程信息管理:包括课程基本信息的录入、修改和删除。
3. 成绩录入:可以录入学生的考试成绩,并自动计算总分和平均分。
4. 成绩查询:可以根据学生姓名、学号或课程名称查询学生的成绩。
5. 成绩统计:可以对学生的成绩进行统计分析,如计算班级的平均分、最高分和最低分等。
6. 成绩报表:可以生成学生成绩的报表,以便于教师和学校进行评估和分析。
三、系统设计根据需求分析,我们设计了以下系统的模块结构:1. 学生信息管理模块:包括学生信息的录入、修改和删除功能。
2. 课程信息管理模块:包括课程信息的录入、修改和删除功能。
3. 成绩录入模块:可以录入学生的考试成绩,并自动计算总分和平均分。
4. 成绩查询模块:可以根据学生姓名、学号或课程名称查询学生的成绩。
5. 成绩统计模块:可以对学生的成绩进行统计分析,如计算班级的平均分、最高分和最低分等。
6. 成绩报表模块:可以生成学生成绩的报表,以便于教师和学校进行评估和分析。
四、系统实现在系统实现阶段,我们采用了面向对象的编程语言Java来开发学生成绩管理系统。
具体实现过程如下:1. 创建学生类和课程类,定义学生和课程的属性和方法。
2. 创建学生信息管理模块、课程信息管理模块、成绩录入模块、成绩查询模块、成绩统计模块和成绩报表模块,并实现相应的功能。
3. 编写用户界面,提供友好的操作界面,方便用户进行学生信息管理、课程信息管理、成绩录入、成绩查询、成绩统计和成绩报表等操作。
4. 进行系统测试,确保系统的功能正常运行,并进行性能优化。
c学生成绩管理系统课程设计报告一、教学目标本课程的教学目标是使学生掌握学生成绩管理系统的核心知识,包括系统的设计、实现和应用。
具体来说,知识目标要求学生了解成绩管理系统的原理、结构和常用技术;技能目标要求学生能够使用相关工具和语言进行成绩管理系统的开发和维护;情感态度价值观目标要求学生认识到成绩管理系统在教育领域的重要性,培养学生的责任感和使命感。
二、教学内容根据课程目标,教学内容主要包括成绩管理系统的原理、结构、设计和实现。
具体来说,教材的章节安排如下:1.第一章:成绩管理系统的概述,介绍成绩管理系统的定义、功能和应用场景。
2.第二章:成绩管理系统的结构与原理,讲解成绩管理系统的组成部分、工作原理和关键技术。
3.第三章:成绩管理系统的需求分析,引导学生学习如何进行需求分析,并编写需求说明书。
4.第四章:成绩管理系统的系统设计,教授系统设计的方法和技巧,包括数据库设计、界面设计和模块划分。
5.第五章:成绩管理系统的实现与测试,指导学生进行系统编码、调试和测试,确保系统功能的正确性和稳定性。
三、教学方法为了实现课程目标,我们将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法。
具体来说:1.讲授法:用于讲解成绩管理系统的理论知识,帮助学生建立系统性的知识体系。
2.讨论法:鼓励学生就实际问题进行讨论,培养学生的思考能力和团队协作精神。
3.案例分析法:通过分析典型成绩管理系统案例,使学生更好地理解并应用所学知识。
4.实验法:让学生动手实践,亲身体验成绩管理系统的开发和应用过程,提高学生的实际操作能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统性的知识学习。
2.参考书:提供丰富的参考资料,帮助学生拓展视野,深入理解成绩管理系统。
3.多媒体资料:制作课件、教学视频等多媒体资料,增强课堂教学的趣味性和互动性。
4.实验设备:配置必要的实验设备,确保学生能够进行实际操作,提高实践能力。
数据结构课程设计报告课题名称学生成绩管理系统姓名学院系科班级指导老师日期2013年1月17日目录一、问题描述 (3)二、基本要求 (3)三、设计目的 (4)四、概念设计 (4)五、详细设计 (5)⏹1主要数据结构 (5)⏹2模块功能 (5)⏹3调用关系 (5)六、源程序 (5)七、测试结果 (12)八、心得体会 (15)九、参考文献 (16)学生成绩管理系统一、问题描述现有学生成绩信息文件1(1.txt),内容如下姓名学号语文数学英语张明明 01 67 78 82李成友 02 78 91 88张辉灿 03 68 82 56王露 04 56 45 77陈东明 05 67 38 47…。
.。
.。
…学生成绩信息文件2(2.txt),内容如下:姓名学号语文数学英语陈果 31 57 68 82李华明 32 88 90 68张明东 33 48 42 56李明国 34 50 45 87陈道亮 35 47 58 77…。
.. .. 。
. …二、基本要求试编写一管理系统,要求如下:1)实现对两个文件数据进行合并,生成新文件3.txt2) 抽取出三科成绩中有补考的学生并保存在一个新文件4。
txt3)对合并后的文件3。
txt中的数据按总分降序排序(至少采用两种排序方法实现)4) 输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)5)要求使用结构体和数组实现上述要求。
三、设计目的1)培养学生综合程序设计的能力,训练学生灵活应用所学数据结构知识,独立完成问题分析、总体设计、详细设计和编程实现等软件开发全过程的综合实践能力.2)巩固、深化学生的理论知识,提高编程水平,培养严谨的科学态度和良好的学习作风。
为今后学习其他计算机课程打下基础。
3)将书本上的理论知识和工作、生产实际有机地结合起来,从而锻炼学生分析问题、解决实际问题的能力,提高编程序能力和创新意识。
四、概要设计五、详细设计1)主要数据结构:struct student{char name[6];int num;long int chi;long int math;long int eng;long int sum;};2)模块功能:合并模板、提取模板、排序模板、查询模板、模块功能1、生成文件3:实现对两个文件数据进行合并,生成新文件3.txt;2、查看文件3:显示文件3里的所有信息;3、生成文件补考文件4:抽取出三科成绩中有补考的学生并保存在一个新文件4。
设计题目:学生成绩管理系统院系:电子工程系班级:电嵌Q0941实验人:赵婷婷学号:091602009实验指导老师:李俊目录一. 课程设计任务书---------------------------------------------3二. 内容提要------------------------------------------------------4三. 正文------------------------------------------------------------51.设计目的--------------------------------------------------------------52.总体设计--------------------------------------------------------------53.详细设计--------------------------------------------------------------64.调试与测试----------------------------------------------------------1 35.源码和运行结果----------------------------------------------------13四. 参考文献------------------------------------------------------35五. 课程设计体会------------------------------------------------35嵌入式程序课程设计任务书一、题目:学生成绩管理系统设计二、内容与要求学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。
主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单要求:使用二进制文件方式存储数据、三、地点:实验2号楼4层硬件实验室四、时间安排:第6-18周星期五的12节五、班级与指导老师:电嵌Q0941班;指导教师:李俊六、参考资料(自己补充)内容提要学生成绩管理系统可以说是每个教育单位的得力助手,它利用计算机对学生成绩进行统一管理,实现学生成绩信息管理工作流程的系统化、规范化和自动化,提高了广大教师的工作效率。
该设计报告围绕学生成绩管理系统的源代码,展开一系列丰富的功能介绍和操作细节。
其功能主要有五大板块组成:输入记录模块、查询记录模块、更新记录模块、统计记录模块和输出记录模块。
每一功能模块中又包含一系列具体功能,如:从文件读入或从键盘输入学生的基本信息,按学号或者姓名查找已存在的记录,对存在的记录进行修改、删除、插入、排序,统计所有学生信息中的最高分、不及格人数等,基本上涵盖了学生成绩管理系统所应该具备的基本操作。
为了使广大读者对该系统有更好的了解,此报告还列举出了程序代码中的一系列具体函数以及它的作用及功能。
下面列举源代码中的部分函数:1)printheader( )函数原型:void printheader( )该函数用于在以表格形式显示学生记录时,打印输出表头信息。
2) stringinput( )函数原型:void stringinput(char *t,int lens,char *notice)该函数用于输入字符串,并进行字符串长度验证。
T用于保存输入的字符串,因为是以指针形式传递的,所以t相当于该函数的返回值。
3) Disp( )函数原型:void Disp(link l)该函数用于显示单链表l中存储学生的记录,内容为student结构中定义的内容。
4) Add( )函数原型:void Add(link l)该函数用于在单链表l中增加学生记录的节点。
整个分析过程可在后面内容中详细了解,这里仅列举几个提供说明。
该报告同时含有源代码的运行结果以及调试和出错分析。
由于时间、经验及水平的原因,报告中难免有不足和错误之处,敬请批评指正。
一.设计目的本程序旨在训练读者的基本编程能力,了解管理信息开发系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。
本程序中设计结构体、单链表、文件等方面的知识。
通过本程序的训练,使读者能对C语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的信息管理系统打下坚实的基础。
二. 总体设计此成绩管理系统主要利用单链表实现,它有如下五大功能模块组成。
其功能模块图如下所示。
(1)输入记录模块。
输入记录模块主要完成将数据存入单链表的工作中。
在此成绩管理系统中,记录可以从以二进制形式存储的数据文件中读入,也可从键盘逐个输入学生记录。
学生记录由学生的基本信息和成绩信息字段组成。
当从数据文件中读入记录时,它就是在以记录为单位存储的数据文件中,将记录逐条复制到单链表中。
(2)查询记录模块。
查询记录模块主要完成在单链表中查找满足相关条件的学生记录。
在此成绩管理系统中,用户可以按照学生的学号获姓名在单链表中进行查找。
若找到该学生的记录,则返回指向该学生的记录的指针。
否则,返回一个值为NULL的空指针,并打印出未找到该学生记录的信息。
(3)更新记录模块。
更新记录模块主要完成对学生记录的维护。
在此成绩管理系统中,它实现了对学生记录的修改、删除、插入和排序操作。
一般而言,系统进行着修操作后,需要将修改的数据存入原数据文件。
(4)统计记录模块。
统计记录模块主要完成对个门功课最高分和不及格人数的统计。
(5)输出记录模块。
输出记录模块主要完成两个任务。
第一,它实现对学生记录的存盘操作,即将单链表中的各节点中存储的学生记录信息写入数据文件中。
第二,它实现将单链表中的学生记录信息以表格的形式在屏幕上打印出来。
三. 详细设计1.主控main()函数执行流程本成绩管理系统执行流程如图所示。
它先以可读写的方式打开数据文件,此文件默认为“c:\student”,若干文件不存在,则新建此文件。
当打开文件操作成功后,从文件中一次读出一条记录,添加到新建的单链表中,然后执行显示主菜单和进入主循环操作,进行按键判断。
在判断键值时,有效的输入为0至9之间的任意数值,其他输入都视为错误按键。
若输入为0(即变量select=0),它会继续判断是否在对记录进行更新操作之后进行了存盘操作,若未存盘,则全局变量saveflag=1,系统会提示用户是否需要进行存盘操作,用户输入Y或y,系统会进行存盘操作。
最后,系统执行推出成绩管理系统操作。
若选择1,则调用Add()函数,执行增加学生记录操作;若选择2,则调用Del()函数,执行删除学生记录操作;若选择3,则调用Qur()函数,执行查询学生记录操作;若选择4,则调用Modify(0函数,执行修改学生记录操作;若选择5,则调用Insert()函数,执行插入学生记录操作;若选择6,则调用Tongji()函数,执行统计学生记录操作;若选择7,则调用Sort()函数,执行按降序排序学生记录的操作;若选择8,则调用Save()函数,执行将学生记录存入磁盘中的数据文件的操作;若选择9,则调用Disp()函数,执行将学生记录以表格形式打印输出至屏幕的操作;若输入为0~9之外的值,则调用Wrong()函数,给出按键错误的提示。
2.输入记录模块输入记录模块主要实现将数据存入单链表中。
这部分的操作较为简单。
当从数据文件中读出记录时,它调用fread(p,sizeof(Node),1,fp)文件读取函数,执行一次从文件中读取一条学生成绩记录信息存入指针变量P所指向节点中的操作,并且这个操作在main()中执行,即当成绩管理系统进入显示菜单界面时,该操作已经执行了。
若该文件中没有数据,系统会提示单链表为空,没有任何学生记录可操作,此时,用户应选择1,调用Add(1)函数,进行学生记录的输入,即完成在单链表1中添加节点的操作。
3.查询记录模块查询记录模块主要实现了在单链表中按学号或姓名查找满足相关条件的学生记录。
在查询函数Qur(1)中,1为指向保存了学生成绩信息的单链表的首地址的指针变量。
为了遵循模块化编程的原则,我们将在单链表中进行的指针定位操作设计成了一个单独的函数Node* Locate(Link 1,char findmess[],char nameornum[]),参数f indmess[]保存到要查找的具体内容,nameornum[]保存要查找的字段(值为字符串类型的num或者name),若找到该记录,则返回指向该节点的指针;否则,返回一个空指针。
4.更新记录模块此模块主要实现了对学生记录的修改、删除、插入和排序操作。
因为学生记录是以单链表的结构形式存储的,所以这些操作都在单链表中完成。
下面分别介绍这四个功能模块。
1)修改记录修改记录操作需要对单链表中目标节点的数据域中的值进行修改,它分两步完成。
第一步,输入要修改的学号,输入后调用定位函数Locate()在单链表中逐个对节点数据域中学好字段的值进行比较,直到找到该学好的学生记录;第二步,若找到该学生记录,修改除学号之外的各字段的值,并将存盘标记变量saveflag置1,表示已经对记录进行了修改,但还未执行存盘操作。
2)删除记录删除记录操作完成删除制定学号或姓名的学生记录,它也分两步完成。
第一步,输入要删除的学号或姓名,输入后调用定位函数Locate()在单链表中逐个对节点数据域中的学号或姓名字段的值进行比较,知道找到该学号或姓名的记录,返回指向该学生记录的节点指针;第二步,若找到该学生记录,将该学生记录所在节点的前驱节点的指针域指向目标节点后的后继节点。
3)插入记录插入学生记录操作完成在制定学号的随后位置插入新的学生记录。
首先,它要求用户输入某个学生的学号,新的记录将插入在该学生记录之后;然后,提示用户输入一条新的学生记录的信息,这些信息保存在新节点的数据域中;最后,将该节点插入在指定位置学号之后。
它的就具体插入执行过程如图6.3所示,图中q为位置学号所在节点的指针变量,其中,p为q所指节点的后继节点的指针变量,q—>next=p,指针变量i指向新记录所在的节点,为插入节点i,依次执行的操作为:i->next=q->next;q->next=i。
4)排序记录有关排序的算法有很多,如冒泡排序、插入排序等。
针对单链表结构的特点,我们用插入排序算法实现按总分的从高到低对学生记录进行排序,排序完成之后,即可按顺序给名次字段赋值。
在单链表中,实现插入排序的基本步骤如下。