毕业设计(论文)C++6.0学生信息管理系统_第1页
毕业设计(论文)C++6.0学生信息管理系统_第2页
毕业设计(论文)C++6.0学生信息管理系统_第3页
毕业设计(论文)C++6.0学生信息管理系统_第4页
毕业设计(论文)C++6.0学生信息管理系统_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目目 录录 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 需求分析.3 2.2.1 功能需求分析.4 2.2.2 性能需求分析.5 2.3 系统数据流图.6 2.3.1 顶级数据流图.6 2.3.2 系统管理员数据

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 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 学

3、生管理界面设计.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 绪论绪论 1.1 课题背景课题

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

5、功能已为人们深刻认识, 它已进入人类社会的各个领域并发挥着越来越重要的作用。 社会教育在发展,管理系统应用也越来越多,这也是现代化教育的需要。就拿 我所在的学校来说,一个很好的学生管理系统的功能还是很强大的,学生的信息、 老师的资料、课程的安排以及学校的动态,我们都能很方便的了解。对于学校可以 很好的了解学生的情况,学生能很方便的使用并查看自己的成绩,还能通过这个平 台在网上报考一些证书的考试。学生信息管理系统所起到的作用就是极大的减轻了 管理远的负担,也方便老师与学生的交流互动,更促进了学生的学习。 源于这个原因,我们可以看出学生信息管理系统作为计算机应用的一部分,它 具有手工管理无法比拟的

6、优点:检索迅速、查找方便、易于操作、可靠性高、存储 信息量大、成本低等。这些优点能够极大地提高学生信息管理的效率。也是学校的 科学化、正规化管理、与世界接轨的重要条件。用计算机制作的学生信息管理系统 还可以通过普及的网络更好的带来了便利。因此,使用这样一套管理系统是很有必 要的。 1.2 课题意义课题意义 学生信息管理系统有着自己的巨大优势:解决结构化问题;以高速度低成本完 成数据的处理业务,追求系统处理问题的效率;实现一个相对稳定的、协调的工作 环境;应用科学的、客观的处理方法,符合实际情况。这对于任何一所高校都起到 极大的作用,日趋完善的信息管理系统带来的科学化合理化的管理方式无疑是重中

7、之重。 学生的相关信息作为一所高校的一个重要组成部分,学生信息管理系统在学校 信息系统中占有重要的地位。它的数据量大,信息共享度高,而且对学生信息的查 询的实时性要求高。该系统着重围绕学生,随着高等教育的普及度的提高,大量学 子涌入大学,庞大的信息量也困扰着管理者,作为现代化的高校的学生管理,必须 以人为本,从软、硬件上,上一个新的台阶,才可能提高管理效率。 1.3 开发平台简介开发平台简介 1.3.1 硬件环境 学生信息管理系统的特点是数据存储量大,查询检索,输入输出频繁,而且最 重要的是安全性要高。硬件配置要求如下: 1)处理器要求:pentium iv 1.7ghz 或更高; 2)内存要

8、求: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 大部分 a

9、pi 函数封装起来的一个浩瀚的类库;利用 mfc 编写程序的本质就 是选择类库中合适的类,并调用其下相对于的成员函数来完成某个功能。所以, mfc 是可移植的。 1.4.2 c+介绍 c+是一种高级编程语言,它继承了 c 语言所以特性,同时也新增了很多新的 功能,如类,容器,模板等等。众所周知,c 语言是面向过程的开发员,而我们的 c+由于引进了新的特性,所以 c+是面向对象的高级编程语言。最值得一提的是指 针,如果一个程序员 c+掌握的很好,那他的指针的使用一定十分熟练,可以这么 说指针是 c+的核心部分。也正是因为指针的存在,c+一直沿用至今,而且还将继 续作为一种重要的编程语言而存在着。

10、 2 系统分析系统分析 2.1 可行性分析可行性分析 可行性分析作为投资决策前必不可少的关键环节,针对系统的开发是否具备必 要性和可能性,对系统的开发从经济、社会、技术的方面进行分析、论证和评价, 选定最佳方案,依此就是否应该投资开发该系统以及如何开发,或就此终止开发还 是继续投资开发等给出结论性意见,为投资决策提供科学依据,并作为进一步开展 工作的基础。 2.1.1 可行性分析的目的 可行性分析的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。 而本系统为学生信息管理系统着重用于管理信息,主要涉及人员为管理员,教师, 学生,且相应的数据的出并不是很难。所以,容易采用数据库来管理。

