软件工程课程设计实验报告-学生信息管理系统.docx
软件工程课程设计--学生信息管理系统

《软件工程》课程设计题目学生信息管理系统班级学生学号设计时间目录一. 程序分析与设计 (3)二.设计流程图 (6)三. 源程序清单 (9)四.调试过程 (14)五.程序有待改进的地方 (18)六. 本次实习的收获和建议 (18)参考文献 (19)学生信息管理系统一. 程序分析与设计该系统是帮助管理学生信息的软件,要求用户输入用户名和密码登录进入学生信息管理系统,从而实现对学生个人信息的管理工作,通过对学生基本信息的设置,完成添加、删除、修改、浏览等功能,并可以通过学号对所需要的学生信息进行查询,从而方便学校管理部门对学生信息的基本情况的快速查询和了解。
基本功能:添加功能:管理员可以添加学生相关信息;修改功能:管理员可以对数据库中信息进行修改,系统能够通过管理员给粗的条件查找出所要修改的信息,对修改后的信息进行保存;删除功能:管理员可以对数据进行删除操作。
系统能够通过管理员给出的条件查找出要删除的信息,并把相关信息从数据库中删除掉;浏览功能:在不知道学生学号的时候可以使用该功能来查阅所有的学生信息;查询功能:可以对学生信息按条件进行查询。
1:变量和结构体说明1)学生信息的结构体如下:struct studentinfo //定义一个学生结构体{char sno[10]; //学生的学号char sname[10]; //学生的姓名char sex[10]; //学生的性别int age[10]; //学生的年龄char sminzu[10]; //学生的民族char add [10]; //学生的家庭住址};struct studentinfo students[10]; //定义一个有10个学生的结构体void login(); //用户登录界面void addinfo(); //添加函数void modifyinfo(); //修改函数void deleteinfo(); //删除函数int searchinfo(); //查找函数void showmainmenu(); //主菜单int liulaninfo() //浏览函数2)存放学生的信息的变量如下:struct studentinfo students[10]; //定义10个学生int lastpos //学生人数2: 概要设计1)定义结构体数组用来存放学生的信息2)学生信息存放在中,文件格式如下:学生人数—长度为10第1个学生的信息-----长度为sizeof(student)第2个学生的信息-----长度为sizeof(student)。
软件工程专业课程设计--学生信息管理系统

目录1.绪论 (1)1.1课题背景 (1)1.2目的背景与意义 (1)1.3项目开发的目标 (1)2. 开发工具的选择 (1)3.系统分析 (2)3.1系统E_R图 (2)3.2功能结构图 (4)3.3操作流程图 (5)4.数据库设计 (5)4.1数据库需求分析 (5)4.2各表的物理结构 (6)5.系统设计 (7)5.1登录界面 (7)5.2程序主界面 (7)5.3专业管理模块 (8)5.4课程管理模块 (9)5.5学生管理模块 (11)5.6成绩管理模块 (12)5.7用户管理模块 (14)6.总结 (14)参考文献 (14)1.绪论1.1课题背景该项目开发的软件为学校学生信息管理系统软件,是鉴于目前学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有教育单位(包括学校,学院等等)的学生信息的管理.目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展,商业化的学生信息管理软件也不少.但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作。
1.2目的背景与意义学生信息管理系统是一个教育单位不可缺少的部分。
一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。
所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。
作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。
软件工程实验报告-学生信息管理系统

