C++学生信息管理系统课程设计报告42596
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++课程设计报告——学生信息管理系统
一、引言
随着时代的进步,信息的流速和想要管理的信息成比例地增加,如何快捷的查找、输
入和更新学生的信息已经成为了一道重要的课题。
本系统基于C++语言编程,可以实现对
学生信息的查询、修改、增加以及删除等多种操作。
利用本系统,可以很快的建立学生信
息的数据库,提高了工作效率,更有益于信息数据的及时更新,大大地改善了工作效率与
信息准确度。
二、系统结构
本系统包括数据管理模块、界面显示模块、基本操作模块、文件管理模块、查询模块
和退出模块等。
数据管理模块完成对学生信息的管理和记录;界面显示模块完成系统界面
显示和菜单显示;基本操作模块实现增加学生,删除学生,修改学生等基本操作;文件管
理模块实现将学生信息保存到文件中或者从文件中读取;查询模块实现模糊查询学生信息;退出模块用于退出系统。
三、系统功能
1、完成管理学生的基本操作:增加、修改、删除、查询等;
2、支持模糊查询,模糊查询学生的基本信息,精准查找学生信息;
3、支持将系统中学生信息保存到文件当中,从文件中加载学生信息;
4、支持多种界面显示:菜单显示和友好操作界面;
五、总结
通过C++语言编写学生信息管理系统,我们可以拓展C++语言本身技术,加强程序设
计和软件应用开发的能力,使大家应用在实际的生活中。
此次计算机课程设计,我们以
C++语言为编程语言,研发了一款基于学生信息的管理技术,可以实现较好的信息管理。
虽然本次设计的系统还有一些不足,但也给我们编程的经验。
我们将通过努力改善,继续
完善,追求更加智能、便捷的管理系统软件,为今后的学习和工作做出更多贡献。
c学生管理系统课程设计报告

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语言学生信息管理系统设计报告

c语言学生信息管理系统设计报告随着教学质量和教学管理的要求不断提高,校园管理系统对于诸多困难领域的改善服务开始发挥着重要作用,而学生信息技术系统设计是实现校园管理质量提升的重要手段之一。
实施学生信息管理系统可以提高人力资源管理的效率,降低办理各项业务的成本,将学校管理变得更加规范和有效。
本报告旨在设计一套C语言学生信息管理系统,用于学校信息管理与市场营销管理,实现数据的及时收集、存储和处理,同时,改善学校的教学管理,提高教学质量,提升学生的学习体验。
首先,系统设计将涉及到C语言的语法和结构,以便理解和实现学生信息的管理。
其次,关于系统的功能,可以从学生信息管理、任课管理、教学管理、学术科研、职位设置、绩效考核等方面进行完善。
针对关键管理系统,为了实现系统的可靠性和安全性,将采用多种数据库技术,包括SQL Server、Oracle、MySQL等数据库技术,以及主流计算机语言C++、Java等,实现数据库的操作、学生信息管理系统的开发、学习管理系统的开发等技术需求。
此外,本报告还将对相关技术以及软件测试等内容进行分析,以保证学生信息管理系统的可靠性和稳定性。
本报告的完成,必须充分考虑C语言的基本知识,以及C语言学生信息管理系统在实施过程中的可能风险。
在实施过程中,应该通过计算机技术的应用、软件测试、数据库技术的改进等多方面分析,以保证系统在实施过程中的高效稳定性。
综上所述,本报告将实施C语言学生信息管理系统,实现学校信息管理与市场营销管理,旨在收集、存储和处理数据,同时提高教学管理的质量,提升学生的学习体验,实现学校的管理变得更加规范和有效。
此外,本报告还将深入探讨如何利用计算机技术、数据库技术、软件测试等相关技术,保证学生信息管理系统的可靠性和安全性。
C语言课程设计-学生信息管理系统设计报告

