您的当前位置:首页正文

正文

来源:个人技术集锦
 嵌入式系统开发与应用工程实习(报告)第 1 页 共 2 页

目 录

1 绪论 ................................................................ 1 1.1 课题背景 ......................................................... 1 1.2 课题意义 ......................................................... 1 1.3 开发平台简介 ..................................................... 2 1.3.1 硬件环境 ..................................................... 2 1.3.2 软件环境 ..................................................... 2 1.4 使用工具简介 ..................................................... 2 1.4.1 Visual C++ 6.0 MFC介绍 ...................................... 2 1.4.2 C++介绍 ...................................................... 2 2 系统分析 ............................................................ 3 2.1 可行性分析 ....................................................... 3 2.1.1 可行性分析的目的 ............................................. 3 2.1.2 经济可行性分析 ............................................... 3 2.1.3 社会可行性分析 ............................................... 3 2.1.4 技术可行性分析 ............................................... 3 2.2 需求分析 ......................................................... 4 2.2.1 功能需求分析 ................................................. 4 2.2.2 性能需求分析 ................................................. 5 2.3 系统数据流图 ..................................................... 6 2.3.1 顶级数据流图 ................................................. 6 2.3.2 系统管理员数据流图 ........................................... 6 2.3.3 学生数据流图 ................................................. 7 2.3.4 教师数据流图 ................................................. 8 3 概要设计 ............................................................ 8 3.1 系统功能模块图 ................................................... 8 3.2 各模块功能简介 ................................................... 9 3.2.1 用户登录模块 ................................................. 9 3.2.2 系统管理模块 ................................................. 9 3.2.3 基本信息管理模块 ............................................ 10 3.2.4 信息查询模块 ................................................ 10 4 数据库设计 ......................................................... 11 4.1 概念设计 ........................................................ 11 4.2 逻辑设计 ........................................................ 14

嵌入式系统开发与应用工程实习(报告)第 2 页 共 2 页

4.3 物理设计 ........................................................ 14 5 详细设计 ........................................................... 16 5.1 数据库的连接与使用 .............................................. 16 5.2 登录模块设计 .................................................... 17 5.3 系统管理模块 .................................................... 19 5.3.1 修改密码界面设计 ............................................ 19 5.3.2 用户管理界面设计 ............................................ 21 5.4 基本信息管理模块 ................................................ 22 5.4.1 学生管理界面设计 ............................................ 22 5.4.2 教师管理界面设计 ............................................ 23 5.4.3 课程管理界面设计 ............................................ 23 5.4.4 授课管理界面设计 ............................................ 24 5.4.5 成绩管理界面设计 ............................................ 26 5.5 信息查询模块 .................................................... 27 5.5.1 成绩查询界面设计 ............................................ 27 5.5.2 授课查询界面设计 ............................................ 29 5.5.3 学生信息查询界面设计 ........................................ 30 5.5.4 教师信息查询界面设计 ........................................ 30 6 测试 ............................................................... 31 6.1 测试目的 ........................................................ 31 6.2 测试内容 ........................................................ 31 6.3 具体测试 ........................................................ 32 6.3.1 功能测试 .................................................... 32 6.3.2 性能测试 .................................................... 33 6.4 测试结果分析 .................................................... 33 结论 .................................................................. 34 致谢 .................................................................. 35 参考文献 .............................................................. 36

淮阴工学院毕业设计说明书(论文)

第 1 页 共 36 页

1 绪论

1.1 课题背景

2、代码太多 3、检查细节

学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的信息管理系统,它是一个教育单位不可或缺的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率低,保密性差,给学校管理者以及学生都带来了很大的麻烦,严重影响了工作的效率。随着科学技术的不断提高,计算机科学的日渐成熟,使用日趋成熟的计算机技术来代替传统的人工模式。来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

社会教育在发展,管理系统应用也越来越多,这也是现代化教育的需要。就拿我所在的学校来说,一个很好的学生管理系统的功能还是很强大的,学生的信息、老师的资料、课程的安排以及学校的动态,我们都能很方便的了解。对于学校可以很好的了解学生的情况,学生能很方便的使用并查看自己的成绩,还能通过这个平台在网上报考一些证书的考试。学生信息管理系统所起到的作用就是极大的减轻了管理远的负担,也方便老师与学生的交流互动,更促进了学生的学习。

源于这个原因,我们可以看出学生信息管理系统作为计算机应用的一部分,它具有手工管理无法比拟的优点:检索迅速、查找方便、易于操作、可靠性高、存储信息量大、成本低等。这些优点能够极大地提高学生信息管理的效率。也是学校的科学化、正规化管理、与世界接轨的重要条件。用计算机制作的学生信息管理系统还可以通过普及的网络更好的带来了便利。因此,使用这样一套管理系统是很有必要的。

1.2 课题意义

学生信息管理系统有着自己的巨大优势:解决结构化问题;以高速度低成本完成

淮阴工学院毕业设计说明书(论文)

第 2 页 共 36 页

数据的处理业务,追求系统处理问题的效率;实现一个相对稳定的、协调的工作环境;应用科学的、客观的处理方法,符合实际情况。这对于任何一所高校都起到极大的作用,日趋完善的信息管理系统带来的科学化合理化的管理方式无疑是重中之重。

学生的相关信息作为一所高校的一个重要组成部分,学生信息管理系统在学校信息系统中占有重要的地位。它的数据量大,信息共享度高,而且对学生信息的查询的实时性要求高。该系统着重围绕学生,随着高等教育的普及度的提高,大量学子涌入大学,庞大的信息量也困扰着管理者,作为现代化的高校的学生管理,必须以人为本,从软、硬件上,上一个新的台阶,才可能提高管理效率。

1.3 开发平台简介

1.3.1 硬件环境

学生信息管理系统的特点是数据存储量大,查询检索,输入输出频繁,而且最重要的是安全性要高。硬件配置要求如下:

1)处理器要求:Pentium IV 1.7GHZ或更高; 2)内存要求:256MB或以上;

3)显卡要求:32MB DirectX 9 compatible或以上; 4)硬盘要求:40G或以上 1.3.2 软件环境

1)操作系统:Windows XP 2)开发工具:Visual C++ 6.0 MFC 3) 数据库:Microsoft office Access 4)开发语言:C++

1.4 使用工具简介

1.4.1 Visual C++ 6.0 MFC介绍

MFC 是一个以C++类的层次形式组织面向对象的应用程序框架,程序员可以使用这一框架创建Windows应用程序。MFC就是利用面向对象的思想,将数据类型与Windows大部分API函数封装起来的一个浩瀚的类库;利用MFC编写程序的本质就是选择类库中合适的类,并调用其下相对于的成员函数来完成某个功能。所以,MFC是可移植的。 1.4.2 C++介绍

