学生证管理系统(C语言课程设计)
C语言课程设计__学生证管理系统课案

C语言课程设计院系:姓名:学号:班号:指导教师:日期:2010年9月目录一、实验目的 (3)二、实验内容 (3)三、需求分析 (3)四、概要设计 (4)1.方案设计 (4)2.数据结构说明 (4)3.模块功能说明 (4)4.程序可以满足功能 (5)五、详细设计 (5)六、调试情况,设计技巧及体会 (12)七、源程序清单 (16)实验题目学生证管理系统一、实验目的1.熟悉C语言程序的编辑、编译链接和运行的过程,至少能够用一种编译器较熟练地编辑、编译及调试程序。
2.掌握C语言数据类型,如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
3.熟练运用if语句和switch语句以及嵌套应用。
涉及循环调用的,了解并掌握三种控制语句while、do-while和for语句。
4.学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。
5. 掌握文件和文件指针的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。
6.掌握结构体类型变量、数组的定义和使用。
7.了解指针和链表的概念,掌握指针的定义和使用指针变量的方法以及链表的正确用法。
灵活使用链表来储存学生信息。
8.掌握数组的定义、引用以及输入输出的方法、通过字符数组存储字符串,进一步使用字符串二、实验内容学生证的管理程序。
该程序应该具有下列功能:(1)录入某位学生的学生证信息;(2)给定学号,显示某位学生的学生证信息;(3)给定某个班级的班号,显示该班所有学生的学生证信息;(4)给定某位学生的学号,修改该学生的学生证信息;(5)给定某位学生的学号,删除该学生的学生证信息;(6)提供一些统计各类信息的功能。
三、需求分析系统功能:1.显示全部的学生证信息;2.给定某位学生的学号或姓名,查询或修改该学生的学生证信息;3. 给定某位学生的学号或姓名,删除该学生的学生证信息;4. 增加学生信息;5. 提供一些统计各类信息的功能。
例如统计学生数,班级数,每个班级的学生数;6. 能够对学号和班级进行升序和降序排序;7. 用文件的形式将录入的数据进行存储,并从其中读取数据。
c语言学生管理系统课程设计

C语言学生管理系统课程设计1. 引言学生管理系统是为了方便学校或教育机构对学生信息进行管理和维护而开发的应用软件。
本文将介绍一个使用C语言编写的学生管理系统的课程设计方案。
该系统将实现学生信息的增加、查询、修改和删除等功能,并通过文件存储学生信息。
2. 功能需求学生管理系统应该具备以下基本功能: - 添加学生信息:包括学号、姓名、性别、年龄等基本信息。
- 查询学生信息:按照学号或姓名查询学生信息,并显示在屏幕上。
- 修改学生信息:根据学号或姓名修改学生的基本信息。
- 删除学生信息:按照学号或姓名删除学生的信息。
- 显示所有学生信息:将所有学生的信息显示在屏幕上。
3. 系统设计3.1 数据结构设计系统采用结构体作为学生信息的数据结构,每个学生的信息包括学号、姓名、性别、年龄等字段。
struct Student {int id;char name[20];char gender;int age;};3.2 文件存储设计系统将学生信息存储在一个文本文件中。
文件的每一行表示一个学生的信息,各个字段之间通过分隔符进行分隔(如逗号或制表符)。
3.3 系统模块设计系统可以划分为以下几个模块: - 添加学生模块:负责获取用户输入的学生信息,并将其添加到文件中。
- 查询学生模块:负责根据用户输入的学号或姓名,在文件中查询学生信息,并显示在屏幕上。
- 修改学生模块:负责根据用户输入的学号或姓名,找到对应的学生信息并修改。
- 删除学生模块:负责根据用户输入的学号或姓名,找到对应的学生信息并删除。
- 显示学生模块:负责将所有学生信息从文件中读取出来,并显示在屏幕上。
4. 流程图以下是学生管理系统的主要流程图:graph LRA[学生信息管理系统] --> B(显示菜单)A --> C(添加学生信息)A --> D(查询学生信息)A --> E(修改学生信息)A --> F(删除学生信息)A --> G(显示所有学生信息)B --> H(退出系统)C --> I(获取学生信息)C --> J(将学生信息添加到文件中)D --> K(获取查询条件)D --> L(根据条件查询学生信息)D --> M(将查询结果显示在屏幕上)E --> N(获取修改条件)E --> O(找到对应的学生信息并修改)E --> P(将修改后的学生信息保存到文件中)F --> Q(获取删除条件)F --> R(找到对应的学生信息并删除)F --> S(将删除后的学生信息保存到文件中)G --> T(从文件中读取所有学生信息)G --> U(将学生信息显示在屏幕上)5. 实现方法学生管理系统可以使用C语言中的文件操作函数来实现。
c学生管理系统课程设计

