基于C语言的教务管理系统 docx

发布时间:2020-05-01 09:56:09   来源:文档文库   
字号:

计(论 文)

题目(中文): 基于C++语言教务管理

系统的设计与实现

(英文) Educational Administration Management System Design

and Implementation Based on C++ language

专业班级

学生姓名

学 号

指导教师

学院负责人 (签章)

完 成 日 期 2015年 5

上海师范大学天华学院本科毕业设计(论文)

诚信声明

本人郑重声明:所呈交的毕业设计(论文),题目《基于C++语言教务管理系统的设计与实现》是本人在指导教师的指导下,进行研究工作所取得的成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明。除此之外,本设计(论文)不包含任何其他个人或集体已经发表或撰写过的作品成果。本人完全意识到本声明应承担的法律责任。

作者(签名):

日期:

毕业设计(论文)任务书

(2015 届)

题目(中文): 基于C++语言教务管理

系统的设计与实现

(英文) Educational Administration Management System Design

and Implementation Based on C++ language

工学院

专业班级

学生姓名

学 号

指导教师

学院负责人 (签章)

日 期: 2014年12月 5 日

一、 毕业设计(论文)的主要内容与具体要求(任务及背景、工作环境、成果形式、着重培养的能力、有实验环节的要提出主要技术指标、要求)

(一)、毕业设计(论文)主要内容及主要技术指标、要求

1. 主要内容

本课题基于C++语言的教务管理系统的设计与实现。

课题研究内容如下:

本课题是利用C++语言来实现学校学生信息的管理。研究目标是将本课题的成果应用于学校学生信息以及学年成绩的管理。课题的最终应该实现现代化、与校园网紧密相连的教务管理系统,该系统应可以便捷、简单的对学生信息进行录入以及修改,对学生信息进行更加优化的管理。

在程序上,运用了Microsoft Visual Studio 2005软件进行编写主要程序代码,设计实现了三个教务管理系统管理模块功能以及三个模块功能下的多个子功能模块,涉及了系统的管理人员、老师、学生三个全体的全部人员的使用。研究也是为了缩减学校资源,降低成本,提高学校管理效率。

2. 主要技术指标、要求