C语言课程设计题目:学生成绩管理系统完成时间:2010年6月24号一、设计目的1、通过课程设计全面掌握《C语言程序设计》关键知识点,掌握C语言中数组、指针、结构体、文件等方面的基本知识。
2、通过课程设计了解并掌握C语言程序设计的方法,熟悉C程序设计的开发环境及C程序的调试过程。
3、培养学生查阅参考资料、手册的自学能力,通过独立思考深入钻研有关问题,学会自己分析、解决问题的方法。
二、设计内容设计一个学生成绩管理系统,对上学期的本班的学习成绩进行管理,具有查询和检索功能,并且能够对指定文件操作,也可将多个文件组成一个文件。
主要功能:1、键入学生信息2、查看录入的信息3、按姓名查看信息4、按学号查看信息5、按平均成绩排序6、删除信息7、保存信息8、读取文件9、我的个人信息0、退出三、系统流程图(见下一页)四、函数主要功能说明:1、输入学生的信息函数功能:type函数通过循环向结构体中输入学生的学号、姓名、性别、英语成、数学成绩、语文成绩。
Type函数流程图2、查看输入的信息功能:通过look函数以一个循环的形式输出所要查看的信息。
3、查询功能:通查询信息,过search_name函数和search_number函数来进行比较查找,找到后输出该学生信息查找函数的流程图4、排序功能:对数据进行排序,通过order函数对数据按平均分进行排序,排序结束后调用save函数保存。
5、删除功能:删除信息,通过del函数实现,删除后调用save函数对数据保存。
6、保存功能:对数据进行保存,用save函数向文件中写入数据实现该功能。
7、退出程序五、调试方法以及测试过程中的问题及解决方法调试方法:逐条的对程序中的错误进行修改;修改程序中的变量、声明新函数以及声明头文件对函数进行调试。
测试过程中遇到的问题:1、删除学生信息功能不能实现。
问题描述:在选择删除功能后不能把选择的学生信息删除,而总是删除其他学生的信息。
解决办法:出现这个问题肯定是数据覆盖的时候出现了错误,也就是循环出现了错误。
c语言课程设计报告---学生信息管理系统

题目:学生信息管理系统一、需求分析任务要求:自学C语言中有关链表及外部文件得内容,设计学生信息管理系统。
具体要求如下:◆建立学生信息,信息至少包括名字、性别、年龄、学号、系别、家庭信息等内容;◆能够提供添加、删除与修改学生信息等功能;◆能将通讯录保存在文件中;◆能够按指定方式输出学生信息.系统功能需求分析:★1、为存储学生信息,需定义一个结构体类型,成员名字、性别、年龄、学号、系别、家庭信息等,并建立链表,定义该结构体类型得指针,用于指向各结点;★ 2、分别建立具有添加、删除、修改、查询等功能得子函数,完成相应功能,对程序实现模块化。
这其中要用到对链表得删除、插入等知识。
删除时用一结构体指针指向链表得第一个结点,检查该节点得值就是否等于输入得要删除得学号,若相等就删除,不相等则后移指针,直至表尾。
插入时也要先找到相应结点,再添加.★3、为实现存储功能,需用到文件得相关函数,打开文件,将添加、修改或删除得信息存入磁盘中。
★4、为以表格得形式输出文件,宏定义格式化输出语句,指定输出学生信息。
二、概要设计系统总体设计框架:对程序进行模块化,建立添加、修改、删除、查找与显示功能得子函数,各子函数中运用链表存储数据。
从主函数开始执行,调用各个子函数,并运用文件相关知识将信息存入磁盘中。
系统功能模块图:三、详细设计主要功能模块得算法设计思路如下:1、查询通讯录信息(void chakan())(1)为开辟一个新单元(2)输入查询关键字:(3)读取保存得文件数据输入ASCLL字符:(4)在链表中寻找相应结点;(5)调用输出函数,输出结点信息.2、添加信息函数(void add())(1)定义指向结构体变量得指针;(2)移动指针,找到插入结点;(3)在要插入得结点输入信息;(4)调用保存函数,打开文件,保存输入信息。
3、删除信息函数(void del())(1)定义指向结构体变量得指针;(2)用指针检验链表中就是否有记录,若没记录,返回主函数;(3)根据要修改得编号查找要删除得结点;(4)修改链表,删除对应结点。
c语言学生管理系统课程设计报告

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

