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

合集下载

java学生信息管理系统课程设计

java学生信息管理系统课程设计

java学生信息管理系统课程设计一、课程目标知识目标:1. 理解Java面向对象编程的基本概念,掌握类与对象的关系、封装、继承和多态性;2. 学会使用Java集合框架管理学生信息,掌握ArrayList、HashMap等常用集合类的使用方法;3. 掌握Java异常处理机制,提高程序的健壮性;4. 理解数据库基本概念,学会使用SQLite数据库存储和管理学生信息。

技能目标:1. 能够运用面向对象思想设计学生信息管理系统,实现学生信息的增删改查功能;2. 能够使用Java集合框架对学生信息进行有效管理;3. 能够编写简单的数据库操作语句,实现对学生信息的数据存储和查询;4. 能够运用所学知识解决实际问题,具备一定的编程实践能力。

情感态度价值观目标:1. 培养学生团队协作精神,提高沟通与协作能力;2. 增强学生编程兴趣,激发创新意识,培养探索精神;3. 培养学生良好的编程习惯,注重代码规范和程序优化;4. 培养学生严谨的学习态度,面对问题敢于挑战,勇于克服困难。

课程性质:本课程为信息技术课程,以实践操作为主,注重培养学生的编程能力和实际应用能力。

学生特点:学生具备一定的Java基础,了解面向对象编程概念,但对实际项目开发经验不足。

教学要求:结合学生特点和课程性质,采用项目驱动教学法,引导学生自主探究,注重实践操作,提高学生的编程能力和解决问题的能力。

同时,关注学生的情感态度价值观培养,提高学生的综合素质。

通过本课程的学习,使学生能够独立完成一个简单的学生信息管理系统,为后续学习打下坚实基础。

二、教学内容1. 面向对象编程基础- 类与对象的关系- 封装、继承和多态性- 抽象类和接口2. Java集合框架- ArrayList、LinkedList、HashSet、HashMap等常用集合类- 集合类的使用场景和性能分析3. Java异常处理- 异常分类和异常处理机制- try-catch-finally结构- 自定义异常4. 数据库基础- 数据库概念和SQLite数据库- 数据表的设计与创建- SQL语句:增删改查操作5. 学生信息管理系统功能模块- 系统需求分析- 功能模块划分:学生信息管理、成绩管理、课程管理等- 编程实现各模块功能6. 项目实践与拓展- 系统测试与调试- 代码优化与重构- 项目拓展:增加用户权限管理、数据可视化等教学内容安排与进度:第一周:面向对象编程基础第二周:Java集合框架第三周:Java异常处理第四周:数据库基础第五周:学生信息管理系统功能模块设计第六周:项目实践与拓展教材关联:本教学内容与《Java程序设计》教材相关章节紧密关联,涵盖了面向对象编程、Java集合框架、异常处理和数据库基础等知识点。

学生信息管理系统设计

学生信息管理系统设计

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

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

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

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

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

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

该项目为独立开发。

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

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

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

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

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

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

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

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

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

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

学生信息管理系统c语言程序设计
一、主要思想。

(1)使用结构体数组来存储学生信息;
(2)创建查询、添加、修改、删除等操作函数来实现学生信息的管理;
(3)设置菜单,程序通过switch-case语句来识别用户输入,实现
不同的操作。

二、具体实现。

(1)定义一个学生信息的结构体,存储学号、姓名、年龄、性别等
信息;
(2)为学生信息管理系统添加菜单,当用户输入要求时,通过
switch语句来调用响应的函数;
(3)定义查询函数:用户可以根据学号、姓名或性别查询学生信息;
(4)定义添加函数:根据用户输入添加学生信息,需要排重处理;
(5)定义修改函数:根据学号查询到学生的信息后,用户可以修改
相应的内容;
(6)定义删除函数:根据学号查询学生信息后,用户可以删除学生
信息;
(7)定义退出系统函数:用户输入0,就可以退出学生信息管理系统。

学生基本信息管理系统

学生基本信息管理系统

