(完整版)C++学生信息管理系统毕业设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

徽商职业学院
毕业设计(论文)题目学生信息管理系统
姓名系别电子信息系
学号121754 专业软件技

指导教师
徽商职业学院教务处
目录
1 绪论...................................................................................................................................
2 项目开发概述...................................................................................................................
2.1 运行环境.................................................................................................................
2.2 系统可行性分析.....................................................................................................
2.2.1 技术方面的可行性.......................................................................................
2.2.2 经济方面的可行性.......................................................................................
2.2.3 系统操作方面的可行性...............................................................................
2.3 系统功能概述.........................................................................................................
2.3.1 基本信息管理功能.......................................................................................
2.3.2 学生管理功能...............................................................................................
2.3.3 查询管理功能...............................................................................................
2.3.4 系统管理功能...............................................................................................
3 项目概要设计...................................................................................................................
3.1 项目的功能需求.....................................................................................................
3.2 项目的性能需求.....................................................................................................
3.2.1 项目信息处理的准确性需求和及时性需求...............................................
3.2.2 项目信息的开放性需求和可扩充性需求...................................................
3.2.3 项目的易使用性需求和易维护性需求.......................................................
3.2.4 系统数据要求...............................................................................................
3.3 主要流程图 (1)
3.4 数据库主要设计 (1)
4. 项目实现 (1)
4.1 各个功能的具体实现 (1)
4.2 系统运行界面 (3)
4.2.1 系统登陆界面 (3)
4.2.2 操作界面 (3)
结论 (4)
参考文献 (4)
1 绪论
多年以来,学校对本校学生的信息管理都还沿用传统的方式,在这样的模式管理下,用人工来记录学生的信息效率低、保密性差,人力资源也存在着极大的浪费。

此外,随着时间的推移,资料库将会产生大量的文件和数据堆积现象,这种现象对于数据的查找、更新以及维护都会带来很大的阻碍。

随着现代素质教育的提高以及时代的快速发展,靠人工来管理学生信息已经不再适用于现代的教育管理模式。

在科技快速发展,计算机越来越普及的信息化时代的到来,为了使学校传统的管理方法和办学水平都能应对这种极大的挑战,需要对传统的教育方式提出新的建议和要求。

而步入了新的世纪,从世界各国的教育科学化进程来看,各种竞争显得异常的激烈,而且不仅仅是在教育的基础信息建设和相关的资源建设上,又或者说是在方法的普及的程度上,我们与其他发达国家,包括一些发展中的国家相比较,也都存在较大的差距。

步入21世纪的我们,假如还是不能很好地利用网络和科技,又或是不会用较少的成本来推动教育的信息化、科学化发展,那么像这样没有明确的发展方向,一定会偏离信息化、科技化的轨道,从而就可能会阻碍社会科技化、信息化的进步,甚至于整个国民经济的科技化发展。

所以说,如何实施教育的信息化管理已经成了一个十分重要的且必须立刻解决的问题,而如何有效的管理学生信息,是实现教育信息化管理的关键。

与传统的管理方式相比,开发出来的学生信息管理系统的优势就显得比较明显。

比如动态管理所有学生的基本信息;通过网络,教师可以在任何时间、任何地点查看学生的各种基本信息。

实现信息化管理的一个最重要的特点是迅速准确的查找信息,并且在输入结束后立即给出准
确的查询结果。

本毕业设计论文是以学校对学生的管理为研究背景,通过对信息管理系统的概念和结构,系统开发的基本原理和方法进行深入的了解和探索,把学生信息管理系统的开发步骤大致分为:系统分析、概要设计、详细设计、框架设计、系统实现及运行调试等。

该系统能够为管理者提供充足的学生信息以及迅速准确的查找信息等。

设计开发一个学生信息管理系统,通过操作计算机实现对学生信息进行有效的管理,可以进一步的提高学校的办学质量,彰显出学校高效的现代化教育水平,同时也能显著地提高学校教师的工作效率,实现学生的信息管理工作流程的专业化、科技化、系统化和自动化。