C语言程序设计课程设计报告设计题目:学生信息管理系统专业电子信息工程班级学生指导教师年学期一、总体设计<一>.模块划分总体分为4大板块,分别为:1、输入信息模块:输入信息并将信息保存到文件当中:2、浏览信息模块:显示需要全部的学生信息:3、编辑信息模块:输入密码,修改或删除学生信息:4、修改密码模块:修改系统密码;5、系统初始化模块:删除保存的数据和修改后的密码,初始化系统。
<二>.数据结构#define N 100 /* 所能容纳的数据数量*/struct student{int number;char name[10];char gender[6];int birthday;char major[18];char Class[10];char address[30];char dormitory[10];}stu[N];<三>. 函数原型声明1、int menu1(); 主菜单输出函数2、int menu2(); 浏览选项子菜单输出函数3、int menu3(); 编辑选项子菜单输出函数4、void input(); 信息输入函数5、void scan(); 浏览学生信息子函数6、void display(); 信息显示函数7、void save(int n); 将输入的信息保存为文件8、void edit(); 编辑学生信息子函数9、void search(int s); 查找函数10、void revise_info(); 信息修改函数11、void code(); 密码管理函数12、void del(); 信息删除函数13、void recover(); 初始化程序二、功能实现1.main( )(流程图)2.各功能模块详细流程图(1)、输入信息模块输入人数——输入信息——保存信息至文件(2)、浏览信息模块①、全部显示:从文件中读取信息至结构体——输出信息②、按姓名查找:输入姓名——从文件中读取信息至结构体——查找姓名——输出信息③、按学号查找:输入学号——从文件中读取信息至结构体——查找学号——输出信息(3)、编辑信息模块①、修改信息:输入学号——从文件中读取信息至结构体——查找学号——选择修改项目——修改信息——保存信息至文件②、删除信息:输入学号——从文件中读取信息至结构体——查找学号——确认删除——删除信息——保存剩余信息至文件(4)、修改密码模块从文件中读取旧密码——输入旧密码——输入新密码——保存至文件——修改成功(5)、系统初始化模块删除原文件——建立空白文件三、测试及调试(测试方案、存在的问题及解决方法)1、主菜单与子菜单无法建立联系,即输入相应的选项后不能运行相应的子函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象的程序设计课程设计报告姓名:学号:班级:院系日期:目录1课程设计目的……………………………………………………2项目要求与简介…………………………………………………3设计题目…………………………………………………………题目学生成绩管理系统……………………………………4测试运行的结果………………………………………………….5心得体会与进一步的改进………………………………………6参考书目…………………………………………………………7源代码…………………………………………………………《《程序设计语言(C++)》》课程设计一.设计目的1.进一步掌握用C++进行类的定义和操作2.进一步掌握类的继承和派生3.掌握在Visual C++6进行编程的技术4.综合利用上述知识,编写面向对象的简单程序5.培养团结合作能力和自主学习的能力二.项目要求与简介1.要求系统具备一定的存储记忆功能2.要求系统能够处理常见异常并作出反映3.系统具备常用的学生信息处理功能4.本系统还处于1.1版本,还会发布后续版本三.设计题目题目学生成绩管理系统(一).系统的主要功能1.增加学生系统可以提示用户输入增加的学生个数,添入到student.dat2.删除首先由用户输入要删除的位置,然后系统调用删除函数3.查找系统提示用户输入要查找的学号,成绩,姓名然后系统再传递用户选择的项目分别调用以上三个函数4.修改系统提示用户要修改的位置,然后传递给修改函数。
接着系统出现提示提示用户修改的项目,可以修改学号,姓名或者成绩5.成绩信息用户选择该功能以后,系统出现提示。
总共有六项,求平均成绩,成绩排序低于平均成绩的学生信息,高于90分的学生信息,低于60分的学生信息或退出该功能6.显示所有学生信息调用此功能,系统读取文件中当前所有内容输出7.当前学生总数读取long.txt中保存的信息并输出8.交换两个学生信息调用函数交换两个学生的信息9.插入学生信息在指定位置新建一个学生信息,位置由用户输入(二).系统总体框架(三).系统数据结构定义class student{//这是数据节点public:student(){};student(student &c){this->number=c.getnumber();this->setname(c.getname());this->setsex(c.getsex());this->grade=c.getgrade();}void setname(char *name1){strcpy(this->name,name1);}void setnumber(int num){this->number=num;}void setgrade(double grade1){this->grade=grade1;}void setsex(char *sex1){strcpy(this->sex,sex1);}char *getname(){return this->name;}double getgrade(){return this->grade;}int getnumber(){return this->number;}char *getsex(){return this->sex;}private:char name[20];char sex[5];double grade;int number;};四.测试运行的结果<1>测试新建学生信息功能<2>测试查看学生总数功能<3>测试插入学生信息功能<4>测试显示所有学生信息功能<5>测试学生成绩信息功能<6>测试交换学生信息功能<7>测试删除学生信息功能<7>测试修改学生信息功能<8>测试查找学生信息功能五.心得体会与进一步改进通过此次VC++课程设计,我了解了Visual C++6的调试和找错基本方法。
系统的设计基本实现了老师所要求的功能,同时还增添加了交换学生信息的新功能。
同时在设计过程中,对于系统的功能还有许多不完善的地方,例如为了是对输入信息的限制,没有在系统中做限制用户可以随意输入,由此可能导致系统出错。
另外对于删除没有实现按学号删除,因此还需要更多的设计来完善对于表达式的处理;设计一开始是以链表为基础的,后来进行不下去了。
重新用了现在C ++中对文件处理的知识;界面风格只是使用默认的,没有创新,这个需要在以后的设计中加以改进。
此次的课程设计让自己在学习新知识上有了更高的理解,有些只是只有在你想到要用时才会自己去学,同时自己在编程上的理解更深一层,逐步了解编程在实际中的运用,掌握了更多编程方法和思想,拓宽了知识面,为进一步的学习继续打牢根基。
六.参考书目Visualc++入门到精通七.源代码class list:public student{public:v oid display(){ifstream infile;int a=1;infile.open("student.dat",ios::binary);student c;while(infile.read((char *)&c,sizeof(c))){cout<<" 第"<<a<<"个学生信息"<<endl;cout<<"姓名:"<<c.getname()<<endl;cout<<"性别:"<<c.getsex()<<endl;cout<<"成绩:"<<c.getgrade()<<endl;cout<<"学号:"<<c.getnumber()<<endl;a++;cout<<endl;}infile.close();}//显示学生信息v oid write(int i){int a,t,b=0;char name1[20];char sex1[5];int number1;double grade1;ofstream outfile;outfile.open("student.dat",ios::app);student c;for(a=1;a<=i;a++){cout<<"请输入姓名:";cin>>name1;c.setname(name1);cout<<"请输入学生学号:";cin>>number1;c.setnumber(number1);cout<<"请输入学生性别:";cin>>sex1;c.setsex(sex1);cout<<"请输入学生成绩:";cin>>grade1;c.setgrade(grade1);outfile.write((char * )&c,sizeof(c)); }outfile.close();ifstream infile;//infile.seekg(0,ios::end);infile.open("long.txt");if(infile.is_open()){while(!infile.eof()){char temp[50];infile.getline(temp,50);b=atoi(temp);}}else{b=0;}infile.close();ofstream outfile1("long.txt");t=i+b;outfile1<<t;outfile1.close();}//增加学生信息v oid modify2(int i,int j){int cap1;ifstream infile;infile.open("long.txt");infile>>cap1;infile.close();student c;ifstream infile1("student.dat");ofstream outfile("temp.dat");int a;for(a=1;a<i;a++){infile1.read((char *)&c,sizeof(c));outfile.write((char *)&c,sizeof(c));}outfile.close();infile1.close();ifstream infile2("student.dat");infile2.seekg(sizeof(c)*(i-1));infile2.read((char *)&c,sizeof(c));char name1[20];cout<<"输入姓名:";c.setnumber(c.getnumber());c.setgrade(c.getgrade());c.setname(name1);c.setsex(c.getsex());ofstream outfile1("temp.dat",ios::app);outfile1.write((char *)&c,sizeof(c));outfile1.close();ifstream infile3("student.dat");infile3.seekg(sizeof(c)*i);ofstream outfile2("temp.dat",ios::app);for(a=i+1;a<=cap1;a++){infile3.read((char *)&c,sizeof(c));outfile2.write((char *)&c,sizeof(c));}outfile2.close();infile3.close();ifstream infile4("temp.dat");ofstream outfile3("student.dat");for(a=1;a<=cap1;a++){infile4.read((char *)&c,sizeof(c));outfile3.write((char *)&c,sizeof(c));}remove("temp.dat");infile4.close();outfile3.close();}v oid modify1(int i,int j){int cap1;ifstream infile;infile.open("long.txt");infile.close();student c;ifstream infile1("student.dat"); ofstream outfile("temp.dat");int a;for(a=1;a<i;a++){infile1.read((char *)&c,sizeof(c));outfile.write((char *)&c,sizeof(c)); }outfile.close();infile1.close();ifstream infile2("student.dat");infile2.seekg(sizeof(c)*(i-1));infile2.read((char *)&c,sizeof(c));int number1;cout<<"输入学号:";cin>>number1;c.setnumber(number1);c.setgrade(c.getgrade());c.setname(c.getname());c.setsex(c.getsex());ofstream outfile1("temp.dat",ios::app); outfile1.write((char *)&c,sizeof(c)); outfile1.close();ifstream infile3("student.dat");infile3.seekg(sizeof(c)*i);ofstream outfile2("temp.dat",ios::app); for(a=i+1;a<=cap1;a++){infile3.read((char *)&c,sizeof(c));outfile2.write((char *)&c,sizeof(c));}outfile2.close();infile3.close();ifstream infile4("temp.dat");ofstream outfile3("student.dat");for(a=1;a<=cap1;a++){infile4.read((char *)&c,sizeof(c));outfile3.write((char *)&c,sizeof(c));}remove("temp.dat");infile4.close();outfile3.close();}void modify3(int i,int j){int cap1;ifstream infile;infile.open("long.txt");infile>>cap1;infile.close();student c;ifstream infile1("student.dat");ofstream outfile("temp.dat");int a;for(a=1;a<i;a++){infile1.read((char *)&c,sizeof(c));outfile.write((char *)&c,sizeof(c));}outfile.close();infile1.close();ifstream infile2("student.dat");infile2.seekg(sizeof(c)*(i-1));infile2.read((char *)&c,sizeof(c));char sex1[5];cout<<"输入性别:";cin>>sex1;c.setnumber(c.getnumber());c.setgrade(c.getgrade());c.setname(c.getname());c.setsex(sex1);ofstream outfile1("temp.dat",ios::app);outfile1.write((char *)&c,sizeof(c));outfile1.close();ifstream infile3("student.dat");infile3.seekg(sizeof(c)*i);ofstream outfile2("temp.dat",ios::app);for(a=i+1;a<=cap1;a++){infile3.read((char *)&c,sizeof(c));outfile2.write((char *)&c,sizeof(c));}outfile2.close();infile3.close();ifstream infile4("temp.dat");ofstream outfile3("student.dat");for(a=1;a<=cap1;a++){infile4.read((char *)&c,sizeof(c));outfile3.write((char *)&c,sizeof(c));}remove("temp.dat");infile4.close();outfile3.close();}void modify4(int i,int j){int cap1;ifstream infile;infile.open("long.txt");infile>>cap1;infile.close();student c;ifstream infile1("student.dat"); ofstream outfile("temp.dat");int a;for(a=1;a<i;a++){infile1.read((char *)&c,sizeof(c));outfile.write((char *)&c,sizeof(c)); }outfile.close();infile1.close();ifstream infile2("student.dat");infile2.seekg(sizeof(c)*(i-1));infile2.read((char *)&c,sizeof(c)); double grade1;cout<<"输入成绩:";cin>>grade1;c.setnumber(c.getnumber());c.setgrade(grade1);c.setname(c.getname());c.setsex(c.getsex());ofstream outfile1("temp.dat",ios::app); outfile1.write((char *)&c,sizeof(c)); outfile1.close();ifstream infile3("student.dat");infile3.seekg(sizeof(c)*i);ofstream outfile2("temp.dat",ios::app);for(a=i+1;a<=cap1;a++){infile3.read((char *)&c,sizeof(c));outfile2.write((char *)&c,sizeof(c));}outfile2.close();infile3.close();ifstream infile4("temp.dat");ofstream outfile3("student.dat");for(a=1;a<=cap1;a++){infile4.read((char *)&c,sizeof(c));outfile3.write((char *)&c,sizeof(c));}remove("temp.dat");infile4.close();outfile3.close();}void modify(int i){int cap1;ifstream infile;infile.open("long.txt");infile>>cap1;infile.close();student c;ifstream infile1("student.dat");if(i<=cap1){int j=1;while(j!=0){cout<<" __________________________________"<<endl;cout<<" |**** 请输入你想执行的操作****|"<<endl;cout<<" |**** 1.修改学生学号****|"<<endl;cout<<" |**** 2.修改学生姓名****|"<<endl;cout<<" |**** 3.修改学生性别****|"<<endl;cout<<" |**** 4.修改学生成绩****|"<<endl;cout<<" |**** 5.显示该学生信息***|"<<endl;cout<<" |**** 0.退出操作****|"<<endl;cout<<" —————————————————"<<endl;cin>>j;switch(j){case 1:this->modify1(i,j);break;case 2:this->modify2(i,j);break;case 3:this->modify3(i,j);break;case 4:this->modify4(i,j);break;case 5:infile1.seekg(sizeof(c)*(i-1));infile1.read((char *)&c,sizeof(c));cout<<" 第"<<i<<"个学生信息"<<endl;cout<<"姓名:"<<c.getname()<<endl;cout<<"性别:"<<c.getsex()<<endl;cout<<"成绩:"<<c.getgrade()<<endl;cout<<"学号:"<<c.getnumber()<<endl;break;case 0:break;}}}elsecout<<"你修改的位置有误"<<endl; }//修改学生信息void change(int i,int j){int cap1,t;if(i>j){t=i;i=j;j=t;}student b;ifstream infile;infile.open("long.txt");infile>>cap1;infile.close();if(i!=j){if(i<=cap1&&j<=cap1){b=this->Delete(i);this->insert(j-1,b);b=this->Delete(j);this->insert(i,b);}}}//交换两学生信息void sort(){int cap1,i,j;student a,b;ifstream infile;infile.open("long.txt");infile>>cap1;infile.close();for(i=0;i<cap1-1;i++){for(j=i+1;j<cap1;j++){ifstream infile1("student.dat");ifstream infile2("student.dat");infile1.seekg(sizeof(a)*(i));infile1.read((char *)&a,sizeof(a));infile2.seekg(sizeof(b)*(j));infile2.read((char *)&b,sizeof(b));if(a.getgrade()<=b.getgrade())this->change(i+1,j+1);infile1.close();infile2.close();}}}//从大到小排列成绩void insert(int i,student b) {int cap1;ifstream infile;infile.open("long.txt");infile>>cap1;infile.close();if(i<=cap1){student c;ifstream infile1("student.dat");ofstream outfile("temp.dat");int a;for(a=1;a<i;a++){infile1.read((char *)&c,sizeof(c));outfile.write((char *)&c,sizeof(c));}outfile.close();infile1.close();ofstream outfile1("temp.dat",ios::app);outfile1.write((char * )&b,sizeof(b));outfile1.close();ifstream infile2("student.dat");infile2.seekg(sizeof(c)*(i-1));ofstream outfile2("temp.dat",ios::app);for(a=i;a<=cap1;a++){infile2.read((char *)&c,sizeof(c));outfile2.write((char *)&c,sizeof(c));}outfile2.close();infile2.close();ifstream infile3("temp.dat");ofstream outfile3("student.dat");for(a=1;a<=cap1+1;a++){infile3.read((char *)&c,sizeof(c));outfile3.write((char *)&c,sizeof(c));}remove("temp.dat");cap1++;infile3.close();outfile3.close();ofstream outfile4("long.txt");outfile4<<cap1;outfile4.close();}elsecout<<"你输入的插入位置有误"<<endl;}//插入学生信息student Delete(int i){int cap1;ifstream infile1("long.txt");infile1>>cap1;infile1.close();student c,b;ifstream infile2("student.dat",ios::binary);int a;ofstream outfile1("temp1.dat");for(a=1;a<i;a++){infile2.read((char *)&c,sizeof(c));outfile1.write((char *)&c,sizeof(c));}infile2.seekg(sizeof(c)*(i-1));infile2.read((char *)&c,sizeof(c));b=c;infile2.seekg(sizeof(c)*(i));ofstream outfile2("temp1.dat",ios::app);for(a=i+1;a<=cap1;a++){infile2.read((char *)&c,sizeof(c));outfile2.write((char *)&c,sizeof(c));}infile2.close();outfile1.close();outfile2.close();ofstream outfile3("student.dat");ifstream infile3("temp1.dat");for(a=1;a<=cap1-1;a++){infile3.read((char *)&c,sizeof(c));outfile3.write((char *)&c,sizeof(c));}infile3.close();outfile3.close();cap1--;ofstream outfile4("long.txt");outfile4<<cap1;outfile4.close();remove("temp1.dat");return b;}//删除学生信息void find_number(int number1){student c;ifstream infile;infile.open("student.dat");while(infile.read((char *)&c,sizeof(c))){if(c.getnumber()==number1){cout<<" 学号为"<<number1<<"的学生信息"<<endl;cout<<"姓名:"<<c.getname()<<endl;cout<<"性别:"<<c.getsex()<<endl;cout<<"成绩:"<<c.getgrade()<<endl;cout<<"学号:"<<c.getnumber()<<endl;}}i nfile.close();}v oid find_grade(double grade1){student c;ifstream infile;infile.open("student.dat");while(infile.read((char *)&c,sizeof(c))){if(c.getgrade()==grade1){cout<<" 成绩为"<<grade1<<"的学生信息"<<endl;cout<<"姓名:"<<c.getname()<<endl;cout<<"性别:"<<c.getsex()<<endl;cout<<"成绩:"<<c.getgrade()<<endl;cout<<"学号:"<<c.getnumber()<<endl;}}i nfile.close();}v oid find_name(char *name1){student c;ifstream infile;infile.open("student.dat");while(infile.read((char *)&c,sizeof(c))){if(!strcmp(c.getname(),name1)){cout<<" 姓名为"<<name1<<"的学生信息"<<endl;cout<<"姓名:"<<c.getname()<<endl;cout<<"性别:"<<c.getsex()<<endl;cout<<"成绩:"<<c.getgrade()<<endl;cout<<"学号:"<<c.getnumber()<<endl;}}i nfile.close();}//查找学生信息int length(){i fstream infile("long.txt");i nt a;i nfile>>a;r eturn a;}//学生总数double average(){i nt cap1;i fstream infile;infile.open("long.txt");infile>>cap1;i nt i;d ouble total=0,average;s tudent c;i fstream infile1("student.dat");f or(i=1;i<=cap1;i++){infile1.read((char *)&c,sizeof(c));total=total+c.getgrade();}i nfile1.close();a verage=total/cap1;r eturn average;}//求平均成绩void low_average(){s tudent c;d ouble average=this->average();i fstream infile1("student.dat");w hile(infile1.read((char *)&c,sizeof(c))){if(c.getgrade()<average){cout<<"姓名:"<<c.getname()<<endl;cout<<"性别:"<<c.getsex()<<endl;cout<<"成绩:"<<c.getgrade()<<endl;cout<<"学号:"<<c.getnumber()<<endl;}}i nfile1.close();}//低于平均成绩void high(){s tudent c;d ouble average=this->average();i fstream infile1("student.dat");w hile(infile1.read((char *)&c,sizeof(c))){if(c.getgrade()>90){cout<<"姓名:"<<c.getname()<<endl;cout<<"性别:"<<c.getsex()<<endl;cout<<"成绩:"<<c.getgrade()<<endl;cout<<"学号:"<<c.getnumber()<<endl;}}i nfile1.close();}void low(){s tudent c;d ouble average=this->average();i fstream infile1("student.dat");w hile(infile1.read((char *)&c,sizeof(c))){if(c.getgrade()<60){cout<<"姓名:"<<c.getname()<<endl;cout<<"性别:"<<c.getsex()<<endl;cout<<"成绩:"<<c.getgrade()<<endl;cout<<"学号:"<<c.getnumber()<<endl;}}i nfile1.close();}l ist(){}};void show(){i nt j=1,cap1;c har name1[20];c har sex1[5];i nt number1;d ouble grade1;s tudent d;l ist c;i nt a,b;c out<<" 欢迎使用学生管理系统"<<endl;w hile(j!=0){cout<<" __________________________________"<<endl;cout<<" |**** 请输入你想执行的操作****|"<<endl;cout<<" |**** 1.增加学生信息****|"<<endl;cout<<" |**** 2.查看学生总数****|"<<endl;cout<<" |**** 3.删除学生信息****|"<<endl;cout<<" |**** 4.插入学生信息****|"<<endl;cout<<" |**** 5.查找学生信息****|"<<endl;cout<<" |**** 6.学生成绩信息****|"<<endl;cout<<" |**** 7.显示所有信息****|"<<endl;cout<<" |**** 8.修改学生信息****|"<<endl;cout<<" |**** 9.交换学生信息****|"<<endl;cout<<" |**** 0.退出操作****|"<<endl;cout<<" —————————————————"<<endl;cin>>j;switch(j){case 1:cout<<"你想添加的学生个数:";cin>>a;c.write(a);break;case 2:cout<<"当前学生总数:"<<c.length()<<endl;break;case 3: {ifstream infile("long.txt");infile>>cap1;infile.close();cout<<"删除的范围1~"<<cap1<<endl;cout<<"请输入你想删除的学生位置:";cin>>a;while(a<=0||a>cap1){cout<<"你输入的位置有误,请重新输入"<<endl;cin>>a;}cout<<a<<endl;d=c.Delete(a);cout<<" 你删除的学生信息"<<endl;cout<<"姓名:"<<d.getname()<<endl;cout<<"性别:"<<d.getsex()<<endl;cout<<"成绩:"<<d.getgrade()<<endl;cout<<"学号:"<<d.getnumber()<<endl;break;}case 4:cout<<"请输入你想插入的位置:";cin>>a;cout<<"请输入姓名:";cin>>name1;c.setname(name1);cout<<"请输入学生学号:";cin>>number1;c.setnumber(number1);cout<<"请输入学生性别:";cin>>sex1;c.setsex(sex1);cout<<"请输入学生成绩:";cin>>grade1;c.setgrade(grade1);c.insert(a,c);break;case 5:cout<<" ________________________________"<<endl;cout<<" |**** 请输入你想执行的操作****|"<<endl;cout<<" |**** 1.按学号查找****|"<<endl;cout<<" |**** 2.按成绩查找****|"<<endl;cout<<" |**** 3.按姓名查找****|"<<endl;cout<<" |**** 0.退出操作****|"<<endl;cout<<" ————————————————"<<endl;cin>>a;while(a!=0){switch(a){case 1:cout<<"请输入你要查找的学号:";cin>>number1;c.find_number(number1);break;case 2:cout<<"请输入你要查找的成绩:";cin>>grade1;c.find_grade(grade1);break;case 3:cout<<"请输入你要查找的姓名:";cin>>name1;c.find_name(name1);break;case 0:break;default :break;}cout<<" ________________________________"<<endl;cout<<" |**** 请输入你想执行的操作****|"<<endl;cout<<" |**** 1.按学号查找****|"<<endl;cout<<" |**** 2.按成绩查找****|"<<endl;cout<<" |**** 3.按姓名查找****|"<<endl;cout<<" |**** 0.退出操作****|"<<endl;cout<<" ————————————————"<<endl;cin>>a;}break;case 6:cout<<" __________________________________"<<endl;cout<<" |**** 请输入你想执行的操作****|"<<endl;cout<<" |**** 1.学生成绩排名****|"<<endl;cout<<" |**** 2.低于平均成绩****|"<<endl;cout<<" |**** 3.学生平均成绩****|"<<endl;cout<<" |**** 4.高于90的学生****|"<<endl;cout<<" |**** 5.低于60的学生****|"<<endl;cout<<" |**** 0.退出操作****|"<<endl;cout<<" —————————————————"<<endl;cin>>a;while(a!=0){switch(a){case 1:c.sort();c.display();break;case 2:cout<<" 低于平均成绩的学生信息"<<endl;c.low_average();break;case 3:cout<<"学生平均成绩:"<<c.average()<<endl;break;case 4:cout<<" 高于90的学生信息"<<endl;c.high();break;case 5:cout<<" 低于60的学生信息"<<endl;c.low();break;case 0:break;default:break;}cout<<" __________________________________"<<endl; cout<<" |**** 请输入你想执行的操作****|"<<endl; cout<<" |**** 1.学生成绩排名****|"<<endl; cout<<" |**** 2.低于平均成绩****|"<<endl; cout<<" |**** 3.学生平均成绩****|"<<endl; cout<<" |**** 4.高于90的学生****|"<<endl;cout<<" |**** 5.低于60的学生****|"<<endl;cout<<" |**** 0.退出****|"<<endl;cout<<" —————————————————"<<endl;cin>>a;}break;case 7:c.display();break;case 8:cout<<"请输入你想修改学生的位置:";cin>>a;c.modify(a);break;case 9:cout<<"请输入交换的位置:";cin>>a;cin>>b;c.change(a,b);break;case 10:cout<<"学生平均成绩:"<<c.average()<<endl;break;case 0:cout<<"编程人员:杜君完成日期:2011.1.3"<<endl;cout<<" 欢迎下次使用"<<endl;break;default:break;}if(j==0)break;}}//界面系统void main(){s how();}。