c 学生管理系统课程设计一、教学目标本课程旨在让学生掌握学生管理系统的基本概念、设计和实现方法。
通过本课程的学习,学生将能够:1.理解学生管理系统的功能和结构;2.掌握学生管理系统的数据库设计和表结构设计;3.学会使用至少一种编程语言实现学生管理系统的基本功能;4.了解学生管理系统的测试和调试方法。
二、教学内容本课程的教学内容主要包括以下几个部分:1.学生管理系统的功能和结构:介绍学生管理系统的各项功能,如学生信息管理、成绩管理、课程管理等,以及系统的整体架构;2.数据库设计和表结构设计:讲解如何设计学生管理系统的数据库模型,包括表结构的定义和相关约束;3.编程语言实现:选择一种编程语言(如Python、Java等),让学生通过编写代码实现学生管理系统的基本功能;4.测试和调试:介绍测试和调试学生管理系统的常用方法,确保系统的稳定性和可靠性。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:讲解学生管理系统的基本概念、原理和关键技术;2.案例分析法:分析实际案例,让学生了解学生管理系统的应用场景和设计思路;3.实验法:让学生动手编写代码,实现学生管理系统的基本功能;4.讨论法:学生进行小组讨论,分享学习心得和解决问题的方法。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:为学生提供学生管理系统相关的基本知识和理论;2.参考书:提供更多的学习资料,帮助学生深入理解学生管理系统的设计和实现;3.多媒体资料:通过视频、PPT等形式,生动展示学生管理系统的原理和应用;4.实验设备:提供必要的硬件设备,让学生进行编程实践。
五、教学评估本课程的教学评估将采用多元化评价方式,全面、客观地评价学生的学习成果。
评估方式包括:1.平时表现:考察学生在课堂上的参与程度、提问回答等情况,占总评的20%;2.作业:布置与课程内容相关的编程练习,检查学生的理解和掌握程度,占总评的30%;3.考试:期末进行闭卷考试,测试学生对课程知识的掌握和应用能力,占总评的50%。
学生课程管理系统c语言课程设计

学生课程管理系统c语言课程设计一、课程目标知识目标:1. 理解并掌握C语言中结构体、数组、指针等基本概念;2. 学会运用C语言设计学生课程管理系统的基本功能,如增加、删除、修改和查询课程信息;3. 掌握文件操作在C语言中的应用,实现数据的持久化存储。
技能目标:1. 能够运用结构体组织数据,使用数组存储批量数据,运用指针进行高效数据处理;2. 培养学生独立编写代码、调试程序的能力,提高编程实践技能;3. 培养学生分析问题、解决问题的能力,学会设计简单的管理系统。
情感态度价值观目标:1. 培养学生热爱编程,增强对计算机科学的兴趣和热情;2. 培养学生团队协作精神,学会在团队中发挥个人特长,共同完成任务;3. 培养学生勇于面对困难,敢于挑战,善于总结经验教训的品质。
本课程针对高年级学生,结合C语言课程特点,注重理论与实践相结合,以项目驱动教学,培养学生编程实践能力和问题解决能力。
通过设计学生课程管理系统,让学生在实际项目中掌握C语言的核心知识,提高编程技能,同时培养良好的情感态度价值观。
课程目标具体、可衡量,旨在为学生和教师在教学过程中提供明确的指导,确保教学效果。
二、教学内容1. C语言基础知识回顾:结构体、数组、指针、函数、文件操作;2. 学生课程管理系统需求分析:功能模块划分、数据结构设计;3. 编程实现:- 设计课程信息结构体;- 实现课程信息的增加、删除、修改和查询功能;- 利用文件操作实现数据的持久化存储;- 设计简单的用户界面,进行功能选择和操作;4. 测试与调试:编写测试用例,进行功能测试,分析并解决可能出现的错误;5. 代码优化与重构:对代码进行优化,提高程序执行效率和可读性;6. 项目总结与展示:撰写项目报告,总结设计思路和经验教训,进行成果展示。
教学内容按照课程目标进行组织,以教材为基础,结合学生实际情况进行调整。
教学大纲明确教学内容和进度,具体安排如下:第一周:C语言基础知识回顾;第二周:学生课程管理系统需求分析和设计;第三周:编程实现课程管理系统的核心功能;第四周:测试与调试,优化代码;第五周:项目总结与展示。
c语言学生管理系统课程设计报告