11、2.1.2 经济可行性分析 每所大学都有大量学子,随之而来就要管理庞大的学生信息,如果有这样一套 学生信息管理系统,便会带来极大的益处,它不仅节约了管理的成本,同时也极大 的提高了信息管理的效率。而本学生信息管理系统作为一个毕业设计,谈不上需要 一些开发经费,因而是可行的。 2.1.3 社会可行性分析 社会可行性有时也称为操作可行性,主要是论证新系统在企业或单位开发和运 行的可能性已经运行后可能带来的影响,即组织内外是否具备接收和使用新系统的 条件。目前的 it 技术在飞速发展,各类管理软件数不胜数,就本系统学生信息管 理系统而言,它能够更好的管理大量的学生信息,就这点而言,他可以拓宽计算机

12、在市场环境下的生存空间,另外这样一类软件可以稍加修改也能作为企业的管理系 统。 2.1.4 技术可行性分析 本系统在系统结构方面采用 mfc 与 access 数据库技术,很好的出来窗口操 作、后台管理和和数据库三者之间的有效连接;在程序设计方面,基于 microsoft c+的基本类库,设计相当灵活,并且效率较高,也减少了大量在建立 windows 程 序是必须编写的代码;在成本方面,是可以忽略不计的,并且日后的维护也很方便, 它的使用会减少学校管理者的工作量,提高了管理效率,同时方便了学生与教师。 2.2 需求分析需求分析 学生信息管理系统的主要目的是利用计算机软件实现对学生的管理,是的学

13、校 的管理更加容易,提高工作效率,降低管理成本。 学生信息管理系统分为一些基本信息的管理和信息的查询两部分,学生可以查 看关于自己的一些信息以及了解老师的介绍。而老师对学生的的信息可以管理一些, 如学生的成绩,老师可以对其录入,修改等操作。对于整个系统而言,为了便于对 各个数据进行维护,还要增加管理员的权限,方便对老师和学生的信息进行维护。 另外从安全角度考虑,有必要针对不同的用户对数据的访问与编辑进行控制。 其中学生只能查询,而不能修改信息。同样教师也是如此,但教师能够对学生的成 绩进行录入,也可修改。管理员可以对整个系统进行维护,需要管理员进行维护可 能因为 3 中情况:一种是用户密码忘记

14、了,这时需要管理员对密码进行重置;另一 种情况是某些数据由于人为的原因造成错误,这时需要管理员强制进行修改;还有 一种情况是对信息的管理。 2.2.1 功能需求分析 在本系统中,有 3 中用户角色,分别是学生、教师和系统管理员。只有被授权 的用户才可以使用本系统。根据用户权限来限定用户所能进行的操作。 学生所具有的操作权限:学生可以查看课程信息、成绩、学生信息和教师信息, 他只能进行查询操作,不能进行其他的操作。在 3 中用户角色中,学生的权限是最 小的。 教师所具有的操作权限:教师除了能够进行查询操作,还能对学生的成绩的添 加、修改和删除进行操作。 系统管理员的操作权限:系统管理员具有最高的

15、权限,可以对所有数据进行修 改或删除。对用户信息的管理,包括密码重置、用户的增加与删除。对基本数据的 管理,包括对学生管理、教师管理、课程管理、授课管理和成绩管理进行操作。 功能需求具体分析如下: 1)系统登录:用户输入用户名和密码,系统查询数据库中的信息对密码进行验 证。如果密码不正确将不能进入系统;如果密码正确,系统会自动根据该用户所具 有的权限进入不同的界面。这样一个登录窗口提高来系统的安全性。 2)系统管理: 修改密码:对于任何用户,包括学生、教师和系统管理员都可以对自己的密码 进行重新设置。 用户管理:只针对管理员才能进行操作,管理员可以查看用户状态,当教师或 学生忘记密码时能够找回