沈阳工程学院课程设计(面向对象程序设计)设计题目:学生基本信息管理系统系别信息学院班级组长姓名组员姓名指导教师职称起止日期:2014年12月1日起——至2014年12月12日止沈阳工程学院课程设计任务书(面向对象程序设计)课程设计题目:学生基本信息管理系统系别信息学院班级组长姓名组员姓名指导教师职称课程设计进行地点:实训F任务下达时间:2014 年11月19 日起止日期:2014年12月1日起——至2014年12月12日止教研室主任朱克敌2014年11月15日批准1.课程设计的原始资料及依据面向对象程序设计课程设计的前驱条件是要求学生们必须具备“程序设计基础”、“面向对象程序设计”、“软件工程导论”等计算机专业基础理论知识,本次课程设计需要在符合这种前提条件下实施。

首先,成立项目小组并推举有责任心的学生担当项目组长,全组成员在组长的带领下,采用自选和老师指定相结合的方式确定了本次课程设计的题目。

本次课程设计要求学生首先查阅课程相关的资料,进一步加深对课程内容的理解,运用所学知识和所掌握的分析与设计的方法,完成一个较完整的面向对象程序设计,在此基础上利用Java语言对其进行实现,实现一个功能较为完善、界面友好、操作性强的应用程序,使学生们真正地锻炼了设计和编程能力。

2.课程设计的主要内容及要求要求参加课程设计的学生们要重新认真复习面向对象程序设计的理论知识和技能,熟练掌握Java编程工具,灵活运用所学理论知识和技能应用于该项目的设计与开发中,加深理解面向对象程序设计的编程技巧和方法。

具体要求如下:1.成立项目开发小组并选举项目组长。

2.根据设计要求小组选定设计题目。

3.每天要求项目组长要至少组织召开一次会议,总结、汇报和布置任务。

4.每次会议要求保留会议记录并存档。

5.发挥团队合作精神共同完成如下内容:(1) 开发背景(2) 系统分析(3) 系统设计(4) 代码实现6.组长要根据能力合理地分配任务,每个组员都要积极参与每项工作。

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

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

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

第2章学生信息管理系统框架设计

第2章学生信息管理系统框架设计

第2章学生信息管理系统框架设计在学校日常的教学管理中,会存在大量的学生信息,包括入学的基本档案信息、学生在学校产生的成绩信息、住宿信息、交费信息以及奖励信息等等。

对于这些大量的学生信息若采用手工管理的方式,会给信息的保存、查阅和处理等带来很大的工作量,浪费人力、物力和财力。

为了高效准确地对学生信息进行管理,建立实用的学生信息管理系统是学校提高管理效率的一个有效途径。

学生信息管理系统旨在建立一个对于学生各项信息进行管理的一个系统。

操作人员通过可视化的界面进行保存、填加、修改和删除学生数据信息。

为了对该系统有一个总体概貌,下面给出该系统的一些基本运行界面。

登录窗体主窗体·2·Visual C#2005数据库开发案例教程系别设置窗体班级信息维护窗体从Excel中导入信息窗体学生信息录入窗体学生信息浏览窗体学生信息查询窗体打印班级名册窗体第2章学生信息管理系统框架设计·3·2.1系统分析2.1.1需求分析通过实际调查,要求本系统具有以下功能:(1)由于操作人员的计算机知识有限,因此要求系统具有良好的人机界面。

(2)如果系统的使用对象较多,则要求有较好的权限管理。

(3)方便的数据查询。

(4)方便的添加、删除和修改数据功能。

(5)完善的数据备份、还原和清理功能。

(6)其它辅助功能2.1.2开发工具选择本系统采用SQL Server2005 Express创建后台数据库,前台开发工具利用Microsoft 公司的Visual Studio 2005进行开发,编程语言采用C#,程序架构采用C/S结构。

2.2系统功能设计2.2.1系统规划要设计一个完备的学生信息管理系统,需涉及大量的信息。

为了简化本系统的设计,只选取与学生基本信息紧密相关的系别信息、专业信息、班级信息以及学生基本信息等进行管理。

具体规划的模块如下。

(1)基本信息管理包括系别信息管理和专业信息管理等功能。

(2)班级信息管理包括班级信息管理以及班级信息浏览等功能。

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

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

第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)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

问题补充:不方便贴出来,发到我邮箱也可!slr1130@最佳答案#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);。

相关文档
最新文档