《软件工程》课程设计报告课程设计题目指导教师:卢照____________ 班级:__0902__________ 小组名单:_杨攀张镇东____孙江沛陶大天完成日期:_2012年 6__月_ 计算机科学与技术系目录一.需求分析 (2)1.1引言 (2)1.1.1 编写目的(阐明编写需求说明书的目的,指明读者对象。
) (2)1.1.2 功能分析 (2)1.1.3 任务概述 (3)1.2需求分析1.21对功能的规定 (4)1.22E—R图1.3数据描述 (8)1.3.1动态数据(包括输入数据和输出数据。
).. 错误!未定义书签。
1.3.2数据词典 (9)1.4对性能的规定......................................................... 错误!未定义书签。
1.4.1精度.................................................................. 错误!未定义书签。
1.4.2灵活性.............................................................. 错误!未定义书签。
1.5输人输出要求......................................................... 错误!未定义书签。
二.概要设计 (10)2.1处理流程 (10)2.2总体结构和模块外部设计 (10)2.3功能分配(表明各项功能与程序结构的关系。
) (12)三.详细设计 (14)3.1软件结构 (14)3.2程序逻辑结构描述 (17)3.3限制条件 (19)3.4测试要点 (19)四.测试分析 (20)4.1测试概要 (20)4.2测试结果及发现 (21)4.2.1 整体测试 (21)4.2.2 登陆模块测试计划 (24)4.2.3 登陆模块测试结果 (26)4.2.4 管理模块测试计划 (26)4.2.3 管理模块测试结果 (27)一.需求分析1.1引言1.1.1 编写目的(阐明编写需求说明书的目的,指明读者对象。
软件工程课程设计学生信息管理系统

软件工程课程设计任务书指导教师(签章):2017 年 6 月15 日计算机工程系软件工程课程设计报告选题名称:学生信息管理系统系(院):计算机工程与软件工程学院专业:计算机科学与技术班级:姓名:学号:指导教师:学年学期:2016 ~ 2017 学年第 2 学期月15 日摘要:学生信息管理系统是一个小型的管理系统,其开发技术是后台数据库的建立和维护、前端应用程序的开发两个方面。
数据库要体现数据精简和数据一致性、联系强的特点,应用程序要体现功能健全和使用方便的特点。
设计报告介绍了与学生相关的信息,划分数据库,将系统划分为录入新生信息、程序学生信息、更新学生信息、删除学生信息、添加用户、修改密码、添加班级、添加课程、退出系统等功能,来了解学生的基本身份信息。
系统达到的预期的目标是录入新生信息、程序学生信息、更新学生信息、删除学生信息、添加用户、修改密码、添加班级、添加课程、退出系统的增删改查的功能。
本系统只是个人的基本信息的增删改查,可随着添加更多的程序去实现更多的功能。
关键词:数据库;ER图;目录1 需求分析........................................................2 概念设计........................................................3 逻辑设计........................................................4 编程实现........................................................ 总结与体会......................................................... 致谢............................................................ 参考文献...........................................................软件工程课程设计报告1 需求分析1.1 系统需求随着学校人数的不断扩大,学生的信息不断增多,面对如此庞大的信息量,传统的统计学生信息的方法不仅占用大量的人力物力,而且容易出错,已经不再使用,这需要我们设计出一个简单方便的计算机系统来解决这个问题,来对学校所有学生的信息进行处理。
软件工程课程设计学生信息管理系统

课程设计汇报学生信息管理系统学院年级专业学生姓名指导教师提交日期摘要学生信息管理系统对于学校旳决策者和管理者来说都至关重要是一种教育单位不可缺乏旳部分。
本文简介了学生信息管理系统旳整个开发过程。
将整体划分为可行性分析、需求分析、总体设计、详细设计等几种阶段,并对各个阶段做了详细旳阐明。
在开发措施上本系统运用了软件工程化旳思想和措施,总体上采用老式措施学开发措施,并采用VisualStudio6.0作为开发工具,SQL Server 作为后台数据库。
本系统具有学生信息管理,班级管理,课程管理,成绩管理,信息查询、成绩查询等模块,可分别完毕平常学生信息,班级信息,课程信息,成绩信息旳添加、修改、删除、查询、打印等功能。
关键词信息管理系统、软件工程、老式措施学、数据库。
目录摘要............................................................................. 错误!未定义书签。
第1章绪论 (2)1.1课题背景 (2)1.2 目旳背景与意义1.3 项目开发旳目旳第2章可行性分析..................................................... 错误!未定义书签。
2.1问题定义2.2可行性分析2.2.1技术可行性................................................ 错误!未定义书签。
2.2.2 经济可行性2.2.3 操作可行性2.2.4 法律可行性第3章需求分析…………………………………………………………………………………………………3.1 功能需求3.2 界面需求3.3 性能需求3.4 分析建模3.4.1 数据模型3.4.2 功能模型3.4.3 行为模型第4章总体设计4.1 目旳与任务4.2 设计与思绪4.3 各模块旳功能描述4.4 数据库设计第5章详细设计结论............................................................................... 错误!未定义书签。
软件工程课程设计---学生信息管理系统

软件工程课程设计---学生信息管理系统n1.1 BackgroundWith the XXX。
XXX in size and the number of students and their n is increasing rapidly。
us n management systems for students have emerged to manage student n and improve the efficiency of system management work。
The student n management system combines Eclipse (front-end development) with SQL database (back-end management) and XXX standardized management。
scientific statistics。
and fast queries of student n。
which greatly ces the workload of management.The database plays a very important role in an n management system。
The quality of database structure design XXX of the n system。
Reasonable database structure design can improve the efficiency of database storage。
XXX。
At the same time。
reasonable data structure will also be XXX.1.2 XXX DevelopmentThis system uses Eclipse development tool as the development system program and SQLsever database access XXX query of database n。
软件工程 学生成绩管理系统,DOC

软件工程课程设计报告题目:_____学生成绩管理系统____专业班级:___计算机系计科 102 班___姓名:____________________学号:_____________同组姓名:_________________________成绩评定年月日指导教师:第 1 章绪论 (2)第 2 章系统分析 (3)2.1 系统目标 (3)2.2 功能要求 (3)2.3 可行性研究方法 (3)2.4 系统可行性分析 (3)第 3 章需求分析 (4)3.1 引言 (4)3.2 任务概述 (4)3.2.1 编写目的 (4)3.2.2 背景 (4)3.3 功能需求 (4)3.3.1 管理功能部份 (4)管理员功能 (4)学生功能 (4)3.4 数据流图 (5)3.5 学生成绩管理系统逻辑结构图 (5)3.6 用例 (6)第 4 章概要设计 (8)4.1 设计目标 (8)4.2 编写目的 (8)4.3 任务概述 (8)4.4 总体设计 (9)4.4.1 系统设计思想 (9)4.4.2 学生成绩管理系统顺序图 (10)4.5 接口设计 (11)第 5 章详细设计 (12)5.1 根本任务 (12)5.2 程序流程图 (12)5.3 详细设计说明 (14)第六章软件测试 (16)第七章实验结果截图显示 (18)第八章程序源代码 (20)第九章实验总结 (28)第十章参考文献 (28)随着互联网的发展,利用INTERNET 技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子备课等方面发挥了重要作用。
服务教学、提高教学水平和教学结果查询是校园网建设的核心目标和核心价值,本系统立足于校园实际,争取做出一个方便快捷的成绩管理系统,实现成绩信息的管理。
该项目主要是服务于学生成绩管理方面,进一步方便教师的工作和学生的成绩查询,从而从侧面达到提高学校的管理质量。
(完整word版)软件工程课程设计实验报告-学生信息管理系统

软件工程课程实验报告系统名称___ 学生信息管理系统___学院___ 计算机学院信息_ __学生信息管理系统设计文档1.可行性研究1.1技术可行性已经有人开发过,并且我们也都使用过相类似系统,对其一般性的软件和操作环境、编译环境都比较熟悉,所以说在技术上来说是可行的。
1.2经济可行性当前系统只对服务器有关的要求,在服务费用方面,支出在你那个承担的范围,以后的维护及其他设备的总共费用在可以承担的范围。
用当前系统可以节约出能够支付当前系统的直接支出,以后维护费用更是比以前的机制节约很多钱。
1.3操作可行性系统的操作方式在这个用户组织内能行得通。
2.需求分析2.1输入让学生在纸面上填写相关内容,然后等待辅导员或管理员的审批确认后,再输入数据库中保存。
2.2输出学生选择用户选项进入系统后,系统可经有算法程序输出学生基本信息表,学习成绩表等。
2.2.1打印输出可打印基本信息、学习成绩等各种表格以及在对相应信息进行统计操作后的表格。
2.2.2文件输出可将所有打印表格输出到EXCEL文件中,以便用户使用其它的EXCEL软件改变表格的大小及字体。
2.3故障处理2.3.1内部故障处理在开发阶段可以随即修改数据库里的相应内容。
2.3.2外部故障处理对编辑的程序进行重装载时,第一次装载认为错,修改。
第二次运行,在需求调用时出错,有错误提示,重试。
2.4性能要求分析2.4.1系统易操作性所开发的系统应做到操作简单,尽量使系统操作不受用户对电脑知识水平的限制。
2.4.2系统具有可维护性由于系统涉及的信息比较广,数据库中的数据需定期修改,系统可利用的空间及性能也随之下降,为了使系统更好地运转,学院可以对系统数据及一些简单的功能进行独立的维护及调整。
2.4.3系统具有开放性该系统能够在开放的硬件体系结构中运行,并且能与其他系统顺利连接,不会因外部系统的不同面要做在量的修改工作。
3.概要设计3.1基本设计概念和处理流程管理员通过密码认证,进入信息管理页面对学生相关信息的录入、更新、修改、添加等操作,也可以通过查询界面对学生信息进行完全的查询,而学生和相关人员只能通过公共的查询界面对学生信息进行查询,如要对学生信息进行完全查询就需要得到管理员的同意。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程课程实验报告系统名称学生信息管理系统学院_计算机学院信息_学生信息管理系统设计文档1.可行性研究1.1技术可行性已经有人开发过,并且我们也都使用过相类似系统,对其一般性的软件和操作环境、编译环境都比较熟悉,所以说在技术上来说是可行的。
1.2经济可行性当前系统只对服务器有关的要求,在服务费用方面,支出在你那个承担的范围,以后的维护及其他设备的总共费用在可以承担的范围。
用当前系统可以节约出能够支付当前系统的直接支出,以后维护费用更是比以前的机制节约很多钱。
1.3操作可行性系统的操作方式在这个用户组织内能行得通。
2.需求分析2.1输入让学生在纸面上填写相关内容,然后等待辅导员或管理员的审批确认后,再输入数据库中保存。
2.2输出学生选择用户选项进入系统后,系统可经有算法程序输出学生基本信息表,学习成绩表等。
2.2.1打印输出可打印基本信息、学习成绩等各种表格以及在对相应信息进行统计操作后的表格。
2.2.2文件输出可将所有打印表格输出到EXCEL文件中,以便用户使用其它的EXCE软件改变表格的大小及字体。
2.3故障处理2.3.1内部故障处理在开发阶段可以随即修改数据库里的相应内容。
2.3.2外部故障处理对编辑的程序进行重装载时,第一次装载认为错,修改。
第二次运行,在需求调用时出错,有错误提示,重试。
2.4性能要求分析2.4.1系统易操作性所开发的系统应做到操作简单,尽量使系统操作不受用户对电脑知识水平的限制。
242系统具有可维护性由于系统涉及的信息比较广,数据库中的数据需定期修改,系统可利用的空间及性能也随之下降,为了使系统更好地运转,学院可以对系统数据及一些简单的功能进行独立的维护及调整。
243系统具有开放性该系统能够在开放的硬件体系结构中运行,并且能与其他系统顺利连接,不会因外部系统的不同面要做在量的修改工作。
3.概要设计3.1基本设计概念和处理流程管理员通过密码认证,进入信息管理页面对学生相关信息的录入、更新、修改、添加等操作,也可以通过查询界面对学生信息进行完全的查询,而学生和相关人员只能通过公共的查询界面对学生信息进行查询,如要对学生信息进行完全查询就需要得到管理员的同意。
3.2接口设计本系统采用快速原型开发工具ViSUal BaSiC 6.0 进行开发,所提供的不同层次的接口,都具有高度的集成性,本系统没有采用低级语言设计和完成自定义接口,因此接口设计部分已经由不同方式的组件来完成了,以下只做简单说明。
3.2.1用户接口说明将向用户提供的命令和它们的语法结构,以及软件的回答信息。
说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与323内部接口说明本系统之内的各个系统元素之间的接口的安排。
数据库接口设计采用4.详细设计4.1控制流程图4.1.1主模块软件结构4.1.2管理员登陆软件结构4.1.3用户查询软件结构打印出结果返回重新输入条件返回重新输入条件4.2源程序流程图5、项目测试功能截图:5.1 登陆界面嶂C∖U⅛er^∖ADM]NI-≡* ' - ^ l □回ES」∖∖5.2 学生用户功能界面5.4管理员管理界面5.5 管理员输入功能翌CΛUs≠fl∖ADMTNT- ■ ■» ∙to VMM*■I 口]回I 塚r5.6 管理员删除功能AS C:\Uwrs\ADMiN[^l\DE7ktap\STLl MAN 亠175.7 管理员查询功能導CΛUwrΛ⅛DW[MI^l1∖C⅛⅞ktop∖STUMAN-I.t x rSIUoENT number name CoInP Mr⅞⅞hjEng j UBn [ ave IniCi5.8 管理员修改功能5.7 管理员查询功能5.9 管理员插入功能5.10 统计功能5.11 分类功能5.12 显示功能5.13管理员保存功能文件保存名为:STUDENT路径为:C:\6、项目管理6、1人员管理团队负责人:陶修赟小组成员:万富,洪鑫,汪贤惠,项鑫 6、2产品管理本产品工作于W in-TC 工作环境,用于对学生成绩的管理。
学生用户,可进行查询课 程成绩;管理员可对学生及其成绩进行录入、 修改。
6、3进程管理可行性分析:5月23日一5月24日 项目开发计划:5月25日—5月 26日 需求分析:5月27 日— 5月27日软件设计:5月30 日— 6月1日 编程实现:6月2 日 — 6月10日 软件测试:6月STUDENT2011/6/17 20;26 哀样修改、查询、排列等功能。
本系统可进行维护,标志:提交可行性分析报告 标志:提交项目开发计划 标志:完成需求分析报告 标志:完成软件分析与设计文档 标志:代码编写全部完成 标志:完成软件测试,可投入使用tt ⅜若瑞2UI1¾^ESaH ∣2∣≡ n 】∏Ili⅛⅛⅛ 2朋开⅛H⅛J 話⅛≡t耕设计5驟訥 6 針WQU 0 ξQ Cn C□ AM 琲琲琲琲琲琲琲HL A..L 11 HJ H-30L 年躯H 30】L 年覇阴2D 】阵5月笳日 30LL 年5脚日20L SflLl 年减日20l2DLl⅞fi ∣nB 30】L 申月 14 日234 5 630::申月22日 M L 耶月刘日 20LlWR5θ~~13日—6月14日6、4项目计划甘特图------------------------------------------ S TUDENT \n"| number |name IComPlMathlEng | SUm || %-10s ∣%-15s ∣%4d ∣%4d ∣%4d ∣ %4d∣ %.2f ∣%4d |\n"DATAp->data .nu m,p->data .name,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.total,p->data.a ve,p->data. min gci #defi ne END"------------------------------------------------------------------- \n"int SaVefIag=0; /*是否需要存盘的标志变量 */typedef StrUCt StUdent /* 标记为 StUdent*/ {Char num[10]; /*学号*/ Char n ame[15]; /*姓名*/ int Cgrade; /*C 语言成绩' int mgrade; /*数学成绩*/ int egrade; /*英语成绩*/int total; /*总分*/ float ave; /*平均分*/ int min gci; /*名次*/};typedef StrUCt n Ode /*定义每条记录或结点的数据结构,标记为 node*/ {StrUCt StUde nt data; StrUCt node *n ext; }Node,*Li nk; void menu ChOiCe() {SyStem("cls");/*清屏与 CIrSCr()功能相同 */7、编码#i nclude VStdio.h> #in elude <stdlib.h>#i nclude "stri ng.h" #defi ne HEADER1 " #define HEADER2 " ave |mici | ∖n" #defi ne HEADER3 " #defi ne FoRMA T " #defi netextcolor(10); /*在文本模式中选择新的字符颜色*/gotoxy(7,5);CPri ntf(" The StUde nts' Grade Man ageme nt SyStem ∖n"); gotoxy(7,8);Prin tf("\nPlease En ter your choice; 0 en ter StUde nts' SyStem\n∖t∖t∖t"); Printf(" ");Prin tf("1 en ter teachers' SyStem∖ n");}格式化输出至文本窗口屏幕中 */格式化输出至文本窗口屏幕中 */gotoxy(7,9);CPrin tf(" * 1 in PUt record 2 delete record*∖n");gotoxy(7,10);CPrin tf(" * 3 SearCh record 4 modify record *∖n"); gotoxy(7,11); CPrin tf(" * gotoxy(7,12); 5 in Sert record 6 count record *∖n"); CPrin tf(" * gotoxy(7,13); 7 sort reord 8 SaVe record*∖ n"); CPrin tf(" * 9 display record 0 quit SyStem *∖n");gotoxy(7,14); CPri ntf("∕*cprintf()送void menu() /* 菜单函数 */{SyStem("cls");textcolor(10); gotoxy(7,5); CPri ntf(" gotoxy(7,8); CPri ntf("*************************Me nu ********************************∖n")・ ∕*清屏与CIrSCr()功能相同*/ /*在文本模式中选择新的字符颜色 /*在文本窗口中设置光标,下同 */ */ The StUde nts' Grade Man ageme nt SyStem ∖n"); *************************************************************∖n");void menu StUde nt() {SyStem("cls"); textcolor(10); gotoxy(7,5); CPri ntf(" gotoxy(7,8);CPri ntf("*************************Me nu********************************∖n")・/*清屏与CIrSCr()功能相同*/ /*在文本模式中选择新的字符颜色 /*在文本窗口中设置光标,下同*/ */The StUde nts' Grade Man ageme nt SyStem ∖n");gotoxy(7,9);CPri ntf(" *3 SearCh recordgotoxy(7,10);CPri ntf("*************************************************************∖n ");0 quitsystem*' n");∕*cprintf()送Void Printheader() /*格式化输出表头*/{Prin tf(HEADER1);Prin tf(HEADER2);Prin tf(HEADER3);}void Printdata(Node *pp) /*格式化输出表中数据*/{Node* P;P=PP;Printf(FORMA T,DATA);}void Wron g() /*输出按键错误信息*/{Prin tf("∖ n∖n∖n∖n∖n ***********Error:i nput has wrong! PreSS any key toContin ue**********∖ n");getchar();}void Nofin d() /*输出未查找此学生的信息*/{Prin tf("∖ n=====>Not find this StUde nt!∖ n");}void DiSP(Link l) /*显示单链表I中存储的学生记录,内容为StUdent结构中定义的数据项*/{Node *p;p=l->next; /*l存储的是单链表中头结点的指针,该头结点没有存储学生信息,指针域指向的后继结点才有学生信息*/if(!p){Prin tf("∖ n=====>Not StUde nt record!∖ n");getchar();return;}Prin tf("∖n∖n");Printheader(); /*输出表格头部*/WhiIe(P) /*逐条输出链表中存储的学生信息*/{Prin tdata(p);p=p-> next; /*移动至下一个结点*/Prin tf(HEADER3);}getchar();}Node* LOCate(Link l,char findmess[],char nameornum[]) /* 用于定位链表中符合要求的节点,并返回指向该节点的指针,findmess[]保存要查找的具体内容;nameornum[]保存按什么查找;在单链表I中查找;*/{Node *r;if(strcmp(nameornum,"num")==0) /* 按学号查询*/{r=l->n ext;while(r){if(strcmp(r->data.num,findmess)==O) /* 若找至U findmess 值的学号*/return r;r=r->n ext;}}else if(strcmp(nameornum,"name")==O) /* 按姓名查询*/{r=l->n ext;while(r){if(strcmp(r->,findmess)==O) /* 若找到findmess 值的学生姓名*/return r;r=r->n ext;}}return 0;}void Stringinput(char *t,int Iens,char *nOtiCe) /* 输入字符串,并进行长度验证(长度<lens)*/ {Char n[255];do{Printf(notice); /* 显示提示信息*/SCanf("%s",n); /*输入字符串*/if(strlen(n)>lens)printf("∖n EXCeed the required Iength! ∖n"); /* 进行长度校验,超过IenS值重新输入*/}while(strle n(n )>le ns);StrCPy(t,n); /*将输入的字符串拷贝到字符串t中*/int numberinput(char *nOtiCe) /* 输入分数,0< =分数< =100)*/{int t=0;do{Printf(notice); /* 显示提示信息*/SCanf("%d",&t); /* 输入分数*/if(t>100 Il t<0) Printf("∖n Score must in [0,100]! \n"); /* 进行分数校验*/ }while(t>100 || t<0);return t;}void Add(Link l) /*增加学生记录*/{Node *p,*r,*s; /*实现添加操作的临时的结构体指针变量*/Char ch,flag=0,nu m[10];r=l;s=l->n ext;SyStem("cls");DiSP(l); /*先打印出已有的学生信息*/while(r-> next!=NULL)r=r->next; /*将指针移至于链表最末尾,准备添加记录*/ while(1) /* 一次可输入多条记录,直至输入学号为0的记录结点添加操作*/{while(1) /*输入学号,保证该学号没有被使用,若输入学号为0,则退出添加记录操作*/{Stringinput(num,10,"lnput number(press '0'return menu):"); /* 格式化输入学号并检验*/flag=0;if(strcmp(num,"0")==0)/*输入为0 ,则退出添加操作,返回主界面*/{return;}s=l->n ext;WhiIe(S) /*查询该学号是否已经存在,若存在则要求重新输入一个未被占用的学号*/{if(strcmp(s->data. nu m, nu m)==0){flag=1;break;}S=S->n ext;}getchar();Prin tf("=====>The nu mber %s is not exist in g,try aga in?(y/n):", nu m);SCan f("%c", &ch);if(ch=='y'∣∣ch=='Y')Con ti nue;elsereturn;}else{break;}}P=(NOde *)malloc(sizeof(Node));if(!p){Prin tf("\n Allocate memory failure "); /* 如没有申请到,打印提示信息*/ return ;}StrCPy(P->data.num,num); /* 将字符串num 拷贝至U p->data.num 中*/Stri ngin PUt(P->data .n ame,15,"Name:");p->data.cgrade=nUmberinput("C Ianguage SCore[0-100]:"); /* 输入并检验分数,分数必须在0 —100之间*/p->data.mgrade=n Umberi nput("Math Score[0-100]:");p->data.egrade=nu mberi nput("E nglish Score[0-100]:");p->data.total=p->data.egrade + p->data.cgrade + p->data.mgrade; /*计算总分*/p->data.ave=(float)(p->data.total∕3);/* 计算平均分*/p->data. min gci=0;p->next=NULL; /*表明这是链表的尾部结点*/r->n ext=p; /*将新建的结点加入链表尾部中*/r=p;SaVefIag=1; /*在main()有对该全局变量的判断,若为1,则进行存盘操作*/}return ;}void QUr(Link l) /*按学号或姓名,查询学生记录*/{int select; /*1:按学号查,2:按姓名查,其他:返回主界面(菜单) */Char SearChinput[20]; /*保存用户输入的查询内容*/Node *p;if(!l->next)/* 若链表为空*/{SyStem("cls");Prin tf("∖ n=====>No StUde nt record!∖n");getchar();return;}SyStem("cls");Prin tf("∖ n =====>1 SearCh by nu mber =====>2 SearCh by n ame∖ n");Prin tf(" PIeaSe ChoiCe[1,2]:");SCan f("%d", &select);if(select==1) /* 按学号查询*/{Stri ngin PUt(SearCh in put,10,"I nput the existi ng StUde nt nu mber:");P=LOCate(l,searchinput,"num");/*在I中查找学号为SearChinput值的节点,并返回节点的指针*/if(p) /* 若p!=NULL*/{Prin theader();Prin tdata(p);Prin tf(END);Prin tf("press any key to retur n");getchar();}elseNofi nd();getchar();}else if(select==2) /* 按姓名查询*/{Stri ngin PUt(SearCh in put,15,"i nput the existi ng StUde nt n ame:");P=LOCate(l,search in put," name");if(p){Prin theader();Prin tdata(p);Prin tf(END);Prin tf("press any key to retur n");getchar();}elseNofi nd(); getchar();}elseWron g();getchar();}void DeI(Li nk l) /*删除学生记录:先找到保存该学生记录的节点,然后删除该节点*/Node *p,*r;Char fin dmess[20];if(!l-> next){SyStem("cls");Prin tf("∖ n=====>No StUde nt record!' n"); getchar();return;}SyStem("cls");DiSP(l);Prin tf("∖ n =====>1 Deiete by nu mber =====>2 Deiete by n ame∖ n"); Printf(" PieaSe ChoiCe[1,2]:");SCan f("%d", &sel);if(sel==1){Stri ngin put(fi ndmess,10,"i nput the exist ing StUde nt nu mber:");P=LOCate(l,fi ndmess," nu m");if(P) /*p!=NULL*/{r=l;while(r- >n ext!=p)r=r->n ext;r->next=p->next;/*将P所指节点从链表中去除*/free(p); /*释放内存空间*/Prin tf("∖ n=====>Delete success!' n");getchar();SaVefiag=1;}elseNofi nd();getchar();}else if(sel==2){Stri ngin put(fi ndmess,15,"i nput the existi ng StUde nt n ame");P=LOCate(l,fi ndmess," name"); /*先按姓名查询到该记录所在的节点*/if(p){r=l;while(r- >n ext!=p)r=r->n ext;r->n ext=p->n ext;free(p);Prin tf("∖ n=====>Delete success!' n");SaVefIag=1;}elseNofi nd();getchar();}elseWron g();getchar();}void MOdify(Li nk l) /*修改学生记录。