学生信息管理系统程序设计

合集下载

学生信息管理系统设计

学生信息管理系统设计

管理信息系统(实践)课程设计题目:学生信息系统开发专业:建筑经济管理(独立本科段)班级:1118Z121班学号:101813111姓名:吉宝花可行性分析对现有系统的分析(一).技术可行性要开发该系统必须具备一定的网络知识和数据库知识,最好能熟练掌握一门面向对象语言。

到目前为止,我们已经学习了三门程序设计语言,其中java就是一种很好的面向对象开发语言,java 中的多线程和多媒体技术完全可以实现此功能。

从理论上来说,技术上没问题。

(二).经济可行性随着社会的发展及经济的繁荣,知识经济已成趋势并在某些方面尤其突出,各大高校都随之扩招。

学生也日趋增多,这个给学籍管理带来了沉重的压力,使用人力来管理已经不可能了,一个好的有规模的学籍管理系统已经迫在眉睫了,所以在经济上是十分可行的。

(三).社会可行性学生管理系统是学校管理非常实用的一款软件,对老师管理学生、学生选课、查询成绩都非常方便,简单可视化操作,易于管理。

该项目为独立开发。

在法律方面不会存在侵犯专利权、侵犯版权等问题,完全按照合同的规定履行。

综合评价和论证结论学生管理系统是一款非常简洁实用的软件,通过分析认为值得去开发。

需求分析(一)目的与任务:学校学生管理信息系统是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(Management Information System)。

它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。

能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。

通过该系统,用户可以查看学生的基本资料、学习成绩等各方面的资料,能够方便的了解学生总体情况。

该管理系统为用户提供了一些简单的数据查询、输出各种信息等。

学生用户通过输入学生基本信息、课程基本信息等,由系统自行生成相应的数据以供学生查询,另外人事处的管理用户还可以对这些基本信息进行更新和删除, 学校学生管理信息系统力求给用户方便快捷的途径去管理这些繁琐的数据。

学生信息管理系统java课程设计(含源代码)

学生信息管理系统java课程设计(含源代码)

JAVA 程序设计 课程设计陈述宇文皓月课 题: 学生信息管理系统 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间:目 录1、需要实现的功能32、设计目的3 1、功能模块划分32、数据库结构描述43、系统详细设计文档64、各个模块的实现方法描述95、测试数据及期望结果11一、系统描述1、需求实现的功能1.1、录入学生基本信息的功能学生基本信息主要包含:学号、姓名、年龄、出生地、专业、班级总学分,在拔出时,如果数据库已经存在该学号,则不克不及再拔出该学号。

1.2、修改学生基本信息的功能在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。

评阅意见:评定成绩:指导老师签名:年 月 日1.3、查询学生基本信息的功能可使用“姓名”对已存有的学生资料进行查询。

1.4、删除学生基本信息的功能在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。

1.5、用户登陆用分歧的登录权限可以进入分歧的后台界面,从而实现权限操纵。

1.6、用户登陆信息设置可以修改用户登陆密码2、设计目的学生信息管理系统是一个教育单位不成缺少的部分。

一个功能齐全、简单易用的信息管理系统不单能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。

所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将发生大量的文件和数据,这对于查找、更新和维护都带来了很多困难。

随着科学技术的不竭提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理无法比较的优点。

例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。

基于微信小程序的学生信息管理系统的设计与研发

基于微信小程序的学生信息管理系统的设计与研发

基于微信小程序的学生信息管理系统的设计与研发学生信息管理系统是一个重要的系统,它能够帮助学校及教育机构方便地管理学生的信息,管理学生成绩,管理课程安排等,因此,该系统对学校来说至关重要。

随着移动互联网时代的到来,微信已成为普遍使用的社交工具,微信小程序作为其中的一个重要组成部分,已成为学生信息管理系统建设的新选择。

本文基于微信小程序,提出了一种学生信息管理系统的设计方案,主要包括前端UI设计以及后台数据库的构建,为学生信息管理系统在微信小程序平台上的研发提供了一定思路和技术支持。