16、其密码,并且能添加、删除用户,修改用户权限。 3)学生管理:能够对学生的一些基本信息进行添加、修改、删除等操作。学生 的基本信息包括学生编号、姓名、性别、年龄、电话号码和地址等。 4)教师管理:能够对教师的一些基本信息进行添加、修改、删除等操作。教师 的基本信息包括教师编号、教师姓名、性别、年龄、职称等。 5)课程管理:能够对课程的一些基本信息进行添加、修改、删除等操作。课程 的基本信息包括课程编号、课程名称、该门课的学时及学分。 6)授课管理:能够对教师授课的情况进行管理。包括添加、修改和删除等操作。 当教师准备教授课程时要记录到数据库中进行管理,方便日后对课程、教师等有关 信息的查询。 7

17、)成绩管理:能够对成绩的情况进行管理。当一门课的成绩结果公布时,要相 应的记录到数据库中,这样,学生和教师才能够进行成绩的查询。 8)成绩查询:可以按照学生查询,查询某个学生参加所有课程的成绩,并且可 以进一步查询该学生的成绩情况。 9)课程查询:可以查询某个教师所教授的所有课程情况,也可以查询某门课都 有哪些教师教授过。 10)学生信息查询:可以查询某个学生的相关基本信息情况。 11)教师信息查询:可以查询某个教师的相关的基本信息情况。 2.2.2 性能需求分析 本系统可以实现许多性能特性,如:稳定性、安全性、实用性、实时性、可靠 性等等。 1)稳定性:系统应具备长期持续工作的能力。 2)安

18、全性:利用细分的权限管理,拒绝非法用户进入系统和合法用户的越权操 作,避免系统遭到恶意破坏,防止系统数据被窃取和篡改,保护学生信息的安全。 此外,还有良好的用户身份认证体制和灵活的密码更改功能。 3)实用性:用户界面做到直观、友好;用户进入系统;本系统是对学生信息进 行详细的调查之后实现的,功能模块一目了然,具有很强的实用性。 4)实时性:对学生信息的管理的操作在各个模块中的实现达到了及时更改及时 见效,使处理操作更为高效。 5)可靠性:采用良好的操作系统和数据库,确保数据的一致性和完整性,并使 系统免受病毒感染。 2.3 系统数据流图系统数据流图 数据流图(data flow diagram

19、):简称 dfd,它从数据传递和加工角度,以图 形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结 构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。 2.3.1 顶级数据流图 顶层数据流图主要描述学生信息管理系统的用户系统管理员、学生、教师 登录该系统时的总体数据流程,具体如图 2.1 顶级数据流图: 记录 数据 信息存 储记录 处理 信息 密码 用户登录身份认证处理 图 2.1 顶级数据流图 2.3.2 系统管理员数据流图 系统管理员数据流图主要是管理员对整个系统进行的一些操作。系统管理员的 权限是最大的,在整个过程中起到举足轻重的作用。在管理员进行一系

20、列的操作后 产生的数据流程,如对用户的管理操作,不论是添加,还是删除用户都会改变用户 人员的信息;在基本信息管理方面,进行学生管理会改变学生的信息,进行教师管 理会改变教师的信息,进行课程管理会改变课程的信息,进行成绩管理会改变学生 的成绩信息,进行授课管理会改变授课的信息;另外,管理员还可以查询信息,其 中包括学生的基本信息、教师的基本信息、学生的成绩信息已经授课信息。其具体 的数据流如图 2.2 系统管理员数据流图所示: 反馈完成 处理 处理 信息 管理 操作 查询 信息 更改 密码 反馈信息 密码 1 身份认证 用户密码 2 口令修改 管理 员登 录 用户交互界面 3 操作 处理 5 查

21、询 信息 处理的信息 4 记录 处理 后的 信息 进行管理后最新的信息 图 2.2 系统管理员数据流图 2.3.3 学生数据流图 学生在登录系统后可以进行相关的查询操作,具体如图 2.3 学生数据流图所示: 查询 信息 查询 信息 反馈 查询 信息 反馈 查询 信息 更改 密码 反馈信息 密码 1 身份认证 用户密码 2 口令修改 3 成绩查询 成绩信息 学生 登录 用户交互界面 反馈 4 课程查询 课程信息 6 教师信息查询 教师信息 反馈 5 学生信息查询 学生信息 图 2.3 学生数据流图 2.3.4 教师数据流图 教师在登录系统后出来可以进行查询操作外,还能够对学生的成绩进行处理, 其

