资源描述
1学生信息管理系统学生信息管理系统摘摘 要要目前,学校工作繁杂、资料重多,虽然各类管理信息系统已进入中小学,但还未普及,因此,开发一套适和大众的、兼容性好的系统是很有必要的。此论文介绍了学生信息管理系统的开发整个过程,重点介绍了学生信息管理系统的实现过程,包括需求分析,功能设计,数据库设计,系统实现,系统测试和调试等。在开发方法上本系统利用了软件工程化的思想和方法,总体上采用结构化生命周期开发方法,具体模块实施采用了原型法和面向对象系统开发方法。并采用 VisualS2008 作为开发工具,SQL Server 2005 作为后台数据库。本学生信息管理系统包括学生信息管理,教师信息管理,账号信息管理,班级信息管理,课程信息管理,成绩信息管理六大模块。本系统的用户界面十分简洁,实用,系统编制过程中考虑了计算机的优越性,对于不是计算机专业的人员来说,也可以很方便的进入系统和使用本系统提供的功能。关键字:学生信息管理系统 ;生命周期 ;软件工程 ;原型法2AbstractNowdays,the universities work are miscellaneous,especially inprivate ones.Its important to put the teachersmanagement on the table.Up to now,mamage ment has come in to elementary and secondary school but not popularized.so its very necessary to develop a common,compatibleone.This paper introduces the student information management system for the development of the whole process,The point introduces the student the result management system carries out the process;include the need analysis,system investigate,function design,the database design,the system carry out,system test and adjust to try etc.In the development of methods on the use of the software engineering system of thinking and methods used on the whole structure of the life cycle of development methods, the use of specific modules of the prototype system development and object-oriented approach. Visual S2008 and used as a development tool, SQL Server 2005 as a background database.This system includes six following modules:student information management,teacher information management,account number information management,class information management ,course information management and score information management.The customer interface of this system is simple and direct and practical,considering the superiority of the calculator well in the system establishment process,for is not a professional personnel of calculator to say,can only enter the system and usages this the function that system provide very conveniently.Key word:student information management system;the life-cycle;software engineering;proto1目目 录录1 1 绪论绪论.1 11.1 背景 .11.21.2 系统开发目标与意义系统开发目标与意义.1 11.2.1 系统开发目标 .11.2.2 意义 .22 2 需求分析需求分析.3 32.1 系统需求 .32.2 可行性分析 .32.3 程序流程图 .42.4 系统功能介绍 .42.4.1 学生信息管理模块 .52.4.2 教师信息管理模块 .52.4.3 班级管理模块 .62.4.4 课程管理模块 .72.4.5 成绩管理模块 .72.4.6 账号管理模块 .82.5 UML 对系统建模.92.6 运行环境规定 .112.6.1 设备 .112.6.2 支持软件 .113 3 概要设计概要设计.12123.1 C#.NET技术.123.2 开发工具的选择 .123.3 数据库的选择 .124 4 详细设计详细设计.14144.1 功能类设计 .144.1.1 用户登入功能类 .144.1.2 用户管理功能类 .144.1.3 学生信息管理功能类 .154.1.4 教师信息管理功能类 .164.1.5 班级管理功能类 .174.1.6 成绩管理功能类 .184.1.7 课程信息管理功能类 .1924.2 数据库关系图 .204.3 系统 E-R 图 .214.4 查询模块流程图 .214.5 数据库设计 .224.5.1 用户管理模块 .224.5.2 学生信息管理模块 .224.5.3 教师信息管理模块 .224.5.4 班级管理模块 .234.5.5 成绩管理模块 .234.5.6 课程信息管理模块 .234.5.7 班级课程 .244.5.8 教师班级 .244.5.9 教师课程 .245 5 系统测试系统测试.25255.1 界面测试 .255.2 功能测试 .255.3 系统功能主要截图 .265.3.1 主要界面 .265.4 主要代码 .285.4.1 登陆界面部分代码 .285.4.2 学生管理部分代码 .316 6 结束语结束语.3838参考文献参考文献.3939致谢致谢.404011 1 绪论绪论1.11.1 背景背景随着计算机技术的发展,尤其是计算机网络技术与数据库技术的发展,人们的生活与工作方式发生了很大的改观。网络技术的应用使计算机之间通信、信息共享成为可能,数据库技术的应用则为人们提供了数据存储、信息检索、信息分析等功能,从而使工作更高效。数据库始于 20 世纪 60 年代,经过 40 多年的发展,现在已经形成了理论体系,成为计算机软件的一个重要分支。数据库技术体现了当代先进的数据管理方法,计算机的应用真正渗透到国民经济各个部门,在数据处理领域发挥着越来越大的作用。而互联网技术的出现,更是进一步丰富的人类生活,数字化生存已经一步步走进我们的生活与工作之中。互联网技术与数据库技术的结合在人类生活中的应用带来了巨大的影响。产业信息化,管理现代化,科学化已经成为行业发展的重要课题,这不仅是提高企业自身竞争力,甚至是国家提高综合国力,走向国民富强的重要手段之一。在我国,教育是一个影响着国富民强的重要行业之一,随着改革开放和市场经济的发展,根据中国特有的国情发展,教育得到了国家的大力扶持与社会各界的高度重视,从而使教育业面向规范性与现代化的方向高速发展,但是同发达国家相比,我国的教育行业的信息技术的应用程度相对还很低,只有在大城市中发展较早、规模较大的院校中才使用计算机进行大规模操作,从各个方面提高工作效率,而一些新兴的、规模较小的教育机构还没有全部具备这种功能。因此可见,随着我国教育的迅速发展,信息技术在其上的应用会更加地广泛和深入。1.21.2 系统开发目标与意义系统开发目标与意义1.2.11.2.1 系统开发目标系统开发目标本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标:2(1)系统应具有实用性、可靠性和适用性,同时注意到先进性。(2)对各个数据库进行动态管理,防止混乱。(3)能够按照用户选择的不同的条件进行简单查询和复合查询。(4)注意数据的安全性,具有数据备份和恢复的功能。(5)方便用户的操作,尽量减少用户的操作。1.2.21.2.2 意义意义在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。32 2 需求分析需求分析2.12.1 系统需求系统需求通过调查,要求系统需要有以下功能:(1)要求有良好的人机界面;(2)系统的使用对象多,要求有较好的权限管理; (3)原始数据修改简单方便,支持多条件修改(4)方便的数据查询,支持多条件查询;(5)在相应的权限下,删除数据方便简单,数据稳定性好;(6)尽量减少人工干预.2.22.2 可行性分析可行性分析本系统为一个小型的中小学学生信息管理系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。本系统的开发利用 Microsoft SQL Server2005 作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。使用 Visual S 作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供保障,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。42.32.3 程序流程图程序流程图 图 2-1 程序流程图2.42.4 系统功能介绍系统功能介绍本系统从功能上划分可分为以下几大模块:学生信息管理模块,教师信息管理模块, 班级管理模块, 课程管理模块, 成绩管理模块, 帐号管理模块等几大模块。以下将对各子模块进行说明。请求用户名及密码登录密码及用户类型验证是否系统管理员?用户存在且密码正确进入管理模块进入后台管理模块操作结束?否是操作结束?是否是是退出系统用户不存在或密码错误52.4.12.4.1 学生信息管理模块学生信息管理模块管理员: 增加学生 可以增加学生编号、姓名、性别、出生日期、入学日期、所在班级、电话号码、住址、备注删除学生 可以删除学生的所有信息修改学生信息 可对所有学生的资料进行修改查询学生信息查询所有学生的一切信息,点击查询按钮则列出全部学生的基本信息包括学生编号、学生姓名、性别、入学日期、所在班级等 模糊查询 根据学生编号、学生姓名、所在班级进行模糊查询,列出符合条件的所有学生的基本信息包括学生编号、学生姓名、性别、入学日期、所在班级等 教师:查询学生信息查询所有学生的信息 点击查询按钮则列出所教学生的基本信息包括学生编号、学生姓名、性别、入学日期、所在班级等模糊查询 根据学生编号、学生姓名、所在班级进行模糊查询,列出符合条件的所教学生的基本信息包括学生编号、学生姓名、性别、入学日期、所在班级等 学生:查询信息 个人信息查询 可查询自己的全部信息本班学生信息查询 查询本班学生的基本信息学生编号、姓名、性别、所在班级、入学日期、个人说明等 2.4.22.4.2 教师信息管理模块教师信息管理模块管理员: 增加教师 增加教师的编号、姓名、性别、出生日期、学历、职称、所授课程、备注删除教师 可以删除教师的所有信息6修改教师信息 可以修改老师的基本信息,包括教师编号、姓名、性别、出生日期、学历、职称、所授课程、备注查询教师信息 查询所有教师的一切信息 点击查询按钮则列出全部教师的基本信息包括教师编号、教师姓名、性别、籍贯、所授课程等模糊查询 根据教师编号、教师姓名进行模糊查询,列出符合条件的所有教师的基本信息包括教师编号、教师姓名、性别、所授课程等 增加教师职务 增加教师所教课程,所教班级记录教师:查询信息查询个人信息 教师可查询自己的所有信息查询全部教师 查询所有教师的基本信息,点击查询按钮则列出全部教师的基本信息包括教师编号、教师姓名、性别、所授课程等模糊查询 根据教师编号、教师姓名进行模糊查询,列出符合条件的所有教师的基本信息包括教师编号、教师姓名、性别、所授课程等 学生:查询教师信息查询所有教师的一切信息 点击查询按钮则列出全部授课教师的基本信息包括教师编号、教师姓名、性别、籍贯、所授课程等模糊查询 根据教师编号、教师姓名进行模糊查询,列出符合条件的授课教师的基本信息包括教师编号、教师姓名、性别、所授课程等 2.4.32.4.3 班级管理模块班级管理模块管理员: 增加班级 增加班级的编号、班级名称删除班级 可删除班级所有信息修改班级信息 可修改班级所有信息查询班级信息查询所有班级 点击可得到全部班级列表,包括班级编号、班级名联合查询 根据班级编号、班级名进行模糊查询,得到满足条件的班级列表,包括 班级 编号、班级名7教师:查询班级信息查询全部授课班级 查询可得到所授课班级的列表,包括班级编号、班级名、班级课程联合查询 输入班级编号、班级名进行联合查询,得到满足条件的班级列表,包括班级编号、班级名、班级人数2.4.42.4.4 课程管理模块课程管理模块管理员:增加课程 增加课程编号、课程名、学分删除课程 删除课程编号、课程名、学分查询课程信息查询全部课程 得到全部课程信息列表,包括课程编号、课程名、学分联合查询 输入课程编号、课程名进行联合查询得到符合条件的课程信息列表,包括课程编号、课程名、学分修改课程信息 修改课程的编号、课程名称、学分教师:查询课程信息查询全部所授课程 得到全部课程信息列表,包括课程编号、课程名、学分联合查询 输入课程编号、课程名进行联合查询得到符合条件的课程信息列表,包括课程编号、课程名、学分学生:查询课程信息查询全部所学课程 得到全部课程信息列表,包括课程编号、课程名、学分联合查询 输入课程编号、课程名进行联合查询得到符合条件的课程信息列表,包括课程编号、课程名、学分2.4.52.4.5 成绩管理模块成绩管理模块管理员:录入成绩 录入学生编号、课程编号、分数删除成绩 删除学生编号、课程编号、分数8修改成绩 修改学生编号、课程编号、分数查询成绩查询全部成绩 得到全部成绩信息列表,包括学生编号、学生姓名、所在班级、课程编号、课程名、分数联合查询 根据学生编号、课程编号、教师编号、班级编号进行联合查询,得到满足条件的成绩信息列表。教师:查询成绩查询所教学生成绩 得到全部所教所教学生的成绩信息列表,包括学生编号、学生姓名、所在班级、课程编号、课程名、分数联合查询 根据学生编号、课程编号、教师编号、班级编号进行联合查询,得到满足条件的成绩信息列表。学生:查询成绩查询全部成绩 可以得到自己全部所学课程的成绩信息列表,包括编号、姓名、课程编号、课程名、学分。联合查询 根据学生编号、课程编号、教师编号、班级编号进行联合查询,得到满足条件的成绩信息列表。 2.4.62.4.6 账号管理模块账号管理模块管理员:查询用户 管理员可以查询所有用户的信息密码管理 管理员可以修改所有教师和学生的密码设置用户权限 设置不同的用户权限,为不同用户登陆时显示不同的登陆界面教师: 密码管理 教师可修改自己的密码学生: 密码管理 学生可修改自己的密码92.52.5 UMLUML 对系统建模对系统建模创建用例图之前首先需要确定参与者。在学生管理系统中,需要管理员的参与,可以有教师用户和学生用户参与。 (1)用例图图 2-5-1 用例图(2) 顺序图10图 2-5-2 登入顺序图(3)活动图图 2-5-3 活动图(4)部署图11图 2-5-4 部署图2.62.6 运行环境规定运行环境规定2.6.12.6.1 设备设备 (1) 服务端微型计算机配置:操作系统:Windows2000 或 Windows XPCPU::奔腾三 1GMHz 或以上内存:512MB 或以上 硬盘:80G 或以上数据库:Microsoft SQL Server 2005 2.6.22.6.2 支持软件支持软件开发软件:Microsoft Visual Studio .Net 2008开发语言:c#数据库软件:Microsoft SQL Server 2005 文档编写软件:Microsoft Word123 3 概要设计概要设计3.13.1 c#.netc#.net 技术技术C#(读做 C-sharp)编程语言是由微软公司的 Anders Hejlsberg 和 Scott Willamette 领导的开发小组专门为 .NET 平台设计的语言,它可以使程序员移植到 .NET 上。这种移植对于广大的程序员来说是比较容易的,因为C#从 C,C+和Java 发展而来,它采用了这三种语言最优秀的特点,并加入了它自己的特性。C#是事件的驱动的,完全面向对象的可视化编程语言,我们可以使用集成开发环境来编写C#程序。使用 IDE,程序员可以方便的建立,运行,测试和调试C#程序,这就将开发一个可用程序的时间减少到不用IDE 开发时所用时间的一小部分。使用IDE 迅速建立一个应用程序的过程称为快速反映开发。3.23.2 开发工具的选择开发工具的选择在开发工具上,我选择 Visual Studio2008。Microsoft Visual Studio 2008 是面向 Windows Vista、Office 2007、Web 2.0 的下一代开发工具 ,代号“Orcas” ,是对 Visual Studio2005 一次及时、全面的升级。 VS2008引入了 250 多个新特性,整合了对象、关系型数据、 XML 的访问方式 ,语言更加简洁。使用 Visual Studio 2008 可以高效开发 Windows 应用。设计器中可以实时反映变更 ,XAML 中智能感知功能可以提高开发效率。同时Visual Studio 2008 支持项目模板、调试器和部署程序。 Visual Studio 2008 可以高效开发 Web 应用,集成了 ASP.NET AJAX 1.0,包含 ASP.NET AJAX 项目模板,它还可以高效开发 Office 应用和 Mobile 应用。Visual Studio 2008 软件开发更智能化,特别是自动提示和重构功能。 Visual Studio 2008 中的多定向支持为应用程序的开发带来了新的活力。Visual Studio 2008 为 SQL 数据库的发布提供了更方便快捷的解决方案。3.33.3 数据库的选择数据库的选择本系统将采用 Microsoft SQL Server2005 数据库,SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。与 Microsoft Visual Studio 的紧密集成使 SQL Server 132005 与众不同。无论您是开发人员、数据库管理员、信息工作者还是决策者,SQL Server 2005 都可以为您提供创新的解决方案,帮助您从数据中更多地获益。 SQL Server 2005 是全新的数据库平台系统,包含多种的软件元件与服务,来满足企业对于日渐复杂的数据系统的需求。(1)关系型数据库引擎这是 SQL Server 2005 处理关系型数据库的核心元件,可满足各类不同等级应用程序(小型应用程序到巨型企业的解决方案)对于数据的储存、查询与变动的需求。(2)分析服务(analysis services) 分析服务(analysis services)提供了商业智能的专业平台,可以应用在 OLAP、数据仓储、数据挖掘上,协助企业建立最适当的决策支持。SQL Server Integration Services 为了提供数据整合更好的效率,更丰富的功能,SQL Server 2005 放弃了之前相当成功;以 COM规格为基础的 DTS(Data Transformation Services,在 SQL Server 7.0 版本时推出的数据转换工具),改以.NET 完全重新改写。 SSIS 从核心重新开发,其中最大的变革之一是将流程管理(integration services run-time engine)与数据转换(integration services data flow engine)分成两大引擎来处理。这提供了较佳的流程控管与数据处理的细节可见度,同时增加了使用者透过撰写程序延伸 SSIS 的方便性。并将封装设计环境整合到 Visual Studio 2005 中,该系统开发者的经验互通一致。新版本在执行程序的流程控管、错误处理、物件设定、除错、部署、执行记录、效率等等方面有长足的进步。 (3)通知服务(Notification Services) 通知服务(Notification Services)与.NET Framework 整合,可以开发出以“订阅”为基础的应用程序,即当特定事件发生时,客户端就能接收到通知。(4)Common Language Runtime(CLR) 在SQL Server 2005 这个版本上,将.NET CLR 与数据库引擎整合在一起,允许使用.NET 的程序设计语言来开发各种数据库物件。将.NET 组件(assembly)汇入数据库后,可以使用像是:CREATE ASSEMBLY 强化过的 CREATE PROCUDURE、CREATE TRIGGER、CREATE FUNCTION、CREATE AGGEGATE 与 CREATE TYPE 语法,在组件中用作各类的数据库物件 144 4 详细设计详细设计4.14.1 功能类设计功能类设计表:4-1-1 所有类名命名空间命名空间类名类名说明说明Login系统功能类Users用户管理功能类Student学生功能类Teacher教师功能类Class班级功能类Score成绩功能类Course课程功能类Class_Course班级课程Class_Teacher教师班级ManageCourse_Teacher教师课程4.1.14.1.1 用户登入功能类用户登入功能类用户登录验SearchStustrkeyobjDataTable,strErrint查询DelStuidstrErrint删除4.1.44.1.4 教师信息管理功能类教师信息管理功能类 (1)添加的方法: public int AddTea(Model.teacher.teacher objTea, out string strErr) Model.teacher.teacher objTea 是模型类,返回值为 1 则添加成功,同时添加用户成功,模型类存储教师的相关信息,为 0 则返回错误提示,将错误赋给strErr(2)修改的方法: public int ModifyTea(int iTeaId, string strOld, Model.teacher.teacher objTea, out string strErr) int iTeaId 是传入的教师 ID, string strOld 是传入的旧的教师编号,返回值为 1 则修改成功,15同时修改用户成功,模型类存储教师的相关信息,为 0 则返回错误提示,将错误赋给 strErr。(3)查询的方法:public int SearchTea (out DataTable objDataTable ,out string strErr) 返回值为 1 则查询成功,定义的表显示查询结果,返回值为 0 ,则出错,将错误赋给 strErr。public int SearchTea(string strTeaNo, string strTeaName, out DataTable objDataTable, out string strErr)根据教师编号、教师姓名进行查询,string strTeaNo 定义接收教师编号的变量,string strTeaName 定义接收教师姓名的变量,返回值为 1 时,根据传入的教师编号和教师姓名查询成功,将查询结果给表,返回值为 0,则将错误赋给 strErr。(4)删除的方法 public int DelTea(int iTeaId, string strTeaNo, out string strErr)删除教师和账号,int iTeaId 定义接收教师 ID 的变量,当返回值为 1 时,删除成功,当返回值为 0 时,出错,则将错误赋给 strErr。 (4)方法列表:表:4-1-4 教师信息方法名方法名传入参数输出返回值类型描述AddTeaobjTeastrErrint增加ModifyTeaobjTearstrErrint修改SearchTeaobjTeaobjDataTable,strErrint查询DelTeaIdstrErrint删除4.1.54.1.5 班级管理功能类班级管理功能类 (1)添加的方法:public int AddClass( Model.Class.Class objClass,out string strErr)ModelClass objClass 是课程模型类。返回值定义为 0 和 1,当添加失败时,返回 0,并用 out string strErr 输出出错原因;当添加成功时,返回1,out string strErr 的输出为空。(2)修改的方法: 16public int ModifyClass(string ClassNo, Model.Class.Class objClass, out string strErr)返回值定义为 0 和 1,当修改失败时,返回 0,并用 out string strErr 输出出错原因;当修改时,返回 1,out string strErr 的输出为空。string iClassNo 定义接受班级编号的变量, Model.Class.Class objClass 为模型类(3)查询的方法:查询单行(按班级名和班级编号):public int SearchClass(string ClassNo ,string ClassName, out DataTable objDataTable, out string strErr) string iClassNo 定义接收班级编号的变量, string strClassName 定义接受班级名称的变量, out DataTable objDataTable 是输出内存中的表的内容,用返回值定义为 0 和 1判断查询成功或失败,查询失败时用 out string strErr 输出出错原因,成功时 out string strErr 输出为空。(4)删除班级public int DelClass(string ClassNo, out string strErr)删除班级信息以及班级中的学生,班级课程表,教师班级表中相应记录,out string strErr 输出出错原因,成功时 out string strErr 输出为空。(5)方法列表:表:4-1-5 班级方法名方法名传入参数输出返回值类型描述AddClassobjClassIdstrErrint增加ModifyClassobjClassIdstrErrint修改SearchClassobjClassIdobjDataTable,strErrint查询4.1.64.1.6 成绩管理功能类成绩管理功能类 (1)添加的方法:public int AddScore(Model.Score objScore,out string strErr)Model.Score objScore 是课程模型类。返回值定义为 0 和 1,当添加失败时,返回 0,并用 out string strErr 输出出错原因;当添加成功时,返回1,out string strErr 的输出为空。(2)修改的方法: 17public int ModifyScore(s CourseName, string ClassName, Model.Score objScore,out DataTable objDataTable ,out string strErr)按学生、班级、课程、教师查询成绩sting StuNo 定义了接收学生编号的变量, string TeaNo 接收教师编号,string CourseName,接收课程名称 string ClassName 接收班级名称, Model.Score objScore 是课程模型类。返回值 int 定义为 0 和 1,当添加失败时,返回 0,并用 out string strErr 输出出错原因;当查询成功时,返回 1,out string strErr 的输出为空。(4)删除的方法:public int DelScore(int id,out string strErr)int id 定义编号, out string strErr 输出出错原因,成功时 out string strErr 输出为空。(5)方法列表:表 4-1-6 成绩方法名方法名传入参数输出返回值类型描述查询所有课程:public int SearchCourse( sting CourseNo,string CourseName,out DataTable objDataTable, out string strErr)根据课程编号,课程名查询单行课程 sting CourseNo 接收课程编号,string CourseName 接收课程名,用 int定义为 0 和 1 判断查询成功或失败,查询失败时用 out string strErr 输出出错原因,成功时 out string strErr 输出为空。(4)删除课程 public int DelCourse(string CourseNo, out string strErr)string CourseNo 接收课程编号,返回值为 0 和 1,判断查询成功或失败。(5)方法列表:表:4-1-7 课程方法名方法名传入参数输出返回值类型描述AddCourseobjCoursestrErrint增加ModifyCourseobjCoursestrErrint修改SearchCourseobjCourseobjDataTable,strErrint查询DelCourseiCoursestrErrint删除184.24.2 数据库关系图数据库关系图图:4-2 数据库关系图4.34.3 系统系统 E-RE-R 图图学学生生学学号号班班号号成成绩绩课课程程号号学学号号编编号号科科目目19图:4-3 系统 E-R 图4.44.4 查询模块流程图查询模块流程图图:4-4 查询模块流程图4.54.5 数据库设计数据库设计4.5.14.5.1 用户管理模块用户管理模块表:4-5-1 Users字段名中文名数据类型是否为空关系(主键或外键)注:如果是外键,则写上外键表名约束和默认值UserId用户 id int否主键UserName用户名nvarchar否PassWord密码nvarchar否Rights权限int否Type删除标识int否为 0 表示该生被删除4.5.24.5.2 学生信息管理模块学生信息管理模块表:4-5-2 student字段名中文名数据类型是否为空关系(主键或外键)注:如果是外键,则写上外键表名约束和默认值StuId学生 Idint否主键自增StuNo学生编号varchar否StuName姓名varchar否ClassId班级号varchar是外键,ClassSex性别int否EntranceTime入学时间datatime否StuTel电话号码varchar否StuAddress住址varchar否Remark备注text是Type删除标识int否204.5.34.5.3 教师信息管理模块教师信息管理模块表:4-5-3 Teacher字段名中文名数据类型是否为空(Y/N)关系(主键或外键)注:如果是外键,则写上外键表名约束和默认值TeaId教师 Idint否主键自增TeaNo教师编号varchar否TeaName老师姓名varchar否.Sex性别varchar否BirthDate年龄varchar否Degree学历varchar否Rank职称varchar否TeaTel电话varchar否TeaAddress住址varchar否Remark备注text是Type标识删除int否4.5.44.5.4 班级管理模块班级管理模块表:4-5-4 Class字段名中文名数据类型是否为空(Y/N)关系(主键或外键)约束和默认值ClassId班级 IDint否主键自增ClassnNo班级编号varchar否ClassName班级名称varchar否Remark备注text是type删除标识int否4.5.54.5.5 成绩管理模块成绩管理模块表:4-5-5 Score字段名中文名数据类型是否为空(Y/N)关系(主键或外键)约束和默认值ScoreId成绩 Idint否主键自增StuId学生 IdInt否外键CourseId课程 Idint否外键Score成绩float是Remark备注string是214.5.64.5.6 课程信息管理模块课程信息管理模块表:4-5-6 Course字段名中文名数据类型是否为空(Y/N)关系(主键或外键)注:如果是外键,则写上外键表名约束和默认值CourseId课程 idint否主键自增CourseNo课程编号varchar否CourseName课程名称varchar否Points学分dec否type删除标识int否4.5.74.5.7 班级课程班级课程表:4-5-7 Classs_Course字段名中文名数据类型是否为空关系(主键或外键)注:如果是外键,则写上外键表名约束和默认值Cl_CoIdIDint否主键自增ClassId班级编号nvarchar否外键,ClassCourseId课程编号nvarchar否外键,Coursetype删除标识Int否4.5.84.5.8 教师班级教师班级表:4-5-8 Teacher_Class字段名中文名数据类型是否为空关系(主键或外键)注:如果是外键,则写上外键表名约束和默认值Tea_ClIdIDint否主键自增ClassId班级编号nvarchar否外键,ClassTeaId教师编号nvarchar否外键,Teachertype删除标识Int否4.5.94.5.9 教师课程教师课程表:4-5-9 Teacher_Course字段名中文名数据类型是否为空关系(主键或外键)注:如果是外键,则写上外键表名约束和默认值22Tea_CoIdIDint否主键自增CourseId课程编号nvarchar否外键,CourseTeaId教师编号nvarchar否外键,Teachertype删除标识Int否235 5 系统测试系统测试5.15.1 界面测试界面测试很多人认为这是测试中最不重要的部分,但是恰恰相反界面测试是相当重要的确。包括页面在窗口中的显示是否正确、美观,表单样式大小,格式,是否对提交数据进行验证等连接连接的形式,位置,是否易于理解等。5.25.2 功能测试功能测试白盒测试技术(White Box Testing) 深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫做白盒测试。黑盒测试技术(Black Box Testing)黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,根据软件需求,设计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的测试技术涵盖了测试的方方面面,可以考虑以下方面: 正确性 (Correctness)、可用性 (Usability)、边界条件 (Boundary Condition)、性能 (Performance) 245.35.3 系统功能主要截图系统功能主要截图5.3.15.3.1 主要界面主要界面图:5-3-1 系统登入界面图:5-3-2 主界面25图:5-3-3 教师信息管理界面图:5-3-4 学生管理界面265.45.4 主要代码主要代码5.4.15.4.1 登陆界面部分代码登陆界面部分代码namespace StudentManage.Login public partial class LoginInterfaceForm : Form public LoginInterfaceForm() InitializeComponent(); private void LoginInterfaceForm_Load(object sender, EventArgs e) private void btnLogin_Click(object sender, EventArgs e) string strErr = ; string strConnection = System.Configuration.ConfigurationManager.ConnectionStringsStudentManager.ConnectionString; Manage.Login.Login objLogin = new Manage.Login.Login(strConnection); if (rabAdmin.Checked = true) Model.Users.Users objUsers = new Model.Users.Users(); objUsers.UserNo= txtUserNo.Text.Replace(, ); objUsers.UserNo = objUsers.UserNo.Trim(); objUsers.PassWord = txtPassWord.Text.Replace(, ); objUsers.PassWord = objUsers.PassWord.Trim(); if (txtUserNo.Text = admin & txtPassWord.Text = admin)27 objUsers.Rights = 1; MainForm objEnter = new MainForm(objUsers.UserNo, objUsers.PassWord, objUsers.Rights); this.Visible = false; objEnter.Show(); else MessageBox.Show(您输入的账号或密码错误,请重新输入!); txtUserNo.Text = ; txtPassWord.Text = ; return; else if (rabTea.Checked = true) Model.Users.Users objUsers = new Model.Users.Users(); objUsers.UserNo = txtUserNo.Text.Replace(, ); objUsers.UserNo = objUsers.UserNo.Trim(); objUsers.UserNo = objUsers.UserNo.Replace(%, %); objUsers.PassWord = txtPassWord.Text.Replace(, ); objUsers.PassWord = objUsers.PassWord.Trim(); objUsers.PassWord = objUsers.PassWord.Replace(%, %); objUsers.Rights = 2; int iRent = objLogin.JudgeExist(objUsers.UserNo, objUsers.PassWord,objUsers.Rights, out strErr); if (iRent = 1) MainForm objEnter = new MainForm(objUsers.UserNo, objUsers.PassWord, objUsers.Rights);28 objEnter.Show(); this.Visible = false; else MessageBox.Show(您输入的账号或密码错误,请重新输入!); txtUserNo.Text = ; txtPassWord.Text = ; return; else Model.Users.Users objUsers = new Model.Users.Users(); objUsers.UserNo = txtUserNo.Text.Replace(, ); objUsers.UserNo = objUsers.UserNo.Trim(); objUsers.PassWord = txtPassWord.Text.Replace(, ); objUsers.PassWord = objUsers.PassWord.Trim(); objUsers.Rights = 3; int iRent = objLogin.JudgeExist(objUsers.UserNo, objUsers.PassWord, objUsers.Rights, out strErr); if (iRent = 1) MainForm objEnter = new MainForm(objUsers.UserNo, objUsers.PassWord, objUsers.Rights); objEnter.Show(); this.Visible = false; else MessageBox.Show(您输入的账号或密码错误,请重新输入!);29 txtUserNo.Text = ; txtPassWord.Text = ; return; private void btnExit_Click(object sender, EventArgs e) Application.Exit(); 5.4.25.4.2 学生管理部分代码学生管理部分代码namespace StudentManage.Student public partial class StuManageForm : Form public int iRight; public string strUserNo; public StuManageForm(int iRights,string UserNo) InitializeComponent(); iRight = iRights; strUserNo = UserNo; private void StuManageForm_Load(object sender, EventArgs e) /BindDataGridView(); if (iRight = 1)30 BindDataGridView(); else if (iRight = 2) menuAddStu.Visible = false; menuDelStu.Visible = false; menuModifyStu.Visible = false; btnDel.Visible = false; btnModify.Visible = false; BindDataGridView(); else txtClassName.Visible = false; lblClassName.Visible = false; BindDataGridView(); menuAddStu.Visible = false; menuDelStu.Visible = false; menuModifyStu.Visible = false; btnDel.Visible = false; btnModify.Visible = false; void BindDataGridView() string strErr = ; string strConnection = System.Configuration.ConfigurationManager.ConnectionStringsonnectionString; Manage.Student.Student objStudent = new Manage.Student.Student(strConnection);31 DataTable objDataTable = new DataTable(); int iRent = objStudent.SearchStuAll(iRight, strUserNo, out objDataTable, out strErr); if (iRent = 0) MessageBox.Show(strErr); return; else dataGridView.DataSource = objDataTable; private void menuAddStu_Click(object sender, EventArgs e) StudentManage.Student.AddStuForm AddStuForm = new AddStuForm(); AddStuForm.ShowDialog(); BindDataGridView(); private void menuModifyStu_Click(object sender, EventArgs e) if (dataGridView.SelectedRows.Count = 0) MessageBox.Show(请先选中一行); else if (dataGridView.SelectedRows.Count = 1) string strStuno = dataGridView.SelectedRows0.Cells学生编号.Value.ToString(); ModifyStuForm objMdfStu = new ModifyStuForm(strStuno); objMdfStu.ShowDialog();32 BindDataGridView(); else MessageBox.Show(一次只能修改一行); private void menuSearchStu_Click(object sender, EventArgs e) btnSearch_Click(sender, e);StudentManager.C private void menuDelStu_Click(
展开阅读全文