学生信息管理系统程序的设计
- 格式:doc
- 大小:83.00 KB
- 文档页数:14
学生信息管理系统设计案例一、引言学生信息管理系统是一种集学生信息录入、查询、修改和删除等功能于一体的软件系统。
为了满足学校对学生信息的有效管理和查询需求,本文将介绍一种用C语言实现的学生信息管理系统设计案例。
二、需求分析学生信息管理系统主要有以下几个功能模块: 1. 学生信息录入:包括学生姓名、学号、年龄、性别等基本信息的录入。
2. 学生信息查询:可以根据学号或姓名进行查询,并显示查询结果。
3. 学生信息修改:可以根据学号或姓名选择要修改的学生信息,并进行修改操作。
4. 学生信息删除:可以根据学号或姓名选择要删除的学生信息,并进行删除操作。
三、系统设计1. 数据结构设计为了存储学生信息,我们需要定义一个学生结构体,包括姓名、学号、年龄、性别等字段。
同时,为了方便管理学生信息,我们可以使用链表数据结构来存储学生信息,并设计一个头节点来指向链表的第一个节点。
struct student {char name[20];int student_id;int age;char gender[10];struct student* next;};struct student* head; // 头节点2. 功能模块设计2.1 学生信息录入在该功能模块中,用户需要输入学生的姓名、学号、年龄和性别等信息,并将该学生信息添加到链表中。
为了方便起见,我们可以将该功能模块定义为一个函数add_student()。
2.2 学生信息查询在该功能模块中,用户可以根据学号或姓名进行学生信息的查询。
查询结果将会显示学生的基本信息。
为了方便起见,我们可以将该功能模块定义为一个函数search_student()。
2.3 学生信息修改在该功能模块中,用户可以根据学号或姓名选择要修改的学生信息,并进行修改操作。
为了方便起见,我们可以将该功能模块定义为一个函数update_student()。
2.4 学生信息删除在该功能模块中,用户可以根据学号或姓名选择要删除的学生信息,并进行删除操作。
学生信息管理系统web课程设计1. 引言学生信息管理系统是一个用于管理学生信息的应用程序。
它提供了方便快捷的方式来记录和查看学生的个人信息、成绩、课程等相关数据。
本文将介绍一个基于web 的学生信息管理系统的设计。
2. 系统需求分析2.1 功能需求•学生信息录入:包括学生基本信息(姓名、性别、年龄等)、联系方式、家庭背景等。
•学生成绩录入:包括每门课程的成绩以及总成绩计算。
•学生课程管理:包括选课、退课等操作。
•学生信息查询:可以按照学号、姓名等条件进行学生信息的查询和显示。
•学生成绩查询:可以按照学号、姓名等条件进行学生成绩的查询和显示。
2.2 非功能需求•界面友好:用户界面应该简洁明了,操作方便,用户能够快速上手使用。
•安全性:对于敏感数据(如学生个人隐私),需要进行安全保护,防止未授权访问。
•性能要求:系统需要具备良好的性能,能够快速响应用户请求,并支持大量并发访问。
3. 系统设计3.1 技术选型•前端技术:使用HTML、CSS和JavaScript进行前端开发,借助Bootstrap 等框架提供的组件和样式。
•后端技术:使用Python的Web框架(如Django、Flask)进行后端开发,通过ORM(对象关系映射)技术与数据库进行交互。
•数据库:使用关系型数据库(如MySQL、PostgreSQL)存储学生信息和成绩数据。
3.2 系统架构学生信息管理系统采用MVC(模型-视图-控制器)架构,以实现前后端的解耦和代码的复用。
•模型(Model):负责处理数据逻辑,包括与数据库的交互、数据验证等。
•视图(View):负责展示数据给用户,并接收用户的输入。
•控制器(Controller):负责处理用户请求,调用相应的模型和视图进行处理。
3.3 数据库设计学生信息管理系统需要设计两个主要的数据表:学生表和成绩表。
学生表设计字段类型描述学号字符串主键姓名字符串性别枚举类型年龄整数联系方式字符串家庭背景字符串成绩表设计字段类型描述学号字符串外键课程名称字符串主键成绩浮点数3.4 界面设计学生信息管理系统的界面应该简洁明了,操作方便。
学生管理系统详细设计学生管理系统是一个用于学校或教育机构管理学生信息和管理学生日常事务的软件系统。
它通过集成学生信息、课程管理、成绩管理、考勤管理以及其他必要的功能模块,为学校提供了一个方便、高效且系统化的学生管理工具。
在详细设计学生管理系统时,应该考虑到以下几个方面:1.数据模型设计:需要定义学生、教师、课程、班级等数据对象的属性和关系。
可以使用关系数据库来存储和管理这些数据,并设计相关的表结构。
2.用户界面设计:考虑到用户易用性和操作效率,需要设计直观、友好的用户界面。
可以采用图形用户界面(GUI)或者Web界面,提供方便的操作和导航方式。
3.功能模块设计:包括学生信息管理、课程管理、成绩管理、考勤管理等功能模块的详细设计。
每个功能模块应该具备相应的操作和管理功能,并根据实际需求设计相应的界面和交互逻辑。
4.学生信息管理模块设计:5.课程管理模块设计:6.成绩管理模块设计:该模块用于录入和管理学生的成绩信息,包括考试科目、成绩等。
可以设计成绩录入、成绩查询、成绩统计等功能。
7.考勤管理模块设计:该模块用于管理学生的考勤信息,包括出勤、请假、迟到等。
可以设计考勤录入、考勤查询、考勤统计等功能。
8.数据安全和权限控制:为了保护学生信息的安全,可以设计数据备份和恢复功能,并设置不同用户角色的权限控制,保证只有合法的用户可以访问和修改学生信息。
9.性能优化和系统扩展:可以通过优化数据库查询、缓存等方式提高系统的响应速度和并发能力。
另外,还需要考虑到系统的扩展性,使得系统能够适应未来的需求变化。
总之,学生管理系统的详细设计需要充分考虑到功能、界面、数据模型、数据安全、性能和系统扩展等方面。
在设计过程中,需要与相关教师和管理员进行充分沟通,了解需求,并根据需求进行灵活的设计和迭代。
学校学生信息管理系统设计方案一、内容概述随着信息技术的快速发展,学校学生信息管理系统的设计与实施已成为现代教育管理的重要组成部分。
本设计方案旨在为学校提供一个全面、高效的学生信息管理系统,以提高管理效率,优化学生服务体验,推动教育信息化发展。
该系统主要围绕学生信息的管理与整合展开,包括学生基本信息管理、成绩管理、课程管理、考勤管理等多个方面。
通过此系统,学校能够实时掌握学生信息动态,提升教育资源配置效率,为教育教学决策提供数据支持。
系统强调数据的保密性和安全性,确保学生信息的安全可靠。
本设计方案将详细介绍系统的设计理念、功能模块、技术架构以及实施步骤,为学校实施学生信息管理系统提供全面的指导。
1. 背景介绍:简述当前学校对于学生信息管理的重要性及现状,阐述设计学生信息管理系统的必要性。
在当今教育信息化的时代背景下,学校学生信息管理是一项至关重要的任务。
随着教育规模的扩大和学生数量的增加,对于学生信息的管理提出了更高的要求。
学校需要有效、准确地掌握每一位学生的基本信息、学习进度、成绩记录等重要数据,以便更好地进行教育教学管理、学生服务以及决策分析。
传统的依靠纸质文档或简单的电子表格管理方式已经无法满足现代学校对于信息管理的高效、安全和便捷的需求。
设计一套完善的学生信息管理系统显得尤为重要。
设计学生信息管理系统的必要性在于,随着信息技术的飞速发展,数字化管理已经成为各行各业提高工作效率、保障数据安全的重要手段。
学校作为教育的主要场所,学生信息管理是其日常运营中的重要环节。
一个先进的学生信息管理系统不仅能够提高学校对学生信息管理的效率,减少人为操作带来的错误,还能保障学生信息的安全性和完整性。
该系统可以帮助学生更好地了解自己的学习情况,为未来的职业规划和发展提供有力的数据支持。
设计并实现一个功能完善、操作便捷、安全可靠的学生信息管理系统是当前学校教育信息化建设的迫切需求。
二、系统概述随着社会的发展和科技的进步,学校学生信息管理变得日益重要且复杂。
学生信息管理系统课程设计报告一、引言随着信息技术的不断发展,学生信息管理在学校的日常管理工作中变得越来越重要。
为了提高学生信息管理的效率和准确性,开发一个高效、实用的学生信息管理系统成为了必然的需求。
本课程设计旨在设计并实现一个功能齐全、操作简便的学生信息管理系统,以满足学校对学生信息管理的需求。
二、系统需求分析(一)功能需求1、学生信息的录入、修改、删除和查询功能。
2、课程信息的管理,包括课程的添加、修改、删除和查询。
3、成绩管理功能,能够录入、修改学生的课程成绩,并进行统计分析。
4、能够生成学生的个人成绩单和班级成绩汇总表。
5、具备用户管理功能,包括添加用户、修改用户信息和设置用户权限。
(二)性能需求1、系统响应时间要短,保证用户操作的流畅性。
2、数据存储要安全可靠,防止数据丢失或损坏。
3、系统要具备良好的稳定性,能够长时间稳定运行。
(三)界面需求1、系统界面要简洁、美观,操作方便。
2、提供清晰的导航和提示信息,方便用户使用。
三、系统设计(一)总体设计1、系统采用 B/S 架构,方便用户通过浏览器进行访问。
2、分为前端页面展示和后端数据处理两部分。
(二)数据库设计1、设计了学生表、课程表、成绩表、用户表等相关数据表。
2、确定了表之间的关联关系,以保证数据的一致性和完整性。
(三)功能模块设计1、学生信息管理模块,实现学生信息的增删改查。
2、课程管理模块,负责课程的相关操作。
3、成绩管理模块,处理学生成绩的录入、修改和统计。
4、用户管理模块,管理系统用户的信息和权限。
四、系统实现(一)开发工具和技术1、使用 Python 作为主要开发语言。
2、采用 Django 框架进行 Web 开发。
3、数据库选择 MySQL。
(二)关键代码实现1、学生信息录入功能的代码实现。
2、成绩统计分析功能的算法实现。
(三)系统测试1、进行了功能测试,确保各项功能正常运行。
2、进行了性能测试,对系统的响应时间和稳定性进行评估。
学生信息管理系统系统模块设计一、概述随着教育信息化的深入推进,学校管理工作也面临着新的挑战和机遇。
学生信息管理系统作为教育管理系统的一个重要组成部分,承担着学生信息的录入、管理、查询和统计等功能,对于提高学校管理工作的效率和质量具有重要意义。
在此背景下,本文针对学生信息管理系统的系统模块进行设计,旨在提高系统的可用性、安全性和稳定性,满足学校管理的需求。
二、系统模块设计1. 用户管理模块- 用户注册:系统管理员可以通过该模块进行用户注册,包括学生、教师、家长等不同角色的用户注册。
- 用户登入:注册成功后,用户可以通过账号和密码登入系统,进行个人信息管理和相关操作。
2. 学生信息管理模块- 学生信息录入:该模块允许管理员和教师录入学生的基本信息,包括尊称、性莂、芳龄、学号等。
- 学生信息查询:学生本人、家长或老师可以通过该模块查询学生的个人信息,包括入学成绩、考勤记录、班级排名等。
3. 教师信息管理模块- 教师信息录入:管理员可以录入教师的基本信息,包括尊称、性莂、芳龄、工号等。
- 教师信息查询:教师可以通过该模块查询自己的个人信息,包括任课班级、教学计划、学生成绩等。
4. 班级管理模块- 班级信息录入:管理员可以录入班级的基本信息,包括班级编号、班主任、学生名单等。
- 班级信息查询:教师可以通过该模块查询自己所带班级的相关信息,包括学生名单、课程表、成绩统计等。
5. 成绩管理模块- 成绩录入:教师可以通过该模块录入学生成绩,系统自动计算总分和排名。
- 成绩查询:学生家长可以通过该模块查询学生成绩,包括考试成绩、平时成绩、综合成绩等。
6. 考勤管理模块- 考勤录入:教师可以通过该模块录入学生的考勤情况,包括请假、迟到、早退等情况。
- 考勤查询:学生家长可以通过该模块查询学生的考勤记录,包括迟到次数、早退次数、缺勤次数等。
7. 权限管理模块- 角色管理:管理员可以通过该模块管理用户的角色和权限,包括教师、学生、家长等角色的设置和权限限制。
学生信息管理系统设计说明书一、引言随着教育信息化的不断推进,学生信息管理的重要性日益凸显。
为了提高学校管理的效率和质量,实现学生信息的规范化、科学化管理,我们设计了这套学生信息管理系统。
二、系统目标与功能需求(一)系统目标本系统旨在为学校提供一个高效、便捷、准确的学生信息管理平台,实现学生信息的集中管理、快速查询、统计分析和数据共享,提高学校管理工作的效率和决策的科学性。
(二)功能需求1、学生基本信息管理能够录入、修改、查询和删除学生的基本信息,包括姓名、性别、出生日期、身份证号、家庭住址、联系方式等。
2、学籍管理实现学生学籍的注册、异动(转学、休学、复学、退学等)处理,以及学籍信息的查询和统计。
3、课程管理对学校开设的课程进行管理,包括课程名称、课程代码、学分、授课教师等信息的录入、修改和查询。
4、成绩管理能够录入学生的课程成绩,进行成绩的计算、统计和分析,生成成绩单和成绩报表。
5、奖惩管理记录学生的奖励和处罚信息,包括奖励名称、处罚原因、时间等。
6、系统管理包括用户管理、权限管理、数据备份与恢复等功能,确保系统的安全稳定运行。
三、系统设计(一)总体架构本系统采用B/S(浏览器/服务器)架构,用户通过浏览器访问系统,服务器端负责数据处理和业务逻辑。
系统分为表示层、业务逻辑层和数据访问层三层架构,提高了系统的可维护性和可扩展性。
(二)数据库设计1、数据库选型选用关系型数据库MySQL,以满足系统对数据存储和管理的需求。
2、数据表设计根据系统功能需求,设计了学生信息表(student_info)、学籍信息表(student_status)、课程信息表(course_info)、成绩信息表(grade_info)、奖惩信息表(reward_punish_info)等数据表,并定义了各表的字段、数据类型、约束条件等。
3、数据库关系通过主键和外键建立了数据表之间的关联关系,确保数据的一致性和完整性。
(三)界面设计1、登录界面用户输入用户名和密码进行登录,系统验证用户身份后进入相应的操作界面。
学生信息管理系统设计报告随着信息技术的发展,学生信息管理系统在学校管理中起着越来越重要的作用。
本文将就学生信息管理系统的设计进行详细的阐述,以期提供一个高效、便捷、安全的学生信息管理系统。
一、背景介绍学生信息管理系统是指通过计算机技术和数据库管理系统,对学生的基本信息、课程信息、成绩信息等进行管理、查询和统计的系统。
它可以提高学校管理的效率,减少工作量,提供及时准确的信息服务。
二、系统功能1. 学生基本信息管理:包括学生的姓名、性别、年龄、出生日期、籍贯、联系方式等基本信息的录入、查询、修改和删除。
2. 课程信息管理:包括课程的名称、学分、授课教师、上课时间等信息的录入、查询、修改和删除。
3. 成绩信息管理:包括学生的学号、课程名称、成绩等信息的录入、查询、修改和删除。
4. 学生选课管理:包括学生的选课操作、选课结果查询和退选操作。
5. 教师信息管理:包括教师的姓名、性别、年龄、联系方式等信息的录入、查询、修改和删除。
三、系统设计1. 数据库设计:建立学生信息、课程信息、成绩信息、教师信息等数据库表,确保数据的准确性和一致性。
2. 用户权限管理:对不同用户设置不同的权限,保证信息的安全性和保密性。
3. 界面设计:设计简洁明了的用户界面,方便用户进行操作和查询。
4. 数据录入和修改:通过表单的方式进行数据的录入和修改,确保数据的完整性和准确性。
5. 数据查询和统计:提供灵活多样的查询和统计功能,方便用户根据需要获取信息。
6. 数据备份和恢复:定期进行数据备份,确保数据的安全性和可靠性。
四、系统实施1. 硬件环境:搭建适合的服务器和数据库环境,确保系统的稳定性和可靠性。
2. 软件环境:选择适合的开发工具和数据库管理系统,确保系统的高效性和易用性。
3. 数据导入和验证:将学生、课程、教师等信息导入系统,并进行验证和测试,确保数据的准确性和完整性。
4. 系统测试和优化:对系统进行全面测试,发现和修复bug,优化系统的性能和用户体验。
学生信息管理系统详细设计
1.系统结构设计
2.数据库设计
-学生表:存储学生的基本信息,如学号、姓名、性别、出生日期等;
-班级表:存储班级信息,如班级号、班级名称等;
-成绩表:存储学生的成绩信息,如学号、科目、成绩等。
3.功能模块设计
-学生信息录入模块:提供学生信息的录入功能,包括学号、姓名、
性别、出生日期等;
-学生信息查询模块:提供学生信息的查询功能,可以根据学号、姓
名等条件进行查询;
-学生信息修改模块:提供学生信息的修改功能,允许修改学生的基
本信息;
-成绩录入模块:提供成绩的录入功能,包括科目、成绩等;
-成绩查询模块:提供学生成绩的查询功能,可以根据学号、科目等
条件进行查询。
4.界面设计
学生信息管理系统的界面设计应简洁、直观。
可以使用面向对象的设
计风格,将相关的功能进行分组,并采用菜单、按钮等交互元素来展示和
操作功能。
在设计界面时,应注重界面的可用性和用户体验,使用户能够
方便地进行操作。
5.安全性设计
6.性能优化设计
总之,学生信息管理系统的详细设计需要考虑系统结构、数据库设计、功能模块、界面设计、安全性设计和性能优化设计等方面,以确保系统的
稳定性、安全性和性能。
学生信息管理系统的设计与实现一、引言随着教育信息化的不断发展和学校规模的不断扩大,面对庞大的学生信息数据,学校管理部门迫切需要一种高效、自动化的学生信息管理系统,以提高学校管理的工作效率和信息的处理准确性。
本文主要介绍学生信息管理系统的设计与实现。
二、系统需求分析1.功能需求①学生信息录入:包括学生的基本信息、家庭情况、学籍信息等。
②学生信息查询:支持按照学号、姓名等条件进行学生信息的查询。
③学生信息统计:能够对学生信息进行统计分析,如男女比例、各个年级的学生人数等。
④学生信息修改:支持学生信息的修改和更新操作。
⑤学生成绩管理:能够记录和查询学生的各项考试成绩。
⑥ 学生信息导入导出:支持将学生信息导入或导出为Excel文件,以方便数据的备份和迁移。
2.性能需求①系统响应速度:能够在较短的时间内响应用户的查询和录入请求。
②数据处理准确性:对于输入的学生信息,系统应能进行有效的校验和处理,保证数据的准确性和一致性。
③数据存储容量:能够承载大量学生信息和考试成绩信息,保证系统的可扩展性。
三、系统设计1.系统架构设计表现层:负责接收用户的请求、展示数据和页面,并将用户的操作请求发送给业务逻辑层。
业务逻辑层:负责处理各种业务逻辑,如学生信息的录入、查询、统计等,并将结果返回给表现层。
数据访问层:负责与数据库进行交互,进行数据的存储和读取。
2.数据库设计3.系统界面设计系统界面应简洁明了,易于操作。
包括学生信息录入界面、查询界面、统计界面和成绩管理界面等。
四、系统实现1.系统开发环境开发语言:使用Java语言进行开发。
开发工具:Eclipse等集成开发环境。
数据库:使用MySQL数据库进行数据存储。
2.系统模块实现根据功能需求,将系统划分为学生信息管理模块、学生成绩管理模块等多个子模块。
每个子模块包含相应的功能实现代码。
3.数据库操作实现通过Java中的JDBC技术,与MySQL数据库进行交互,实现学生信息的存储、查询、修改等操作。
学生信息管理系统程序设计1、软件开发目的该软件主要是实现对学生基本信息进行系统化的管理,首先可以对学生基本信息进行录入和存取,其次可以浏览学生的相关信息,然后可以删除和插入学生的相关信息,还有就是可按学号或按学生查询此学生的相关信息。
由此来系统化管理学生基本信息,并达到简易操作的目的。
2、功能分析说明图3、各项功能说明(1)学生基本信息的录入和保存:在链表中的适当位置插入一个学生信息节点,一次添加一条学生信息(添加容包含学号、、年龄),如果添加的学号已经在文件中存在,则不能添加到文件中去,应显示错误提示语;如果添加成功,则显示成功提示语。
添加操作完毕后,应该询问用户是否继续执行此操作。
如果用户不继续,则退回到程序初始界面。
(2)显示学生信息:此功能是显示一个学生信息节点中的信息,并在屏幕上显示出来。
(3)删除学生信息:进入该项功能界面后,删除学生信息,一次删除一条学生信息。
(4)按学号查找学生信息:按学号查询学生信息,要求显示文件中与用户输入的学号相匹配的学生信息,要求显示学号、、年龄等字段,如果文件中没有学生信息,则显示提示语。
查询操作完毕后,应该询问用户是否继续执行此操作。
如果用户不继续,则退回到程序初始界面。
(5)按查找学生信息:按查询学生信息,要求显示文件中与用户输入的学号相匹配的学生信息,要求显示学号、、年龄等字段,如果文件中没有学生信息,则显示提示语。
查询操作完毕后,应该询问用户是否继续执行此操作。
如果用户不继续,则退回到程序初始界面。
(6)修改学生信息修改学生信息中的某一项信息,一次更新一条学生信息(更新容包含学号、、年龄等字段值),如果更新的学号在文件中不存在,则不能更新,应该显示错误提示语;如果更新成功,则显示成功提示语。
更新操作完毕后,应该询问用户是否继续执行此操作。
如果用户不继续,则退回到程序初始界面。
(7)退出系统,结束任务。
4、软件功能的验收标准1.有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。
2.有严密正确的数据验证功能和数据处理功能,能够查询、插入、修改和删除学生信息。
3.系统要有一定的可靠性。
问题补充:不方便贴出来,发到我也可!slr1130163.最佳答案#include <stdio.h>#include <malloc.h>#include <string.h>#include <io.h>#define NULL 0#define LEN sizeof(struct student)#define FILE_DATA_PATH "c:\student.txt"struct student{long int num;char name[20];int age;char sex[4];char birthday[10];char address[30];long int tele_num;char E_mail[20];struct student *next;};int TOTAL_NUM = 0;struct student *head = NULL;void welcome();void mainmenu();void record();void insert(struct student *stu);void display(struct student *stu);void displayAll();void query();void query_by_num();void query_by_name();void readData();void writeData();void freeAll();void del();void devise(struct student *p);int main(){char userName[9];char userPWD[7];int i;welcome();for(i = 0; i < 3; i++){printf("\n管理员初始用户名和密码均为admin\n");printf("请输入您的用户名:");scanf("%s", userName);printf("\n请输入您的密码:");scanf("%s", userPWD);if ((strcmp(userName,"admin")==0) &&(strcmp(userPWD,"admin")==0)){//用户名和密码正确,显示主菜单mainmenu();break;}else{if (i < 2){//用户名或密码错误,提示用户重新输入printf("用户名或密码错误,请重新输入!");}else{//连续3次输错用户名或密码,退出系统。
printf("您已连续3次将用户名或密码输错,系统将退出!"); }}}return 0;}//显示欢迎信息{printf("+---------------------------+\n");printf("| |\n");printf("| 欢迎使用学生信息管理系统 |\n");printf("| |\n");printf("+---------------------------+\n");}//系统主菜单void mainmenu(){int choice;choice = -1;readData();printf("\n温馨提示:为保证您的操作得到保存,请按正常顺序退出系统^_^\n");do{printf("\n\n\n");printf("\t\t\t--------------------------------\n");printf("\t\t\t+ 学生信息管理系统 |\n");printf("\t\t\t--------------------------------\n"); printf("\t\t\t+ [1]----录入学生信息 |\n");printf("\t\t\t+ [2]----浏览学生信息 |\n");printf("\t\t\t+ [3]----查询学生信息 |\n");printf("\t\t\t+ [4]----删除学生信息 |\n");printf("\t\t\t+ [5]----修改学生信息 |\n");printf("\t\t\t+ [0]----退出系统 |\n");printf("\t\t\t+*·*·*·*·*·*·*·*·*·*·|\n");printf("\t\t\t--------------------------------\n");printf("请输入您的选择:");scanf("%d", &choice);switch(choice){case 0:writeData();freeAll();exit(0);case 1:record();break;case 2:displayAll();break;case 3:query();break;case 4:del();break;case 5:change();break;default:printf("\n无效选项!"); break;}}while(choice != 0);}//录入学生信息void record(){struct student *p0;p0 = (struct student *)malloc(LEN);printf("请输入学生的学号:");scanf("%ld",&p0->num);printf("请输入学生的:");scanf("%s",p0->name);printf("请输入学生的年龄:");scanf("%d",&p0->age);printf("请输入学生的性别:");scanf("%s",p0->sex);printf("请输入学生的出生年月:");scanf("%s",p0->birthday);printf("请输入学生的地址:");scanf("%s",p0->address);printf("请输入学生的:");scanf("%ld",&p0->tele_num);printf("请输入学生的E-mail:");scanf("%s",p0->E_mail);insert(p0);printf("该学生的信息为:\n");printf("-------------------------------------------------------------------------------");printf("学号\t\t年龄\t性别\t出生年月\t\t地址\t\tE-mail\n");display(p0);}void insert(struct student *stu){struct student *p0, *p1, *p2;p1 = head;p0 = stu;if(head == NULL){head = p0;p0->next = NULL;}else{while((p0->num > p1->num)&&(p1->next != NULL)){p2 = p1;p1 = p1->next;}if(p0->num <= p1->num){if(head == p1)head = p0;elsep2->next = p0;p0->next = p1;}else{p1->next = p0;p0->next = NULL;}}TOTAL_NUM++;}void display(struct student *p){printf("%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n", p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail);}//浏览学生信息void displayAll(){struct student *p;printf("学生总数:%d\n", TOTAL_NUM);p = head;if(head != NULL){printf("\n学号\t\t年龄\t性别\t出生年月\t地址\t\tE-mail\n");printf("-------------------------------------------------------------------------------");do{display(p);p = p->next;}while(p != NULL);}printf("\n");}//查询学生信息void query(){int choice;choice = -1;do{printf("\n");printf("+--------------------+\n");printf("| 按学号查询请按 1 |\n");printf("| 按查询请按 2 |\n");printf("| 取消请按 0 |\n");printf("+--------------------+\n");printf("请输入您的选择:");scanf("%d", &choice);switch(choice){case 0:return;case 1:query_by_num();break;case 2:query_by_name();break;default:printf("\n无效选项!");break;}}while(choice != 0);}//按学号查询学生信息void query_by_num(){int num;struct student *p1;printf("请输入学生的学号:");scanf("%ld", &num);if(head==NULL){printf("无学生记录!\n");return;}p1=head;while(num!=p1->num && p1->next!=NULL)p1=p1->next;if(num == p1->num){printf("\n学号\t\t年龄\t性别\t出生年月\t地址\t\tE-mail\n");printf("-------------------------------------------------------------------------------");display(p1);}elseprintf("没有该学生记录,请核对!");}//按查询学生信息void query_by_name(){char name[20];struct student *p1;printf("请输入学生的:");scanf("%s", name);if(head==NULL){printf("无学生记录!\n");return;}p1=head;while(strcmp(name, p1->name) && p1->next!=NULL)p1=p1->next;if(!strcmp(name, p1->name)){printf("\n学号\t\t年龄\t性别\t出生年月\t地址\t\tE-mail\n");printf("-------------------------------------------------------------------------------");display(p1);}elseprintf("没有该学生记录,请核对!");}//写入文件void writeData(){FILE* fp;//文件指针struct student *p;fp = fopen(FILE_DATA_PATH, "w");if (!fp){printf("文件打开错误!");return;}fprintf(fp,"%d\n", TOTAL_NUM);for(p = head; p!= NULL; p= p->next){fprintf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n",p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail);}fclose(fp);}void freeAll(){struct student *p1, *p2;p1=p2=head;while(p1){p2=p1->next;free(p1);p1=p2;}}//读取文件void readData(){FILE* fp;//文件指针struct student *p1, *p2;fp = fopen(FILE_DATA_PATH, "r");if (!fp){printf("文件打开错误!");return 0;}fscanf(fp,"%d\n", &TOTAL_NUM);head = p1 = p2 = (struct student *)malloc(LEN);fscanf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n",&p1->num, p1->name, &p1->age, p1->sex, p1->birthday,p1->address, &p1->tele_num, p1->E_mail);while(!feof(fp)){p1 = (struct student *)malloc(LEN);fscanf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n",&p1->num, p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail);p2->next = p1;p2 = p1;}p2->next = NULL;fclose(fp);}//删除学生信息void del(){struct student *p1, *p2;long int num;if(head == NULL){printf("无学生记录!\n");return;}printf("请输入您要删除的学生的学号:");scanf("%ld", &num);p1 = head;while(num != p1->num && p1->next != NULL){p2 = p1;p1 = p1->next;}if(num == p1->num){if(p1 == head)head = p1->next;else p2->next = p1->next;free(p1);TOTAL_NUM--;}elseprintf("没有该学生记录,请核对!\n");}//修改学生信息void change(){struct student *p1, *p2;long int num;if(head == NULL){printf("无学生记录!\n");return;}printf("请输入您要修改的学生的学号:"); scanf("%ld", &num);p1 = head;while(num != p1->num && p1->next != NULL) {p2 = p1;p1 = p1->next;}if(num == p1->num)devise(p1);elseprintf("没有该学生记录,请核对!\n");}void devise(struct student *p){int choice;choice = -1;do{printf("请选择您要修改的学生的信息容:\n"); printf("+----------------------+\n"); printf("| 请按 1 |\n");printf("| 年龄请按 2 |\n");printf("| 性别请按 3 |\n");printf("| 出生年月请按 4 |\n");printf("| 地址请按 5 |\n");printf("| 请按 6 |\n");printf("| E-mail 请按 7 |\n");printf("| 取消请按 0 |\n");printf("+----------------------+\n");printf("请输入您的选择:");scanf("%d", &choice);switch(choice){case 0:return;case 1:printf("请输入新:");scanf("%s", p->name);break;case 2:printf("请输入新年龄:");scanf("%d", &p->age);break;case 3:printf("请输入新性别:");scanf("%s", p->sex);break;case 4:printf("请输入新出生年月:");scanf("%s", p->birthday);break;case 5:printf("请输入新地址:");scanf("%s", p->address);break;case 6:printf("请输入新:");scanf("%ld", &p->tele_num);break;case 7:printf("请输入新E-mail:"); scanf("%s", p->E_mail);break;default:printf("\n无效选项!");break;}}while(choice != 0);。