22、具体的数据流如图 2.4 教师数据流图所示: 完成 处理 处理 信息 查询 信息 查询 信息 反馈 查询 信息 反馈 查询 信息 更改 密码 反馈信息 密码 1 身份认证 用户密码 2 口令修改 8 教师信息查询 教师信息 教师 登录 用户交互界面 反馈 7 课程查询 课程信息 5 成绩查 询 成绩信息 反馈 6 学生信息查询 学生信息 管理操作 3 成绩 管理 处理的信息 4 处理 后的 信息 图 2.4 教师数据流图 3 概要设计概要设计 学生信息管理系统是为了方便管理学生信息而设计的,针对不同的用户设定不 一样的访问权限,管理员的权限最大,教师的权限范围有所缩小,最后学生的权限 最小,他

23、只能查询,不能修改。其中管理员可以设置和管理与学生相关的一些信息, 如学生的基本信息包括学号,姓名,年龄,电话,家庭地址等等,另外还有学生课 程的管理,教师的管理,授课的管理和学生成绩的管理。另一方面,这些信息可被 学生和教师查询到。 3.1 系统功能模块图系统功能模块图 整个学生信息管理系统分为 4 个模块来设计:其中系统登录为登录模块;修改 密码和用户管理为系统管理模块;学生管理、教师管理、课程管理、授课管理和成 绩管理为基本信息管理模块;最后的成绩查询、授课查询,学生信息查询和教师信 息查询 为信息查询模块。功能模块图如图 3.1 系统功能模块图所示: 用户登录模块 信息查询模块基本信息

24、管理模块系统管理模块 课 程 管 理 授 课 管 理 用 户 管 理 学 生 管 理 教 师 管 理 修 改 密 码 成 绩 管 理 授 课 查 询 成 绩 查 询 学生 信息 查询 教师 信息 查询 图 3.1 系统功能模块图 3.2 各模块功能简介各模块功能简介 3.2.1 用户登录模块 用户登录模块,这里有三种类型的用户:管理员、学生用户已经教师用户。通 过权限设置不同的用户的使用的系统资源是有所区别的,在登录时,通验证用户是 何种权限从而决定进入系统后其所能进行何种操作。用户登录模块如图 3.2 所示: 用户登录模块 管理 员 学生教师 图 3.2 用户登录模块 3.2.2 系统管理模

25、块 系统管理模块又分为修改密码与用户管理两部分,其中无论哪种用户都能够对 自己的密码进行修改从而定期的修改密码很方便对自己账户的保护,但对用户管理 这部分只用管理员有权限进行操作,管理员可添加和删除用户,也能对遗忘密码的 用户进行密码重置。系统管理模块如图 3.3 所示: 用 户 管 理 修 改 密 码 系统管理模块 图 3.3 系统管理模块 3.2.3 基本信息管理模块 基本信息管理模块又分为学生管理、教师管理、课程管理、授课管理和成绩管 理,在这一模块,只有管理员对所有的部分有权限,教师只能够进行成绩管理操作, 而学生什么权限也没有。基本信息管理模块如图 3.4 所示: 基本信息管理模块

26、学 生 管 理 教 师 管 理 课 程 管 理 授 课 管 理 成 绩 管 理 图 3.4 基本信息管理模块 3.2.4 信息查询模块 信息查询模块又分为成绩查询、授课查询、学生信息查询以及教师信息查询四 项,这些操作是所有用户都能进行的。这一模块对于学生这类用户而言是其主要的 操作范围,学生可以查看自己的情况包括自己的成绩,也可以了解其他同学的信息 和一些教师的基本信息。信息查询模块如图 3.5 所示: 信息查询模块 成 绩 查 询 授 课 查 询 学生 信息 查询 教师 信息 查询 图 3.5 信息查询模块 4 数据库设计数据库设计 数据库是长期存储在计算机内、有组织的、同样管理的相关数据

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

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

29、实例。实体有描述其特征的属性,一个或多个属性表征一个实体。 联系是指实体之间的关联,e-r 模型清楚地定义了联系,每个联系都有名字。 联系的元是参加联系的实体的数目,大多数联系是二元的,二元联系有三种类型: 一对一联系、一对多联系和多对多联系。在 e-r 图中,实体用长方形表示,联系用 菱形表示,属性用椭圆表示。e-r 建模的中心思想是通过实体和它们之间的联系合 理地体现一个组织的数据模型。 在之前我对所设计的学生信息管理系统进行了需求分析,根据分析的结果,可 以得到的实体有学生实体、教师实体和课程实体,另外还有两个关系。系统 e-r 图 如图 4.1 所示: n m n m 学时 课程名称