(1使用C++语言开发软件,利用所学相关知识,开发出一套适宜的教务管理系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行信息处理的综合能力。

(2)建立一个完善的教务管理系统。对不同的信息类型、程序控制结构、数据结构的特点,结合设计题目进行综合性的应用,对所学的知识达到融会贯通的程度。

(二)、毕业设计(论文)的基本要求

1. 认真、独立完成不少于4000字或10000字符的《外文科技文献译文》,按照学校规定的译文要求和格式撰写。

2. 认真、独立完成不少于10000字的毕业设计(论文)报告的写作,按照学校规定的论文要求和格式撰写。

3. 毕业设计报告要求包含:

(1)教务管理系统的实际应用与意义的介绍

(2)教务管理系统的设计思路。

(3)教务管理系统的各个功能模块设计

(4)系统实现呈现的结果。

4. 及时与指导老师进行沟通,按计划完成毕业设计(论文)报告的写作和答辩工作

二、毕业设计(论文)进度安排

起讫日期

工作内容

备 注

第七学期第13

第七学期第14-16

第七学期第17

第八学期第1-3

第八学期第4

第八学期第5-10

第八学期第11

接受《毕业设计(论文)任务书》

调研,完成英文资料翻译

完成毕业设计(论文)开题报告

按照毕业设计要求,开展研究,完成设计方案。

毕业设计中期检查。

整理、撰写毕业论文

答辩资格审查,答辩。

三、所需的资料和主要参考文献

[1] 皮德常.C++程序设计.[M].北京:机械工厂出版社,1983:1-7.

[2] John Viescas.Microsoft Access 2000中文版使用大全[M].北京:清华大学出版社2001:70-95.

[3] 蔡士杰,吴春镕,孙正兴.计算机图形学.[M]北京:电子工业出版社,2012:38.

[4] 王守中.信息时代高校招生宣传策略研究[J].教育信息化2005,11(3):247[3].

[5] 万晶.Access 2003数据库管理基础与提高 [M].北京:清华大学出版社2009:75-132.

[6] Mike Morrison.数据库的WEB站点[M].北京:清华大学出版社2002:40-70.

[7] 梁爽..NET框架程序设计[M].北京:清华大学出版社2010:42-44.

[8] 尚俊杰.ASP.NET程序设计[M].北京:北方交通大学出版社2004:67-69.

[9] 徐孝凯.C++语言程序设计[M].北京:清华大学出版社,200141-43.

[10] 刘卫宏,陈培.Visual C++ 编程基础[M].北京:科学出版社,200334-37.

注:1. 本任务书一式两份,须双面打印。由指导教师填写并经所在系审核确认后交系部;

2. 本任务书一份须与学生的毕业设计(论文)一并存档,另一份系部存档

3. 指导教师、学生可各执一份复印件,供检查论文进度时使用。

上海师范大学天华学院2015

毕业设计(论文)开题报告

设计(论文)题目

基于C++语言的教务管理系统的设计与实现

学生姓名

学 号

专业、班级

学院

工学院

指导教师姓名

建议从以下方面填写:1. 简述课题的作用和意义2. 国内外的现状和发展趋势等情况(文献综述),尚待解决的问题;3. 重点介绍完成任务的可能思路、方案和计划;4. (工科类专业需填写)所需的主要仪器和设备等。

1、课题的作用和意义

对于学校而言,一个好的教务管理系统最主要的还是管理好学生的基本信息以及学年成绩,如果用一般的方法来管理会让这件事变得繁琐,管理起来也很容易出错。为了方便教务人员的管理工作,提高工作效率,同时也为了更好的为教师、学生提供服务,有必要的去开发教务管理系统是毋庸置疑的,这能使学校的管理走向信息化以及人性化的道路。

任何的组织以及高校需要生存需要发展就必须要高效率的把内部活动有机的结合起来,就一定要建立起一个与自身特点相适应相结合的管理操作系统,教务管理系统就是在这个基础上把所有的管理结合在一个平台,在现今多种多样的教务管理系统中,最为常见的就是学生的基本信息管理和学生课程成绩管理。这是我国现今大多数学校对学生管理的需要而开发设计的,随着学校的发展网络时代的进步,这种各自独立的系统已经不能在满足学校管理的需要。教务管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以教务管理系统应该能为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理学生成绩,这种管理方式存在着许多缺点,效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。这就迫切的需要设计出一套简单有效的教务管理系统系统。

2、国内外现状和发展趋势,尚待解决的问题

随着科学技术的迅猛发展以及管理水平的不断提高,计算机已经被广泛的应用于日常管理之中,它的运行极大改进了传统的管理模式,使管理日趋程序化、规范化、现代化。在我国,随着全国高校的普遍扩招,在校大学生人数急剧增加,计算机在高校的大量使用以及校园网的不断建立,高校教务管理系统的信息化建设也就顺理成章的提到日程上来,实用、科学的高校教务管理系统能为学校实施高效的教务管理,提供及时、准确和可靠的信息。如何设计出一套查找方便、可靠性高、存储量大、寿命长、成本低的教务管理系统有待我们去开发。

而目前的此类系统或多或少的存在以下的问题:

1、不清楚设计这个程序的目的或没有根据自己高校的目的详细策划教务管理系统功能,只适应一时之需;结果程序的设计以及系统内的链接和功能未能真正提供方便;

2、缺少一个针对有效管理学生基本信息以及学科成绩工作的基于C++语言技术的管理系统,所以很多的管理系统远远达不到标准,没能很好地发挥管理系统应有的效果;

通过对学生信息管理工作的初步了解,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今高校学生信息管理工作需求的教务管理系统,具有一定的实际开发价值和使用价值。

3重点介绍完成任务的可能思路、方案和计划

在设计方面,经过对高校的调查研究,本论文设计的教务管理系统希望设计出三个大的模块,分别为管理人员模块、教师模块、学生模块。最终有以下定义:

设计教务管理系统教务人员模块;

设计教务管理系统教师查询模块;

设计教务管理系统学生查询模块;

研究思路及方案:

①在查阅,调研的基础上,进行总体理论分析与设计。

②整体方案设计(画出系统整体设计框图)

③程序设计(按照系统功能图编写相关程序)

④采用Microsoft Visual studio 2005软件对系统进行测试

4所需的主要仪器和设备等

Microsoft Visual Studio 2005软件、计算机一台。

5、所需的资料和主要参考文献

[1] 皮德常.C++程序设计.[M].北京:机械工厂出版社,2015:1-7.

[2] John Viescas.Running Microsoft Access two thousand[M].Washington:Microsoft

Press,2012:100-134.

[3] 蔡士杰,吴春镕,孙正兴.计算机图形学[M].北京:电子工业出版社,2012:38.

[4] 王守中.信息时代高校招生宣传策略研究[J].教育信息化,2011,11(3):24—7[3].

[5] 万晶.Access 2003数据库管理基础与提高[M].北京:清华大学出版社,2011:75-132.

[6] 闪四清.SQL Sever 2000系统管理指南[M].北京:清华大学出版社,2011:78-79.

[7] 梁爽..NET框架程序设计[M].北京:清华大学出版社,2010:42-44.

[8] 尚俊杰.ASP.NET程序设计[M].北京:北方交通大学出版社,2011:67-69.

[9] 贾艳萍.高职院校人力资源管理系统的设计与实现[D].山东:山东大学,2013:7.

[10] 刘卫宏,陈培.Visual C++ 编程基础[M].北京:科学出版社,2010:34-37.

学生姓名 (签名)

日期: 年 月 日

指导教师评语:(建议填写内容:对学生提出的方案给出评语,明确是否同意开题,提出学生完成上述任务的建议、注意事项等)

指导教师 _____________(签名)

日期: 年 月 日

注:1. 本开题报告,须双面打印。由学生填写并经指导老师审核、评价。

2. 本开题报告一式两份,一份须与学生的毕业设计(论文)一并存档,一份作系部存档用。

摘 要 I

Abstract II

1 绪论 1

1.1 课题的背景 1

1.2 课题的意义 1

1.3 论文的主要任务 2

2 开发软件的简介 3

2.1 Visual Studio简介 3

2.2 C++介绍 4

2.3 C++发展历史 5

3 系统分析与设计 6

3.1 系统设计思路 6

3.2 系统功能设计 7

3.2.1 学生资料管理模块设计 8

3.3.2 学生成绩统计管理设计 8

3.3.3 学生查询模块设计 9

4 系统功能的实现 10

4.1 登录界面的设计 10

4.2 系统功能模块 12

4.3 学生资料管理 12

4.3.1 录入学生资料功能 14

4.3.2 删除资料功能 15

4.3.3 添加学生资料功能 16

4.3.4 修改学生资料功能 17

4.3.5 读取学生资料功能 18

4.4 学生成绩统计管理 19

4.4.1 按总分排名 19

4.4.2 按单科成绩排名 20

4.4.3 查看最高以及最低总分 21

4.4.4 按平均分排名 22

4.4.5 及格率 23

4.5 学生查询管理 23

4.5.1 按学号查询 24

4.5.2 按姓名查询 25

4.5.3 按班级查询 25

4.6 关于系统模块 26

5 总结 27

参考文献 28

致谢 29

附录 30

随着现代计算机网络技术与校园信息化的联系越来越紧密,信息技术在学生信息的管理上已经逐步成熟学生信息以及学生成绩的管理是一项繁琐而复杂的工作,并且拥有着巨大的工作量,每一所学校都必须建立一套与学校自身校园网特点紧密结合的教务管理系统,方能更好的提高管理力度。

本文系统而且全面的讲解了教务管理系统的开发过程,文章开头先对教务管理系统的背景以及意义进行了研究,得出现在校园信息管理的一些弊端,随后通过对系统的分析以及设计编写出教务管理系统。本次开发的系统在提升工作效率、学生成绩的登记以及管理方面都有很多的优势且系统是在Visual C++ 5.0环境下设计完成的。该系统对学校学生信息的进行了需求分析,通过学生资料管理、学生成绩的各种统计、学生的登录查询三个大的模块实现对学校学生的信息进行管理,达到方便快捷的管理学生信息,优化校园管理资源的目的。

关键词教务管理系统,信息,查询

Abstract

With the modern computer network technology is more and more connect to the campus informatization, information technology in the student information management information has gradually mature students and student performance management is a cumbersome and complicated work, and had a huge workload, each school must establish a set of closely integrated with the characteristics of school campus network itself educational administration management system, in order to better improve the strength of management.

This article system and comprehensive interpretation of the educational administration management system management system development process, the article starts by the background and significance of the educational administration system are studied, now some of the problems of the campus information management, then through the analysis of the system design and write the educational administration system. The development of the system in raising the work efficiency, on the registration and management of student achievement has many advantages and the system is designed in Visual c + + 5.0 environment. The system of school students information has carried on the demand analysis, through the student information management, student achievement of various statistics, student login query three big modules realize the school student information management, to achieve the fast and convenient information management students, the purpose of optimizing campus management resources.

Keywords: Educational management system, information, inquire

1 绪论

C++语言的基础上扩充而成,以其独特的机制在计算机领域有着广泛的应用。C++语言吸收 C和Simula 67(一个古老的计算机语言)语言的精髓,它具有C语言所无法比拟的优越性。C++语言在维持C语言原来特长(如效率高和程序灵活)的基础上,借鉴了Simula67语言的面向对象的思想,将这两种程序设计语言的优点相结合。C++语言的程序结构清晰、易于扩展、易于维护,同时又不失效率。目前,C++语言已超出了当初设计它的目的,成功地应用在数据库系统、数据通信系统等领域,并成功地构造了许多高性能的系统软件。

1.1 课题的背景

随着计算机网络技术的发展,给信息时代的人们带来了很大的方便。如今在Internet上,你随处都可以看到很多的各类信息管理系统,如企业信息管理系统,电子商务系统,等各类信息管理系统的普及。每年伴随着大量大学生进入校园,管理好学生的基本信息以及学年成绩信息是无可厚非的事情,目前如果还是由人为来处理操作,那么花费的人力将是巨大的,这会给整个工作带来了很多不便,而且容易出错。因此就需要一个对学生信息进行管理的教务系统,使得此过程更加方便,更加透明,更加高效,以节省更多的人力和不必要的工作。如今很多学校都利用C++来管理教务系统,C++语言进行教务管理工作,不仅能够保证学校学生信息管理准确无误、更方便查找、删除,而且还可以利用程序对有关学生成绩的各种信息进行统计。

通过对学生信息管理工作的初步了解,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今学生资料管理工作需求的教务管理系统,具有一定的实际开发价值和使用价值。

1.2 课题的意义

任何的组织需要生存需要发展就必须要高效率的把内部活动有机的结合起来,就一定要建立起一个与自身特点相适应相结合的管理操作系统,教务管理系统就是在这个基础上把所有的管理结合在一个平台,在现今多种多样的教务管理系统中,最为常见的就是学生的基本信息管理和学生课程成绩管理。这是我国现今大多数学校对学生管理的需要而开发设计的,随着学校的发展网络时代的进步,这种各自独立的系统已经不能在满足学校管理的需要。教务管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以教务管理系统应该能为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理学生成绩,这种管理方式存在着许多缺点,效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。这就迫切的需要设计出一套简单有效的教务管理系统系统。

1.3 论文的主要任务

针对本次论文《基于C++语言的教务管理系统的设计与实现》,论文章节安排为:

第一章 初步介绍一下课题的背景、主要研究方向。

第二章 简单的对教务管理系统的开发软件进行简单的认识和介绍

第三章 主要介绍教务管理系统的分析以及设计管理流程

第四章 是本次论文的重点,仔细分析介绍每一个主模块以及分模块的功能。

第五章 为全文总结

最后则是参考文献、致谢和附录。

2 开发软件的简介

2.1 Visual Studio简介

Visual Studio 它是微软公司推出的一个全新的开发环境。是如今Windos平台上最流行的程序开发环境之一目前,该开发软件已经有9.0个版本,最新版本的visual Studio为Visual Studio 2008。

Visual Studio 可以在Windows平台下创建应用程序以及网络应用程序,还可以用来设计智能设备的应用程序、网络服务和office的插件[1]

1998 年,微软公司最后一次发布Visual Basic,从这个版本以后微软公司的 Visual Studio 中不再包括面向 Java 虚拟机的开发环境。

2002 年,随着 .NET 口号的提出与Windows XP / Office XP 的发布,微软公司发布了全新的 Visual Studio .NET。在这个版本的 Visual Studio 中,微软限制了 Visual FoxPro 可以当作一个单独的开发环境以及取消了 Visual FoxPro 7.0 单独销售,同时取消的还有 Visual InterDev

与此同时,微软引入了建立在 .NET 框架上(版本1.0)的托管代码机制以及一门新的语言 C# (读作 C Sharp,意为 C++++)。C# 是一门建立在 C++ 和 Java 基础上的现代语言,是编写 .NET 框架的语言[2]

.NET 的通用语言框架机制(Common Language Runtime, CLR),其意义在于同一个开发项目中可以支持不同的语言的组件。所有 CLR 支持的代码都会先被被解释成为 CLR 的可执行的机器代码然后才会运行

Visual Basic、Visual C++ 在新的版本中都扩展成为可以支持托管代码机制的开发环境,而且 Visual Basic .NET更是彻底的支持面向对象的编程机制,而 Visual J++ 也变成了 Visual J#。后者仅仅只是语法跟 Java 的相同,面向的对象已经不是 Java 虚拟机,而变成了面向 .NET Framework [3]

2003 年,微软公司对 Visual Studio 2002 进行了一小部分的修改,以 Visual Studio 2003 的名义发布上市。Visio 作为使用统一建模语言(UML)架构应用的程序被引入,同时被引入的还包括移动设备支持以及企业模版。.NET 框架也升级到了最新的 1.1版本

2005 年,微软发布了 Visual Studio 2005。.NET 字眼各种语言的名字中删除了。虽然如此,这个版本的 Visual Studio 依旧还是面向 .NET 框架的(版本2.0)。它同时也能开发跨越平台的应用程序。总来说是这是一个非常庞大的软件,甚至包含代码测试功能。 这个版本的 Visual Studio 拥有众多版本,分别面向不同的开发角色。同时还永久提供免费的 Visual Studio Express 版本[4]

随着即将发布的 Windows Vista (内部名称:Longhorn) 和 Office 2007,Visual Studio 9 也渐渐浮出水面。Visual Studio 9 开发环境可以支持建立于 DHTML 基础上的 AJax 技术,这种在 Visual InterDev 时代提出的基于异步的客户端动态网页技术在当年并没有微软预料的那样流行起来,反而随着 GMail 等应用的崛起渐渐成为主流网络应用之一。同时 Visual Studio 9 会强化对于数据库的支持以及微软新的基于工作流(Workflow)的编程模型。保持与 Office 系列的统一,Visual Studio 9 的名称为 Visual Studio 2008。微软公司还创建出了满足关键性要求的多层次的智能客户端、Web、移动或基于Microsoft Office的应用程序[5]

2.2 C++介绍

[6]

2.3 C++发展历史

在“C with Class”阶段,研制者在C语言的基础上加进去的特征主要有类及派生类、共有和私有成员的区分、类的构造函数和析构函数、友元、内联函数、赋值运算符的重载等。

1985年公布的的C++语言1.0版的内容中又添加了一些重要特征虚函数的概念、函数和运算符的重载、引用、常量(constant)等。

1989年推出的2.0版形成了更加完善的支持面向对象程序设计的C++语言,新增加的内容包括:类的保护成员、多重继承、对象的初始化与赋值的递归机制、抽象类、静态成员函数、const成员函数等[7]

1993年的C++语言3.0版本是C++语言的进一步完善,其中最重要的新特征是模板(template),此外解决了多重继承产生的二义性问题和相应的构造函数与析构函数的处理等[8]

1998年C++标准(ISO/IEC14882 Standard for the C++ Programming Language)得到了国际标准化组织(ISO)和美国标准化协会(ANSI)的批准,标准C++语言及其标准库更体现了C++语言设计的初衷。名字空间的概念、标准模板库(STL)中增加的标准容器类、通用算法类和字符串类型等使得C++语言更为实用。此后C++是具有国际标准的编程语言,该标准通常简称ANSI C++或ISO C++ 98标准,以后每5年视实际需要更新一次标准[9]

后来又在2003年通过了C++标准第二版(ISO/IEC 14882:2003):这个新版本是一次技术性修订,对第一版进行了整理——修订错误、减少多义性等,但没有改变语言特性。这个版本常被称为C++03。

此后, C++ 0x标准草案的最终国际投票已于2011年8月10日结束,并且所有国家都投出了赞成票,C++0x已经毫无疑义地成为正式国际标准。C++0x的新标准正式定名为ISO/IEC14882:2011,简称ISO C++ 11标准。C++ 11标准将取代现行的C++标准C++98和C++03。国际标准化组织于2011年9月1日出版发布《ISO/IEC 14882:2011》,名称是:Information technology -- Programming languages -- C++ Edition: 3[10]

3 系统分析与设计

系统分析和设计是信息系统开发的一个重要环节。本章将主要对一个基于C++语言的教务管理系统的功能需求、总体框架、以及系统开发原理等做系统的分析研究,并介绍系统所拥有的特点。

3.1 系统设计思路

1)在系统编写之初我们要先编入教务管理系统需要的库函数,这才能让程序得以运行。