C++是一种高级编程语言,它继承了C语言所以特性,同时也新增了很多新的功能,如类,容器,模板等等。众所周知,C语言是面向过程的开发员,而我们的C++

淮阴工学院毕业设计说明书(论文)

第 3 页 共 36 页

由于引进了新的特性,所以C++是面向对象的高级编程语言。最值得一提的是指针,如果一个程序员C++掌握的很好,那他的指针的使用一定十分熟练,可以这么说指针是C++的核心部分。也正是因为指针的存在,C++一直沿用至今,而且还将继续作为一种重要的编程语言而存在着。

2 系统分析

2.1 可行性分析

可行性分析作为投资决策前必不可少的关键环节,针对系统的开发是否具备必要性和可能性,对系统的开发从经济、社会、技术的方面进行分析、论证和评价,选定最佳方案,依此就是否应该投资开发该系统以及如何开发,或就此终止开发还是继续投资开发等给出结论性意见,为投资决策提供科学依据,并作为进一步开展工作的基础。

2.1.1 可行性分析的目的

可行性分析的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。而本系统为学生信息管理系统着重用于管理信息,主要涉及人员为管理员,教师,学生,且相应的数据的出并不是很难。所以,容易采用数据库来管理。 2.1.2 经济可行性分析

每所大学都有大量学子,随之而来就要管理庞大的学生信息,如果有这样一套学生信息管理系统,便会带来极大的益处,它不仅节约了管理的成本,同时也极大的提高了信息管理的效率。而本学生信息管理系统作为一个毕业设计,谈不上需要一些开发经费,因而是可行的。 2.1.3 社会可行性分析

社会可行性有时也称为操作可行性,主要是论证新系统在企业或单位开发和运行的可能性已经运行后可能带来的影响,即组织内外是否具备接收和使用新系统的条件。目前的IT技术在飞速发展,各类管理软件数不胜数,就本系统—学生信息管理系统而言,它能够更好的管理大量的学生信息,就这点而言,他可以拓宽计算机在市场环境下的生存空间,另外这样一类软件可以稍加修改也能作为企业的管理系统。 2.1.4 技术可行性分析

本系统在系统结构方面采用MFC与ACCESS数据库技术,很好的出来窗口操作、后台管理和和数据库三者之间的有效连接;在程序设计方面,基于Microsoft C++的基本类库,设计相当灵活,并且效率较高,也减少了大量在建立Windows程序是必须编

淮阴工学院毕业设计说明书(论文)

第 4 页 共 36 页

写的代码;在成本方面,是可以忽略不计的,并且日后的维护也很方便,它的使用会减少学校管理者的工作量,提高了管理效率,同时方便了学生与教师。

2.2 需求分析

学生信息管理系统的主要目的是利用计算机软件实现对学生的管理,是的学校的管理更加容易,提高工作效率,降低管理成本。

学生信息管理系统分为一些基本信息的管理和信息的查询两部分,学生可以查看关于自己的一些信息以及了解老师的介绍。而老师对学生的的信息可以管理一些,如学生的成绩,老师可以对其录入,修改等操作。对于整个系统而言,为了便于对各个数据进行维护,还要增加管理员的权限,方便对老师和学生的信息进行维护。

另外从安全角度考虑,有必要针对不同的用户对数据的访问与编辑进行控制。其中学生只能查询,而不能修改信息。同样教师也是如此,但教师能够对学生的成绩进行录入,也可修改。管理员可以对整个系统进行维护,需要管理员进行维护可能因为3中情况:一种是用户密码忘记了,这时需要管理员对密码进行重置;另一种情况是某些数据由于人为的原因造成错误,这时需要管理员强制进行修改;还有一种情况是对信息的管理。 2.2.1 功能需求分析

在本系统中,有3中用户角色,分别是学生、教师和系统管理员。只有被授权的用户才可以使用本系统。根据用户权限来限定用户所能进行的操作。

学生所具有的操作权限:学生可以查看课程信息、成绩、学生信息和教师信息,他只能进行查询操作,不能进行其他的操作。在3中用户角色中,学生的权限是最小的。

教师所具有的操作权限:教师除了能够进行查询操作,还能对学生的成绩的添加、修改和删除进行操作。

系统管理员的操作权限:系统管理员具有最高的权限,可以对所有数据进行修改或删除。对用户信息的管理,包括密码重置、用户的增加与删除。对基本数据的管理,包括对学生管理、教师管理、课程管理、授课管理和成绩管理进行操作。

功能需求具体分析如下:

1)系统登录:用户输入用户名和密码,系统查询数据库中的信息对密码进行验证。如果密码不正确将不能进入系统;如果密码正确,系统会自动根据该用户所具有的权限进入不同的界面。这样一个登录窗口提高来系统的安全性。

淮阴工学院毕业设计说明书(论文)

2)系统管理:

第 5 页 共 36 页

修改密码:对于任何用户,包括学生、教师和系统管理员都可以对自己的密码进行重新设置。

用户管理:只针对管理员才能进行操作,管理员可以查看用户状态,当教师或学生忘记密码时能够找回其密码,并且能添加、删除用户,修改用户权限。

3)学生管理:能够对学生的一些基本信息进行添加、修改、删除等操作。学生的基本信息包括学生编号、姓名、性别、年龄、电话号码和地址等。

4)教师管理:能够对教师的一些基本信息进行添加、修改、删除等操作。教师的基本信息包括教师编号、教师姓名、性别、年龄、职称等。

5)课程管理:能够对课程的一些基本信息进行添加、修改、删除等操作。课程的基本信息包括课程编号、课程名称、该门课的学时及学分。

6)授课管理:能够对教师授课的情况进行管理。包括添加、修改和删除等操作。当教师准备教授课程时要记录到数据库中进行管理,方便日后对课程、教师等有关信息的查询。

7)成绩管理:能够对成绩的情况进行管理。当一门课的成绩结果公布时,要相应的记录到数据库中,这样,学生和教师才能够进行成绩的查询。

8)成绩查询:可以按照学生查询,查询某个学生参加所有课程的成绩,并且可以进一步查询该学生的成绩情况。

9)课程查询:可以查询某个教师所教授的所有课程情况,也可以查询某门课都有哪些教师教授过。

10)学生信息查询:可以查询某个学生的相关基本信息情况。 11)教师信息查询:可以查询某个教师的相关的基本信息情况。 2.2.2 性能需求分析

本系统可以实现许多性能特性,如:稳定性、安全性、实用性、实时性、可靠性等等。

1)稳定性:系统应具备长期持续工作的能力。