C语言学生管理系统课程设计报告一、引言学生管理系统是一种用来管理学生信息的软件系统。
C语言学生管理系统课程设计旨在帮助学生掌握C语言的基本语法和编程能力,同时熟悉软件开发过程中的分析、设计和实现等环节。
本报告将详细介绍C语言学生管理系统的设计和实现过程。
二、需求分析为了明确系统的功能需求,在进行系统设计之前,我们需要进行需求分析。
对于一个学生管理系统,常见的功能包括学生信息录入、查找学生信息、修改学生信息和删除学生信息等。
2.1 学生信息录入学生信息录入是系统的基本功能之一。
管理员可以通过系统按照一定的格式输入学生的基本信息,包括学号、姓名、性别、年龄、班级等。
2.2 查找学生信息系统应提供根据学号或姓名快速查找学生信息的功能。
用户可以输入学号或姓名进行查询,并显示该学生的详细信息。
2.3 修改学生信息管理员可以通过系统修改学生的基本信息。
用户可以选择指定要修改的学生的学号,并对学生的姓名、班级、年龄等信息进行修改。
2.4 删除学生信息管理员可以通过系统删除指定学生的信息。
用户可以输入学号或姓名进行查询,并选择删除该学生的信息。
三、系统设计在需求分析的基础上,进行系统设计是为了明确系统的整体架构和各个模块之间的关系。
本章将对C语言学生管理系统的设计进行详细介绍。
3.1 系统架构C语言学生管理系统采用单层架构,将所有功能模块整合在一个程序中。
系统采用面向过程的设计思路,通过函数的调用和参数传递实现不同模块之间的交互。
3.2 数据结构设计系统的核心数据结构是学生信息结构体。
学生信息结构体包括学号、姓名、性别、年龄、班级等字段。
为了方便管理学生的信息,可以使用链表来存储学生信息。
链表的每个节点代表一个学生,通过指针连接起来形成一个链表。
3.3 模块设计系统的功能可以划分为若干个模块,包括学生信息录入模块、查找学生信息模块、修改学生信息模块和删除学生信息模块。
3.3.1 学生信息录入模块学生信息录入模块通过从键盘读取用户输入的信息,并将输入的信息保存到链表中。
学生管理系统c语言课程设计

学生管理系统c语言课程设计一、课程目标知识目标:1. 理解结构体在C语言中的应用,掌握学生管理系统中的数据结构设计。
2. 掌握文件操作在C语言中的实现,实现对学生的信息存储和读取。
3. 熟悉指针和数组在C语言中的应用,实现对大量学生数据的有效管理。
技能目标:1. 能够运用结构体、指针和文件操作编写一个简单的学生管理系统。
2. 学会分析实际问题,设计合适的算法和数据结构,解决学生管理中的查询、增加、删除和修改等问题。
3. 培养良好的编程习惯,编写规范、简洁、高效的代码。
情感态度价值观目标:1. 培养学生的团队协作意识,学会与他人共同解决问题。
2. 增强学生的自信心,敢于面对编程挑战,积极寻求解决问题的方法。
3. 激发学生的学习兴趣,认识到编程在实际生活中的广泛应用和价值。
本课程针对高年级学生,以C语言为基础,结合学生管理系统实际案例,注重培养学生的实际编程能力和解决问题的能力。
课程目标明确,可衡量,旨在帮助学生掌握C语言的核心知识,提高编程技能,同时培养学生的情感态度价值观,为后续学习奠定坚实基础。
二、教学内容1. 数据结构设计:- 结构体的定义和使用;- 结构体数组的创建和管理;- 指针在结构体中的应用。
2. 文件操作:- 文件的打开、读取、写入和关闭;- 文件存储结构设计;- 学生信息文件的读写操作。
3. 算法实现:- 学生信息管理系统的功能模块设计;- 查询、增加、删除和修改操作的实现;- 排序和筛选算法的应用。
4. 编程实践:- 设计学生管理系统界面;- 实现系统各功能模块;- 调试、优化和测试程序。
教学内容根据课程目标,结合教材相关章节进行组织。
课程涵盖数据结构、文件操作、算法实现和编程实践等方面,保证内容的科学性和系统性。
教学大纲明确教学内容安排和进度,以教材为基础,引导学生掌握C语言核心知识,提高实际编程能力。
三、教学方法本课程采用以下教学方法,旨在激发学生学习兴趣,提高教学效果:1. 讲授法:- 对课程中的基本概念、原理和知识点进行详细讲解,为学生奠定扎实的理论基础。
c语言学生管理系统课程设计报告