#include

#include 该函数为输入输出文件。

#include

#include 该函数为输出格式控制

(2)Main()函数的设计,这里需要用到do—while语句来做系统运行的循环,用switch()判断语句来调用相关功能模块。

(3)主程序设计

在该教务管理系统中这么设计程序,一是因为能让户对程序操作的流程更加清晰简明,二是保证了用户同时只能对一个文件进行操作系统的要求,保证了系统不会打开文件紊乱或者出现致命的错误。每个函数如下所示。

Void main (),主函数; Void aver (Student *r),平均分信息;

Void jgl (Student *r),及格率信息; Void SR (Student *r),录入学生信息;

Void SC (Student *r),删除学生信息; Void TJ (Student *r),添加学生资料;

Void XG (Student *r),修改学生资料; Void read (Student *r),读取学生资料;

Void zf (Student *r),按总分及单科分数排序;

Void max/min_student (Student *r),按最高/最低分排序;

3.2 系统功能设计

教务系统该教务管理系统的设计和实现包括三大模块,分为学生资料管理模块、学生成绩统计管理模块、学生查询管理模块。学生资料管理系统中有五个子功能模块,分别为学生资料的录入、删除、添加、修改、读取,学生成绩统计管理模块中同样分有五个子功能模块,分别为按学生总分、单科成绩、最高最低分、平均分排名,已经各科成绩的合格率。在学生查询管理模块中,设计了三个子功能模块供学生查询,分为按学号、按姓名、按班级查询。系统功能如图3.1所示。