2)安全性:利用细分的权限管理,拒绝非法用户进入系统和合法用户的越权操作,避免系统遭到恶意破坏,防止系统数据被窃取和篡改,保护学生信息的安全。此外,还有良好的用户身份认证体制和灵活的密码更改功能。

3)实用性:用户界面做到直观、友好;用户进入系统;本系统是对学生信息进

淮阴工学院毕业设计说明书(论文)

第 6 页 共 36 页

行详细的调查之后实现的,功能模块一目了然,具有很强的实用性。

4)实时性:对学生信息的管理的操作在各个模块中的实现达到了及时更改及时见效,使处理操作更为高效。

5)可靠性:采用良好的操作系统和数据库,确保数据的一致性和完整性,并使系统免受病毒感染。

2.3 系统数据流图

数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。 2.3.1 顶级数据流图

顶层数据流图主要描述学生信息管理系统的用户——系统管理员、学生、教师登录该系统时的总体数据流程,具体如图2.1顶级数据流图:

密码 处理信息 记录数据 信息存储记录

图2.1顶级数据流图

用户登录 身份认证 处理 2.3.2 系统管理员数据流图

系统管理员数据流图主要是管理员对整个系统进行的一些操作。系统管理员的权限是最大的,在整个过程中起到举足轻重的作用。在管理员进行一系列的操作后产生的数据流程,如对用户的管理操作,不论是添加,还是删除用户都会改变用户人员的信息;在基本信息管理方面,进行学生管理会改变学生的信息,进行教师管理会改变教师的信息,进行课程管理会改变课程的信息,进行成绩管理会改变学生的成绩信息,进行授课管理会改变授课的信息;另外,管理员还可以查询信息,其中包括学生的基本信息、教师的基本信息、学生的成绩信息已经授课信息。其具体的数据流如图2.2系统管理员数据流图所示:

淮阴工学院毕业设计说明书(论文)

用户密码 管理员登录 密码 更改密码 第 7 页 共 36 页

1 身份认证 2 口令修改 反馈信息 用户交互界面 管理操作 3 操作 处理 进行管理后最新的信息 查询信息 5 查询 信息 处理 信息 4 记录 处理 后的 信息 完成 处理 处理的信息 反馈

图2.2 系统管理员数据流图

2.3.3 学生数据流图

学生在登录系统后可以进行相关的查询操作,具体如图2.3学生数据流图所示:

用户密码 密码 更改密码 学生登录 1 身份认证 2 口令修改 反馈信息 用户交互界面 查询信息 3 成绩查询 查询信息 4 课程查询 查询信息 5 学生信息查询 查询信息 6 教师信息查询 反馈反馈反馈反馈 成绩信息 课程信息 学生信息 教师信息

图2.3 学生数据流图

淮阴工学院毕业设计说明书(论文)

2.3.4 教师数据流图

第 8 页 共 36 页

教师在登录系统后出来可以进行查询操作外,还能够对学生的成绩进行处理,其具体的数据流如图2.4教师数据流图所示:

用户密码 密码 更改密码 教师登录 1 身份认证 2 口令修改 管理操作 查询信息 反馈信息 用户交互界面 查询信息 查询信息 7 课程查询 查询信息 6 学生信息查询 3 成绩管理 处理 信息 处理的信息 8 教师信息查询 5 成绩查完成 处理 反馈反馈反馈教师信息 课程信息 学生信息 反馈4 处理 后的 信息

3 概要设计

学生信息管理系统是为了方便管理学生信息而设计的,针对不同的用户设定不一样的访问权限,管理员的权限最大,教师的权限范围有所缩小,最后学生的权限最小,他只能查询,不能修改。其中管理员可以设置和管理与学生相关的一些信息,如学生的基本信息包括学号,姓名,年龄,电话,家庭地址等等,另外还有学生课程的管理,教师的管理,授课的管理和学生成绩的管理。另一方面,这些信息可被学生和教师查询到。

3.1 系统功能模块图

整个学生信息管理系统分为4个模块来设计:其中系统登录为登录模块;修改密码和用户管理为系统管理模块;学生管理、教师管理、课程管理、授课管理和成绩管理为基本信息管理模块;最后的成绩查询、授课查询,学生信息查询和教师信息查询

成绩信息 图2.4 教师数据流图

淮阴工学院毕业设计说明书(论文)

为信息查询模块。功能模块图如图3.1系统功能模块图所示:

用户登录模块 第 9 页 共 36 页

系统管理模块 基本信息管理模块 信息查询模块 修改密码 用户管理 学生管理 教师管理 课程管理 授课管理 成绩管理 成绩查询 授课查询 学生信息查询 教师信息查询

图3.1 系统功能模块图

3.2 各模块功能简介

3.2.1 用户登录模块

用户登录模块,这里有三种类型的用户:管理员、学生用户已经教师用户。通过权限设置不同的用户的使用的系统资源是有所区别的,在登录时,通验证用户是何种权限从而决定进入系统后其所能进行何种操作。用户登录模块如图3.2所示:

用户登录模块 管理员 学生 教师

图3.2 用户登录模块

3.2.2 系统管理模块

系统管理模块又分为修改密码与用户管理两部分,其中无论哪种用户都能够对自己的密码进行修改从而定期的修改密码很方便对自己账户的保护,但对用户管理这部分只用管理员有权限进行操作,管理员可添加和删除用户,也能对遗忘密码的用户进行密码重置。系统管理模块如图3.3所示:

淮阴工学院毕业设计说明书(论文)

系统管理模块 第 10 页 共 36 页

修改密码 用户管理

图3.3 系统管理模块

3.2.3 基本信息管理模块

基本信息管理模块又分为学生管理、教师管理、课程管理、授课管理和成绩管理,在这一模块,只有管理员对所有的部分有权限,教师只能够进行成绩管理操作,而学生什么权限也没有。基本信息管理模块如图3.4所示:

基本信息管理模块 学生管理 教师管理 课程管理 授课管理 成绩管理

图3.4 基本信息管理模块

3.2.4 信息查询模块

信息查询模块又分为成绩查询、授课查询、学生信息查询以及教师信息查询四项,这些操作是所有用户都能进行的。这一模块对于学生这类用户而言是其主要的操作范围,学生可以查看自己的情况包括自己的成绩,也可以了解其他同学的信息和一些教师的基本信息。信息查询模块如图3.5所示:

淮阴工学院毕业设计说明书(论文)

信息查询模块 第 11 页 共 36 页

成绩查询 授课查询 学生信息查询 教师信息查询

图3.5 信息查询模块

4 数据库设计