c语言学生管理系统课程设计报告我见过太多关于学生管理系统的课程设计报告,这仅仅只是其中之一、希望对你有所帮助。
一、题目学生管理系统的设计与实现二、设计目的和要求1.根据实际需求,实现一个学生管理系统,包括对学生的基本信息的增删改查功能以及成绩查询功能;2.使用C语言编写代码,实现学生管理系统的核心功能;3.界面友好,操作简便,用户可以通过简单的指令实现对学生信息的管理和查询;4.提供用户权限管理,确保只有具备管理员权限的用户才能进行管理操作;三、系统基本功能1.学生信息的增删改查:学生的基本信息包括学号、姓名、性别、年龄等。
管理员可以对这些信息进行增加、删除、修改和查询的操作,方便学生信息的管理;2.成绩查询功能:管理员可以根据学号查询学生的成绩,系统将返回相应的成绩信息;3.用户权限管理:系统将设置管理员账号和密码,只有拥有管理员权限的用户才能进行学生信息的管理操作。
四、系统设计思路1.确定数据结构:创建一个学生结构体,包含学号、姓名、性别、年龄和成绩等信息;2.确定主要函数:设计主菜单函数,用户可以通过选择功能选项来进行不同的操作,如增加学生信息、删除学生信息、修改学生信息、查询学生信息和查询成绩等功能;3.设计增删改查函数:通过逐步引导用户输入信息或选择操作,实现相应功能;4.设计用户权限函数:管理员通过输入正确的用户名和密码,才能登录进入管理界面,否则无法进行管理操作;5.进行函数间的调试和优化,确保代码的完整性和稳定性;6.设计简易界面:通过打印相应的信息和提示,实现用户友好的界面设计。
五、实际实现效果和展示1.用户界面友好,简单易懂,用户能够通过选择相应的功能来实现对学生信息的管理和查询。
2.数据操作准确,能够准确地增加、删除、修改和查询学生信息以及查询学生成绩。
3.用户权限管理严密,只允许管理员进行管理操作,保证了学生信息的安全性。
六、总结和展望通过本次学生管理系统的设计与实现,我深刻感受到了系统设计的重要性和挑战性。
学生管理系统课程设计c语言