通过使用现代化科技软件对学生信息进行修改、查询、添加及删除等一系列的操作,可以大幅度提高管理者的工作效率,杜绝了人工管理的各种弊端。

利用学生管理信息系统来对学校学生的各种信息进行精确而且有效的管理会给学校带来意想不到的收获。

学生管理系统是一种高效且使用非常方便的系统软件,它是利用SQL建立相关数据库。

所以建立一个数据一致性强、完整性好、安全性高的数据库是十分重要的。

该学生管理系统还要求应用程序功能要完备,而且要方面用户使用等。

经过一系列的研究和分析,本系统将采用VC++6.0平台进行项目开发,同时数据库建立在SQL Server 2005数据库的基础上实施操作,在此之后对初始的原型系统进行相关的需求迭代并进行不断的修正、改进,使得系统更加完善。

2 项目开发概述
2.1 运行环境
本系统采用的是面向对象的软件编程研发方法,用Microsoft公司的开发环境 Visual C++6.0 作为当前软件开发的主要工具如图2-1所示,并且用Microsoft SQL Sever2005作为软件的数据库如图2-2所示。

图2-1是打开VC软件后的初始界面
图2-2是SQL2005打开后的初始界面
2.2 系统可行性分析
本管理系统是在VC++6.0环境下使用C++语言进行软件开发的,而且在数据方面是使用SQL Server 2005作为数据库建设平台来记录和管理所有学生的相关信息。

在计算机迅速发展和普遍应用的今天,学生管理系统研发的可行性大体上划分成下面的几个部分。

2.2.1 技术方面的可行性
可运用VC++语言在VC++6.0环境下进行开发,而且是在Windows 7系统环境下,用SQL Server 2005 作为数据库。

SQL Server 2005数据库是一种增添了许多新功能,同时也改进了很多缺点的数据库。

大致上这些改进的功能包括新的XML技术和增强的SQL处理以及新的数据类型,还有对于关系型数据库的可用性、可伸缩性等方面改进。

2.2.2 经济方面的可行性
在当今社会,计算机的性能有很大的提高,而且价格也越来越便宜。

对于学生管理系统的开发,也创造了一个很好的条件。

通过使用学生管理系统来有效的管理学生信息,不但会为学校减轻很多负担,而且也提高了管理人员的工作效率,主要表现在以下几个方面:
1.本系统的开发可以取代人工操作对信息进行管理。

2.本系统的开发可以节省许多人力物力等资源。

3.本系统的开发可以大幅度的提高学校的管理者的工作效率。

4.本系统可以使学生的信息数据文档的安全性提高很多等等。

2.2.3 系统操作方面的可行性
此次课题设计所开发的学生管理系统并不算是大型的系统软件,它对于硬件和软件的各种需求都不是很多,要求也不是很高,一般我们的私人电脑或者学校机房的电脑都可以达到这样的要求,所以可以确定学生管理系统在运行上是肯定可行的。

作为计算机应用的一部分,使用计算机管理学生成绩,有着手工管理所无法比拟的优点,主要有:检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,成本低等。

该学生管理系统不仅能极大地提高管理学生信息的效率,也能实现教育单位的科学化、正规化管理。

因此,开发一个信息管理软件是一件有意义而且非常重要的事情。

2.3 系统功能概述
学生信息管理系统在学校管理工作中占据着重要的地位,同时对于学校的决策者和管理者来说都是至关重要的。

所以学生信息管理系统应该为用户提供充足的信息和快捷的查询方式。

随着计算机应用的普及与深入,利用计算机能够对所有考试成绩进行统一管理及分析,大大减少了教学秘书的工作量,提高了工作效率,为教学办公带来了极大的方便。

本系统本着实用、通用、开放和安全的原则,实现了学生信息管理、学生成绩管理、成绩查询等功能。