30、学分 课程编号 课程学生 学生姓名学生编号 地址电话 性别 年龄 教师 职称 教师编号 教师姓名 教师性别 教师年龄 授课 成绩 授课编号 分数 图 4.1 系统 e-r 图 学生实体属性图如图 4.2 所示: 学生 学生编号 学生姓名 性别 年龄 地址 电话 图 4.2 学生实体属性图 教师实体属性图如图 4.3 所示: 教师 教师编号 教师姓名 教师 性别 教师 年龄 职称 图 4.3 教师实体属性图 课程实体属性图如图 4.4 所示: 课程 课程编号 课程名称 学时 学分 图 4.4 课程实体属性图 comment 微微微微1: 到底是 4-1 还是 5-1 4.2 逻辑设计逻辑设计 按

31、照 e-r 图转化成为关系模型的原则,将上图转化成为关系模型(主键用下划 线标注,外键用波浪线标注): 1)实体关系模型 学生(学生编号,学生姓名,性别,年龄,地址,电话) 教师(教师编号,教师姓名,教师性别,教师年龄,职称) 课程(课程编号,课程名称,学时,学分) 2)联系关系模型 授课(授课编号,课程编号,教师编号) 成绩(成绩编号,学生编号,课程编号) 4.3 物理设计物理设计 数据库设计作为本系统设计中必不可少的一部分。从上面的功能分析不难看出 本学生信息管理系统需要建立以下几个数据表:用户信息表 userinfo、学生表 student、教师表 teacher、课程表 course、

32、授课表 teach 和成绩表。 用户信息表保存了所以用户的用户名、密码、用户权限和是否在使用状态等基 本信息,具体表设计如下表 4-1 所示: 表 5-1 用户信息表 字段名称 字段含义字段类型字段长度备注 user_id用户编号自动编号 主键,不允许为 空 user_name用户名称文本50主索引,非空 user_password用户密码文本50非空 user_level用户权限文本1非空 active_status使用状态文本2非空 学生表保存了所以学生用户的学生编号、学生姓名、学生性别、学生年龄、学 生电话、学生地址和是否在使用状态等基本信息,具体表设计如下表 4-2 所示: 表 4-2

33、 学生表 字段名称 字段含义字段类型字段长度备注 student_id学生记录号自动编号 主键,不允许为 空 student_no学生编号文本10主索引,非空 student_name学生姓名文本10非空 student_sex学生性别文本2非空 student_age学生年龄数字2非空 student_phone学生电话文本20非空 student_address地址文本100非空 student_status使用状态文本2非空 教师表保存了所以教师用户的教师编号、教师姓名、教师性别、教师年龄、教 师职称和是否在使用状态等基本信息,具体表设计如下表 4-3 所示: 表 4-3 教师表 字段名

34、称 字段含义字段类型字段长度备注 teacher_id教师记录号自动编号 主键,不允许为 空 teacher_no教师编号文本6主索引,非空 teacher_name教师姓名文本10非空 teacher_sex教师性别文本2非空 teacher_age教师年龄数字2非空 teacher_level教师职称文本6非空 teacher_status使用状态文本2非空 课程表保存了所有课程的课程编号、课程名称、课程学时、课程学分和是否在 使用状态等基本信息,具体表设计如下表 4-4 所示: 表 4-4 课程表 字段名称 字段含义字段类型字段长度备注 course_id课程记录号自动编号 主键,不允许

35、为 空 course_no课程编号文本6主索引,非空 course_name课程名称文本20非空 course_hour课程学时数字2非空 course_credit课程学分数字2非空 course_status使用状态文本2非空 授课表保存了所有授课的的课程编号、教师编号和是否在使用状态等基本信息, 具体表设计如下表 4-5 所示: 表 4-5 授课表 teach_id授课记录号自动编号主键,不允许为 空 course_no课程编号文本6外键,非空 teacher_no教师编号文本6外键,非空 active_status成绩文本2非空 成绩表保存了所有学生的成绩的学生编号、课程编号、成绩和是

