学生成绩管理系统_课程设计报告
- 格式:doc
- 大小:734.00 KB
- 文档页数:34
学生成绩管理系统课设报告一.概述1.设计背景学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,但是几年前,各个学校的学生成绩管理基本上都是靠手工进行,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理。
这种管理方式存在着许多缺点,如:效率低、保密性差,另外所用其时间长,产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
如今学校的学生越来越多,成绩管理的工作量越来越大,手工管理成绩的弊端也越来越明显。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有手工管理所无法比拟的优点。
例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生档案管理的效率。
所以我想借本次课程设计之际,设计一个简易的学生成绩管理系统。
2. 设计目的1、掌握运用数据库原理进行系统分析和设计的方法;2、掌握关系数据库的设计方法;3、掌握利用SQL Server 2000技术;4、加强自己的编程能力3. 设计内容1.设计一个简易学生成绩管理的数据库系统,包括数据库的建立的需求分析,数据的输入输出。
2.设计用户的操作界面,主要实现数据的查询,添加,修改,删除基本功能。
二.需求分析1.功能分析在成绩管理系统中最主要的是对学生成绩的管理,管理主要包括:对学生成绩的录入,修改,删除,以及按不同的方式对学生成绩进行查询。
系统中包括学生的基本信息(如:学号,姓名,专业等),学生的各科成绩信息,教师的基本信息(如:教师编号,姓名,性别,所教科目,学历等),学生所学科目科目的基本信息(如:科目编号,名称,出版社等),以便查询。
学生成绩管理系统-课程设计报告学生成绩管理系统-课程设计报告一、引言学生成绩管理系统是一种能够方便高效地管理学生学业成绩的软件系统。
随着教育信息化的发展,学生成绩管理系统已经成为各个学校和教育机构不可或缺的一部分。
本课程设计报告旨在设计和实现一款学生成绩管理系统,以满足学校对学生成绩管理的需求。
二、系统需求分析1.学生信息管理:系统需要能够存储学生的基本信息,包括学号、姓名、性别、年级等。
2.课程管理:系统需要能够管理学校的各门课程信息,包括课程名称、授课教师、学分等。
3.成绩录入:系统需要能够录入学生的成绩信息,包括学生学号、课程名称、成绩等。
4.成绩查询:系统需要提供成绩查询功能,学生和教师能够通过系统查询学生的成绩。
5.成绩统计:系统需要能够对学生的成绩进行统计和分析,包括计算平均成绩、最高分、最低分等。
6.成绩报表:系统需要能够生成成绩报表,以便学校和教师能够查看学生成绩的总体情况。
三、系统设计1.数据库设计:设计一个学生表和一个课程表,学生表包括学生的学号、姓名、性别、年级等信息,课程表包括课程的名称、授课教师、学分等信息。
成绩信息通过学生表和课程表建立关联关系。
2.用户界面设计:设计一个用户友好的界面,包括学生登录界面、教师登录界面和管理员登录界面。
学生能够查询个人成绩和课程信息,教师能够录入学生成绩和查询学生成绩,管理员能够管理学生和课程信息。
3.功能模块设计:将系统划分为学生管理模块、课程管理模块、成绩录入模块、成绩查询模块、成绩统计模块和成绩报表模块。
每个模块实现相应的功能,模块之间通过接口进行数据交互。
四、系统实现本系统采用Java语言和MySQL数据库进行开发。
使用Java技术实现用户界面和功能模块,使用MySQL数据库存储学生、课程和成绩信息。
五、系统测试与调试进行系统测试,包括功能测试、性能测试和稳定性测试。
通过测试发现并修复系统中存在的问题,确保系统能够正常运行。
六、系统部署与维护将系统部署到学校的服务器上,并进行系统维护工作,包括定期备份数据、更新系统版本等。
学生成绩管理课程设计报告_学生成绩管理课程设计报告学生成绩管理课程设计报告的撰写要设计很多个方面,但是有些关于技术层面的东西是比较难用文字描述,有的东西需要通过图表的形式呈现更加好,下面是一份关于学生成绩管理课程设计报告的内容:首先,主题描述管理内容包括:学生人数、姓名、班级、五门课程的成绩。
主要功能是:添加、修改、删除、读取、写入、查找、排序、计算总分、平均分、小计等。
编写代码并运行程序后,将出现以下参考界面:绩效管理=== == =1。
输入学生成绩2。
修改学生成绩3。
删除学生成绩4。
计算每个学生的总分。
计算每个学生的平均分数。
按学生编号或姓名查询学生成绩7。
按班级查询学生成绩。
排名成绩9。
选择(1~9, 0:退出): 第二,开发基于需求分析的学生成绩管理系统的目的主要是对学生成绩查询过程中的所有信息进行更加科学、规范和有效的综合管理。
它使学生能够随时获取有关其学业成绩的相关信息,也有利于他们充分了解自己在大学期间对所有课程的学习情况,提高查询速度。
学生成绩管理系统主要包括期末成绩管理、具体查询等。
系统还提供学生相关基本信息的统计、汇总和查询,方便学校领导对学生的管理,提高管理质量和管理效率,包括每个学生在校期间的基本情况和课程成绩汇总。
该系统采用面向对象的功能实现学生成绩的管理。
主要功能是管理学生的基本信息、成绩课程等。
查询、修改和删除每个学生的基本信息、专业成绩信息、选修课成绩信息和课程信息。
系统的结构分为学生基本情况管理模块、学生成绩管理模块和学生课程管理模块。
这是一个非常实用的编程示例。
编程要求非常详细,内容也比较多,有一定的难度。
首先,学生记录是一个复杂的数据结构,它至少应该包括学生人数、姓名、性别和年级。
因此,必须建立一个班级学生来记录班级、学生人数、姓名和年级。
此外,必须建立类对象数组s1[80]来记录多个学生的分数。
模块设计和分析(1)输入学生数据模块:主要功能是收集和输入学生的分数。
附录一应用程序综合设计汇报——题目: 学生成绩管理系统2023年1月1.需求分析学生成绩管理系统是学生管理系统旳重要构成部分, 对学生旳德、智、体全面评估有很大旳作用, 因此学生成绩管理系统应当可认为顾客提供以便旳查询平台和数据存储功能。
老式是使用人工旳方式对学生旳信息进行存储, 对于个人旳学生成绩来说, 数据旳整顿和分析就显得很麻烦, 不利于查找、更新和维护。
因此, 顾客但愿制作一种学生成绩管理系统, 来提高老师旳工作效率, 同步予以老师便利。
根据与顾客旳交流, 一般对学生成绩管理系统有如下几点旳规定:A.可认为顾客提供以便旳数据查询功能, 满足复杂、多样旳数据查询需求。
一般我们所需要旳数据都不是可以从原始数据库中直接读取旳, 往往需要一定旳加工, 这样才能使老式复杂旳人工操作变得简朴又精确。
B、成绩管理要可以提供学校考试安排旳管理, 学生考试成绩旳管理, 以及学生单科和总成绩旳记录和分析等功能。
这些是一种学生成绩管理系统最重要旳功能构成, 包括数据旳集成、整合和分析。
上述是顾客对系统需求和功能需求旳两点规定, 我根据顾客对功能旳需求, 将整个学生成绩管理系统提成两个大旳模块, 即基本信息设置模块和成绩管理模块(如图1)。
为了能使本系统可以基本独立, 通过度析, 我又添加了学生基本信息添加功能和班级基本信息添加功能, 这样系统就可以实现本系统旳全面界面化。
2.概要设计根据需求分析, 成绩管理系统重要是实现对考试和学生成绩旳管理功能, 我设计旳整个学生成绩管理系统分为两个大旳模块, 分别为基本信息设置模块和成绩管理模块, 这两个模块包括了成绩管理系统旳所有数据存储和功能需求, 为了愈加清晰了分解学生成绩管理系统, 每个大模块又由几种子功能模块构成, 完毕顾客旳需求。
两个大模块旳子模块详细划分如图2所示:基本信息设置是成绩管理系统中某些基本数据旳添加和修改, 为了可以实现本学生成绩管理系统旳独立性, 我在基本信息设置模块中添加了学生和班级信息添加模块, 以便顾客能直接添加新增旳数据, 而不需要通过程序员来完毕。
课程设计报告-学生成绩管理系统
学生成绩管理系统是一种用于记录学生成绩,查询学生成绩变动,以及分析学生成绩的系统。
在实际的教学管理中,有效的学生成绩管理系统不仅可以带来教师更便捷地管理学生成绩,更能及时地特别关注弱势学生能力的提高。
本项目设计一套学生成绩管理系统,主要包括3大模块:成绩管理模块、查询统计模块和分析调整模块。
在成绩管理模块中,主要实现学生成绩的登记汇总、信息修改,以及增删改查的功能。
在查询统计模块中,实现学生成绩的查询,对几个班级的成绩情况进行汇总统计,自动根据学生成绩给学生评定等级,如优秀、良好、及格等。
最后分析调整模块中,可以通过学生成绩的分布状况,进行信息可视化分析,有效发现学生的学习薄弱环节,加强教学管理,为学生提供合理的帮助。
本项目实现了基于C/S模式的学生成绩管理系统,使用MySQL等关系型数据库来存储学生成绩数据,用Java Swing的图形用户界面实现了用户的操作,包括界面的设计和功能的实现。
本系统可以有效地管理学生的成绩,极大地提高了教学质量,便于教师对学生学习情况进行及时的反馈与调整,以及定期查看学生成绩变化,方便教学管理者实施有效的督促措施。
同时,本系统也可以为学生自我评估和成绩分析提供有效的工具,从而有效提升学生的学习效率。
学生成绩管理系统课程设计总结一、引言1.背景介绍随着信息技术的快速发展,学生成绩管理系统已经成为学校和教育机构日常工作的重要工具。
本文将介绍一个基于Web的学生成绩管理系统的设计与实现,以满足现代教育管理的需求。
2.设计目的设计这个学生成绩管理系统的目的是提高教育管理的效率,实现对学生成绩的快速、准确、便捷的管理。
同时,也为学生、老师和家长提供一个交流的平台,便于学生了解自己的学习状况,老师进行教学质量评估,家长关注孩子的学习成绩。
二、系统分析1.功能需求根据教育管理的需求,本系统主要包括以下功能:(1)学生信息管理:包括学生基本信息的录入、修改、查询和删除。
(2)教师信息管理:包括教师基本信息的录入、修改、查询和删除。
(3)课程信息管理:包括课程基本信息的录入、修改、查询和删除。
(4)成绩管理:包括学生成绩的录入、修改、查询和删除。
(5)成绩查询:为学生、老师和家长提供成绩查询功能,支持按学生、课程和时间范围等多种条件查询。
(6)成绩统计:提供成绩统计分析功能,如成绩排名、成绩分布等。
2.性能需求(1)响应时间:系统响应时间应在秒级以内。
(2)数据处理能力:系统应能处理大量数据。
(3)系统稳定性:系统运行过程中不易出现崩溃、卡顿等问题。
3.用户需求(1)易用性:界面简洁明了,操作方便。
(2)安全性:保证数据安全和隐私。
(3)可扩展性:系统具备一定的可扩展性,方便后期功能升级和扩展。
三、系统设计1.架构设计本系统采用B/S架构,前端使用HTML、CSS、JavaScript等技术,后端使用Python、Django框架。
2.数据库设计数据库采用MySQL数据库,设计如下表:(1)学生表:包括学生ID、姓名、性别、年龄、班级等信息。
(2)教师表:包括教师ID、姓名、性别、年龄、职称等信息。
(3)课程表:包括课程ID、课程名称、学分等信息。
(4)成绩表:包括学号、课程ID、成绩等信息。
3.界面设计界面设计注重用户体验,采用扁平化设计,简洁明了。
学生成绩管理系统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.实验设备:配置必要的实验设备,确保学生能够进行实际操作,提高实践能力。
中南大学《C语言程序设计》课程设计报告课题名称:学生成绩管理系统专业电气信息学生姓名舒畅班级0914学号**********指导教师穆帅完成日期2010年7月10日信息科学与工程学院目录1 课程设计的目的 (1)2 设计内容与要求 (1)3 主要技术指标及特点 (2)3.1 登录界面显示 (2)3.2登记学生资料 (4)3.3保存学生资料 (5)3.4 删除学生资料 (6)3.5修改学生资料 (7)3.6 查询学生资料 (8)3.6统计学生资料(自加功能) (8)3.8对学生资料进行排序 (9)3.9程序主要代码 (9)4 设计小结 (31)成绩管理系统1 课程设计的目的1.加深对《C语言程序设计》课程知识的理解,掌握C语言应用程序的开发方法和步骤;2.进一步掌握和利用C语言进行程设计的能力;3.进一步理解和运用结构化程序设计的思想和方法;4.初步掌握开发一个小型实用系统的基本方法;5.学会调试一个较长程序的基本方法;6.学会利用流程图或N-S图表示算法;7.掌握书写程设计开发文档的能力(书写课程设计报告)。
2 设计内容与要求设计内容:成绩管理系统现有学生成绩信息,内容如下:姓名学号 C 数学英语shuchang 12 99 98 99jiutian 32 87 68 87changzi 33 98 89 99jiutia 13 7 43 45设计要求:✧封面(参见任务书最后一页)✧系统描述:分析和描述系统的基本要求和内容;✧功能模块结构:包括如何划分功能模块,各功能模块之间的结构图,以及各模块的功能描述;✧数据结构设计:设计数据结构以满足系统的功能要求,并加以注释说明;✧主要模块的算法说明:即实现该模块的思路;✧运行结果:包括典型的界面、输入和输出数据等;✧总结:包括C语言程序设计实践中遇到的问题,解决问题的过程及体会、收获、对程序开发的认识与思考等。
附录:包括主要程序清单,要有适当的注释,使程序容易阅读。
3 主要技术指标及特点程序流程图如下:3.1 登录界面显示此登录界面是预先设定好作为菜单来显示的,在主函数中以menu()来实现的,在函数中,是通过switch……case来实现选择功能的,用户可以通过需要进行选择,方便了用户的使用,非常人性化。
当系统中没有保存学生信息时,就会提示没有学生记录!也就是说不能从文件中导出,这时就需要用户进行学生资料的导入,当输入的学号已经存在时,系统会提示用户重新输入一个未被占用的学号信息,否则就重新分配内存空间。
该操作是将用户输入的学生信息进行保存,用文件的方法进行调试,当用户输入对象的个数超过0时,显示保存成功,否则提示,系统连接为空。
这里又是通过switch……case函数的调用,让用户进行选择,共有两种方法:1.按照学号2.按照姓名,操作完成后,系统会自动提示,该学生已经成功删除,当再次显示的时候,函数中的链表就不再指向该学号,从而起到删除的作用。
删除完成后,再次保存一下学生资料,不然系统仍然默认为原始人数。
通过选择到达修改界面:此时将呈现出现有的学生资料,按照要求将新的信息输入其中,再保存资料,如果输入的学号系统中未显示,那么系统则提示没有资料可以修改。
这个为修改完的图片按照选择,则会呈现出用户需要查找的所有信息,每次呈现出来的时候都要用之前定义的printheader()函数,这个很好地将数据按照格式化的形式显现出来。
此为按照学号查找的例子,按照姓名查找是同样道理。
3.6 统计学生资料(自加功能)统计学生资料主要还是用的switch……case函数,通过选择,用printheader(),printdata(r),printf(END)等函数用表格的形式将符合条件的学生信息全部显示出来,不过唯一不足的就是所有的学生信息没有能够连贯起来,每个学生信息前面都有表头,没处理好。
3.8 对学生资料进行排序该图显示的是按照语文成绩排序完的结果,用链表将数据进行一个接一个的比较,按照降序将学生信息排列下来,最后提示排序已经完成,并将所有结果按照用户要求显示出来。
3.9 程序主要代码主函数#include "stdio.h" /*标准输入输出函数库*/#include "stdlib.h" /*标准函数库*/#include "string.h" /*字符串函数库*/#include "conio.h" /*屏幕操作函数库*/#define HEADER1 " ----------------------------student's information---------------------------- \n"#define HEADER2 " | Number | Name |C|Math|English| Total | Average | \n"#define HEADER3 " |---------------|---------------|----|----|----|--------|-------|"#define FORMAT " | %-10s |%-15s|%4d|%4d|%4d| %4d | %.2f |\n"#define DATA p->data.num,p->,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.total,p->data.ave#define END " -------------------------------------------------------------- \n"int shoudsave=0; /* */struct student{char num[10];/* Number */char name[20];char sex[4];int cgrade;int mgrade;int egrade;int total;float ave;char neartime[10];/* 最近更新时间*/};typedef struct node{struct student data;struct node *next;}Node,*Link;菜单函数void menu(){system("cls"); /*调用DOS命令,清屏.与clrscr()功能相同*/cprintf("\n");printf("@@@@@Students' performance management system@@@@@@\n\n");printf("@@@@@@@@@@@@@@@@@@@@@@@Menu@@@@@@@@@@@@@@@@@@@ @@@@@\n");printf(" *1 input 2 delete *\n");printf(" *3 search 4 modify *\n");printf(" *5 insert 6 count *\n");printf(" *7 sort 8 save *\n");printf(" *9 dispaly 0 exit *\n");printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@\n");/*cprintf()送格式化输出至文本窗口屏幕中*/}void printheader() /*格式化输出表头*/{printf(HEADER1);printf(HEADER2);printf(HEADER3);}void printdata(Node *pp) /*格式化输出表中数据*/{Node* p;p=pp;printf(FORMA T,DATA);}void Wrong(){printf("\n=====>error!\n");}void Nofind(){printf("\n=====>No record now!Please press Enter\n");}void Disp(Link l) /*显示单链表l中存储的学生记录,内容为student结构中定义的内容*/{Node *p;p=l->next; /*l存储的是单链表中头结点的指针,该头结点没有存储学生信息,指针域指向的后继结点才有学生信息*/if(!p) /*p==NULL,NUll在stdlib中定义为0*/{printf("\n=====>No record now!Please press Enter\n");getchar();return;}printf("\n\n");printheader(); /*输出表格头部*/while(p) /*逐条输出链表中存储的学生信息*/{printdata(p);p=p->next; /*移动直下一个结点*/printf(HEADER3);}getchar();}/*************************************************************作用:用于定位链表中符合要求的节点,并返回指向该节点的指针参数:findmess[]保存要查找的具体内容; nameornum[]保存按什么查找;在单链表l中查找;**************************************************************/Node* Locate(Link l,char findmess[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针*/{Node *r;if(strcmp(nameornum,"num")==0) /* 按Number查询*/{r=l->next;while(r!=NULL){if(strcmp(r->data.num,findmess)==0)return r;r=r->next;}}else if(strcmp(nameornum,"name")==0) /* 按Name查询*/{r=l->next;while(r!=NULL){if(strcmp(r->,findmess)==0)return r;r=r->next;}}return 0;}/*增加学生记录*/void Add(Link l){Node *p,*r,*s; /*实现添加操作的临时的结构体指针变量*/char ch,flag=0,num[10];r=l;s=l->next;system("cls");Disp(l); /*先打印出已有的学生信息*/while(r->next!=NULL)r=r->next; /*将指针移至于链表最末尾,准备添加记录*/while(1) /*一次可输入多条记录,直至输入Number为0的记录结点添加操作*/{while(1) /*输入Number,保证该Number没有被使用,若输入Number为0,则退出添加记录操作*/ {printf("please input the Number(press'o'to upper level):");scanf("%s",num);flag=0;if(strcmp(num,"0")==0) /*输入为0,则退出添加操作,返回主界面*/{return;}s=l->next;while(s) /*查询该Number是否已经存在,若存在则要求重新输入一个未被占用的Number*/ {if(strcmp(s->data.num,num)==0){flag=1;break;}s=s->next;}if(flag==1) /*提示用户是否重新输入*/{ getchar();printf("=====>Number %s existed already!Please press Enter.input again?(y/n):",num);scanf("%c",&ch);if(ch=='y'||ch=='Y')continue;elsereturn;}else{break;}}p=(Node *)malloc(sizeof(Node)); /*申请内存空间*/if(!p){printf("\n Allocate memory failure "); /*如没有申请到,打印提示信息*/return ; /*返回主界面*/}strcpy(p->data.num,num); /*将字符串num拷贝到p->data.num中*/printf("please input the Name:");scanf("%s",p->);getchar();printf("please input the score of C:");scanf("%d",&p->data.cgrade);getchar();printf("please input the score of Math:");scanf("%d",&p->data.mgrade);getchar();printf("please input the score of English:");scanf("%d",&p->data.egrade);p->data.total=p->data.egrade+p->data.cgrade+p->data.mgrade;p->data.ave=p->data.total / 3;getchar();/* 信息输入已经完成*/p->next=NULL;r->next=p;r=p;shoudsave=1;}}查询函数void Qur(Link l) /*按Number或Name,查询学生记录*/{int sel; /*1:按Number查,2:按Name查,其他:返回主界面(菜单)*/char findmess[20]; /*保存用户输入的查询内容*/Node *p;if(!l->next)/*若链表为空*/{system("cls");printf("\n=====>No record now!Please press Enter\n");return;}system("cls");printf("\n=====>1Search by Number\n=====>2Search by Name\n");printf(" select[1,2]:");scanf("%d",&sel);if(sel==1)/* Number */{printf("please input the Number you want to search:");scanf("%s",findmess);p=Locate(l,findmess,"num");/*在l中查找Number为searchinput值的节点,并返回节点的指针*/ if(p)/*若p!=NULL*/{printheader();printdata(p);printf(END);printf("press any key to back");getchar();}elseNofind();getchar();}else if(sel==2) /* Name */{printf("please input the Name you want to search:");scanf("%s",findmess);p=Locate(l,findmess,"name");if(p){printheader();printdata(p);printf(END);printf("press any key to back");getchar();}elseNofind();getchar();}elseWrong();}删除函数/*删除学生记录:先找到保存该学生记录的节点,然后删除该节点*/ void Del(Link l) /* 删除*/{int sel;Node *p,*r;char findmess[20];if(!l->next){printf("\n=====>no record!\n");getchar();return;}printf("\n=====>1Delete by Number\n=====>2Delete by Name\n"); scanf("%d",&sel);if(sel==1){printf("please input the Number you want to delete:");scanf("%s",findmess);p=Locate(l,findmess,"num");if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);printf("\n=====>Delete successful!\n");getchar();shoudsave=1;}elseNofind();}else if(sel==2){printf("please input the Name you want to delete:");scanf("%s",findmess);p=Locate(l,findmess,"name");if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);printf("\n=====>Delete successful!\n");getchar();shoudsave=1;}elseNofind();getchar();}elseWrong();getchar();}修改函数/*修改学生记录。