本系统一切从实际出发,充分考虑了成绩的内部管理、信息交流等方面的复杂需求,实现学生信息的有效管理,真正为学生信息管理提供一个电子平台。

本系统的主要功能和任务是实现对学校所有学生的信息进行管理,其中包括成绩管理、管理、学号管理、年龄管理、专业管理及这些信息的相关的查询。

2.3.1 基本信息管理功能
1.成绩信息管理
提供各个学生的相关信息,如各个学生的名字和各个学生的信息。

修改个人信息,如添加一个学生的各种信息或者删除信息等操作。

2.信息管理
主要提供学校所有人员的相关信息。

比如说查询某个学生的学号,以及对某个学生的有关信息进行修改,如添加一个学生或者删除学生等操作。

3.学号信息管理
提供各个学生学号的相关信息,如学生的学号等。

同时还包括对学生信息的修改,添加,删除等操作。

4.年龄信息管理
提供各个学生年龄的相关信息,如各个学生的年龄,以及对年龄信息进行修改,添加,删除等操作。

5.专业设置
提供各个学生不同专业的相关信息,设置学生所在专业的名称,以及对相关专业信息进行修改、添加、删除等操作。

2.3.2 学生管理功能
1.学生信息管理
可以录入学生的相关信息,如学生的名称、学号、年龄、专业等,也可以对相关信息进行修改和查询以及添加或删除某个学生的全部信息。

2.学生成绩录入
用于录入学生各科目在不同考试类别下的各项成绩,便于以后查询,也可进行相应的修改和保存操作等。

2.3.3 查询管理功能
学生信息查询:可以查询所有学生的基本信息,包括学号,专业,年龄等等。

2.3.4 系统管理功能
1.用户管理:设置用户,或者对已有用户信息进行修改和删除等操作。

2.退出系统:用于退出整个系统。

3 项目概要设计
21世纪以来,社会经济的高速发展,生活环境和科学技术也都发生了日新月异的变化,尤其是在计算机科学技术的应用及普及都牵涉到经济以及社会生活的方方面面。

所以,为了适应当今社会中人们高度的时间价值观念,编写学生信息管理系统软件对于管理学生信息的工作者来说,无疑是一个喜讯。

因为,它不但能大幅度的提高管理者的工作效率,而且还减轻了他们的工作负担。

利用学院现有的计算机硬件资源,做好学生成绩管理工作,提高办事效率,实现全面的、相对集中的办公自动化,开发本系统就成了当务之急,其目的主要为了彻底改变这种繁杂的管理模式,实现全面的、相对集中的、智能化的信息综合管理,为学院的教学管理工作带来方便。

该系统使用C++作为本软件的实现语言,同时运用Microsoft SQL Server2005来实现系统相关数据的后台操作了,它的功能是由系统内部的源代码直接实现的。

用户在使用过程中仅仅需要按照系统的要求输入信息即可进行操作。

学生成绩管理工作是学校管理工作的重要组成部分,而学生成绩管理系统是典型的信息管理系统的一个分支,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。

对于前者要求建立数据一致性和完整性强、数据安全性能好的数据库,对于后者具有应用程序功能完备、易使用等特点。

利用ODBC访问SQL Server数据库技术开发而成,利用其提供的各种面向对象的开发工具,尤其是数据窗口,实现对学生的各种成绩进行查询、更新、添加和删除。

中国电信的调查报告指出,我国的上网人数已达到上亿。

由此可见,互联网的应用十分广泛,学校各届的毕业生都希望能在世界各地通过网络了解或查询到自己校友的信息。

因此,学生信息管理系统为也学校将来的上网做了一定的铺垫,类似于数据库的建立。

需求分析可以说是一个渐进的过程,系统通过开发人员和用户的不断沟通和交
流,一步步地加深对系统功能的了解和性能的认识,而且对系统各个部分加以细化或者分解软件需求。