数据库是长期存储在计算机内、有组织的、同样管理的相关数据的机会,它能为各种用户所共享,具有较小的数据冗余度、数据间联系紧密而又有较高的数据独立性等特点。数据库是系统的后台,是信息管理系统的核心部分,它存储着所有的信息,将大量的数据按一定的模型组织起来,提供存储、维护和检索数据的功能。在我所设计的学生信息管理系统中占有非常重要的地位。数据库结构设计的好坏将直接影响应用系统的效率及实现的效果,合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。在设计初期对数据库进行合理的逻辑设计和有效的物理设计,才能开发出完善而高效的信息系统,用户才能方便、及时和准确地从数据库中存取所需的信息。

4.1 概念设计

数据库的概念设计是根据需求设计数据库的概念结构,在数据库技术中,我们用模型—对现实世界的抽象,来描述数据库的结构与语义,从而来表现实体类型及实体间联系。这就要说到数据模块:数据模型是数据库的核心和基础。根据应用目的的不同,数据模型分为两类,它们分别属于不同层次。一类是概念模型,它是按用户的观点对数据和信息建模;另一类是数据模型,如网状模型、层次模型、关系模型等。概念模型的表示方法很多,传统的最常用的方法是实体联系方法,这种方法用E-R 图来描述概念模型,称为E-R 模型,即实体联系模型。在这个模型中,实体定义为可标识的对用户重要的事物,具有同一类型的实体构成实体型,一个特定的实体称作实体实例。实体有描述其特征的属性,一个或多个属性表征一个实体。

淮阴工学院毕业设计说明书(论文)

第 12 页 共 36 页

联系是指实体之间的关联,E-R 模型清楚地定义了联系,每个联系都有名字。联系的元是参加联系的实体的数目,大多数联系是二元的,二元联系有三种类型:一对一联系、一对多联系和多对多联系。在E-R 图中,实体用长方形表示,联系用菱形表示,属性用椭圆表示。E-R 建模的中心思想是通过实体和它们之间的联系合理地体现一个组织的数据模型。

在之前我对所设计的学生信息管理系统进行了需求分析,根据分析的结果,可以得到的实体有学生实体、教师实体和课程实体,另外还有两个关系。系统E-R图如图4.1所示:

课程名称 课程编号 学生编号 学生姓名 学时 M 课程 学分 成绩 N 学生 性别 年龄 电话 N 分数 地址 授课 教师编号 M 教师 教师姓名 教师性别 授课编号 职称 教师年龄

图4.1 系统E-R图

淮阴工学院毕业设计说明书(论文)

学生实体属性图如图4.2所示:

学生姓名 学生编号 第 13 页 共 36 页

性别 学生 电话 地址 年龄

图4.2 学生实体属性图

教师实体属性图如图4.3所示:

教师姓名 教师编号 教师 性别 教师 职称 教师 年龄

图4.3 教师实体属性图

课程实体属性图如图4.4所示:

课程名称 课程编号 课程 学时 学分

淮阴工学院毕业设计说明书(论文)

图4.4 课程实体属性图

第 14 页 共 36 页

4.2 逻辑设计

按照E-R图转化成为关系模型的原则,将上图转化成为关系模型(主键用下划线标注,外键用波浪线标注):

1)实体关系模型

学生(学生编号,学生姓名,性别,年龄,地址,电话) 教师(教师编号,教师姓名,教师性别,教师年龄,职称) 课程(课程编号,课程名称,学时,学分)

2)联系关系模型

授课(授课编号,课程编号,教师编号) 成绩(成绩编号,学生编号,课程编号)

4.3 物理设计

数据库设计作为本系统设计中必不可少的一部分。从上面的功能分析不难看出本学生信息管理系统需要建立以下几个数据表:用户信息表userinfo、学生表student、教师表teacher、课程表course、授课表teach和成绩表。

用户信息表保存了所以用户的用户名、密码、用户权限和是否在使用状态等基本信息,具体表设计如下表4-1所示:

表 5-1 用户信息表

字段名称 user_id user_name

user_password user_level active_status

字段含义 用户编号 用户名称 用户密码 用户权限 使用状态

字段类型 自动编号 文本 文本 文本 文本

字段长度

50 50 1 2

备注 主键,不允许为

主索引,非空

非空 非空 非空

学生表保存了所以学生用户的学生编号、学生姓名、学生性别、学生年龄、学生电话、学生地址和是否在使用状态等基本信息,具体表设计如下表4-2所示:

淮阴工学院毕业设计说明书(论文)

表4-2 学生表 字段名称 student_id student_no student_name student_sex student_age student_phone student_address student_status

字段含义 学生记录号 学生编号 学生姓名 学生性别 学生年龄 学生电话 地址 使用状态

字段类型 自动编号 文本 文本 文本 数字 文本 文本 文本

字段长度 10 10 2 2 20 100 2

第 15 页 共 36 页

备注 主键,不允许为

主索引,非空

非空 非空 非空 非空 非空 非空

教师表保存了所以教师用户的教师编号、教师姓名、教师性别、教师年龄、教师职称和是否在使用状态等基本信息,具体表设计如下表4-3所示:

表4-3 教师表

字段名称 teacher_id teacher_no teacher_name teacher_sex teacher_age teacher_level teacher_status

字段含义 教师记录号 教师编号 教师姓名 教师性别 教师年龄 教师职称 使用状态

字段类型 自动编号 文本 文本 文本 数字 文本 文本

字段长度

6 10 2 2 6 2

备注 主键,不允许为

主索引,非空

非空 非空 非空 非空 非空

课程表保存了所有课程的课程编号、课程名称、课程学时、课程学分和是否在使用状态等基本信息,具体表设计如下表4-4所示:

表4-4 课程表 字段名称 course_id course_no course_name course_hour course_credit course_status

字段含义 课程记录号 课程编号 课程名称 课程学时 课程学分 使用状态

字段类型 自动编号 文本 文本 数字 数字 文本

字段长度 6 20 2 2 2

备注 主键,不允许为

主索引,非空

非空 非空 非空 非空

授课表保存了所有授课的的课程编号、教师编号和是否在使用状态等基本信息,具体表设计如下表4-5所示:

淮阴工学院毕业设计说明书(论文)

表4-5 授课表

teach_id course_no teacher_no active_status

授课记录号 课程编号 教师编号 成绩

自动编号 文本 文本 文本

6 6 2

第 16 页 共 36 页 主键,不允许为

空 外键,非空 外键,非空 非空

成绩表保存了所有学生的成绩的学生编号、课程编号、成绩和是否在使用状态等基本信息,具体表设计如下表4-6所示:

表4-6 成绩表

字段名称 score_id student_no course_no score active_status

字段含义 成绩记录号 学生编号 课程编号 成绩 使用状态

字段类型 自动编号 文本 文本 数字 文本

字段长度

10 6 2 2