36、否在使用状态 等基本信息,具体表设计如下表 4-6 所示: 表 4-6 成绩表 字段名称 字段含义字段类型字段长度备注 score_id成绩记录号自动编号 主键,不允许为 空 student_no学生编号文本10外键,非空 course_no课程编号文本6外键,非空 score成绩数字2非空 active_status使用状态文本2非空 5 详细设计详细设计 5.1 数据库的连接与使用数据库的连接与使用 本系统采用 odbc 数据库,odbc 提供了应用程序接口,使得任何一个数据库 都可以通过 odbc 驱动器与指定的 dbms 相联,从而可以通过调用 odbc 驱动管 理器中相应的驱动程序达

37、到管理数据库的目的。odbc 作为 windows 开放式服务体 系结构的主要组成部分,它一直沿用至今。 在 odbc 数据管理器中创建数据源: 1) “开始”“控制面板”“管理工具”“数据源(odbc) ”命令,就打开了 odbc 数据源管理器对话框,选择“用户 dsn”选项卡,创建数据源。 2) “添加”按钮进入创建新数据源窗口,选择“microsoft access driver”。 3) “完成”进入“odbc microsoft access 安装”窗口,填写数据源名称为 “student_information”,并选择自己所建立的数据库,点击“确定”就完成了。 在程序设计中使用数

38、据库: 1)一种是直接继承自 crecordset 类,使用它的记录对象。在设计中部分代码如 下: /查询操作 strsql.format(user_id=%s,s);/定义查询条件,相当于 where m_userset.open(); m_userset.m_strfilter=strsql;/使用查询条件 m_userset.requery();/执行查询 /修改操作 m_userset.edit();/游标指定到该行所在的记录上,执行修改 /添加操作 m_userset.open();/打开记录集 m_userset.addnew();/添加新记录 2)另一种方式是直接使用 sql 语

39、句对数据进行操作,在设计中有这样一段代 码: /查出该程序的课程号 strsql.format(select * from course where course_status=y and course_name=%s,course); m_recordset.open(crecordset:forwardonly,strsql); m_recordset.getfieldvalue(course_no,course_no); if(this-id=0)/id 为 0,表示添加记录 strsql.format(insert into teach(teacher_no,course_no,act

40、ive_status) values(%s,%s,y),teacher_no,course_no); m_database.executesql(strsql); else if(id!=)/为修改记录 strsql.format(update teach set teacher_no=%s,course_no=%s where teach_id=%s,teacher_no,course_no,id); m_database.executesql(strsql); 5.2 登录模块设计登录模块设计 用户登录模块实现对用户合法性的检查,读取相应用户权限,同时在登录后根 据用户权限显示不同的功能界

41、面。用户登录界面的资源文件为“idd_login” ,对话 框后台处理的累为“clogindlg” ,该类继承自“cdialog” 。对于修改了权限的用户, 只有在下次登录的时候,才会起作用。 图 5.1 系统登录界面 其中“确定”按钮的事件响应代码如下: void clogindlg:onok() cstring username,password;/定义两个字符串变量 m_strusername.getwindowtext(username);/将文本框中的值赋给 username m_strpassword.getwindowtext(password);/将文本框中的值赋给帕 pass

