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、主菜单与子菜单无法建立联系,即输入相应的选项后不能运行相应的子函数。
c语言课程设计学生信息管理系统
2>N-S流程图三、详细设计说明:1>头文件#include <stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>2>数入口说明main();主函数;void menu();主菜单界面;void add();添加新的学生信息;void print(int i);打印学生信息;void scan();查找学生信息;void res();检索学生信息界面;void res_name();按姓名检索;void res_num();按学号检索;void del(int i);删除学生信息;void modify(int i);修改学生信息;void fileopen();打开文件;void filesave();保存文件;2>调用关系4.调试与测试: 编译工具1.C/C++程序设计学习与实验系统2.Tcmain() filesave()res()res_num()res_name()modify(int i)del(int i)menu()3.VC++6.0均通过调试!主菜单添加新的学生信息浏览所有学生信息检索信息库继续查找下一条修改学生信息删除信息库所有记录五、调试中所遇到的问题及解决方法1>问题:程序退出后,再次打开,上次输入的数据无法保存。
解决:调用fileopen()与filesave()保存文件数据,方便第二次打开程序时仍能调用上次输入的数据。
2>问题:跳出的界面与选择分支中的对应项不符合。
解决:改getchar()为getch(),头文件中加”conio.h”.因为getchar()从输入输出流中一次只能读取一个字符,而且需要以回车来确认输入。
本文件中多次用到getchar(),键盘缓冲区的’\n’会被下次调用getchar()时接收。
而getch()则不会,从键盘上读入一个数据,不给回显,不需要回车确认,按下键就实现了函数。
C语言课程设计报告 --学生管理系统
C语言课程设计报告 --学生管理系统一、实验目的:通过本次实验,学习C语言的语法和数据类型,设计一个简单的学生管理系统,结合文件I/O所学,可以将学生信息保存至文件中,再读取时自动填充至程序中。
同时,体验软件开发的流程,从需求分析到具体实现。
二、需求分析:1、学生信息包括:学号、姓名、性别、年龄、成绩。
2、学生信息需要添加、删除、修改、查找和显示。
3、程序启动时自动从文件中读取数据,退出时自动保存数据。
三、实验过程:1、确定数据结构和变量类型通过分析需求,学生信息包含多个属性,可以使用结构体来保存每个学生的信息。
同时,为了便于程序运行,需要定义一个链表来保存所有学生信息。
/* 学生信息结构体 */typedef struct _Student {char id[12]; // 学号char name[20]; // 姓名char gender; // 性别int age; // 年龄double score; // 成绩} Student;/* 学生信息链表节点 */typedef struct _StudentNode {Student data; // 学生信息struct _StudentNode *next; // 下一节点指针} StudentNode;/* 学生信息链表头节点 */StudentNode *head = NULL;2、设计主菜单功能考虑学生管理系统的主要功能,可以设计以下主菜单:---------------------------1. 添加学生2. 删除学生3. 修改学生信息4. 查找学生5. 显示所有学生6. 退出---------------------------可以使用一个while循环来循环处理,直到用户选择退出。
3、实现主菜单功能添加学生:先从用户输入中获取学生信息,然后创建一个新的学生信息节点,并将其添加到链表的末尾。
1. 定义变量/* 输入缓存区大小 */#define BUFFER_SIZE 2562. 实现函数/* 添加学生到链表末尾 */void add_student() {Student student; // 待添加的学生信息printf("请输入学号:");scanf("%s", student.id);printf("请输入姓名:");scanf("%s", );printf("请输入性别(M/F):");scanf(" %c", &student.gender);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入成绩:");scanf("%lf", &student.score);StudentNode *node =(StudentNode*)malloc(sizeof(StudentNode));node->data = student;node->next = NULL;if (head == NULL) {head = node;} else {StudentNode *p = head;while (p->next != NULL) {p = p->next;}p->next = node;}printf("添加学生成功!\n");}删除学生:先从用户输入中获取学生学号,然后遍历链表,找到该学号对应的学生信息节点,并删除。
c语言学生信息管理系统实验报告
C语言学生信息管理系统实验报告C语言课程设计学生信息管理系统姓名洪伟生院系计算机学院日期年 7 月 5 日目录第一章设计要求………………………………………………第二章算法分析1.理论依据…………………………………………………2.主要实现方法……………………………………………2.1整体流程图………………………………………2.2函数功能和函数之间的调用关系………………第三章代码(源代码)………………………………………第四章分析说明………………………………………………第五章总结……………………………………………………第一章、设计要求1、利用所学的知识、理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;2、经过C语言各个函数功能来实现对学生信息的管理,学生信息包括学生姓名,学号,各科成绩;管理方式包括对学生信息的录入,保存,排序,查找、修改、删除等功能。
第二章、算法分析1、程序理论依据经过C语言的程序设计基础的掌握,对学生成绩管理系统进行编写程序。
首先,经过链表这一数据结构来对学生的信息进行录入以及操作,在其过程中,经过各个功能语句以及选择结构,循环结构等方式的结合来达到所要实现的程序功能。
最后经过对C 语言中对文件的操作,对已有学生成绩的读取和新建学生成绩的录入保存。
2、主要实现方法2.1整体流程图2.2、函数功能和函数之间的调用关系2.2.1、函数功能:void Menu_1(); //主菜单void Menu_2(); //二级菜单学生信进退出学生信学生信学生信学生信学生信学生信返回主void swap(struct student * phead,struct student * pback);// 链表节点互换void Save(struct student * head); // 写入磁盘void Search(struct student * head); // 查找学生信息void Read(struct student * head); // 显示学生信息void Sort(struct student * head); // 链表节点排序struct student * Create(); //学生信息手动录入struct student * Readpoint(); //磁盘文件写入内存struct student * Modify(struct student * head); // 链表结构体成员修改struct student * Add(struct student * head); // 链表节点插入struct student * Delete(struct student * head); // 链表节点删除。
c语言学生管理系统课程设计报告
c语言学生管理系统课程设计报告C语言学生管理系统课程设计报告一、引言C语言学生管理系统是一款用于学校或教育机构管理学生信息和课程安排的软件系统。
本报告将详细介绍该系统的设计与实现过程,并对系统的功能、模块、算法等进行全面的阐述和分析。
二、系统需求分析1. 功能需求该系统应具备以下主要功能:(1)学生信息管理:包括学生基本信息的添加、修改、删除和查询等操作;(2)课程信息管理:包括课程的添加、修改、删除和查询等操作;(3)成绩管理:包括成绩的录入、查询和统计等操作;(4)学生选课管理:包括学生选课、退课和查询选课情况等操作;(5)教师信息管理:包括教师基本信息的添加、修改、删除和查询等操作;(6)用户权限管理:包括用户登录、权限分配和密码修改等操作;(7)系统设置:包括数据库备份、恢复和系统参数设置等操作。
2. 性能需求该系统应具备良好的性能,能够快速响应用户的操作请求,同时能够支持多用户同时访问。
三、系统设计1. 系统架构该系统采用客户端-服务器架构,客户端通过网络连接到服务器,服务器负责处理客户端发送的请求并返回相应结果。
2. 系统模块(1)学生信息模块:用于管理学生的基本信息,包括学号、姓名、性别、年龄、班级等。
(2)课程信息模块:用于管理课程的基本信息,包括课程编号、课程名称、授课教师、学分等。
(3)成绩管理模块:用于录入学生的成绩,并进行成绩查询和统计。
(4)选课管理模块:用于学生的选课和退课操作,同时提供选课情况的查询功能。
(5)教师信息模块:用于管理教师的基本信息,包括教师编号、姓名、性别、职称等。
(6)用户权限管理模块:用于管理系统用户的登录、权限分配和密码修改等操作。
(7)系统设置模块:用于进行数据库备份、恢复和系统参数设置等操作。
3. 数据库设计该系统采用关系型数据库存储数据,设计以下几个表:(1)学生表:包括学号、姓名、性别、年龄、班级等字段;(2)课程表:包括课程编号、课程名称、授课教师、学分等字段;(3)成绩表:包括学号、课程编号、成绩等字段;(4)选课表:包括学号、课程编号等字段;(5)教师表:包括教师编号、姓名、性别、职称等字段;(6)用户表:包括用户名、密码、权限等字段。
C语言学生信息管理系统课程设计报告
目录一、设计任务书二、总体设计方案(包括流程图)三、使用说明及运行实例(包括界面)四、成员设计内容简介五、项目源程序代码(注意注释的使用)六、课程设计心得七、指导教师评语(见模板文件)一、设计任务书学生信息管理系统要求:对于管理系统要求程序:(1)所有记录保存在一个数据文件中;(2)具备记录添加功能;(3)查询功能(如按学号查询成绩);(4)计算统计功能(如统计某门课程的平均程序);(5)排序功能(如按成绩排序)。
二、总体设计方案分析题目,想想程序所用到的知识点,再进行分析程序的总体构思。
对于用到得知识不太了解,先翻翻书,看一下这方面的知识。
为了不让程序看起来乱乱的,把程序分成几个大函数,并有几个文字注释函数的作用。
这样程序的各个功能就独自成为一个函数。
这样有利于我们对程序错误的检查,及对程序的修改和优化。
做出菜单栏:1.添加学生信息2.全部学生信息3.修改学生信息4.删除学生信息5.查看学生信息6.退出系统由每一个子菜单做为一个函数。
设计大纲:1:查看有关书籍2:建立函数结构体3:编程主函数4:编程各子菜单函数5:检查子函数与主函数之间的联系6:运行程序,如有错误,仔细检查。
7:错误操作的捕获。
8:查看运行效果,如有以下情况(修改代码):(1)发现问题某功能未实现(2)死循环(3)运行无效(4)没有操作提示信息(5)内存错误流程图开始输入语句添加信息函 数 全部学生信 息 修改学生信 息 删除学生信 息 查看学生信 息退出系 统1 2 3 4 5 判断a 值0 主函数64 5 13 2num>100NYNYYN 0 判断num 是否已存在判断num<100提示输入,输入num提示重新输入num提示输入,输入学生信息是否继续添加信息1输出提示, 输入学号0<num<100添加信息判断num 122输出一些文字for(i=0;i<=100;i++)Y输出stu[i]的信息0 N输出全部信息133 修改信息提示输入,输入学号YY修改信息YYNNN判断num 是否存在输出修改信息,提问是否修改提示num 不存在,并提问是否继续修改提问是否 继续修改41删除信息 4YY stu[num-1].num=0 NNNY提示输入,输入删除学号判断是否存在num输出删除的信息并提问是否删除提问是否继续删除输出删除成功说明不存在此信息515提示查询方式,并选择按学号按姓名输入学号num 是否存在输出查询信息提问是否继续查询Y输入姓名姓名是否存在 提示,并重新输入numN Y 提示,并重新输入姓名输出查询信息NY 提问是否继续查询Y0 N查看信息6 1三、使用说明及运行实例我们主要设计一个能实现学生信息管理系统,让它来运行和管理学生信息。
学生信息管理系统_C语言课程设计报告
学生信息管理系统_C语言课程设计报告一、引言学生信息管理系统是一种方便管理和查询学生信息的系统,该系统基于C语言开发,旨在提供一个高效、可靠和易于使用的平台,以便学校或教育机构能够有效地管理学生档案和信息。
本报告将详细介绍该系统的设计和实现过程。
二、需求分析1. 功能需求学生信息管理系统应具备以下功能:- 学生信息录入:包括学生基本信息(姓名、学号、性别、年龄等)和成绩信息。
- 学生信息查询:能够根据学号、姓名等关键字进行学生信息的检索。
- 学生成绩管理:包括成绩录入、成绩查询和统计分析等功能。
- 学生信息修改和删除:管理员可以对学生信息进行修改和删除操作。
2. 非功能需求学生信息管理系统应具备以下非功能需求:- 界面友好:系统界面简洁美观,操作简单直观,方便用户使用。
- 数据安全性:学生信息应加密存储,只有授权人员能够访问和修改。
- 并发控制:系统能够支持多个用户同时访问和操作。
三、系统设计1. 数据结构设计- 学生信息结构:使用结构体表示学生的基本信息,包括学号、姓名、性别、年龄等字段。
- 成绩信息结构:使用结构体表示学生的成绩信息,包括科目、成绩等字段。
2. 系统模块设计学生信息管理系统可以划分为以下几个模块:- 学生信息录入模块:负责学生信息的录入和存储。
- 学生信息查询模块:负责根据关键字查询学生信息,并将结果显示在界面上。
- 学生成绩管理模块:负责成绩的录入、查询和统计分析。
- 学生信息修改和删除模块:负责管理员对学生信息的修改和删除操作。
四、系统实现1. 开发环境- 操作系统:Windows 10- 开发工具:Dev-C++ 5.112. 数据库设计学生信息和成绩信息可以使用文本文件来存储,也可以使用数据库来进行管理。
本系统使用文本文件方式存储,通过文件输入输出函数实现数据的读写操作。
3. 界面设计系统界面采用命令行交互方式,通过菜单来实现各个功能的选择。
用户只需根据提示输入相应的选项,系统会进行相应处理并返回结果。
C++学生信息管理系统课程设计报告
一、课程设计目的1.通过C++课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多态的概念。
2.用所学的C++语言知识及其编程方法,包括类和对象、继承与多态等面向对象的基本思想和方法以及文件流的基本操作等内容。
通过布置具有一定难度的实际程序设计项目,要求学生独立完成所布置项目。
在分析设计过程中,要求学生养成良好的编程习惯,学会分析解决简单的实际问题,学会C++编程环境(VC++)的实际调试技巧和方法,要求学生在教师的指导下逐步完成应用程序的分析与设计过程。
二、课程设计的内容(一)、题目:学生信息管理系统(二)、目的与要求1。
目的:(1)基本掌握面向对象程序设计的基本思路和方法;(2)达到熟练掌握C++语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题2。
要求基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统中至少要定义三个类,每个类中要有各自的属性和方法;(4)在系统的设计中,至少要用到面向对象的一种机制。
创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
3。
信息描述学生信息:学号、姓名、系别、班级和所选科目及各科成绩等。
4。
功能描述(1)使用继承的方法构造3个类(如人员类——-基类,普通学生类和管理员类—---派生类)使用相应的对象放置相应信息(2) 编写同名的display()成员函数,用来输出相应的内容(3)录入学生信息并保存(4)按不同类别输出学生信息(如按性别、年龄等)(5)查询学生信息(以一种或多种方式,如按名字、学号等检索)(6) 修改学生信息并保存(7) 删除学生信息(8) 计算学生的平均成绩三、设计说明总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理.也可根据自己对题目的理解增加新的功能模块.系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。
c学生信息管理系统课程设计
c 学生信息管理系统课程设计一、课程目标知识目标:1. 让学生理解学生信息管理系统的基本概念和功能。
2. 掌握使用数据库管理系统进行数据录入、查询、更新和删除的基本操作。
3. 学会设计简单的学生信息管理系统的界面和功能。
技能目标:1. 培养学生运用数据库技术进行信息管理的能力。
2. 培养学生运用编程语言实现学生信息管理系统的功能。
3. 提高学生分析问题、解决问题的能力。
情感态度价值观目标:1. 培养学生对待信息技术的积极态度,认识到信息技术在日常生活和学习中的重要性。
2. 培养学生的团队协作精神,学会与他人共同解决问题。
3. 培养学生的创新意识和实践能力,敢于尝试新技术,勇于解决实际问题。
课程性质:本课程属于信息技术学科,以实践操作为主,结合理论知识的讲解。
学生特点:学生具备一定的计算机操作基础,对数据库和编程有一定了解,具备初步的分析问题和解决问题的能力。
教学要求:注重理论与实践相结合,以学生为主体,教师为主导,鼓励学生动手实践,培养实际操作能力。
通过本课程的学习,使学生能够独立设计并实现一个简单的学生信息管理系统,提高学生的信息技术素养。
二、教学内容本课程教学内容分为以下几个部分:1. 学生信息管理系统概述:介绍学生信息管理系统的基本概念、功能及在实际中的应用。
- 教材章节:第一章- 内容:系统需求分析、系统功能模块划分2. 数据库基础知识:讲解数据库的基本概念、关系型数据库的设计及SQL语句的使用。
- 教材章节:第二章- 内容:数据库原理、表的设计、数据类型、SQL语言基础3. 数据库操作:学习如何使用数据库管理系统进行数据录入、查询、更新和删除操作。
- 教材章节:第三章- 内容:数据库表操作、数据查询、数据更新与删除4. 编程语言基础:介绍一种编程语言(如Python、Java等),并讲解如何实现学生信息管理系统功能。
- 教材章节:第四章- 内容:编程环境搭建、基本语法、面向对象编程、文件操作5. 系统设计与实现:学习如何设计学生信息管理系统的界面和功能,并进行实际操作。
学生信息管理系统C语言课程设计报告
C语言课程设计实习报告一、设计内容与设计要求设计内容:学生信息管理系统设计1.问题的提出:随着计算机技术的发展,特别是计算机大量软件的使用,使用人们的生活与工作方式发生了很大的改观。
软件镶嵌在各种设备中,存在与我们计算机的方方面面。
C语言具有高级语言使用方便的特点,又具有低级语言直接操作计算机硬件的特点。
因此C语言既可以编写系统软件,又可以用来编写应用软件,其应用十分广泛,是国际上广为流行的计算机语言。
在我国,教育是一个影响着国富民强的重要行业,随着改革开放和市场经济的发展根据中国特有的国情发展,教育得到了国家的大力扶持与社会各界的高度重视,从而使教育业向规范性与现代化的方向高速发展,但是同发达国家相比,我国的教育行业的信息技术的应用程度还很低,只有在大城市中发展较早、规模较大的院校中才使用计算机进行大规模操作,从各方面提高工作效率,取得良好的社会和经济效益,而一些新兴的、规模较小的教育机构还没有全部具备这种功能。
因此可见,随着我国教育的迅速发展,信息技术在其上的应用会更加地广泛和深入。
2.功能要求:1)用C语言实现系统;利用结构体数组实现学生信息的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。
2) 建立一个学生信息数据库,文件名为xsxxk.txt,并从该文件中读取数据;3)学生信息管理系统应能提供以下功能:①系统以菜单方式工作②学生信息显示功能③学生信息追加功能④学生信息查询功能(要求能分别按学号查询和按姓名查询)⑤学生信息的删除⑥学生信息的修改⑦按学生年龄排序(升序)5) 学生信息管理系统采用一个结构体数组,学生信息数据库结构如下:学生信息包括:学号,姓名,性别、年龄,出生年月,地址,电话,E-maillong int xh /*学号*/char name[10] /*姓名*/char xb[4] /*性别*/int nl /*年龄*/char czrq[10]; /*出生年月*/char address[10] /*地址*/char phone[15] /*电话号码*/char e_mail[20] /*E-mail*/注意:学号不重复,且数据库应有10条或以上的记录。
c语言程序设计报告-学生信息管理系统 精品
C语言程序设计实践报告题目学生信息管理系统#include <string.h>#include <windows.h>struct student{long int num;char name[20];int age;char sex[4];int class;int pt; /*定义一个变量来储存大学物理的考试成绩*/int ps; /*定义一个变量来储存大学物理的平时成绩*/int et; /*定义一个变量来储存英语的考试成绩*/int es; /*定义一个变量来储存英语夫人平时成绩*/int ct; /*定义一个变量来储存微积分的考试成绩*/int cs; /*定义一个变量来储存微积分的平时成绩*/int xt; /*定义一个变量来储存信号的考试成绩*/int xe; /*定义一个变量来储存信号的平时成绩*/};int n=0;struct student stu[100];struct student *p;void tc();void tc()void lr();/*录入函数*/void ll();void cx();/*查询函数*/void xg();/*修改函数*/void sc();/*删除函数*/void bj();/*不及格学生列表函数*/void pj();/*平均成绩计算函数*/void kc();/*课程查询函数*/②主函数模块:一般比较简单,只提供输入,处理,输出的调用函数,即只有界面显示语句,子函数选择语句,主要的调用语句。
void main(){int z;printf("\t\t\t +---------------------------+\n");printf("\t\t\t | 学生信息管理系统欢迎您 |\n");printf("\t\t\t +---------------------------+\n");printf("\t\t\t + 设计者:张眼\n");printf("\t\t\t + 指导老师:刘伟荣\n");printf("重要提示:为保证您的操作得到保存,请按正常顺序退出系统!谢谢合作\n");do{printf("\n\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* [6]----不及格学生列表 *\n");printf("\t\t\t* [7]----成绩信息查询 *\n");printf("\t\t\t* [8]----平均成绩 *\n");printf("\t\t\t* [0]----退出系统 *\n");printf("\t\t\t********************************\n"); printf("请输入您的选择:");scanf("%d", &z);switch(z){case 0 :tc();break;case 1 :lr();break;case 2 :ll();break;case 3 :cx();break;case 4 :sc();break;case 5 :xg();break;case 6 :bj();break;case 7 :kc();break;case 8 :pj();break;default:printf("\n无效选项!");}}while(z!= 0);}运行结果:③输入模块:输入部分包括学生的姓名,学号等基本信息以及学生的大学物理,英语,微积和信号的成绩,主要是通过指针来实现数据的输入。
C++学生信息管理系统课程设计报告
C++程序设计报告书课题名称:学生信息管理系统学号:姓名:班级:指导老师:成绩:一、程序设计目的本课程设计是在学习C++基本理论之后的实践教学环节.该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧.要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。
学生通过课程设计在下述各方面得到锻炼:1.能根据实际问题的具体情况,结合C++的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。
2.提高程序设计和调试能力.学生通过上机实习,验证自己设计的算法和程序的正确性。
学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。
二、课程设计内容学生信息包括:学号、姓名、年龄、性别、出生年月、电话、E—mail等,试设设计学生信息管理系统,使之能提供以下功能:(一)系统以菜单方式工作(二)功能:1.学生信息录入功能(学生信息以文件保存)——输入2.学生信息浏览功能——输出3.查询、排序功能-—算法按学号查询按姓名查询4.学生信息的修改和删除(可选项)三、课程总体设计(一)各项功能说明:(1)学生基本信息的录入和保存:这部分的功能主要包括信息的录入和保存.首先进入主菜单界面,按照界面的提示选择进入录入信息功能,按照程序的提示分别录入学生的学号、姓名、年龄、性别、出生年月、地址、电话、Email信息,在录入信息的同时系统会自动缓冲存储录入的信息,并最终自动保存到文件名为stu。
txt的文件中。
输入完毕后请按任意键可自动返回到主菜单界面.(2)学生信息的浏览:此功能是将录入并保存的学生信息读出,并在屏幕中显示出来。
(3)按学生的姓名或学号查询此学生信息:此功能可以根据用户输入的要查询的学生的姓名或学号查询该生的信息并在屏幕上输出该学生的所有信息.(4)删除指定学生的信息:此功能可以根据用户输入的要删除的学生的学号或姓名,在文件中删除该生的所有信息。
- 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();}。