备注 主键,不允许为

空 外键,非空 外键,非空 非空 非空

5 详细设计

5.1 数据库的连接与使用

本系统采用ODBC数据库,ODBC提供了应用程序接口,使得任何一个数据库都可以通过ODBC驱动器与指定的DBMS相联,从而可以通过调用ODBC驱动管理器中相应的驱动程序达到管理数据库的目的。ODBC作为Windows开放式服务体系结构的主要组成部分,它一直沿用至今。

在ODBC数据管理器中创建数据源:

1)“开始”→“控制面板”→“管理工具”→“数据源(ODBC)”命令,就打开了ODBC数据源管理器对话框,选择“用户DSN”选项卡,创建数据源。

2)“添加”按钮进入创建新数据源窗口,选择“Microsoft Access Driver”。 3)“完成”进入“ODBC Microsoft Access 安装”窗口,填写数据源名称为“Student_Information”,并选择自己所建立的数据库,点击“确定”就完成了。

在程序设计中使用数据库:

1)一种是直接继承自CRecordset类,使用它的记录对象。在设计中部分代码如下:

淮阴工学院毕业设计说明书(论文)

//查询操作

strSQL.Format(\"user_id=%s\定义查询条件,相当于where m_userSet.Open();

m_userSet.m_strFilter=strSQL;//使用查询条件 m_userSet.Requery();//执行查询 //修改操作

m_userSet.Edit();//游标指定到该行所在的记录上,执行修改 //添加操作

m_userSet.Open();//打开记录集 m_userSet.AddNew();//添加新记录

第 17 页 共 36 页

2)另一种方式是直接使用SQL语句对数据进行操作,在设计中有这样一段代码: //查出该程序的课程号 strSQL.Format(\"select course_name='%s'\