学生管理系统课程设计c语言一、课程目标知识目标:1. 理解结构体在C语言中的概念及应用,掌握结构体在学生管理系统中的使用;2. 学会使用数组存储结构体数据,实现对多个学生信息的存储和管理;3. 掌握函数的定义和调用,能运用函数对学生信息进行增、删、改、查等操作;4. 理解文件操作的基本原理,学会使用文件对学生信息进行存储和读取。
技能目标:1. 能够运用结构体、数组、函数等知识编写简单的学生管理系统程序;2. 掌握基本的程序调试方法,能够独立解决程序中出现的错误;3. 学会使用编程工具(如Visual Studio、Code::Blocks等)进行C语言程序的编写、编译和运行;4. 能够根据实际需求,对程序进行优化和改进。
情感态度价值观目标:1. 培养学生对C语言的兴趣,激发学习热情,树立编程自信心;2. 培养学生的团队协作意识和沟通能力,使他们能够在小组合作中发挥积极作用;3. 培养学生的逻辑思维能力,提高分析问题和解决问题的能力;4. 培养学生的创新精神,鼓励他们勇于尝试,不断探索新的编程方法和技巧。
本课程针对高年级学生,结合学生已掌握的C语言知识,设计具有实用性和挑战性的学生管理系统项目。
课程以项目为导向,注重实践操作,旨在提高学生的编程能力和实际问题解决能力。
通过本课程的学习,使学生能够运用所学知识解决实际问题,为后续深入学习C语言打下坚实基础。
二、教学内容1. 结构体与结构体数组:- 结构体的定义和使用;- 结构体数组的创建和管理;- 结构体作为函数参数的传递。
2. 函数设计与实现:- 函数的定义、声明和调用;- 函数的参数传递:值传递与引用传递;- 学生管理系统功能模块的划分及对应函数的实现。
3. 文件操作:- 文件打开、关闭、读写操作;- 学生信息文件的存储和读取;- 文件错误处理。
4. 学生管理系统功能实现:- 学生信息的增加、删除、修改和查询;- 界面设计与交互;- 程序优化与调试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计报告学院:计算机学院专业:网络工程题目:学生证管理系统班序号:19313126学号:*************:***2013年12月31日报告目录一、实习内容要求—————————————————————————3二、需求分析—————————————————————————3三、总体设计—————————————————————————3四、设计简介—————————————————————————44.0 头文件——————————————————————————4 4.1 主函数—————————————————————————5 4.2 子函数菜单—————————————————————————5 4.3 子函数添加—————————————————————————5 4.4 子函数修改—————————————————————————10 4.5 子函数浏览—————————————————————————13 4.6 子函数查询—————————————————————————14 4.7 子函数统计—————————————————————————184.8 子函数删除—————————————————————————23五、上机操作—————————————————————————255.1 系统说明—————————————————————————255.2 系统测试—————————————————————————25六、总结 __________________________________________________31一、实习内容要求1、用C语言编写一个学生证管理系统,该系统具有以下功能:(1)录入某位学生的学生证信息;(2)给定学号,显示某位学生的学生证信息;(3)给定某个班级的班号,显示该班所有学生的学生证信息;(4)给定某位学生的学号,修改该学生的学生证信息;(5)给定某位学生的学号,删除该学生的学生证信息;(6)提供一些统计各类信息的功能;(7)提供浏览所有学生的学生证信息的功能。
2、输入要求应用程序运行后,在屏幕上显示一个菜单;用户可以根据要求,选定相应的操作项目;进入某个操作后,根据应用程序的提示,从键盘输入相应的信息。
3、输出要求(1)应用程序运行后,要在屏幕上显示一个菜单;(2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
二、需求分析学生证信息采用文件存储,因而要提供问价的输入/输出操作;要根据给定的学号或班号进行相应操作,要提供查找操作;实现一些统计给雷信息的功能要提供统计操作;另外,还要提供键盘式选择菜单以实现功能选择。
三、总体设计这个程序被设计成数据输入模块、数据查找模块、数据子函数删除和数据子函数统计。
即:添加,修改、查询,浏览、删除,统计等,如下图所示:四、设计简介4.0 头文件#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 100struct Class{char Cname[20]; //班名char Cno[20]; //班号};struct Student //学生{char Sname[20]; //姓名char Sex[10]; //性别char Sno[20]; //学号int Age; //年龄struct Class CInfo; //嵌套结构体,表示班级信息}StuInfo[N]; //结构体数组,用作读取和存放临时数据4.1 主函数void main(){menu();getchar();}4.2 子函数菜单void menu(){int chose;int right;do{printf("\n\t\t\t\t学生证管理系统\n");printf("*******************************************************************************\n");printf("\t\t\t\t1.添加学生信息");printf("\n\t\t\t\t2.修改学生信息");printf("\n\t\t\t\t3.全部学生信息");printf("\n\t\t\t\t4.查询学生信息");printf("\n\t\t\t\t5.统计学生信息");printf("\n\t\t\t\t6.删除学生信息");printf("\n\t\t\t\t7.退出系统\n");printf("*******************************************************************************"); printf("请输入数字选择:");scanf("%d",&chose);if(chose<1||chose>8){right=1;printf("输入错误,请重新输入!\n");getchar();}else right=0;}while(right==1);switch(chose){case 1:add(); break; //子函数添加case 2:modify(); break; //子函数修改case 3:browse(); break; //子函数浏览case 4:quiry(); break; //子函数查询case 5:stastic(); break; //子函数统计case 6:Delete(); break; //子函数删除case 7:exit(0); //退出}}4.3 子函数添加首先要判断文件StuInfo.txt是否存在,如果存在就以读写(r+)的方式打开,如果不存在,就以写(w)的方式创建文件StuInfo.txt。
输入格式要求:性别为男或女,学号为11位且不能重复,年龄在0-100之间,班级号为6位,程序提供了完善的验证机制,输入错误时将提示重新输入直到正确为止。
此外,如果以读写的方式打开,还要判断记录数num<N是否成立,因为结构体数组的大小为N,当num=N时,表示已满,不能再存储数据,需要修改N的值。
void add(){int num;int i;int age;char sno[20];char sex[20];char cno[20];int right;FILE*fp;if((fp=fopen("StuInfo.txt","r+"))==NULL){if((fp=fopen("StuInfo.txt","w"))==NULL){printf("\n文件不存在且创建失败,返回!\n");menu();}printf("\n请按照提示输入学生信息:\n\n");printf("姓名:");scanf("%s",&StuInfo[0].Sname);do{printf("\n性别(男或女):");scanf("%s",sex);if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0)){printf("输入错误,请输入男或女!\n");right=1;getchar();}else right=0;}while(right==1);strcpy(StuInfo[0].Sex,sex);do{printf("\n学号(11位):");scanf("%s",sno);if(strlen(sno)!=11){printf("输入错误,学号长度应为11位数!\n");right=1;getchar();}else right=0;}while(right==1);strcpy(StuInfo[0].Sno,sno);do{printf("\n年龄:");scanf("%d",&age);if(age<=0||age>100){printf("年龄应在0-100之间,请重新输入年龄!\n");right=1;getchar();}else right=0;}while(right==1);StuInfo[0].Age=age;do{printf("\n班号(6位):");scanf("%s",cno);if(strlen(cno)!=6){printf("输入错误,班号长度应为6位数!\n");right=1;getchar();}else right=0;}while(right==1);strcpy(StuInfo[0]o,cno);printf("\n班名:");scanf("%s",&StuInfo[0]ame);fprintf(fp,"\n%s\t%s\t%s\t%d\t%s\t%s",StuInfo[0].Sname,StuInfo[0].Sex,StuInfo[0].Sno,StuInfo[0].Age,StuInfo[ 0]o,StuInfo[0]ame);fclose(fp);printf("\n保存成功!\n");printf("\n请按enter键返回主菜单!\n");getchar();getchar();menu();} //以上的输入是以写的方式输入,下面是以读写的方式输入数据for(i=0;!feof(fp);i++){fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age,&StuInfo[i] o,&StuInfo[i]ame);}num=i; //记录数if(num==N){printf("\n保存记录数超出结构体数组数的大小,请先修改N的值!\n");printf("\n请按enter键返回主菜单!\n");getchar();getchar();menu();}printf("\n请按照提示输入学生信息:\n\n");printf("姓名:");scanf("%s",&StuInfo[num].Sname);do{printf("\n性别(男或女):");scanf("%s",sex);if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0)){printf("输入错误,请输入男或女!\n");right=1;getchar();}else right=0;}while(right==1);strcpy(StuInfo[num].Sex,sex);do{printf("\n学号(11位):");scanf("%s",sno);if(strlen(sno)!=11){printf("输入错误,学号长度应为11位数!\n");right=1;getchar();}else right=0;for(i=0;i<num;i++){if(strcmp(sno,StuInfo[i].Sno)==0){printf("该学号已经存在,请重新输入!\n");right=1;getchar();}}}while(right==1);strcpy(StuInfo[num].Sno,sno);do{printf("\n年龄:");scanf("%d",&age);if(age<=0||age>100){printf("年龄应在0-100之间,请重新输入年龄!\n");right=1;getchar();}else right=0;}while(right==1);StuInfo[num].Age=age;do{printf("\n班号(6位):");scanf("%s",cno);if(strlen(cno)!=6){printf("输入错误,班号长度应为6位数!\n");right=1;getchar();}else right=0;}while(right==1);strcpy(StuInfo[num]o,cno);printf("\n班名:");scanf("%s",&StuInfo[num]ame);//把该记录写到文件末尾fprintf(fp,"\n%s\t%s\t%s\t%d\t%s\t%s",StuInfo[num].Sname,StuInfo[num].Sex,StuInfo[num].Sno,StuInfo[num].Ag e,StuInfo[num]o,StuInfo[num]ame);fclose(fp);printf("\n保存成功!\n");printf("\n请按enter键返回主菜单!\n");getchar();getchar();menu();}4.4 子函数修改先判断文件StuInfo.txt以读(r)的方式能否打开,不能就返回,可以就读入记录;然后输入学号查找记录,没找到就返回,找到就按照提示修改该记录,与输入模块一样,输入的格式要求:性别为男或女,学号为11位且不能与除当前修改的记录的学号外的记录的学号重复,年龄在0-100之间,班级号为6位,程序提供了完善的验证机制,输入错误时将提示重新输入直到正确为止。