需求分析是各种软件研发过程中的一种推理过程,这部分涉及到领域问题以及它的组成部分,其目的是为了深入了解用户的需求是什么以及目标系统要实现什么样的功能,最终要将用户的各种需求使用书面形式向工作人员或其他人员表达出来。

3.1 项目的功能需求
学生的信息管理系统在学校管理学生的重要手段之一,它关系着所有学生的各类基本信息,类似于班级信息、科目信息、年龄、住址等。

对于每一个学校来讲,学生的信息管理系统是一个不能被替代的组成部分。

该系统能够有效地管理所有学生的档案,而且对于学校学生的各种变动包括统计都将起着重要的管理作用。

本课题设计的学生管理系统是根据学校的信息管理人员对学校管理的实际需求来设计和实现的,它更全面的结合了学生信息管理的各种实际情况。

从管理员的角度出发来介绍系统的各个功能主要有:查询、添加;添加学生信息、修改学生信息、查询学生信息;查询专业、;添加成绩、查询成绩;成绩图表等。

主要有下面几个功能模块来实现:
1.能够实现对于所有学生的有关信息进行查询、修改、添加、删除等操作。

2.能够为学校提供全面和强大的查询功能,这样可以方便管理人员了解和掌握所有学生的现状和具体情况。

3.能够实现对已有的数据库和登陆记录进行定期的相关信息清理。

4.同时也可以对系统用户进行删除或者新增用户。

5.也可以对各个学生的各种信息进行相关的增加,或者修改,或者删除,或者查询等操作。

6.能够方便用户进行操作。

3.2 项目的性能需求
本系统开发的总体目标是要实现学生成绩管理的系统化、规范化、自动化,以提
高学生成绩管理的效率。

通过对系统的调研与分析,系统主要完成的功能有:成绩管理、管理、学号管理等。

为了能够确保系统可以长期、安全、稳定和可靠以及更加高效的运行起来,该学生信息管理项目就要能够满足下面的性能需求。

3.2.1 项目信息处理的准确性需求和及时性需求
项目信息处理的高准确性和高及时性是学生管理系统一个不可缺少的性能。

在这次的系统设计和系统开发的整个过程中,我们一定要能够充分的考虑到学生管理系统当前和以后可能承受的信息工作量,一定要设计出能够使系统的信息处理能力以及操作响应时间都可以满足学校对学生信息各种处理操作的高效又方便的系统软件。

系统采用了Microsoft推出的SQL Server数据库。

3.2.2 项目信息的开放性需求和可扩充性需求
我们在研发学生信息管理系统的整个过程中,必须要充分考虑到对于以后系统软件的可扩充性需求。

然而我们要想实现这样的功能,就一定要使该系统具有开放性,也就是说,把学生信息管理系统设计成一个开放的系统。

只要设计的系统符合一定的标准,就能够方便快捷的添加和删除系统的各种模块,同时通过配置好系统的硬件,设置好系统的软件环境,我们设计好的系统就能够实现对学生信息的各种相关操作。

3.2.3 项目的易使用性需求和易维护性需求
通常情况下,学生信息管理系统的使用者并不是计算机专业人士,他们只要通过简单的学习就可以使用一个新系统软件即可,而无须深究具体的操作细节计算机是如何实现的。

往往这样上手较快的软件才能得到普遍的应用。

因此,本设计的学生信息管理系统必须要给用户提供一个良好的用户接口,因为一个一目了然的图形界面可以方面用户使用。

但是要想实现这样的功能,就必须要求该系统尽量使用一般用户都了解的术语以及相关中文信息的界面,同时,对于用户在操作过程中可能会出现的各种疑问,该系统软件还要能提供相关的帮助信息,以尽可能的缩短用户了解系统的时间。

3.2.4 系统数据要求
通过深入的研究和调查,学生信息管理系统的对信息数据的要求,主要可以概括
为以下几个方面:
1.信息数据输入和处理的准确性和真实性
数据信息一定要具有真实性,因为正确无误的信息是数据处理的重要前提。