m_recordSet.Open(CRecordset::forwardOnly,strSQL); m_recordSet.GetFieldValue(\"course_no\if(this->id==\"0\")//id为0,表示添加记录 {

strSQL.Format(\"insert

into

teach(teacher_no,course_no,active_status)

*

from

course

where

course_status='Y'

and

values('%s','%s','Y')\

}

else if(id!=\"\")//为修改记录 {

strSQL.Format(\"update

teach

set

teacher_no='%s',course_no='%s'

where

m_database.ExecuteSQL(strSQL);

teach_id='%s'\

}

m_database.ExecuteSQL(strSQL);

5.2 登录模块设计

用户登录模块实现对用户合法性的检查,读取相应用户权限,同时在登录后根据

淮阴工学院毕业设计说明书(论文)

第 18 页 共 36 页

用户权限显示不同的功能界面。用户登录界面的资源文件为“IDD_LOGIN”,对话框后台处理的累为“CLoginDlg”,该类继承自“CDialog”。对于修改了权限的用户,只有在下次登录的时候,才会起作用。

图5.1 系统登录界面

其中“确定”按钮的事件响应代码如下: void CLoginDlg::OnOK() {

CString username,password;//定义两个字符串变量

m_strUserName.GetWindowText(username);//将文本框中的值赋给username m_strPassword.GetWindowText(password);//将文本框中的值赋给帕password

if(!m_database.IsOpen()){//如果数据没有打开,则打开数据库

if(m_database.Open(_T(\"Student_Information\")))//如果正确打开数据库{

m_recordSet.m_pDatabase=&m_database;//将m_database对象赋给

m_pDatabase

CString strSQL;

strSQL.Format(\"select * from userinfo where user_name='%s' and

user_password='%s' and active_status='Y'\

m_recordSet.Open(CRecordset::forwardOnly,strSQL);//打开记录集

if(m_recordSet.GetRecordCount()==0)//如果找不到记录{

MessageBox(\"密码错误,请重新输入\密码错误

\提示密码错误

m_strPassword.SetWindowText(\"\");//清空密码文本框

淮阴工学院毕业设计说明书(论文)

}

else//如果找到记录{

第 19 页 共 36 页

m_strPassword.SetFocus();//设置用户名文本框为当前的焦点

m_recordSet.GetFieldValue(\"user_level\

//则将数据库中的权限值赋给m_userLevel

}

}

}

}

CDialog::OnOK();//进入到主窗口

m_recordSet.Close();//关闭记录集 m_database.Close();//关闭数据库

else//如果没有正确打开数据库{ }

MessageBox(\"不能打开数据库\");

5.3 系统管理模块

系统管理分为普通用户(包括教师用户和学生用户)和管理员用户。密码修改主要是为了安全方面的考虑,应定期更改登录密码。用户管理模块主要包括用户的添加、修改和删除已经权限的设置等功能。用户管理窗口资源为“IDD_USER”,对话框后台处理的类为“CUserDlg”,该类继承自“CDialog”类。数据库后台处理的类为“CUserSet”类,该类继承自“CRecordset”类。 5.3.1 修改密码界面设计

用户可以根据自己的需要定期的更改密码,密码修改的界面如下图5.2所示:

图5.2 修改密码界面

淮阴工学院毕业设计说明书(论文)

第 20 页 共 36 页

修改密码是,实现用户名不能为空,再有就是输入的用户名和密码要存在才能修改,另外最好一步就是在确认输入密码要与新密码一致,自由这样才能成功修改密码。下面是具体实现代码的主要部分:

if(newPassword.IsEmpty()||confirmPassword.IsEmpty()){//判断新密码是否为空

MessageBox(\"密码不为空\");

}else{

if(newPassword!=confirmPassword)//判断两次输入的新密码是否相同{

MessageBox(\"两次输入的密码不一致,请重新输入新密码\"); pNew->SetWindowText(\"\");//清空密码文本框 pConfirm->SetWindowText(\"\");//清空确认密码文本框 pNew->SetFocus();//设置新密码文本框为焦点

}else{

if(!m_database.IsOpen()){//如果数据库没有打开,则打开数据库

if(m_database.Open(_T(\"Student_Information\")))//如果正确打开{

m_recordSet.m_pDatabase=&m_database;//将m_database对象

赋给m_pDatabase

CString strSQL;

strSQL.Format(\"select * from userinfo where user_name='%s'

and user_password='%s' and active_status='Y'\

m_recordSet.Open(CRecordset::forwardOnly,strSQL); if(m_recordSet.GetRecordCount()==0)//如果找不到记录{

MessageBox(\"密码错误,请重新输入\密码错误

\提示密码错误

pPassword->SetWindowText(\"\"); pNew->SetWindowText(\"\"); pConfirm->SetWindowText(\"\"); pPassword->SetFocus();

}else//如果找到记录{//更新密码的sql命令

strSQL.Format(\"update userinfo set user_password='%s'

where user_name='%s'\

淮阴工学院毕业设计说明书(论文)

MessageBox(\"修改密码成功!\");

第 21 页 共 36 页

m_database.ExecuteSQL(strSQL);//执行sql

CDialog::OnOK();

}

m_recordSet.Close(); m_database.Close();

}else{

MessageBox(\"不能打开数据库\");}}}}

5.3.2 用户管理界面设计

在这一个模块只有管理员有权限,他能够添加、删除用户和修改用户的信息。我用0、1、2表示3中权限从而界定不同级别的用户。用户管理的界面设计如下图5.3所示:

图 5.3 用户管理界面

无论是添加用户,还是修改用户的账号和权限,都是要更新数据库,在这里值都是从2个文本框和一个下来列表传入的。其中最重要的是用户的删除,删除用户功能按钮的核心代码如下:

if(MessageBox(\"

确定要删除该记录?\删除询问

淮阴工学院毕业设计说明书(论文)

\

}

strSQL.Format(\"user_id=%s\m_userSet.Open();

m_userSet.m_strFilter=strSQL; m_userSet.Requery(); m_userSet.Delete(); m_userSet.Close(); RefreshList();

第 22 页 共 36 页

5.4 基本信息管理模块

基本信息管理模块主要包括对基本信息的添加、修改和删除操作,这些基本信息包括学生信息、教师信息、课程信息、授课信息和成绩信息。

其中,学生信息、教师信息、课程信息对单个表进行添加、修改和删除操作,所以分别使用从“CRecordset”类中继承的“CStudentSet”、“CTeacherSet”、“CCourseSet”作为后台数据库的类,其相对应的窗口资源为“IDD_STUDENT”、“IDD_TEACHER”、“IDD_COURSE”,对话框处理类为“CStudentDlg”、“CTeacherDlg”、“CCourseDlg”。

由于授课信息和成绩信息涉及到多个表的查询,所以采用直接执行SQL语句的方式来对数据库进行操作。授课信息所对应的窗口资源为“IDD_TEACH”,对话框处理类为“CTeachDlg”,成绩信息所对应的窗口资源为“IDD_SCORE”,对话框处理类为“CScoreDlg”。

5.4.1 学生管理界面设计

学生管理用来管理学生的信息,界面设计如下图5.4所示。我们可以添加学生信息,这项功能是通过获取控件的值然后执行m_studentSet.Open()和m_studentSet.AddNew()语句就完成了功能。而修改信息,则是选中一行记录,那么这行记录就显示在相应的控件中,就可以进行修改。另外删除一个学生的信息也很容易,删除的主要代码如下:

strSQL.Format(\"student_id=%s\定义查询条件 m_studentSet.m_strFilter=strSQL;//设置查询条件 m_studentSet.Requery();//执行查询

m_studentSet.Edit();//游标指定到该行所在的记录上,执行修改

淮阴工学院毕业设计说明书(论文)

第 23 页 共 36 页

图5.4 学生管理界面

5.4.2 教师管理界面设计

教师管理用来管理教师的基本信息,同样也可以进行添加、修改和删除操作。界面设计如下图5.5所示:

图5.5 教师管理界面

5.4.3 课程管理界面设计

课程管理模块用来管理课程的信息包括课程号、课程名、学时和学分等,其界面设计如下图5.6所示:

淮阴工学院毕业设计说明书(论文)

第 24 页 共 36 页

图5.6 课程管理界面

5.4.4 授课管理界面设计

授课管理模块管理着哪位教师教什么课这类信息,它具有添加、修改和删除等功能很好的实现了对授课的管理。在设计中,授课涉及多个表的查询,因而较为复杂点,不过界面还是比较简单明了。授课管理界面如下图5.6所示:

图 5.7 授课管理界面

其中授课管理模块主要实现代码如下: CString course,teacher,course_no,teacher_no; m_cTeacher.GetWindowText(teacher); m_cCourse.GetWindowText(course);

淮阴工学院毕业设计说明书(论文)

CString strSQL; //查出该教师的编号 strSQL.Format(\"select teacher_name='%s'\

CRecordset m_recordSet=&m_database;

m_recordSet.Open(CRecordset::forwardOnly,strSQL); m_recordSet.GetFieldValue(\"teacher_no\m_recordSet.Close(); //查出该程序的课程号 strSQL.Format(\"select course_name='%s'\

m_recordSet.Open(CRecordset::forwardOnly,strSQL); m_recordSet.GetFieldValue(\"course_no\if(this->id==\"0\")//id为0,表示添加记录{

strSQL.Format(\"insert

into *

from

course

where

*

from

teacher

where

第 25 页 共 36 页

teacher_status='Y' and

course_status='Y' and

teach(teacher_no,course_no,active_status)

values('%s','%s','Y')\

m_database.ExecuteSQL(strSQL);

}else if(id!=\"\")//为修改记录{

strSQL.Format(\"update

teach

set

teacher_no='%s',course_no='%s'

where

teach_id='%s'\

m_database.ExecuteSQL(strSQL);} id=\"\"; RefreshList(); ResetButton();

淮阴工学院毕业设计说明书(论文)

5.4.5 成绩管理界面设计

第 26 页 共 36 页

在成绩管理这个模块中,添加和修改两个按钮公用一个窗口资源,在点击这两个按钮都会跳出那个窗口,不过通过一个标识来识别两个不同的操作。下图5.6为成绩管理界面:

图5.8 成绩管理界面

实现添加和修改成绩功能的窗口如下图5.9所示:

图5.9 成绩处理窗口

其中实现添加和修改的主要部分代码如下: if(this->id==\"0\")//id为0,则为添加记录{

strSQL.Format(\"insert

into

score(student_no,course_no,score,active_status)

values('%s','%s','%s','Y')\

m_database.ExecuteSQL(strSQL); }else//否则为修改记录{

淮阴工学院毕业设计说明书(论文)

score_id=%s\

m_database.ExecuteSQL(strSQL);}

第 27 页 共 36 页

strSQL.Format(\"update score set student_no='%s',course_no='%s',score=%s where

5.5 信息查询模块

信息查询模块包括成绩查询、授课查询、学生信息查询和教师信息查询,用户可以通过输入查询条件来进行查询。由于前两模块涉及到3个表的连接查询,所以没有使用CRecordset记录集对象,而是直接利用数据库查询语句来对数据库进行操作。

成绩查询所对应的窗口资源为“IDD_QUERY_SCORE”,对话框处理类为“CQueryScoreDlg”;授课查询所对应的窗口资源为“IDD_QUERY_TEACH”,对话框处理类为“CQueryTeachDlg”;学生信息查询所对应的窗口资源为“IDD_QUERY_STUDENT”,对话框处理类为“CQueryStudentDlg”;教师信息查询所对应的窗口资源为“IDD_QUERY_TEACHER”,对话框处理类为“CQueryTeacherDlg”。 5.5.1 成绩查询界面设计

成绩查询的方式有两种:一种是按学生查询,另一种是按课程查询,通过单选框来指定按哪一种方式查询成绩。具体的窗口设计如下图5.10所示:

图5.10 成绩查询界面

如果按照学生查询,则选择第一个单选框,并在文本框中输入想要查的学生的姓名,最后单击“查询”按钮后就会在左边的列表中看到信息。具体的实现的部分代码如下:

CString strSQL;

strSQL.Format(\"select * from score,course where student_no in (select student_no from student where student_name='%s')and course.course_no=score.course_no and

淮阴工学院毕业设计说明书(论文)

score.active_status='Y'\

RECT rectList;

m_list.GetWindowRect(&rectList); int wid=rectList.right-rectList.left-4; for(int i=0;i<2;i++)

m_list.SetColumnWidth(i,wid/2);

第 28 页 共 36 页

m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);

m_recordSet.Open(CRecordset::forwardOnly,strSQL); for(int j=0;jCString temp;

m_recordSet.GetFieldValue(\"course_name\m_list.InsertItem(j,temp);

m_recordSet.GetFieldValue(\"score\m_list.SetItemText(j,1,temp); m_recordSet.MoveNext();} m_recordSet.Close();

如果按照课程查询,则选择第二个单选框,并在文本框中输入想要查的课程的名称,最后单击“查询”按钮后就会在左边的列表中看到信息。具体的实现的部分代码如下:

CString strSQL;

strSQL.Format(\"select * from student,score where

student.student_no=score.student_no and course_no in (select course_no from course where course_name='%s') and score.active_status='Y'\

//设置header的宽度 RECT rectList;

m_list.GetWindowRect(&rectList); int wid=rectList.right-rectList.left-4; for(int i=0;i<2;i++)

m_list.SetColumnWidth(i,wid/2);

m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);

淮阴工学院毕业设计说明书(论文)

//打开记录集

m_recordSet.Open(CRecordset::forwardOnly,strSQL); //将记录集显示到 CList中

for(int j=0;jCString temp;

m_recordSet.GetFieldValue(\"student_name\m_list.InsertItem(j,temp);

m_recordSet.GetFieldValue(\"score\m_list.SetItemText(j,1,temp); m_recordSet.MoveNext();}

第 29 页 共 36 页

m_recordSet.Close();//关闭记录集 5.5.2 授课查询界面设计

授课查询可以根据课程名查找教这门课的老师有哪些,也可以通过教师名查出这位教师教哪些课程。具体的窗口设计如下图5.11所示:

图5.11 授课查询界面

查询按键的相应单击事件代码的核心部分如下: CString strSQL; if(type==\"teacher\")

strSQL.Format(\"select * from teach,course where teacher_no in(select teacher_no

淮阴工学院毕业设计说明书(论文)

from

teacher

where

teacher_name='%s')and

teach.course_no=course.course_no\else from

第 30 页 共 36 页

teach.active_status='Y' and

strSQL.Format(\"select * from teach,teacher where course_no in(select course_no course

where

course_name='%s')and

teach.active_status='Y'

and

teach.teacher_no=teacher.teacher_no\

m_recordSet.Open(CRecordset::forwardOnly,strSQL);

5.5.3 学生信息查询界面设计

在查询学生信息的时候,查单个学生的信息也有两种方式来查询,一种是自己输入要查的学生的姓名,另一种是已经连接到数据库中的的记录了,只要选择存在的学生姓名就行了。有一个“查询所有学生信息”按钮,可以用来直接查询所有学生的信息。窗口界面如下图5.12所示:

图5.12 学生信息查询界面

单个查询的第一种方式的实现主要是通过下面的一条SQL语句来完成的:strSQL.Format(\"select

*

from

student

where

student_name='%s'

and

student_status='Y'\;同样第二种方式通过的是下面的一条SQL语句实现的:strSQL.Format(\"select

*

from

student

where

student_name='%s'

and

student_status='Y'\。

另外“查询所有学生信息”按钮的的主要部分代码如下:strSQL.Format(\"select * from student where student_status='Y'\"); 5.5.4 教师信息查询界面设计

在查询教师信息的时候,查单个教师的信息也有两种方式来查询,一种是自己输

淮阴工学院毕业设计说明书(论文)

第 31 页 共 36 页

入要查的教师的姓名,另一种是已经连接到数据库中的的记录了,只要选择存在的教师姓名就行了。有一个“查询所有教师信息”按钮,可以用来直接查询所有教师的信息。窗口界面如下图5.13所示:

图5.13 教师信息查询界面

单个查询的第一种方式的实现主要是通过下面的一条SQL语句来完成的:strSQL.Format(\"select

*

from

teacher

where

teacher_name='%s'

and

teacher_status='Y'\;同样第二种方式通过的是下面的一条SQL语句实现的:strSQL.Format(\"select

*

from

teacher

where

teacher_name='%s'

and

teacher_status='Y'\。

另外“查询所有教师信息”按钮的的主要部分代码如下:strSQL.Format(\"select * from teacher where teacher_status='Y'\")。

6 测试

6.1 测试目的

测试是软件开发时期的最后一个阶段,也是软件质量保证必不可少的一步,软件测试包括模块(单元)测试,功能测试、系统的完整性测试、性能测试、安全性测试、数据库的一致性测试等。 测试的目的就是在软件投入生产之前,尽可能多地发现软件中的错误,通过测试使软件的错误减少,使系统的可靠性进一步提高。

6.2 测试内容

淮阴工学院毕业设计说明书(论文)

得到充分体现。

第 32 页 共 36 页

1)根据需求分析划定系统测试的功能范围,即用户需要的功能是否已经在系统中

2)分模块测试软件的功能,包括软件的界面要求、功能体现、性能要求、稳定性要求、是否达到操作便捷、灵活性要求、安全性要求;各模块之间的关系是否与需求分析中的一致等。

3)整体测试,在分块测试之后,将所有模块作为一个整体进行测试,测试整个系统的功能和性能,检验其是否满足用户的需求。

6.3 具体测试

6.3.1 功能测试

功能测试是检查需求分析报告中的功能是否完全实现,在本测试中,需求分析阶段要求的功能已经实现,未能完全实现的功能在本系统中已做了改善。其中各个部分的测试结果如下表6-1所示:

表6-1 功能测试记录表

测试内容 用户登录 登录权限测试 修改密码 用户管理 学生管理 教师管理 课程管理 成绩管理 授课管理 成绩查询 授课查询 学生信息查询 教师信息查询

功能测试描述

用户名密码正确才能登录到本系

存在问题 满足功能要求

处理结果说明

用户名密码正确,验证权限转到不

满足功能要求

同的用户页面 用户根据需要进行更改密码

密码修改没有成现已完善,实现了密

功 码的修改功能

经过代码完善,功能

现已实现

管理员能够添加、修改、删除用户 满足功能要求 管理员进行添加、修改、删除学生

满足功能要求

信息 管理员进行添加、修改、删除教师

满足功能要求

信息 管理员进行添加、修改、删除课程

信息

管理员进行添加、修改、删除成绩

信息

管理员进行添加、修改、删除授课

信息

查询学生的成绩信息 查询授课信息

查询学生信息 查询教师的信息

满足功能要求 删除成绩时出错 满足功能要求 满足功能要求 满足功能要求

通过完善代码,以及

不能直接查询所

控件的重新设计,现

有学生的信息

已实现

满足功能要求

淮阴工学院毕业设计说明书(论文)

第 33 页 共 36 页

6.3.2 性能测试

性能测试是在系统完成后,测试整个系统的数据完整性约束、一致性、正确性、灵活性、稳定性、安全性等基本性能指标,经过测试发现存在一些问题,但现在已经修改完成。测试结果如下表6-2所示:

表6-2 性能测试记录表

测试内容

性能测试描述

存在问题或指标

处理结果说明

数据完整性

多个数据库表之间的联系几个表之间的联系不通过设置主键与外键

紧密程度 是很紧密 把一些表联系起来 界面风格完全一致

多次 多次

未出现异常

基本完成功能需求 基本完成性能需求 未出现异常 未出现异常 合法用户能登录系统,并拥有相应的权限,非法用户无法登录系统

一致性

修改查询的一致性 需求的正确

正确性

流程的正确 数据库与程序运行

稳定性

同时运行其他基于数据库的程序或其他程序 系统安全性:登录权限保护、非法用户识别

安全性

管理员可修改教师和学生登录密码的信息,

管理员还可以操作基系统根据用户的权限

数据的安全性:数据备份、

本信息模块,而教师在判断用户能否修改,对

修改限制

这个模块只能修改学备份数据可进行还原 生的成绩,但学生没有

权限修改

6.4 测试结果分析

在测试过程中出现了一些问题,如SQL语句执行错误这个问最让我头痛,但测试结果总统上来讲还是比较成功,测试结果表明系统实现的要求均能达到需求分析中所涉及的要求,系统运行速度和稳定性叫好,安全性良好。

淮阴工学院毕业设计说明书(论文)

第 34 页 共 36 页

结论

经过几个月的设计和开发,淮阴工学院学生信息管理系统的基本功能都已按照需求分析得到了较好的实现。其实现的功能主要有用户登录、修改密码、用户管理、学生管理、教师管理、课程管理、授课管理、成绩管理和成绩查询、授课查询、学生信息查询、教师信息查询等。根据软件工程的设计思路,前期首先对系统进行需求分析,根据用户的不同类型列出不同的需求,对系统的模块进行设计,并使用MFC设计出比较友好的用户界面;接着设计数据库的结构,数据库设计是软件设计的底层构架之一,它直接关系到整个软件系统的协调统一;其次,利用封装好的一些类,结合数据库进行一些操作,逐步实现功能。

在淮阴工学院学生信息管理系统的开发与研究过程中,我用到了许多以前课堂上学到的知识,如:MFC、软件工程、数据库等多门课程知识,另外加上我在昆山培训的这几月的学习,使我将理论知识运用到了实际的系统开发过程中,加深了对所学理论知识的理解。此外,通过此次系统开发,还使我对面向对象的设计有了更深刻的理解。

虽然系统的基本功能都已经实现,但仍有功能可以进一步完善。我还有很多知识要去学校,这样我才会做出越来越好的系统来。

淮阴工学院毕业设计说明书(论文)

第 35 页 共 36 页

致谢

在做毕业设计的整个过程中我遇到很多困难,但在老师和同学的帮助下我顺利的完成了此次毕业设计。

此次毕业设计我收获颇丰。在此,首先我要感谢淮阴工学院计算机工程学院,

是她给我提供了一个学习的平台,让我有机会学习到很多有用的知识,这次毕业设计是学院给我走上工作岗位之前在学校的最后一次锻炼的机会,让我进一步熟练的将理论知识转化实践。其次,我要感谢我的指导老师孙成富老师,在做毕业设计的整个过程中,孙老师给了我很多帮助,起初我在外培训,孙老师就通过邮件关注着我的毕业设计的进度,不是的给我一下意见,耐心的指导着我。后来5月份回校后,孙老师定期的查看我毕业设计的情况并给我指出哪里要完善,帮我分析问题,让我对问题的理解更为透彻。孙老师认真负责的工作态度,严谨的治学精神和深厚的学术水平使我受益匪浅。

另外,还要感谢实验室的所有工作人员,正是他们的努力工作才为我创造了一个良好的设计环境;感谢淮阴工学院图书馆给我提供大量的参考资料;另外我还要感谢在这几年来叫过我的所有淮阴工学院的老师已经给予我帮助的同学,如果没有他们的教导与帮助,我的毕业设计不会像现在这样顺利的完成。

最后,我祝愿淮阴工学院越办越好!

淮阴工学院毕业设计说明书(论文)

第 36 页 共 36 页

参考文献

1 吴乃陵,况迎辉.C++程序设计.北京:高等教育出版社,2006 2 曹静编著.C++面向对象程序设计.北京:中国水利水电出版社,2001 3 王世同.Visual C++6.0编程基础.北京:清华大学出版社,1999

4 张立科.Visual C++数据库通用模块及典型系统开发.北京:人民邮电出版社,2006

5 谭浩强.C++程序设计.北京:清华大学出版社,2004

6 揣锦华著.C++程序设计.西安:西安电子科技大学出版社,2003

7 殷人昆 编著.数据结构(用面向对象方法与C++描述).北京:清华大学出版社,1999

8 于永彦,王志坚,娄渊胜编著.C++程序设计基础案例教程,北京:北京大学出版社,2009

9 郑阿奇编著.Visual C++实用教程.北京:电子工业出版社,2007 10 周学毛.新编C语言程序设计教程.西安:电子科技大学出版社,2003 11 Kenneth A.Reck编著.C和指针.北京:人民邮电出版社,2003

12 Stanley B.Lippman Josee Lajoie.编著C++ Primer.北京:人民邮电出版社,2006.3

13 Andrei Alexandrescu 编著.C++设计新思维.武汉:华中科技大学出版社,2003.3

因篇幅问题不能全部显示,请点此查看更多更全内容