具体设计如下:1. 前端UI设计:基于微信小程序的学生信息管理系统前端UI设计需要简洁明了,并且美观易用,从而能够方便学生及其他相关人员对系统的操作。

在系统的设计中,我们应该尽量避免繁琐的操作流程,提供简单、明了的界面,让用户直接能够找到自己所需要的功能。

此外,我们还需要根据不同用户的需求,提供不同的UI界面,例如针对学生提供学籍信息、成绩查询、课程安排等信息,针对老师提供学生信息管理、成绩录入、课程管理等功能。

2. 后台数据库的构建:学生信息管理系统的后台数据库是支撑整个系统运行的核心,因此,我们需要建立一个完善、稳定的数据库系统。

在构建数据库系统时,要注意分类存储,例如,分别存储学生信息、成绩信息、老师信息、课程信息等,以便快速高效地完成系统的查询和管理。

4. 系统安全设计:学生信息管理系统对于学校来说是至关重要的,如果系统设计不合理,就会存在一定的安全隐患。

因此,学生信息管理系统应该具备完善的安全措施和维护机制,防止数据泄露和系统攻击。

我建议,在系统设计中加入信息加密与解密机制,加强对系统中出现的异常行为进行监控,并配备完善的系统后台保障。

软件工程课程设计-学生信息管理系统

软件工程课程设计-学生信息管理系统

数据库设计
数据表设计
01
根据系统需求,设计合理的数据表结构,包括学生信息表、课
程信息表、成绩信息表等。
数据关系设计
02
定义数据表之间的关系,如学生信息表和成绩信计
03
采用加密技术对敏感数据进行加密存储和传输,确保数据的安
全性。
界面设计
界面风格设计
版本控制
Git
关键代码实现
学生信息管理
实现学生信息的增删改查功能 ,包括基本信息、成绩、奖惩 情况等。
课程信息管理
实现课程信息的增删改查功能 ,包括课程名称、学分、任课 教师等。
用户登录验证
通过用户名和密码进行身份验 证,采用MD5加密密码确保安 全性。
班级信息管理
实现班级信息的增删改查功能 ,包括班级名称、班主任、学 生列表等。
THANKS
感谢观看
等。
课程管理
系统应支持课程的添加、修改、查询和删除 ,包括课程名称、课程描述、授课老师等。
用户管理
系统应提供用户注册、登录、权限分配等功 能,确保不同用户角色的操作权限。
非功能性需求
系统性能
系统应保证稳定运行,处理速 度快,响应时间合理。
数据安全
系统应采取必要的数据加密和 备份措施,确保学生信息的安 全性和完整性。
3
学生信息管理系统通常采用B/S或C/S架构,具有 用户界面友好、操作简便、数据安全性高等特点 。
设计目标与要求
实现学生信息的全面管 理,包括基本信息、成 绩信息、课程信息、奖
惩信息等。
01
保证数据的安全性和完 整性,采用合理的权限 控制和数据备份机制。
03
采用先进的软件开发技 术和工具,确保系统的

学生信息管理系统er语言程序设计

学生信息管理系统er语言程序设计

学生信息管理系统er语言程序设计
以下是一个简单的学生信息管理系统的er语言程序设计,包含实体、属性、关系与约束:
实体:
- 学生 (Student)
- 课程 (Course)
- 成绩 (Score)
属性:
学生 (Student)
- 学号 (StuID) - 主键
- 姓名 (Name)
- 性别 (Gender)
- 年龄 (Age)
- 年级 (Grade)
- 专业 (Major)
课程 (Course)
- 课程号 (CourseID) - 主键
- 课程名称 (CourseName)
- 学分 (Credit)
- 学时 (Hours)
成绩 (Score)
- 学生学号 (StuID) - 外键
- 课程号 (CourseID) - 外键
- 成绩 (Grade)
关系:
- 学生和成绩是1:n关系,一个学生可以对应多个成绩。

学生实体和成绩实体通过学号建立联系。

- 课程和成绩是1:n关系,一门课程可以有多个成绩。

课程实体和成绩实体通过课程号建立联系。