图3.1系统功能模块

主要的功能模块图3.1中已经给出,其中:

(1)管理员可以在学生资料管理模块学生的信息进行录入、删除、添加、修改、读取录入功能包括从键盘手打录入和文件夹直接录入,删除功能能直接删除掉学生的所有信息,当有新学生的到来或者需要更新科目成绩时我们就会用到添加功能,读取功能方便管理员浏览教务管理系统中录入的所有学生资料,当资料有错误时需要通过修改功能进行修改。

(2)各个科任老师以及辅导员可以通过学生统计管理模块了解学生的总分排名情况各科分数情况、班级平均分以及各科及格率。

(3)学生可以通过教务系统的学生查询模块,用自己的学号、姓名查询到自己的基本信息以及各科考试成绩,同时也可以使用班级查询功能查看本班级各个同学的科目成绩。

3.2.1 学生资料管理模块设计

学生资料管理模块是给管理员以及科任老师登录使用的一个模块,辅导员以及科任老师在学校管理模块中录入学生的基本信息和学生学年的各科成绩,管理员在老师录入信息后进行读取查看学生信息,发现有错误的信息时将进行修改或修改的操作,最后把修改好的信息再一次的保存入教务管理系统。流程如图3.2所示。

图3.2学生资料管理功能模块

3.3.2 学生成绩统计管理设计

学生成绩统计管理模块是能查看到学生的各科成绩、单科最高最低分、各系学生的总分排名情况、学生的平均分、及格率等等学分信息的地方,该模块能让科任老师以及辅导员简单快捷的了解到各个学生的学年成绩,方便了解学生的基本学习状况,示意图如图3.3所示。

图3.3学生成绩统计功能模块

3.3.3 学生查询模块设计

该模块的主要功能是为学生在教务管理系统中查询成绩提供平台,学生登录教务管理系统后,只需要在学生查询模块下输入自己的姓名或者学号就可以查询到自己的学年成绩。同时,学生还可以通过输入班级号来浏览整一个班级的所有同学的各科成绩,学生查询示意图如图3.4所示。

图3.4学生查询模块

4 系统功能的实现

教务管理系统系统采用C++语言进行编写,利用Visual Studio 2005进行测试与运行

4.1 登录界面的设计

一个教务系统的登录界面应该简化、明确,给人一种直观的表现。可以让进入该系统的用户在第一时间辨认出这个系统是做什么的,这也是系统和用户进行交互的关键,同时也在一定程度上影响着用户对系统的评价。一个学校的教务系统更应该在登录界面就凸显出该学校的名字让用户认识到这个系统。登录首页如图4.1所示。

图4.1 系统首页

实现过程:在int main( )主函数下当while(choose!='0')时简单的输出通过cout对象实现,简单的输入又cin对像进行实现。用户和教务系统管理员在登录界面进行选择时都是由switch(choose)语句进行选择。同时用case1-4对象进行语句的选择,当输入1时进入子函数Fire()(也就是学生资料管理)界面,当输入2时进入子函数statistics()(也就是学生成绩统计管理)界面,以此类推。本教务系统程序的所有界面设计都基于该主登录界面设计而来,因此不多做复述。该程序内容较多,主要的代码如下所示。

int main()