如果录入了错误的数据或者把一个正确的信息录入错了,都可能会使企业员工管理系统输出不正确的或不可用的数据信息,这样也就意味着,我们设计的学生信息管理系统就失去了意义。

2.信息数据的一致性以及完整性
经过调查发现,学生信息管理系统对数据的各项处理操作,学校都有非常严格的要求。

这是因为学生的各种信息处理操作本身就非常繁琐和复杂,为了减少操作错误,就要有一些工作人员专门去维护信息数据的一致性和完整性。

在对各种信息数据进行录入、输出等一系列操作过程中,对于数据的去向以及数据库的完整性都要有严格的要求和约束条件。

同时,对数据信息的输入,也要有相应的完整性规则来进行约束,如果准备操作的数据不能完全符合完整性约束条件,那么学生管理系统就一定要拒绝数据库的操作,以防止造成数据的不一致性和以及破坏数据的完整性。

3.各种信息的独立性
以SQL Server作为后台数据库,并用ODBC方法访问数据库,来开发一个学生成绩管理系统,该系统具有查询、修改、添加和删除学生信息的功能。

学生成绩管理系统对教育单位管理学生成绩起着非常重要的作用,对于学校的决策者和管理者也是至关重要的。

学生成绩管理系统能够为用户提供充足的信息和快捷的查询方式,对于学校来说,学生管理是学校各项工作中的重中之重,所以不可能让每个人都能对信息进行操作,学校一般会委派教务人员来管理学生信息,他们具有独立操作的权力,因此也被称为管理者。

3.3 主要流程图
1.信息管理流程图
图3-1信息管理流程图图3-1是信息管理的流程图,通过这个图可以看到本系统软件在信息管理中的数据走向以及过程控制。

2.学生基本信息管理流程图
图3-2学生基本信息管理流程图
图3-2是学生基本信息管理的流程图,通过这个图可以看到本系统软件在学生信息管理中的数据走向和过程控制。

3.成绩管理流程图
图3-3成绩管理流程图
图3-3是成绩管理的流程图,通过这个图可以看到本系统软件在成绩管理中的数据走向和过程控制。

4.专业管理流程图
图3-4专业管理流程图
图3-4是专业管理的流程图,通过这个图可以看到本系统软件在专业管理中的数据走向和过程控制。

3.4 数据库主要设计
当前,很多系统都是使用Microsoft SQL Server作为后台数据库,并用ODBC 方法访问数据库,本系统采用的就是这种方法。

Microsoft SQL Server是一个支持多用户的数据库系统,适用于大中规模的数据量需求,完全能满足一所学校的需要,如开放式数据访问(ODBC)技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。

SQL全称是"结构化查询语言(Structured Query Language)",SQL为许多任务提供了命令,包括:数据查询、数据更新;在表中插入记录、在表中修改记录、在表中删除记录;建立、修改和删除数据对象;控制对数据和数据对象的存取;保证数据库
一致性和完整性。

以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。

所有用SQL编写的程序都是可以移植的。

SQL是大多数关系型数据库用做查询语言的工具,它是可以移植的,并且容易使用,但是所有SQL语句都必须由数据库服务器独立地执行。

本学生管理信息系统主要有以下几类:学生基本信息,科目信息,班级信息,科室信息,成绩信息,教师信息等等。

系统数据库大体包含如下信息表:
1.学生信息表
主要记录学生的各项基本信息,如、年龄、学号、专业、成绩等,这个信息表是该系统有关学生信息操作的基础。

2.学生成绩表
主要记录每个学生在不同考试科目中的成绩。

3. 专业信息表
主要记录各个专业的名称。