约束:
- 学号和课程号都是唯一的标识符,不能重复添加。

- 成绩必须在合法范围内,如0-100分。

- 学生和课程的信息必须存在于对应的实体中,不能不存在。

程序设计:
根据上述ER图,设计数据库表结构。

在程序中,可以利用SQL语句对数据库进行增删改查操作,实现学生信息的管理和成绩的查询。

同时,还需要根据实际需求开发前端界面,包括学生信息和成绩的录入、修改和查询等功能。

JAVA-面向对象程序设计-学生个人信息管理系统

JAVA-面向对象程序设计-学生个人信息管理系统

JAVA-面向对象程序设计-学生个人信息管理系统软件学院课程设计报告书课程名称面向对象程序设计设计题目学生个人信息管理系统专业班级嵌入式软件09-2学号**********姓名王翀指导教师2011 年6 月目录1 设计时间 (5)2 设计目的 (5)3设计任务 (5)4 设计内容 (5)4.1需求分析 (5)4.1.1问题描述 (5)4.1.2基本要求 (5)4.2总体设计 (6)4.2.1包的描述 (9)4.2.2类的描述 (10)4.2.3类之间的关系 (10)类MainTest继承JFrame。

(10)类jenter实现接口ActionListener。

(10)4.3 详细设计 (10)4.3.1类图 (14)4.3.2页面设计 (14)4.4 测试与分析 (15)4.5 程序代码 (17)5 总结与展望 (32)参考文献 (32)课程设计成绩评定 (34)1 设计时间2012年6月13日——6月19日2 设计目的《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。

其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力3设计任务设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。

要求如下:(1)具有简单的录入,查询和修改功能。

(2)修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改;(3)使用文件存储数据。

(也可用数据库)(4)学生个人信息必须包括:学号、姓名、性别、出生日期、身份证号、专业、班级自我简介,其余可自行丰富。

4 设计内容4.1需求分析学生管理系统需要对学生的基本信息进行简单的录入,查询,修改三项基本功能。

具体实现使用Access2003数据库实现基本操作,前台窗口使用GUI编程创建图形界面,对图形界面的窗口和按钮进行事件监听,执行相应的SQL语句。

学生信息管理系统概要设计

学生信息管理系统概要设计

第5章学生管理系统概要设计5.1引言5.1.1编写目的由于现在的学校规模在逐渐的扩大,设置的专业类别、分支机构及老师、学生人数越来越多,对于过去的学生信息管理系统,不能满足当前学生信息管理的服务性能要求。

本报告对于开发新的<<学生信息管理系统>>面临的问题及解决方案进行初步的设计与合理的安排,对用户需求进行了全面细致的分析,更清晰的理解学生信息管理系统业务需求,深入描述软件的功能和性能与界面,确定该软件设计的限制和定义软件的其他有效性需求,对开发计划进行了总体的规划确定开发的需求与面临困难的可行性分析。

5.1.2背景开发软件的名称:《学生信息管理系统》项目提出者:项目开发者:用户:管理员、老师、学生5.1.3定义数据流图:简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

数据字典:是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。

:是一项微软公司的技术,是一种使嵌入网页中的脚本可由特网服务器执行的服务器端脚本技术。

指Active Server Pages(动态服务器页面),运行于IIS 之中的程序。

C#:(C Sharp)是微软(Microsoft)为。

NET Framework量身订做的程序语言,微软公司在2000年6月发布的一种新的编程语言。

C#拥有C/C++的强大功能以及Visual Basic简易使用的特性,是第一个组件导向(Component-oriented)的程序语言,和C++与Java一样亦为对象导向(object-oriented)程序语言。

