项目实训
学生信息管理系统设计与实现
前言:项目概述
学生信息管理系统介绍 项目名称 代码量 项目简介 学生信息管理系统 3000行 该系统可以帮助教辅人员进行学生基本信息的日常管理和维护;进行学生选课模拟以及重要数据备份等功能。 ① 掌握WinForm图形用户界面开发技术 ② 掌握ADO.NET数据库访问技术 WinForm、ADO.NET、SQL Server Microsoft SQL Server 2000 Visual Studio 2005 ① 基于.NET采用C#语言开发 ② 项目属于C/S结构程序 ① WinForm窗体主要控件的应用 ② 数据库各类对象的应用,例如:存储过程、触发器等 ADO.NET数据库访问技术 项目目的 涉及的主要技术 数据库环境 编程环境 项目特点 技术重点 技术难点 C/S结构项目实训(C#语言版) 1
1 项目需求以及分析设计
1.1 项目需求分析
随着学校规模的不断扩大,每个院系的专业、班级、学生的数量急剧增加,有关学生选课的各种信息量也成倍增长,而很多高校的学生信息管理工作仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低。因此,迫切需要开发学生信息管理系统来提高管理工作的效率。
经过详细调研,我们确定了一个简易的学生信息管理系统的基本需求。 ① 需要进行身份认证登录
系统只允许合法用户进行登陆操作,并且该系统主要面向教学管理人员提供服务(例如教学秘书、辅导员等)。合法用户登陆后可以进行系统的主要功能操作。
② 数据查询服务
系统需要为服务对象提供两种服务:一是进行学生基本信息的浏览;二是进行学生成绩信息查询服务。
③ 数据添加服务
系统根据需要可以添加学生基本信息以及添加学生的选课信息等操作。 ④ 数据更新服务
系统根据需要可以更新学生的基本信息。 ⑤ 数据删除服务
系统根据需要可以删除学生的基本信息,但是要求备份删除学生的所有信息。 ⑥ 系统扩展服务
本项目限于篇幅等,在后面主要描述并实现了系统登录、学生基本信息浏览、成绩信息查询、学生基本信息的添加、更新和删除以及学生选课的功能。有关其他实体信息的管理,例如:成绩信息、课程信息等维护功能没有实现。但是大家完全可以根据后面系统提供的框架来扩展系统的其他功能。
此外,根据需要,我们采用基于C/S结构来开发学生信息管理系统。
1.2 项目功能描述
C/S结构项目实训(C#语言版)
2
根据需求分析,学生信息管理系统为用户提供的功能主要分为以下几类: 系统管理服务:系统系统登录、注销以及系统退出功能。
数据查询和统计服务:学生基本信息浏览和查询、学生成绩信息查询等功能。 数据添加服务:学生基本信息添加、学生选课、其他可以扩展的功能(院系信息添加、课程信息添加、成绩信息添加、管理员账户信息添加等未实现)。
数据更新服务:学生基本信息更新、其他可以扩展的功能(院系信息更新、课程信息更新、成绩信息更新、管理员密码修改功能等未实现)。
数据删除服务:学生基本信息删除、其他可以扩展的功能(院系信息删除、课程信息删除、成绩信息删除、管理员删除等功能未实现)。
系统介绍服务:系统基本信息介绍、系统使用帮助(未实现)等。
根据以上系统功能描述,绘制学生信息管理系统的功能模块划分如图14.1.2-1所示。
系统登录 系统管理 注销 退出 学生基本信息浏览 学生信息管理系统C/S结构项目实训(C#语言版)
数据查询和统计 学生成绩信息查询 其他功能扩展 学生基本信息添加 数据添加 学生选课 其他功能扩展 学生基本信息更新 其他功能扩展 学生基本信息删除 其他功能扩展 关于本系统 其他功能扩展 数据更新 数据删除 帮助 图1.2-1:“学生信息管理系统”功能模块图
3
1.3 数据库设计
本系统后台数据库采用的是SQL Server 2000,根据系统的功能描述以及系统的详细设计,学生成绩信息管理系统中各种数据信息之间的关系如图1.3-1所示。
图1.3-1:“学生成绩信息管理系统”数据库关系图
下面针对图1.3-1中的数据库基本表的具体设计进行详细介绍。 表名:admin(管理员表),如表1.3-1所示。 字段名称 userName password 数据类型 字段说明 主键 限制最低6位,不能为空 字段属性 Varchar(20) 用户名 Varchar(20) 密码 表1.3-1:管理员表设计说明
表名:Dept(院系表),如表1.3-2所示。 字段名称 数据类型 deptID Char(4) 字段说明 院系编号 院系名称 联系电话 主键 不许为空且唯一 字段属性 deptName Nvarchar(30) phone Varchar(12) 表1.3-2:院系表设计说明
C/S结构项目实训(C#语言版)
4
表名:stu(学生表),如表1.3-3所示。 字段名称 stuID stuName stuSex stuBirth 数据类型 Nvarchar(20) Datetime 字段说明 主键 不许为空 只能输入:男、女 要求年龄不能大于30岁 只能输入1、2、3(其中1表示党员,2表示团员,3表示其他) 参照院系表院系编号取值 姓名 字段属性 Char(12) 学号 Nchar(1) 性别 出生日期 政治面貌 stuPolitic Tinyint stuDept stuResume stuPhoto stuPcard Char(4) 所属院系 Ntext Image 简历 照片 Char(18) 身份证编号 表1.3-3:学生表设计说明
表名:course(课程表),如表1.3-4所示。 字段名称 courseID courseName Credit courseTime stuLimited stuPreSelect 数据类型 Char(6) 字段说明 课程编号 主键 字段属性 Nvarchar(30) 课程名称 不许为空,唯一 Tinyint 学分 其值不能大于5 Varchar(30) 上课时间 Tinyint Tinyint 限选人数 默认值:250 已选人数 默认值:0,并且不能大于stuLimited 表1.3-4:课程表设计说明
表名:grade(成绩表),如表1.3-5所示。 字段名称 stuID 数据类型 字段说明 学号 课程编号 字段属性 参照学生表学号字段取值 参照课程表课程编号字段取值 成绩必须介于0和100之间 Char(12) courseID Char(6) grade Decimal(5,2) 成绩 说明:stuID和courseID联合主键 表1.3-5:成绩表设计说明
2 项目详细设计以及功能实现
C/S结构项目实训(C#语言版) 5