4.信息表
主要记录各个学生的名称
5. 年龄信息表
主要记录各个学生的年龄
4. 项目实现
4.1 各个功能的具体实现
关键的代码:
#include<stdio. 定义结构体
{
char num[10]; 学号
char name[15];
int age; 年龄
int en; 英语成绩
int ji; 专业成绩
}person;
person per[100]; 定义100
char filename[20]; 定义全局变量logon() 登陆函数使系统更显完善
{
printf("\n\n\n\t\t\t 学生信息管理系统\n\n");
printf("\t\t\t 版本号:2.0\n\n");
printf("\n\n\n\n\t\t\t 2015年4月25日\n\n");
printf("\t\t\t 王孟龙制作\n");
printf("\n\n\t\t\t Ace_cm_Wang\n");
printf("\n\n\t\t\t 导演兼制作\n");
system("pause");
}
int menu_filename()
{
system("cls");
printf("请输入你要操作的文件名:");
scanf("\t%s",filename);
}
^^
int menu_select() 菜单选择系统函数
{
char c;
do{
system("cls");
printf("\t\t ╭═════════■□■□═══╮\n"); printf("\t\t│徽商学生信息管理系统│\n"); printf("\t\t╰═══■□■□══════════╯\n"); printf("\t\t ┌─────────────—┐\n");
printf("\t\t │ 1. 添加记录 2. 显示记录│\n");
printf("\t\t ││\n");
printf("\t\t │ 3. 信息查询 4. 数据计算│\n");
printf("\t\t ││\n");
printf("\t\t │ 5. 修改记录 6. 删除记录│\n");
printf("\t\t ││\n");
printf("\t\t │ 0. 退出程序│\n");
printf("\t\t └─────────────—┘\n");
printf("\t\t请您选择(0-6):");
c=getchar();
}while(c<'0'||c>'6');
return (c-'0'); 字符减去’0‘得到的是数字整型
}
void add() 成绩的录入与添加函数
{
FILE *fp;
int i=0,n=0;
char sign='y'; 首先定义sing='y'
system("cls"); 清屏函数系统中调用
while(sign!='n'&&sign!='N') 其实只有当输入N或n时才跳出循环
{
printf(" ----学生纪录添加----\n");
printf("学号:\n");
scanf("\t%s",per[i].num);
printf("\n");
scanf("\t%s",per[i].name);
printf("年龄:\n");
scanf("\t%d",&per[i].age);
printf("英语:\n");
scanf("\t%d",&per[i].en);
printf("专业:\n");
scanf("\t%d",&per[i].ji);
printf("是否继续添加?(yn)");
scanf("\t%c",&sign);
i++;
n=n+1;
system( "cls ");
}system("pause"); 等待命令
if((fp=fopen(filename,"a"))==NULL) 以2进制形式进行文件尾追加
{
printf("cannot open the files\n");
system("pause");
return; 如果文件出现错误就返回
}
for(i=0;i<n;i++)
if(fwrite(&per[i],sizeof(person),1,fp)!=1) 以2进制形式写入文件中一次写入一个数组
printf("file write error\n");
fclose(fp); 关闭文件
system("pasue");
}
^^^^^^^^^^^^^^^^^
void scan() 显示记录进行全面信息浏览{
void amend(); 声明修改函数char sign='y';
FILE *fp;
int i=0,n;
system("cls");
if((fp=fopen(filename,"r"))==NULL) 以2进制方式读取文件信息
{
printf("cannot open the files\n");
system("pause");
return;
}
while(!feof(fp)) 一直读取知道文件尾结束
{
fread(&per[i],sizeof(person),1,fp);
以2进制方式将文件信息读到数组内存中一次读取一个
i++;
}
fclose(fp);
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n") ;
printf(" 学号年龄英语专业\n"); printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n") ;
for(n=0;n<i-1;n++) 循环全部输出
printf("\t%s \t%s \t\t%d \t%d \t%d\n",per[n].num,per[n].name,per[n].age,per[n].en,per[n].ji);
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n") ;
system("pause");
system("cls");
printf("是否需要修改?(yn)");
scanf("\t%c",&sign);
if(sign!='n'&&sign!='N') 选择是否在浏览后进行修改
amend();
system("pause");
}。

相关文档
最新文档