SQL:(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

学生信息管理系统详细设计

学生信息管理系统详细设计

学生信息管理系统详细设计课程名称:软件工程指导老师:冯年荣组员:岳一沿、朱隆君、张敏张雨、邵天宇、万文彬2015/5/11、详细设计概述详细设计也叫做程序设计,它不同于编码或编制程序。

在详细设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。

编程设计所开发项目的具体要求和对每个模块规定的功能,以及算法的设计和评价。

详细设计需要给出适当的算法描述,为此应提供详细设计的表达工具。

在理想情况下,算法过程描述应采用自然描述语言来表达,使不熟悉软件的人理解这些规格说明比较容易,无需重新学习。

但是,自然语言在语法上和语义上往往具有多义性,常常要依赖上下文才能把问题交代清楚。

因此,必须使用约束性更强的方式来表达细节。

2、详细设计的基本内容详细设计过程中需要完成的工作主要是确定软件各个组成部分内的算法以及各个部分的内部数据结构,确定各个组成部分的逻辑过程。

另外还有以下工作。

2.1 处理方式的设计(1)数据结构设计:对于需求分析、总体设计确定的概念性的数据类型进行确切的定义。

(2)算法设计:用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来,并为实现软件系统的功能需求确定所必需的算法,评估算法的性能。

(3)性能设计:为满足软件系统的性能需求确定所必需的算法和模块间的控制方式。

(4)确定外部信号的接受发送形式。

2.2 物理设计对数据库进行物理设计,确定数据库的物理结构。

2.3 可靠性设计2.4 其他设计(1)代码设计:为了提高数据的输入、分类、存储及检索等操作的效率,以及节约内存空间,对数据库中的某些数据项的值要进行代码设计。

(2)输入输出格式设计:针对各个功能,根据界面设计风格,设计各类界面的样式。

(3)人机对话设计:对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容及格式的具体设计。

3、结构程序设计3.1 五种基本控制结构构造程序。

(1)顺序型:几个连续的加工步骤依次排列构成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生信息管理系统程序设计1、软件开发目的该软件主要是实现对学生基本信息进行系统化的管理,首先可以对学生基本信息进行录入和存取,其次可以浏览学生的相关信息,然后可以删除和插入学生的相关信息,还有就是可按学号或按学生姓名查询此学生的相关信息。

由此来系统化管理学生基本信息,并达到简易操作的目的。

2、功能分析说明图3、各项功能说明(1)学生基本信息的录入和保存:在链表中的适当位置插入一个学生信息节点,一次添加一条学生信息(添加内容包含学号、姓名、年龄),如果添加的学号已经在文件中存在,则不能添加到文件中去,应显示错误提示语;如果添加成功,则显示成功提示语。

添加操作完毕后,应该询问用户是否继续执行此操作。

如果用户不继续,则退回到程序初始界面。

(2)显示学生信息:此功能是显示一个学生信息节点中的信息,并在屏幕上显示出来。

(3)删除学生信息:进入该项功能界面后,删除学生信息,一次删除一条学生信息。

(4)按学号查找学生信息:按学号查询学生信息,要求显示文件中与用户输入的学号相匹配的学生信息,要求显示学号、姓名、年龄等字段,如果文件中没有学生信息,则显示提示语。

查询操作完毕后,应该询问用户是否继续执行此操作。

如果用户不继续,则退回到程序初始界面。

(5)按姓名查找学生信息:按姓名查询学生信息,要求显示文件中与用户输入的学号相匹配的学生信息,要求显示学号、姓名、年龄等字段,如果文件中没有学生信息,则显示提示语。

查询操作完毕后,应该询问用户是否继续执行此操作。

如果用户不继续,则退回到程序初始界面。

(6)修改学生信息修改学生信息中的某一项信息,一次更新一条学生信息(更新内容包含学号、姓名、年龄等字段值),如果更新的学号在文件中不存在,则不能更新,应该显示错误提示语;如果更新成功,则显示成功提示语。

更新操作完毕后,应该询问用户是否继续执行此操作。

如果用户不继续,则退回到程序初始界面。

(7)退出系统,结束任务。

4、软件功能的验收标准1.有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。

2.有严密正确的数据验证功能和数据处理功能,能够查询、插入、修改和删除学生信息。

3.系统要有一定的可靠性。

问题补充:不方便贴出来,发到我邮箱也可!***************最佳答案#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 change();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;}//显示欢迎信息void welcome(){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);。

相关文档
最新文档