{while(choose!='0') cout<<"\t\t*************************************************"<

cout<<"\t\t* 操作菜单 *"<

cout<<"\t\t* *"<

cout<<"\t\t* 1.学生资料管理 *"<

cout<<"\t\t* 2.学生成绩统计管理 *"<

cout<<"\t\t* 3.学生查询管理 *"<

cout<<"\t\t* 4.关于系统 *"<

cout<<"\t\t* 0.退出系统 *"<

cout<<"\t\t* *"<

cout<<"\t\t* 按Enter继续 *"<

cout<<"\t\t* *"<>choose;

switch(choose)

{case 1: Fire();break;

case 2: statistics();break;

case 3: inquiry();break;

case 4: about();break;

case 0: thanks();exit(0);break;

default:cout<<"\t\t\t 输入错误,返回"<

return 0;

}

4.2 系统功能模块

该《教务管理系统》程序是一个具有对学生的信息进行录入、添加、删除、根据学号进行学生信息的查询、显示已有学生信息的显示、对学生成绩进行统计(包括总分、最高分、最低分、各科排名、平均成绩排名和及格率),可以对已有的学生信息进行修改,保存和读取输入的数据等功能。该教务管理系统分为以下几个功能模块:学生资料管理模块、学生成绩统计管理模块、学生查询管理模块、关于系统模块,下面我们将分别介绍该教务系统的功能模块。

4.3 学生资料管理

在主函数的显示登录程序的主界面,可以通过输入1进入学生资料管理界面,该功能一般由教务系统管理人员以及各个科任老师进入。学生资料管理界面如图4.2所示。进入该界面后用户可以通过选择0-5数字来选择各个不同的功能以便进入下一个操作步骤。

图4.2学生资料管理界面

实现过程:在void Fire()这个主函数下当while(choose!='0')时简单的输出通过cout对象实现,简单的输入又cin对像进行实现。用户在登录界面进行选择时都是由switch(choose)语句进行多分支选择。同时用case1-5对象进行语句的选择,当输入1时进入子函数SR()(录入学生资料)界面,当输入2时进入子函数statistics()(删除学生资料)界面以此类推,分别进入的子函数为SRSCTJXGread。主要代码如下所示。

void Fire()

{while(choose!=0){

cout<<"\t\t\t*************************************"<

cout<<"\t\t\t*************************************"<

cout<<"\t\t\t* 学生资料管理 *"<

cout<<"\t\t\t* *"<

cout<<"\t\t\t* 1.录入学生资料 *"<

cout<<"\t\t\t* 2.删除学生资料 *"<

cout<<"\t\t\t* 3.添加学生资料 *"<

cout<<"\t\t\t* 4.修改学生资料 *"<

cout<<"\t\t\t* 5.读取学生资料 *"<

cout<<"\t\t\t* 0.返回 *"<

cout<<"\t\t\t* *"<

cout<<"\t\t\t* 按Enter继续 *"<

cout<<"\t\t\t*************************************"<

cout<<"\t\t\t*************************************"<

cout<<"\t\t 请输入0-5之间的任意一数字:"<<' ';cin>>choose;

switch(choose)

4.3.1 录入学生资料功能

该功能可以方便各个科任老师或者教务系统管理人员输入学生学号、名字、性别、班级等基本信息以及各科成绩。为了方便测试教务系统录入的正确性,本设计在这里录入了两个班一共三个同学的基本情况以及各科的成绩。录入情况如图4.3所示。

图4.3学生资料录入

实现过程:在void SR()子函数下首先用cout语句判定需要输入的学生数量,然后用cin>>n;for(int a=0;a语句判断显示多少次输出数量,使用cout语句输入学生的学号、姓名、性别、班级、各科成绩等。如:

cout<<"学生的学号:"<

最后用switch(press)语句判断是否把输入的学生资料保存。主要代码如下所示。

void SR()

{cout<<"请根据你的需要输入学生的个数:";

cin>>n;for(int a=0;a

{cout<<"请输入第"<

cout<<"学号:"<<' ';cin>>stud[a].num;

cout<<"姓名:"<<' ';cin>>stud[a].name;

cout<<"性别:"<<' ';cin>>stud[a].sex;

cout<<"班级:"<<' ';cin>>stud[a].bj;

cout<<"高数成绩:"<<' ';cin>>stud[a].Math;

cout<<"大学英语成绩:"<<' ';cin>>stud[a].English;

cout<<"电信传输技术:"<<' ';cin>>stud[a].Cjj;

cout<<"输入成功,学生资料是否保存?(y/n)"<>press;

4.3.2 删除资料功能

该功能可以让教务系统管理员或者科任老师在输入学生资料错误或者其他原因想要删除学生资料时使用。删除效果如图4.4所示。

图4.4学生资料删除

实现过程:进入子函数void SC()后输入需要删除的学生的名字,然后运用代码while(stud[i].name!=SC_name &&i

主要代码如下所示。

void SC()

{do{string SC_name;

cout<<"请输入你要删除的学生名字:"<>SC_name;

while(stud[i].name!=SC_name&&i

if(stud[i].name==SC_name)

{for(int j=i;j

4.3.3 添加学生资料功能

当该教务系统需要添加新的学生时我们就需要用到添加学生资料功能,该功能可以让管理员和科任在老师在任何情况下添加新的学生资料。添加功能测试如图4.5所示。

图4.5添加新的学生资料

由图4.5可以看出新的学生成绩信息在输入完成后会被成功的添加到教务系统中。

实现过程:进入子函数void TJ ()后输入新学生的所有信息,用press语句判断是否继续操作,运用switch(press)语句进行判断学生的资料是否保存,主要的代码如下所示。

{do{cout<<"请添加新的学生信息"<

stud[n].sum=stud[n].Math+stud[n].English+stud[n].Cjj;

stud[n].average=(stud[n].Math+stud[n].English+stud[n].Cjj)/3;n++;

cout<<"(是否继续操作?(y/n))"<>press;}

while(press=='y'||press=='Y');

cout<<"添加成功,学生资料是否保存?(y/n)"<>press;

switch(press)

{case 'y' : save();break;default: cout<<"不保存!";break;}}

4.3.4 修改学生资料功能

该功能允许管理人员能够在了解学生基本信息或者成绩信息有错误的情况下修改学生信息,修改时只需要输入想要修改学生的名字,系统就将自动寻找到该学生的所有信息,同时将允许管理员修改该学生的所有信息,修改成功后新的学生信息将自动替换旧的学生信息如图4.6所示。

图4.6学生资料修改

实现过程:进入子函数void XG ()后输入需要修改学生资料的学生名字,程序先显示该学生原保存信息,使用简单的cout语句进行新资料的录入,最后用press语句判断是否继续操作,switch(press)语句进行判断学生的资料是否保存,主要的代码如下所示。

void XG()

{begin:string find_name;int i;

cout<<"请输入你要修改的学生名字:"<>find_name;

for(i=0;i

if(stud[i].name==find_name)

{cout<

4.3.5 读取学生资料功能

该功能可以让管理员查看到所有保存在该教务系统中的学生的各种信息以便管理人员即使的了解、更改教务系统的学生资料库。达到随时了解一个学生的学习近况,随时更新学生信息的功能。资料读取如图4.7所示。

图4.7 读取学生资料

实现过程:进入子函数void read ()运用ifstreaminfile(filename,ios::in|ios::out);语句定义输入文件流对象,以输出方式打开用户自定义的磁盘文件,我们这里自定义的文件夹是《zzz》文件夹,使用infile语句从自定义的磁盘中读取学生的信息,最后使用代码while(!infile.eof());判断是否为文件尾资料读取完全,主要的代码如下所示。

ifstream infile(filename,ios::in|ios::out);

if(!infile)

{cerr<<"open error!"<

do {int i=0;

infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].bj;

infile>>stud[i].Math>>stud[i].English>>stud[i].Cjj;

cout<<"学生的学号:"<

4.4 学生成绩统计管理

该功能是对教务系统中学生的成绩信息进行相关的管理,包括所以科目的总分成绩排名查看各科的分数排名学生所有科目平均分的排名、学生成绩的最高分最低分以及所有科目的及格率的查选等基本信息进行管理,辅导员以及各科老师可以随时通过该成绩统计管理功能查看自己所带班级的各个同学的成绩、平均分等以便用更好的教学方法、教学目标促进学生的学业发展,同时对科目上有所下滑或者成绩还不够理想的学生进行了解和重点帮助,学生们也可以通过该教务系统查看到自己科目在自己所在班级以及所在系的平均分和自己的各科排名以便学生知道自己最近学习状况,在接下来的校园学习生活中更加有目标有动力的进行学习。该成绩统计管理功能界面如图4.8所示。

图4.8学生成绩统计管理

4.4.1 按总分排名

功能模块首先对已经输入的所有学生的各科成绩进行管理,当查询时该系统将按照各个学生总分的高低进行名次的排名。该模块效果如图4.9所示。

图4.9 按总分排名

实现过程:运用for语句进行选择法排序,下面的按各科成绩排名以及按平均分排名都是运用for语句的选择法排序来进行的排序然后在代码开头对程序进行主要定义以便调,定义为mtnazhecps,主要代码如下所示。

void zf()

{int m,t;string na;float z,h,e,c,p;char s;

for(int j=0;j

for(int i=0;i

if(stud[i].sum>stud[i+1].sum)

{m=stud[i].num; stud[i].num=stud[i+1].num; stud[i+1].num=m;

na=stud[i].name; stud[i].name=stud[i+1].name; stud[i+1].name=na;

s=stud[i].sex; stud[i].sex=stud[i+1].sex; stud[i+1].sex=s;

t=stud[i].bj; stud[i].bj=stud[i+1].bj; stud[i+1].bj=t;

h=stud[i].Math; stud[i].Math=stud[i+1].Math; stud[i+1].Math=h;

e=stud[i].English; stud[i].English=stud[i+1].English;

stud[i+1].English=e;

c=stud[i].Cjj; stud[i].Cjj=stud[i+1].Cjj; stud[i+1].Cjj=c;

z=stud[i].sum; stud[i].sum=stud[i+1].sum; stud[i+1].sum=z;

p=stud[i].average; stud[i].average=stud[i+1].average; stud[i+1].average=p;}

4.4.2 按单科成绩排名

在这个功能模块中,系统可以按照教务人员的想法去查看单独科目中每一个学生的分数以及这个分数在所在系中的排名情况,方便各科老师的浏览以及学生们的查看,同时这个模块也非常好的为评选单科优秀学生和评选单科奖学金作出充分的选取条件,也非常好的降低了筛选单科最高分数的时间。我们可以查询本系两个班的学生在高数这一单独的科目的排名,高数分数排名模块如图4.10所示。

图4.10按高数成绩排名

同时也可以由此类推的查询到我们系两个班学生的英语分数排名。英语分数如图4.11所示。

图4.11按英语成绩排名

以下是查看到该系两个班学生的电信传输技术分数排名,电信传输技术分数如图4.12所示。

图4.12按电信传输技术成绩排名

4.4.3 查看最高以及最低总分

该功能可以在本教务管理系统中查看到学生的最高总分以及最低总分为多少,可以非常直观的查看到分数体现,教务人员在查看时只需要学生成绩统计管理界面按一下5就可以查看到系学生的最高总分为多少,按一下6就能查看到系学生的最低总分为多少分。学校查选成绩时可以一目了然的通过该功能看到系在这个系的成绩。最高分如图4.13所示。

图4.13最高总分

实现过程:在子涵数void max_student()中运用float语句计算最大值,当J stud[j].sum>max的时候输出max=stud[j]就为最大值当关键代码如下。

void max_student()

{float max;

max=stud[0].sum;

for(int j=0;j

{if(stud[j].sum>max)

max=stud[j].sum;}

cout<<"最高总分为:"<

查询到的学生最低分如图4.14所示。

图4.14最低总分

实现过程:最低分的实现过程和最高分的实现过程相差无几,只需要把,max换成min即可。

4.4.4 按平均分排名

该功能可以直观的查看到学生所有考试成绩的平均分以及平均分的排名。在学生成绩统计管理界面按7将会进入我们系两个班的所以学生平均分排名,系统将会自动由下到上按照平均分的高低列出每一个学生的基本信息以及平均分,平均分如图4.15所示。

图4.15平均分排名

实现方法如下:运用for语句进行排序后使用if语句进行平均分的计算,当if(stud[i].average>stud[i+1].average)时系统自动选取高数,大学英语,电信传输技术三科成绩进行平均分,最后cout输出学生的学号、姓名、性别、班级、平均分,主要代码如下所示。

void aver()

{float z,h,e,c,p;int m,b;string na;char s;

for(int j=0;j

for(int i=0;i

if(stud[i].average>stud[i+1].average)

4.4.5 及格率

该功能可以方便查选我们系各科成绩的合格率,只需要在学生成绩统计系统按8,系统将自动生成显示出来,各科的及格率如图4.16所示。

图4.16各科及格率

实现方法如下:定义count初始为0,Math>=60的时候为及格,运用语句count1++;a=((float)count1/(float)n)*100;计算出第一科的及格率,由此分别计算出高数、大学英语、电信传输技术的及格率。主要代码如下所示。

void jgl()

{int count1=0;int count2=0;int count3=0;float a,b,c;

for(int i=0;i

{if(stud[i].Math>=60)

count1++;a=((float)count1/(float)n)*100;}

cout<

cout<

<

<

4.5 学生查询管理

功能模块为进入教务系统的每一个同学提供了一个查询自己成绩的地方,该功能模块分为按学号查询,按姓名查询,按所在班级查询三个模块。学生可以通过三个查询功能中的任意一个查询到自己的基本资料以及学年各科成绩。这个功能模块非常的简单,只需要在进入该公功能模块的后按1-3选取不同的查询模块进入即可,登录界面如图4.17所示。

图4.17学生查询管理界面

4.5.1 按学号查询

该功能为学生提供了根据自己学号查询成绩的功能,总所周知每一个大学生来到大学的第一天都有了一个专属于自己的学号,这个学号将陪伴我们的一生,因此按照学号查询自己的信息也是最准确,最合适的。学生在学生查询管理界面按1进入查询界面,然后输入需要查询同学的学号,系统将会自动显示出该学号学生的基本信息以及学年各科的成绩。学号查询的界面如图4.18所示。

图4.18按学号查询

实现方法如下:进入子函数void sn()输入学号后系统查询到输入的学号,系统输出该学号学生的学号、姓名、性别、班级、高数成绩、大学英语成绩、电信传送技术成绩,while(press=='y'||press=='Y') ;判断是否继续操作Y则继续输入学号查询学生基本资料,N则操作结束,主要代码如下。

void sn()

{do{int find_num;

cout<<"请输入你要查询的学号:"<<' ';

cin>>find_num;int i;

for(i=0;i

if(stud[i].num==find_num)

{cout<<"学号为"<

if(stud[i].num!=find_num)

cout<<"can't find this num"<

cout<<"(是否继续操作?(y/n))"<>press;}while(press=='y'||press=='Y') ;}

4.5.2 按姓名查询

该功能可以选择输入名字来查询学生的基本信息以及学年各科成绩,只需要在学生查询管理界面按2后,在系统中输入名字即可,查询效果如图4.19所示。

图4.19按姓名查询

实现方法如下:基本方法如按学号查询差别不大,只需要子函数库改为void sm()在该界面中输入需要查询学生的名字,系统将自动匹配,这时如果名字错误就会判定if(stud[i].name!=find_name)则查询不成功。

4.5.3 按班级查询

该功能可以通过输入所在班级来查询该班级中学生的基本信息以及学年各科成绩,在学生查询管理界面我们通过按3进入所在班级查询系统后输入班级号就可查询了,查询如图4.20所示。

图4.20按所在班级查询

该模块查询方式,当输入查询班级时该班级的所有学生资料都将被找到,如图1班有一位学生学号为1101,叫做zs的同学,他的性别是n,高数成绩为85,大学英语成绩为80,电信传输技术成绩为75。

4.6 关于系统模块

该系统模块介绍的是这个教务管理系统的基本信息,当用户回到主界面后输入4就会进入关于系统模块,里面有设计者的基本信息以及系统设计的时间,如果用户在使用该系统的时候出现什么问题或者有什么不明白的都可以通过该模块联系到管理员,方便了管理员及时发现问题解决问题。关于系统模块如图4.21所示。

图4.21关于系统

最后的一个模块只需要简单的通过cout对象实现输出,cin对像实现输入。之后把一些关于该教务管理系统的基本信息输入系统就可以完成了。

5 总结

经过几个月的开发和完善,教务管理系统基本得到完工。这次毕业设计是我所学的知识技术的一次大综合,使我对系统开发有了进一步的了解,锻炼了独立编程能力,增加了系统开发经验。同时,通过这次毕业设计,使我基本掌握了Visual Studio编程技巧和C++这种新的开发语言等深层次的计算机开发技术。

这个系统已经实现了教务管理人员教务管理系统进行学生信息管理,即查询、添加、修改、删除等功能。使科任老师能够方便的查询到想要的信息,即查看总分排名、单科成绩、平均分、及格率等等。同时,学生们也可以通过IP这个系统查询到自己的学年科目成绩,能很好的提高学生的学习热情,促进了校园网的发展。使学校的信息管理更加系统化、自动化、规范化,从而提高管理的效率

回顾本次设计,真的是受益良多,这次设计的教务管理系统大体上达到了设计要求,但仍然后需要改进的地方,如果加入网络数据库的连接更加那么在学生信息的读取上将会更加方便,这些都是需要在今后的知识学习中不断深入完善的。

参考文献

[1] 皮德常.C++程序设计[M].北京:机械工厂出版社,2015:1-7.

[2] John Viescas.Microsoft Access 2000中文版使用大全[M].北京:清华大学出版社,2012:70-95.

[3] 蔡士杰,吴春镕,孙正兴.计算机图形学[M]北京:电子工业出版社,2012:38.

[4] 王守中.信息时代高校招生宣传策略研究[J].教育信息化,2011,11(3):24—7[3].

[5] 万晶.Access 2003数据库管理基础与提高[M].北京:清华大学出版社,2011:75-132.

[6] Mike Morrison.数据库的WEB站点[M].北京:清华大学出版社,2010:40-70.

[7] 梁爽..NET框架程序设计[M].北京:清华大学出版社,2010:42-44.

[8] 尚俊杰.ASP.NET程序设计[M].北京:北方交通大学出版社,2011:67-69.

[9] John Viescas.Running Microsoft Access two thousand[M].Washington:Microsoft

Press,2011:40.

[10] 刘卫宏,陈培.Visual C++ 编程基础[M].北京:科学出版社,2010:34-37.

[11] 梁爽..NET框架程序设计[M].北京:清华大学出版社2010:42-44.

[12] 尚俊杰.ASP.NET程序设计[M].北京:北方交通大学出版社2014:47-69.

[13] 徐孝凯.C++语言程序设计[M].北京:清华大学出版社,201121-53.

[14] 刘卫宏,陈培.Visual C++ 编程基础[M].北京:科学出版社,201364-107.

[15] 师煊,王珊.数据库系统概论[M].北京:高等教育出版社, 2014105-145.

[16] 沈才梁.ASP.NET网页设计[M].北京:清华大学出版社出版2011:221-272.

[17] 张海潘,牟永敏.面对对象程序设计实用教程[M].北京:清华出版社,2001:46-52.

[18] 闪四清.SQL Sever 2000系统管理指南[M].北京:清华大学出版社2011:54-105.

[19] 陈明.C++程序设计综合实践[M].北京:清华大学出版社,2010:56-157.

[20] 贾艳萍.高职院校人力资源管理系统的设计与实现[D].山东:山东大学,2013:7.

致谢

大学学习时光已接近尾声,回首走过的岁月,心中倍感充实。同时,顺利如期的完成本次毕业设计给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心。

在这次的综合实践过程中,我感受很多,收获很多。首先诚挚的感谢我的毕业设计指导老师老师。从课题的选择到毕业设计最终完成,老师始终都给予了细心的指导和不懈的支持。

其次感谢培养教育我的母校,浓厚的学术氛围,舒适的学习环境,在这里我度过了人生最灿烂的时光,我不仅学到了扎实,宽广的专业知识,也学到了做人的道理。祝母校蒸蒸日上,永创辉煌!

最后向所有给予我关心和帮助的人们致以我最诚挚的谢意。

#include

#include

#include

#include

using namespace std;

char press;int choose;

int n;

class Student

{

public:

int num;

string name;

int bj;

char sex;

float Math;

float English;

float Cjj;

float sum;

float average;

};

Student stud[100];

void read()

{char filename[20];

cout<<"从文件中读取信息!"<

cout<<"请输入文件名:"<

cin>>filename;

ifstream infile(filename,ios::in|ios::out);

if(!infile)

{cerr<<"open error!"<

do {int i=0;

infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].bj;

infile>>stud[i].Math>>stud[i].English>>stud[i].Cjj;

cout<<"学生的学号:"<

<<"姓名:"<

<<"性别:"<

<<"班级:"<

<<"高数成绩:"<

<<"大学英语成绩:"<

<<"电信传输技术:"<

while(!infile.eof());

infile.close();

cout<<"读取成功!"<

void save()

{

int i;

char filename[20];

for(i=0;i

{cout<<"学生的学号:"<

<<"姓名:"<

<<"性别:"<

<<"班级:"<

<<"高数成绩:"<

<<"大学英语成绩:"<

<<"电信传输技术:"<

cout<<"将记录保存在文件夹!"<

cout<<"请输入文件名:";

cin>>filename;

ofstream outfile(filename);

if(!outfile){cerr<<"open error!"<

for(i=0;i

{outfile<<" "<

outfile<

outfile.close();cout<<"保存成功!"<

void SR()

{cout<<"请根据你的需要输入学生的个数:";

cin>>n;for(int a=0;a

{cout<<"请输入第"<

cout<<"学号:"<<' ';cin>>stud[a].num;

cout<<"姓名:"<<' ';cin>>stud[a].name;

cout<<"性别:"<<' ';cin>>stud[a].sex;

cout<<"班级:"<<' ';cin>>stud[a].bj;

cout<<"高数成绩:"<<' ';cin>>stud[a].Math;

cout<<"大学英语成绩:"<<' ';cin>>stud[a].English;

cout<<"电信传输技术:"<<' ';cin>>stud[a].Cjj;

stud[a].sum=stud[a].Math+stud[a].English+stud[a].Cjj;

stud[a].average=(stud[a].Math+stud[a].English+stud[a].Cjj)/3;}

cout<<"输入成功,学生资料是否保存?(y/n)"<>press;

switch(press)

{

case 'y' :

save();

break;

default:

cout<<"不保存!";

break;}}

void SC()

{do{string SC_name;

cout<<"请输入你要删除的学生名字:"<>SC_name;

while(stud[i].name!=SC_name&&i

if(stud[i].name==SC_name)

{for(int j=i;j

{stud[i].num=stud[i+1].num;

stud[i].name=stud[i+1].name;

stud[i].sex=stud[i+1].sex;

stud[i].bj=stud[i+1].bj;

stud[i].Math=stud[i+1].Math;

stud[i].English=stud[i+1].English;

stud[i].Cjj=stud[i+1].Cjj;}

cout<<"删除成功!"<

else if(i==n) {cout<<"can't find this name"<

cout<<"(是否继续操作?(y/n))"<>press;}while(press=='y'||press=='Y') ;}

void TJ()

{do{cout<<"请添加新的学生信息"<

cout<<"新的学生学号:"<>stud[n].num;

cout<<"新学生姓名:"<>stud[n].name;

cout<<"新学生性别:"<>stud[n].sex;

cout<<"新学生班级:"<>stud[n].bj;

cout<<"新学生的高数成绩:"<>stud[n].Math;

cout<<"新学生的大学英语成绩:"<>stud[n].English;

cout<<"新学生的电信传输技术:"<>stud[n].Cjj;

stud[n].sum=stud[n].Math+stud[n].English+stud[n].Cjj;

stud[n].average=(stud[n].Math+stud[n].English+stud[n].Cjj)/3;n++;

cout<<"(是否继续操作?(y/n))"<>press;}

while(press=='y'||press=='Y');

cout<<"添加成功,学生资料是否保存?(y/n)"<>press;

switch(press)

{case 'y' : save();break;default: cout<<"不保存!";break;}}

void XG()

{begin:string find_name;int i;

cout<<"请输入你要修改的学生名字:"<>find_name;

for(i=0;i

if(stud[i].name==find_name)

{cout<

cout<<"学生的学号:"<

<<"姓名:"<

<< "性别:"<

<< "班级:"<

<<"高数成绩:"<

<<"大学英语成绩:"<

<<"电信传输技术:"<

if(stud[i].name!=find_name)

{cout<<"can't find this name"<

cout<<"请重新查找!"<

for(int j=0;j

{cout<<"请输入新的信息:"<

cout<<"学号:"<<' ';cin>>stud[j].num;

cout<<"姓名:"<<' ';cin>>stud[j].name;

cout<<"性别:"<<' ';cin>>stud[j].sex;

cout<<"班级:"<<' ';cin>>stud[j].bj;

cout<<"高数成绩:"<<' ';cin>>stud[j].Math;

cout<<"大学英语成绩:"<<' ';cin>>stud[j].English;

cout<<"电信传输技术:"<<' ';cin>>stud[j].Cjj;

stud[i].num=stud[j].num;stud[i].name=stud[j].name;stud[i].sex=stud[j].sex;

stud[i].bj=stud[j].bj;stud[i].Math=stud[j].Math;stud[i].English=stud[j].English;

stud[i].Cjj=stud[j].Cjj;break;}

cout<<"修改成功,是否保存?(y/n)"<

cin>>press;switch(press){case 'y' : save();break;default: cout<<"不保存!";break;}}

void zf()

{int m,t;string na;float z,h,e,c,p;char s;

for(int j=0;j

for(int i=0;i

if(stud[i].sum>stud[i+1].sum)

{m=stud[i].num; stud[i].num=stud[i+1].num; stud[i+1].num=m;

na=stud[i].name; stud[i].name=stud[i+1].name; stud[i+1].name=na;

s=stud[i].sex; stud[i].sex=stud[i+1].sex; stud[i+1].sex=s;

t=stud[i].bj; stud[i].bj=stud[i+1].bj; stud[i+1].bj=t;

h=stud[i].Math; stud[i].Math=stud[i+1].Math; stud[i+1].Math=h;

e=stud[i].English; stud[i].English=stud[i+1].English; stud[i+1].English=e;

c=stud[i].Cjj; stud[i].Cjj=stud[i+1].Cjj; stud[i+1].Cjj=c;

z=stud[i].sum; stud[i].sum=stud[i+1].sum; stud[i+1].sum=z;

p=stud[i].average; stud[i].average=stud[i+1].average; stud[i+1].average=p;}

cout<<"学生按总分排名:"<

cout<<"学号"<<' '<<"姓名"<<' '<<"性别"<<' '<<"班级"<<' '<<"总分"<

for(int i=0;i

{cout<

<

<

<

<

void gs()

{int g,t;float z,h,e,c,p;string na;char s;

for(int j=0;j

for(int i=0;i

if(stud[i].Math>stud[i+1].Math)

{g=stud[i].num; stud[i].num=stud[i+1].num; stud[i+1].num=g;

na=stud[i].name; stud[i].name=stud[i+1].name; stud[i+1].name=na;

s=stud[i].sex; stud[i].sex=stud[i+1].sex; stud[i+1].sex=s;

t=stud[i].bj; stud[i].bj=stud[i+1].bj; stud[i+1].bj=t;

h=stud[i].Math; stud[i].Math=stud[i+1].Math; stud[i+1].Math=h;

e=stud[i].English; stud[i].English=stud[i+1].English; stud[i+1].English=e;

c=stud[i].Cjj; stud[i].Cjj=stud[i+1].Cjj; stud[i+1].Cjj=c;

z=stud[i].sum; stud[i].sum=stud[i+1].sum; stud[i+1].sum=z;

p=stud[i].average; stud[i].average=stud[i+1].average; stud[i+1].average=p; }

cout<<"学生按高数分数排名:"<

cout<<"学号"<<' '<<"姓名"<<' '<<"性别"<<' '<<"班级"<<' '<<"高数分数"<

for(int i=0;i

{cout<

<

<

<

<

void yy()

{int g,t;float z,h,e,c,p;string na;char s;

for(int j=0;j

for(int i=0;i

if(stud[i].English>stud[i+1].English)

{g=stud[i].num; stud[i].num=stud[i+1].num; stud[i+1].num=g;

na=stud[i].name; stud[i].name=stud[i+1].name; stud[i+1].name=na;

s=stud[i].sex; stud[i].sex=stud[i+1].sex; stud[i+1].sex=s;

t=stud[i].bj; stud[i].bj=stud[i+1].bj; stud[i+1].bj=t;

h=stud[i].Math; stud[i].Math=stud[i+1].Math; stud[i+1].Math=h;

e=stud[i].English; stud[i].English=stud[i+1].English; stud[i+1].English=e;

c=stud[i].Cjj; stud[i].Cjj=stud[i+1].Cjj; stud[i+1].Cjj=c;

z=stud[i].sum; stud[i].sum=stud[i+1].sum; stud[i+1].sum=z;

p=stud[i].average; stud[i].average=stud[i+1].average; stud[i+1].average=p;}

cout<<"学生按英语分数排名:"<

cout<<"学号"<<' '<<"姓名"<<' '<<"性别"<<' '<<"班级"<<' '<<"英语分数"<

for(int i=0;i

{cout<

<

<

<

<

void cy()

{int g,t;float z,h,e,c,p;string na;char s;

for(int j=0;j

for(int i=0;i

if(stud[i].Cjj>stud[i+1].Cjj)

{g=stud[i].num; stud[i].num=stud[i+1].num; stud[i+1].num=g;

na=stud[i].name; stud[i].name=stud[i+1].name; stud[i+1].name=na;

s=stud[i].sex; stud[i].sex=stud[i+1].sex; stud[i+1].sex=s;

t=stud[i].bj; stud[i].bj=stud[i+1].bj; stud[i+1].bj=t;

h=stud[i].Math; stud[i].Math=stud[i+1].Math; stud[i+1].Math=h;

e=stud[i].English; stud[i].English=stud[i+1].English; stud[i+1].English=e;

c=stud[i].Cjj; stud[i].Cjj=stud[i+1].Cjj; stud[i+1].Cjj=c;

z=stud[i].sum; stud[i].sum=stud[i+1].sum; stud[i+1].sum=z;

p=stud[i].average; stud[i].average=stud[i+1].average; stud[i+1].average=p;}

cout<<"学生按电信传输技术排名:"<

cout<<"学号"<<' '<<"姓名"<<' '<<"性别"<<' '<<"班级"<<' '<<"C++分数"<

for(int i=0;i

{cout<

<

<

<

<

void max_student()

{float max;

max=stud[0].sum;

for(int j=0;j

{if(stud[j].sum>max)

max=stud[j].sum;}

cout<<"最高总分为:"<

void min_student()

{float min;

min=stud[0].sum;

for(int j=0;j

{if(stud[j].sum

min=stud[j].sum;}

cout<<"最低总分为:"<

void aver()

{float z,h,e,c,p;int m,b;string na;char s;

for(int j=0;j

for(int i=0;i

if(stud[i].average>stud[i+1].average)

{m=stud[i].num; stud[i].num=stud[i+1].num;

return 0;}

本文来源:https://www.2haoxitong.net/k/doc/9158906be0bd960590c69ec3d5bbfd0a7956d5aa.html

《基于C语言的教务管理系统 docx.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式