42、word if(!m_database.isopen()/如果数据没有打开,则打开数据库 if(m_database.open(_t(student_information)/如果正确打开数据库 m_recordset.m_pdatabase=/将 m_database 对象赋给 m_pdatabase cstring strsql; strsql.format(select * from userinfo where user_name=%s and user_password=%s and active_status=y,username,password); m_recordset.op

43、en(crecordset:forwardonly,strsql);/打开记录集 if(m_recordset.getrecordcount()=0)/如果找不到记录 messagebox(密码错误,请重新输入,密码错误 ,mb_ok|mb_iconwarning);/提示密码错误 m_strpassword.setwindowtext();/清空密码文本框 m_strpassword.setfocus();/设置用户名文本框为当前的焦点 else/如果找到记录 m_recordset.getfieldvalue(user_level,m_userlevel); /则将数据库中的权限值赋给 m

44、_userlevel cdialog:onok();/进入到主窗口 m_recordset.close();/关闭记录集 m_database.close();/关闭数据库 else/如果没有正确打开数据库 messagebox(不能打开数据库); 5.3 系统管理模块系统管理模块 系统管理分为普通用户(包括教师用户和学生用户)和管理员用户。密码修改 主要是为了安全方面的考虑,应定期更改登录密码。用户管理模块主要包括用户的 添加、修改和删除已经权限的设置等功能。用户管理窗口资源为“idd_user”,对话 框后台处理的类为“cuserdlg”,该类继承自“cdialog”类。数据库后台处理的类

45、为 “cuserset”类,该类继承自“crecordset”类。 5.3.1 修改密码界面设计 用户可以根据自己的需要定期的更改密码,密码修改的界面如下图 5.2 所示: 图 5.2 修改密码界面 修改密码是,实现用户名不能为空,再有就是输入的用户名和密码要存在才能 修改,另外最好一步就是在确认输入密码要与新密码一致,自由这样才能成功修改 密码。下面是具体实现代码的主要部分: if(newpassword.isempty()|confirmpassword.isempty()/判断新密码是否为空 messagebox(密码不为空); else if(newpassword!=confirmp

46、assword)/判断两次输入的新密码是否相同 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_pdatab

47、ase cstring strsql; strsql.format(select * from userinfo where user_name=%s and user_password=%s and active_status=y,username,password); m_recordset.open(crecordset:forwardonly,strsql); if(m_recordset.getrecordcount()=0)/如果找不到记录 messagebox(密码错误,请重新输入,密码错误 ,mb_ok|mb_iconwarning);/提示密码错误 ppassword-set

48、windowtext(); pnew-setwindowtext(); pconfirm-setwindowtext(); ppassword-setfocus(); else/如果找到记录/更新密码的 sql 命令 strsql.format(update userinfo set user_password=%s where user_name=%s,newpassword,username); m_database.executesql(strsql);/执行 sql messagebox(修改密码成功!); cdialog:onok(); m_recordset.close(); m_

49、database.close(); else messagebox(不能打开数据库); 5.3.2 用户管理界面设计 在这一个模块只有管理员有权限,他能够添加、删除用户和修改用户的信息。 我用 0、1、2 表示 3 中权限从而界定不同级别的用户。用户管理的界面设计如下图 5.3 所示: 图 5.3 用户管理界面 无论是添加用户,还是修改用户的账号和权限,都是要更新数据库,在这里值 都是从 2 个文本框和一个下来列表传入的。其中最重要的是用户的删除,删除用户 功能按钮的核心代码如下: if(messagebox(确定要删除该记录?,删除询问 ,mb_okcancel|mb_iconquestio

50、n)=idok) strsql.format(user_id=%s,s); m_userset.open(); m_userset.m_strfilter=strsql; m_userset.requery(); m_userset.delete(); m_userset.close(); refreshlist(); 5.4 基本信息管理模块基本信息管理模块 基本信息管理模块主要包括对基本信息的添加、修改和删除操作,这些基本信 息包括学生信息、教师信息、课程信息、授课信息和成绩信息。 其中,学生信息、教师信息、课程信息对单个表进行添加、修改和删除操作, 所以分别使用从“crecordset”

51、类中继承的“cstudentset”、 “cteacherset”、 “ccourseset” 作为后台数据库的类,其相对应的窗口资源为“idd_student”、 “idd_teacher”、 “idd_course”,对话框处理类为“cstudentdlg”、 “cteacherdlg”、 “ccoursedlg”。 由于授课信息和成绩信息涉及到多个表的查询,所以采用直接执行 sql 语句的 方式来对数据库进行操作。授课信息所对应的窗口资源为“idd_teach”,对话框处 理类为“cteachdlg”,成绩信息所对应的窗口资源为“idd_score”,对话框处理类 为“cscoredlg

52、”。 5.4.1 学生管理界面设计 学生管理用来管理学生的信息,界面设计如下图 5.4 所示。我们可以添加学生信 息,这项功能是通过获取控件的值然后执行 m_studentset.open()和 m_studentset.addnew()语句就完成了功能。而修改信息,则是选中一行记录,那么 这行记录就显示在相应的控件中,就可以进行修改。另外删除一个学生的信息也很 容易,删除的主要代码如下: strsql.format(student_id=%s,s);/定义查询条件 m_studentset.m_strfilter=strsql;/设置查询条件 m_studentset.requery();/

53、执行查询 m_studentset.edit();/游标指定到该行所在的记录上,执行修改 图 5.4 学生管理界面 5.4.2 教师管理界面设计 教师管理用来管理教师的基本信息,同样也可以进行添加、修改和删除操作。 界面设计如下图 5.5 所示: 图 5.5 教师管理界面 5.4.3 课程管理界面设计 课程管理模块用来管理课程的信息包括课程号、课程名、学时和学分等,其界 面设计如下图 5.6 所示: 图 5.6 课程管理界面 5.4.4 授课管理界面设计 授课管理模块管理着哪位教师教什么课这类信息,它具有添加、修改和删除等 功能很好的实现了对授课的管理。在设计中,授课涉及多个表的查询,因而较为

54、复 杂点,不过界面还是比较简单明了。授课管理界面如下图 5.6 所示: 图 5.7 授课管理界面 其中授课管理模块主要实现代码如下: cstring course,teacher,course_no,teacher_no; m_cteacher.getwindowtext(teacher); m_ccourse.getwindowtext(course); cstring strsql; /查出该教师的编号 strsql.format(select * from teacher where teacher_status=y and teacher_name=%s,teacher); creco

55、rdset m_recordset= m_recordset.open(crecordset:forwardonly,strsql); m_recordset.getfieldvalue(teacher_no,teacher_no); m_recordset.close(); /查出该程序的课程号 strsql.format(select * from course where course_status=y and course_name=%s,course); m_recordset.open(crecordset:forwardonly,strsql); m_recordset.getf

56、ieldvalue(course_no,course_no); if(this-id=0)/id 为 0,表示添加记录 strsql.format(insert into teach(teacher_no,course_no,active_status) values(%s,%s,y),teacher_no,course_no); m_database.executesql(strsql); else if(id!=)/为修改记录 strsql.format(update teach set teacher_no=%s,course_no=%s where teach_id=%s,teache

57、r_no,course_no,id); m_database.executesql(strsql); id=; refreshlist(); resetbutton(); 5.4.5 成绩管理界面设计 在成绩管理这个模块中,添加和修改两个按钮公用一个窗口资源,在点击这两 个按钮都会跳出那个窗口,不过通过一个标识来识别两个不同的操作。下图 5.6 为成 绩管理界面: 图 5.8 成绩管理界面 实现添加和修改成绩功能的窗口如下图 5.9 所示: 图 5.9 成绩处理窗口 其中实现添加和修改的主要部分代码如下: if(this-id=0)/id 为 0,则为添加记录 strsql.format(in

58、sert into score(student_no,course_no,score,active_status) values(%s,%s,%s,y),student_no,course_no,score); m_database.executesql(strsql); else/否则为修改记录 strsql.format(update score set student_no=%s,course_no=%s,score=%s where score_id=%s,student_no,course_no,score,id); m_database.executesql(strsql); 5.

59、5 信息查询模块信息查询模块 信息查询模块包括成绩查询、授课查询、学生信息查询和教师信息查询,用户 可以通过输入查询条件来进行查询。由于前两模块涉及到 3 个表的连接查询,所以 没有使用 crecordset 记录集对象,而是直接利用数据库查询语句来对数据库进行操 作。 成绩查询所对应的窗口资源为“idd_query_score”,对话框处理类为 “cqueryscoredlg”;授课查询所对应的窗口资源为“idd_query_teach”,对话框 处理类为“cqueryteachdlg”;学生信息查询所对应的窗口资源为 “idd_query_student”,对话框处理类为“cqueryst

60、udentdlg”;教师信息查询所 对应的窗口资源为“idd_query_teacher”,对话框处理类为“cqueryteacherdlg”。 5.5.1 成绩查询界面设计 成绩查询的方式有两种:一种是按学生查询,另一种是按课程查询,通过单选 框来指定按哪一种方式查询成绩。具体的窗口设计如下图 5.10 所示: 图 5.10 成绩查询界面 如果按照学生查询,则选择第一个单选框,并在文本框中输入想要查的学生的 姓名,最后单击“查询”按钮后就会在左边的列表中看到信息。具体的实现的部分 代码如下: cstring strsql; strsql.format(select * from score,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论