最新《学生管理系统》课程设计报告
- 格式:doc
- 大小:418.00 KB
- 文档页数:19
C语言学生管理系统课程设计报告1. 引言学生管理系统是一项常见的计算机应用程序,广泛应用于学校、培训机构等教育机构中。
本文将介绍一个基于C语言开发的学生管理系统,该系统具有以下功能:学生信息的录入、查询、修改和删除,以及成绩信息的录入、查询、统计和排序。
2. 系统设计2.1 功能模块学生管理系统主要包括以下功能模块:•学生信息录入模块:用于录入学生的基本信息,包括学号、姓名、性别、年龄等。
•学生信息查询模块:提供根据学号或姓名查询学生信息的功能。
•学生信息修改模块:允许修改学生的各项信息。
•学生信息删除模块:提供学生信息的删除功能。
•成绩信息录入模块:用于录入学生的成绩信息,包括科目和成绩。
•成绩信息查询模块:提供根据学号或科目查询学生成绩的功能。
•成绩统计模块:对学生的成绩进行统计,包括总分和平均分。
•成绩排序模块:按照总分对学生进行排序。
2.2 数据结构学生信息和成绩信息可以使用结构体存储。
定义如下:typedef struct {char id[20]; // 学生学号char name[20]; // 学生姓名char gender[5]; // 学生性别int age; // 学生年龄} Student;typedef struct {char id[20]; // 学生学号char subject[20]; // 科目float score; // 成绩} Score;通过结构体数组来存储多个学生的信息和成绩,如下所示:Student students[MAX_STUDENT_NUM];Score scores[MAX_SCORE_NUM];2.3 系统流程学生管理系统的流程图如下所示:graph LRA[学生信息录入] --> B[学生信息查询]A --> C[学生信息修改]A --> D[学生信息删除]A --> E[成绩信息录入]A --> F[成绩信息查询]A --> G[成绩统计]A --> H[成绩排序]3. 系统实现在C语言中,使用函数来实现不同的功能模块。
学生管理系统设计报告概述:学生管理系统是一种用于学校或教育机构的信息管理系统,旨在有效地管理学生的基本信息、课程信息、成绩信息等内容。
该系统提供了一种简便的方式来记录、检索和分析学生的数据,实现了学生管理的自动化和信息化。
本报告将详细介绍学生管理系统的设计过程和功能。
设计目标:1.提供学生基本信息的录入和查询功能,包括学生姓名、性别、年龄、班级等。
2.提供课程信息的录入和查询功能,包括课程名称、授课教师、学分等。
3.提供成绩录入和查询功能,包括学生的期末成绩、平时成绩等。
4.实现数据的有效存储和快速检索,保证信息的安全性和完整性。
5.提供数据统计和分析功能,如班级平均成绩、学生选修课程数量等。
6.提供用户权限管理功能,区分不同用户的操作权限。
系统结构:1.前端界面:前端界面通过图形化操作方式,向用户展示学生信息、课程信息和成绩信息,并提供相关操作按钮。
用户可以通过前端界面输入学生信息、课程信息和成绩信息,并进行查询、修改等操作。
2.后端逻辑:后端逻辑是系统的核心部分,负责处理用户的请求并与数据库进行交互。
后端逻辑将用户输入的数据进行处理和验证,然后将数据写入数据库或从数据库中读取数据。
它还提供了数据统计和分析功能,并根据用户的权限来控制操作的许可。
3.数据库:数据库是存储学生信息、课程信息和成绩信息的地方。
通过合理的数据库设计,可以实现数据的高效存储和快速检索。
数据库还应具备一定的安全性和完整性,通过设定访问权限和使用事务等技术手段来保护数据。
功能实现:根据设计目标,学生管理系统需要实现以下功能:1.学生信息录入与查询:管理员可以录入学生的基本信息,包括姓名、性别、年龄、班级等,并可以根据学生的姓名、班级等条件进行查询。
2.课程信息录入与查询:管理员可以录入课程的基本信息,包括课程名称、授课教师、学分等,并可以根据课程的名称、教师等条件进行查询。
3.成绩录入与查询:教师可以录入学生的成绩信息,包括期末成绩、平时成绩等,并可以根据学生的姓名、课程等条件进行查询。
学生管理系统设计报告一、引言学生管理系统是一种用于帮助学校或教育机构管理学生信息和相关事务的软件系统。
该系统的设计旨在提高学校的管理效率,促进教育教学的发展。
本报告对学生管理系统的设计进行详细分析和讨论,旨在为学校提供一个高效、简便和可靠的学生信息管理方案。
二、需求分析为了满足学校对学生管理的需求,我们对学生管理系统的功能进行了分析和规划。
学生管理系统应具备以下功能:1. 学生信息管理:学生信息包括学号、姓名、性别、年龄、班级、联系方式等,系统应具备学生信息的录入、查询、修改和删除功能。
2. 课程管理:包括课程信息的录入、查询、修改和删除,以及课程与学生之间的关联。
3. 成绩管理:系统应能够记录学生的各门课程成绩,并提供成绩查询和统计功能。
4. 学生考勤管理:系统应能够记录学生的出勤情况,并提供相应的查询和统计功能。
5. 班级管理:包括班级信息的录入、查询、修改和删除,以及班级与学生之间的关联。
6. 学生成绩报告:系统应能够生成学生课程成绩单、综合成绩报告等相关报告,以便学校和教师及时了解学生的学习情况。
7. 系统安全管理:系统应具备用户管理和权限控制功能,保证学生信息的安全性和机密性。
三、系统设计基于以上需求分析,我们设计了如下的学生管理系统:1. 系统结构学生管理系统采用客户端-服务器架构,后端数据库存储学生信息、课程信息、成绩记录等数据,客户端提供用户界面和操作交互。
2. 数据库设计(这里省略具体的数据库结构设计)3. 用户界面设计系统的用户界面应简洁、直观,操作友好。
我们采用了响应式设计,以适应不同屏幕尺寸的设备,如电脑、平板和手机。
四、系统实现为了实现学生管理系统,我们选择使用XXX技术栈进行开发。
具体的开发流程包括:1. 系统需求分析和概要设计根据学校的具体需求,我们进行了系统需求分析和概要设计,明确系统的功能和架构。
2. 数据库搭建和数据模型设计根据需求分析,我们设计了相应的数据库表结构,并根据需要进行索引和关联关系的设计。
C语言学生管理系统课程设计报告一、引言学生管理系统是一种用来管理学生信息的软件系统。
C语言学生管理系统课程设计旨在帮助学生掌握C语言的基本语法和编程能力,同时熟悉软件开发过程中的分析、设计和实现等环节。
本报告将详细介绍C语言学生管理系统的设计和实现过程。
二、需求分析为了明确系统的功能需求,在进行系统设计之前,我们需要进行需求分析。
对于一个学生管理系统,常见的功能包括学生信息录入、查找学生信息、修改学生信息和删除学生信息等。
2.1 学生信息录入学生信息录入是系统的基本功能之一。
管理员可以通过系统按照一定的格式输入学生的基本信息,包括学号、姓名、性别、年龄、班级等。
2.2 查找学生信息系统应提供根据学号或姓名快速查找学生信息的功能。
用户可以输入学号或姓名进行查询,并显示该学生的详细信息。
2.3 修改学生信息管理员可以通过系统修改学生的基本信息。
用户可以选择指定要修改的学生的学号,并对学生的姓名、班级、年龄等信息进行修改。
2.4 删除学生信息管理员可以通过系统删除指定学生的信息。
用户可以输入学号或姓名进行查询,并选择删除该学生的信息。
三、系统设计在需求分析的基础上,进行系统设计是为了明确系统的整体架构和各个模块之间的关系。
本章将对C语言学生管理系统的设计进行详细介绍。
3.1 系统架构C语言学生管理系统采用单层架构,将所有功能模块整合在一个程序中。
系统采用面向过程的设计思路,通过函数的调用和参数传递实现不同模块之间的交互。
3.2 数据结构设计系统的核心数据结构是学生信息结构体。
学生信息结构体包括学号、姓名、性别、年龄、班级等字段。
为了方便管理学生的信息,可以使用链表来存储学生信息。
链表的每个节点代表一个学生,通过指针连接起来形成一个链表。
3.3 模块设计系统的功能可以划分为若干个模块,包括学生信息录入模块、查找学生信息模块、修改学生信息模块和删除学生信息模块。
3.3.1 学生信息录入模块学生信息录入模块通过从键盘读取用户输入的信息,并将输入的信息保存到链表中。
Python学生管理系统课程设计报告1. 引言学生管理系统是一种用于学校、教育机构或培训中心等教育场景的信息管理工具。
本文将介绍一个基于Python的学生管理系统的设计与实现。
该系统旨在简化学生信息管理的过程,提高学校教务工作的效率和准确性。
2. 设计目标本学生管理系统的设计目标如下: - 实现学生信息的录入、修改和删除功能; - 提供课程管理功能,包括课程录入和成绩管理; - 支持学生信息和课程信息的查询和统计; - 提供用户登录和权限管理功能。
3. 功能设计3.1 学生信息管理学生信息管理是系统的核心功能之一,包括学生信息的录入、修改和删除操作。
学生信息包括学号、姓名、性别、出生日期、班级等基本信息。
3.2 课程管理课程管理功能包括课程的录入和成绩管理。
课程信息包括课程代码、课程名称和授课教师等基本信息。
成绩管理功能允许教师录入学生的课程成绩。
3.3 信息查询与统计学生管理系统提供学生信息和课程信息的查询功能,用户可以根据学号、姓名或课程代码进行查询。
此外,系统还提供了学生信息和课程信息的统计功能,如统计某个班级的学生人数,或计算某门课程的平均成绩等。
3.4 登录和权限管理学生管理系统允许用户通过登录身份验证功能进入系统。
不同用户具有不同的权限,例如学生只能查询自己的信息,而教师可以进行成绩录入和修改等操作。
4. 系统架构学生管理系统采用三层架构,包括数据层、业务逻辑层和用户界面层。
4.1 数据层数据层负责与数据库进行交互,包括对学生信息和课程信息进行增删改查操作。
可以使用SQL语言或ORM(对象关系映射)框架进行数据操作。
4.2 业务逻辑层业务逻辑层负责处理系统的业务逻辑,包括学生信息管理、课程管理、成绩管理、信息查询与统计等功能的实现。
业务逻辑层将接收用户界面层的请求并调用数据层的接口进行数据操作。
4.3 用户界面层用户界面层是用户与系统交互的界面,可以通过命令行界面(CLI)或图形界面(GUI)来实现。
Java学生管理系统课程设计报告1. 引言学生管理系统是针对学校或教育机构开发的一款软件系统,旨在方便学校管理学生信息、课程安排和学生成绩等方面的工作。
本报告将详细介绍Java学生管理系统的设计与实现过程。
2. 系统需求分析学生管理系统通常需要具备以下功能:•学生信息管理:包括学生基本信息的录入、修改、删除和查询等操作。
•课程管理:可以添加、编辑、删除课程信息,并能将课程分配给相应的学生。
•成绩管理:记录学生的成绩,并可以按照课程和学生进行查询和统计。
•用户权限管理:对不同的系统用户进行权限管理,确保系统安全和数据保密性。
根据需求分析,我们将使用Java编程语言来设计和实现学生管理系统。
3. 系统设计3.1 技术选型本系统将使用Java语言进行开发,选择使用Java的原因如下:•Java具有较高的跨平台性,可以在不同的操作系统上运行。
•Java拥有丰富的类库和开发工具,可以方便地进行系统开发和维护。
•Java具有良好的面向对象特性,可以实现系统的模块化设计和复用。
3.2 系统结构设计学生管理系统可以按照MVC(Model-View-Controller)设计模式进行结构设计。
具体的系统结构如下:•模型(Model):负责处理与数据相关的操作,包括学生信息、课程和成绩等的存储和管理。
•视图(View):负责显示系统界面和获取用户输入,将用户的操作请求传递给控制器。
•控制器(Controller):负责处理用户的操作请求,调用模型和视图来完成相应的业务逻辑。
3.3 类设计系统将包括以下核心类:•学生管理类(StudentManager):负责学生信息的添加、修改、查询和删除等操作。
•课程管理类(CourseManager):负责课程信息的添加、修改、查询和删除等操作。
•成绩管理类(ScoreManager):负责学生成绩的录入、查询和统计等操作。
•用户权限管理类(UserManager):负责用户的登录和权限管理。
学生管理系统课程设计报告一、概述学生管理系统是一个用于实现对学生信息管理的一个系统,该系统包括学生信息的增加、修改、删除、查询、统计等功能。
该系统主要功能为便捷的记录学生的个人信息,包括学生姓名、学号、性别、出生日期、联系方式、住址、班级、专业、成绩等;方便地对学生信息进行管理,以方便教师和学校管理者进行相关决策。
二、需求分析该系统的主要功能需求如下:1、学生信息管理:该系统将记录每个学生的个人信息,包括但不限于姓名、学号、性别、出生日期、联系方式、住址、班级、专业、成绩等。
2、学生信息查询:用户可以通过学生姓名、学号等信息快速检索和查找学生信息。
3、学生信息统计:该系统能够统计每个班级、专业或整个学校的学生人数、男女比例、平均分等数据。
4、用户管理:该系统还将包括对用户的身份验证、用户的添加、修改和删除。
5、安全性:该系统需要确保数据安全,只有经过身份验证的用户方可进行敏感操作。
三、系统设计1、架构设计:该系统的架构设计采用三层结构,即表示层、业务逻辑层和数据访问层。
其中表示层主要负责用户界面的展示和数据的呈现;业务逻辑层则负责系统的业务逻辑设计和实现,包括对用户的身份认证、数据库的访问等;数据访问层负责数据和文件的访问,进行数据库的增删改查等操作。
2、具体模块设计:(1)用户认证模块:在系统运行时,需要对用户进行身份认证,只有认证通过后,才能使用系统。
(2)用户管理模块:该模块负责对用户的添加、删除和修改等操作。
(3)学生信息管理模块:该模块包括学生信息的添加、修改、删除和查询等功能。
同时,还包括对学生信息的导入和导出功能,方便用户存储和备份信息。
(4)学生信息统计模块:该模块主要负责对学生信息进行统计,包括不同年级、班级、专业的学生人数、男女比例和平均分等数据。
(5)系统设置模块:该模块负责系统日志的管理和系统参数的设置,可以方便地对系统进行优化和调试。
(6)界面设计:系统的界面设计需要清晰、实用、方便用户使用。
c学生管理系统课程设计报告一、课程目标知识目标:1. 理解学生管理系统的基本概念,掌握其功能模块和工作原理。
2. 学习数据库的基本操作,如创建、查询、更新和删除数据。
3. 掌握使用编程语言(如Python)结合数据库进行学生信息管理的方法。
技能目标:1. 能够独立设计并实现一个简单的学生管理系统,包括学生信息的增删改查功能。
2. 学会使用数据库存储和管理数据,提高数据处理能力。
3. 培养问题分析、解决方案设计和编程实现的能力。
情感态度价值观目标:1. 培养学生对信息技术的兴趣和爱好,提高学习积极性。
2. 培养学生的团队协作精神,学会在项目中分工合作、共同解决问题。
3. 增强学生的责任感和使命感,认识到信息技术在学生管理系统中的重要作用。
课程性质:本课程属于信息技术学科,结合数据库和编程知识,注重实践操作,培养学生的动手能力和实际应用能力。
学生特点:学生处于高年级阶段,具备一定的信息技术基础和编程能力,对实际应用项目有较高的兴趣。
教学要求:结合学生实际情况,注重理论与实践相结合,充分调动学生的主观能动性,提高学生的实际操作能力和解决问题的能力。
将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。
二、教学内容1. 学生管理系统概述- 系统需求分析- 功能模块设计2. 数据库基础知识- 数据库概念及种类- 关系型数据库(如MySQL)的基本操作3. 编程语言选择与使用- Python编程基础- Python操作数据库(如使用SQLAlchemy)4. 学生管理系统实现- 系统架构设计- 学生信息模块实现(增删改查功能)- 用户权限管理5. 系统测试与优化- 功能测试- 性能测试- 系统优化策略6. 项目实践与展示- 团队合作完成学生管理系统- 系统演示与评价教学内容安排与进度:第一周:学生管理系统概述,数据库基础知识第二周:Python编程基础,Python操作数据库第三周:学生管理系统实现(学生信息模块)第四周:用户权限管理,系统测试与优化第五周:项目实践与展示教学内容与教材关联性:本教学内容与教材中关于数据库操作、Python编程以及实际应用项目开发等内容紧密相关,确保学生在学习过程中掌握学科知识,提高实际操作能力。
学生管理系统c语言课程设计报告1. 引言学生管理系统是现代教学管理中不可或缺的工具。
本报告将详细介绍一个基于C语言的学生管理系统的设计与实现。
学生管理系统用于记录学生信息、成绩管理、考勤管理、课程管理等功能,能够提高教学管理的效率和准确性。
2. 系统设计2.1 需求分析学生管理系统的主要功能包括: 1. 学生信息管理:添加、删除、修改学生的基本信息,如学号、姓名、年龄、性别等。
2. 成绩管理:录入学生的成绩,计算平均成绩。
3. 考勤管理:记录学生的考勤情况,统计缺勤次数。
4. 课程管理:添加、删除、修改课程信息,如课程编号、课程名称、教师姓名等。
2.2 系统架构学生管理系统采用模块化设计,分为四个模块: 1. 学生信息模块:实现学生信息的添加、删除、修改功能。
2. 成绩管理模块:实现成绩录入和平均成绩计算功能。
3. 考勤管理模块:实现考勤记录和缺勤次数统计功能。
4. 课程管理模块:实现课程信息的添加、删除、修改功能。
2.3 系统流程图st=>start: 开始op1=>operation: 添加学生信息op2=>operation: 删除学生信息op3=>operation: 修改学生信息op4=>operation: 成绩录入op5=>operation: 平均成绩计算op6=>operation: 考勤记录op7=>operation: 缺勤次数统计op8=>operation: 添加课程信息op9=>operation: 删除课程信息op10=>operation: 修改课程信息e=>end: 结束st->op1->op2->op3->op4->op5->op6->op7->op8->op9->op10->e 3. 功能实现3.1 学生信息管理3.1.1 添加学生信息通过输入学生的基本信息,将学生信息保存到系统中。
数据库学生管理系统课程设计报告一、引言学生管理系统是一种能够有效管理学校教育信息的软件系统。
本报告旨在设计一个基于数据库的学生管理系统,以便学校能够更好地管理学生信息、课程信息和成绩信息。
二、系统需求分析1. 学生信息管理学生信息包括学生的基本信息(如学号、姓名、性别、年龄、专业等)和联系方式。
系统应能够实现学生信息的录入、修改、查询和删除操作。
2. 课程信息管理课程信息包括课程编号、课程名称、授课教师和学分。
系统应能够实现课程信息的录入、修改、查询和删除操作。
3. 成绩信息管理成绩信息包括学生学号、课程编号、成绩和考试时间等。
系统应能够实现成绩信息的录入、修改、查询和删除操作,并能够计算学生的平均成绩和排名情况。
三、系统设计1. 数据库设计设计一个关系型数据库,包括学生表(Student)、课程表(Course)和成绩表(Score)。
学生表包含学号、姓名、性别、年龄、专业等字段;课程表包含课程编号、课程名称、教师等字段;成绩表包含学号、课程编号、成绩、考试时间等字段。
2. 界面设计设计一个简洁直观的用户界面,包括学生信息管理、课程信息管理和成绩信息管理等功能模块,为用户提供友好的交互体验。
四、系统实现基于数据库设计和界面设计,利用编程语言(如Java)实现学生管理系统功能。
通过编码和调试,确保系统功能正常运行。
五、系统测试对学生管理系统进行全面测试,包括功能测试、性能测试和安全测试等,保证系统的稳定性和可靠性。
六、系统优化根据测试结果和用户反馈,不断优化学生管理系统,提高系统的效率和用户体验。
七、总结通过学生管理系统课程设计,我对数据库设计、界面设计和系统实现有了更深入的理解。
希望这一设计能够为学校的教育信息管理提供一定的参考和帮助。
湖南工业大学课程设计任务书2012 —2013学年第一学期计算机与通信学院(系、部)软件工程专业姓名:夏笑声班级1202 课程名称:《面向过程程序设计》课程设计设计题目:《学生信息管理系统》完成期限:自2012 年12 月26 日至2012 年12 月28日共三天指导教师(签字):2012年12月28日系教研室)主任(签字):年月日计算机与通信学院《面过程程序设计》课程设计题目《学生信息管理系统》学号专业及班级软件工程1202姓名夏笑声日期 2012/12/28目录一、实验目的和要求 (4)1、课程设计的目的 (4)2、课程设计的要求 (4)二、设计方案 (4)1、总体设计 (4)2、系统流程图 (5)3、程序说明书 (4)三、总结与体会 (17)四、参考资料 (18)一、实验目的和要求1、课程设计目的:1、使学生巩固和加强“C语言程序设计”课程的理论知识。
2、使学生掌握C语言程序设计的方法及编程技巧。
3、进一步理解和运用结构化程序设计的思想和方法。
、5、初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,又接近工程的实际需要。
6、培养学生良好的程序设计风格。
、7、掌握书写程序设计开发文档的能力,使学生学会撰写课程设计报告。
、8、通过查阅手册和文献资料,。
培养学生独立分析问题和解决问题的能力。
、9、培养学生的创新能力和创新思维。
2、基本要求:(1)要求利用结构化程序设计的方法及C语言的编程思想来完成系统设计。
(2)模块化程序设计:要求在设计过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现。
(3)学生所选课题必须上机通过,并获得满意的结果。
(4)程序书写风格:锯齿型书写格式。
二、设计方案1、总体设计该程序共有6 大模块构成,程序的开头首先是一个欢迎界面,欢迎界面的下方有提示信息按回车键继续,这时按下回车键,界面跳转到程序的主界面,各功能菜单项。
此程序一共有六大功能,全部通过定义函数来实现功能。
主要有以下几项基本功能:1.信息录入功能2.信息查询功能3.删除记录功能4.修改记录功能5.按总分排序输出所有信息功能,6.退出程序功能。
3、程序说明书此程序在实现功能时采用的方式是编写函数,通过编写的5个函数来实现该程序的五大基本功能。
主要功能有信息录入、信息查询、删除记录、修改指定记录、输出所有学生信息,以及退出程序功能。
首先将一系列头文件包含进来以及定义文件指针和定义了一个结构数组用来存储学生的所有信息,源代码如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<process.h>struct node{char id[12];char name[15];char fale[4];int score[3];int all;int _size;}student[50];struct node2{char id[12];char name[15];char fale[4];char score[4][4];char all[4];};FILE *fr;struct node *p=student;char _class[4][10]={"C语言","大机","高数","英语"};int number;void luru();void chaxun();void shanchu();void paixu();void xiugai();void main()打开程序,首先可以看到的是一个精美的欢迎界面,该界面由如下代码实现:printf("\n\n\n\n\n\n\n\n\n\n\n\n");printf("&$&$&$&&$&$&$&$&$&$&$&$&$&&$&$&$&$&$&$&$$&\n");printf("&$&$&$&$&&$$&&$&$&$&$&$&$&$&$&$&$&&$&$&$&$\n");printf(" && ** ** &$\n");printf(" &$ ** ** ** ** &$\n");printf(" &$ **欢迎使用学生管理系统** &$\n");printf("&$ &$\n");printf(" &$ * * * 制作人:夏笑声* * * * * * * * &$\n");printf("&&$&$&$&$&$&$&$&$&$&$&$&$&$&$&$$&$&$&$&$&$\n");printf("&$&$&$&$&$&$$&$&$&$&$&$&$&$&$&&$&$&$&$&$&$\n\n\n\n\n\n\n");printf("\n\n\n\n\n按回车键继续...");欢迎界面如下图所示:同时,在屏幕的左下方有按回车键继续的提示信息,这时按一下回车键,由欢迎界面跳转到程序的主功能菜单界面,菜单由switch语句实现,如下:printf("请选择功能:\n");printf("信息录入请按1!\n");printf("信息查询请按2!\n");printf("删除记录请按3!\n");printf("修改记录请按4!\n");printf("按总分排序输出所有信息请按5!\n");printf("按0或其它任意键退出...\n");这时,我们在菜单的最上方可以看到一条警示信息,“注意:在第一次使用本软件之前,必须先建立一个存储文件”,这是因为此程序需要一个文件来将所有学生的各项信息存储在外存中,只有这样才能使已经记录的信息能够永久保存。
这项功能我采用的是用“w+”的方式打开文件,之所以这样设计,是因为用“w+”的方式打开文件使程序获得的一个额外功能,当按下“8”键的时候,可以将所有已经保存的记录全部清楚掉,即初始化记录功能,这样就做到了一举两得了。
接下来介绍的是程序的信息录入功能。
在设计信息录入功能时,我也遇到了不少的问题,其中最大的一个问题就是关于如何将要存储的程序写入文件,很显然,如果将输入的信息一股脑的写入文件的话,后果将是非常严重的,因为写入的信息始终是要读出来的,而如果随意地写进去的话,在读取信息的时候,读取信息的位置指针将无法定位,因为写入的时候没有按照一定的规律。
对于这个问题,我采用的解决办法的将所有学生的信息采用一定的格式写入文件,学号统一采用11位数字的格式,姓名统一采用占6各字节的格式,性别采用两个字节也就是一个中文字符的格式,后面是各科分数,全部采用占3个字节的格式,这样采用一种统一的格式将学生的信息按照顺序一个接着一个写入文件。
源代码如下:for(i=0;i<_n1;i++){printf("请输入第%d位学生的学号,按0退出此次录入!:\n",i+1);scanf("%s",p[number].id);getchar(); //用于吃掉回车符if(!(strcmp(p[number].id,_cheshi5))) //设置中途退出功能(如果中途不想继续输入的话){fclose(fr); //此句用来控制当中途退出时能将已输入的信息及时存到外存中break;}if(strlen(p[number].id)!=11){printf("输入的学号有误!学号为标准的11位数,请重新输入:\n");i--;continue;}else{fprintf(fr,"%s",p[number].id);loop2: printf("请输入第%d位学生的姓名(仅支持中文):\n",i+1);gets(p[number].name);if(strlen(p[number].name)==0||strlen(p[number].name)>6){printf("姓名长度不符合要求,请重新输入!\n");goto loop2;}fprintf(fr,"%s",p[number].name);a1=strlen(p[number].name);a2=3-(a1/2);for(b2=1;b2<=a2;b2++)fprintf(fr,""); //在姓名不足三个字的后用空格补齐loop7: printf("请输入性别:\n");gets(p[number].fale);if(strlen(p[number].fale)!=2){printf("性别输入有误,请重新输入!\n");goto loop7;}else fprintf(fr,"%2s",p[number].fale);p[number].all=0; //将总分初始化for(j=0;j<4;j++){printf("请输入第%d位学生的%s成绩:\n",i+1,_class[j]);scanf("%s",x[j]);fprintf(fr,"%-3s",x[j]);}_x1=atoi(x[1]);_x2=atoi(x[2]);_x3=atoi(x[3]);_x4=atoi(x[4]);_x5=_x1+_x2+_x3+_x4;fprintf(fr,"%-3d",_x5);printf("第%d位学生的信息输入成功!\n",i+1);}}fclose(fr);printf("录入结束,按回车回主菜单!\n");getchar();getchar();system("cls");}else{printf("\a");printf("超出最大人数,请重新输入!\n");}在读取文件时位置指针移动的问题就解决啦。