学生管理系统设计文档 1. 系统概述

 本学生息管理系统可以说是一个综合性的学校学生管理系统,这它集成了学生学籍管理系统、学生成绩管理系统、学生档案管理系统等多种功能,因而具有较强的实用性和先进性。

 1.1 1

 系统及需求分析

  1.1.1 系统需求

 通过调查,要求系统需要有以下功能:

  ⑴

 由于操作人员的计算机知识普遍较差,要求有良好的人机界面;

  ⑵

 由于该系统的使用对象多,要求有较好的权限管理;

 ⑶

 原始数据修改简单方便,支持多条件修改 ⑷

 方便的数据查询,支持多条件查询; ⑸

 在相应的权限下,删除数据方便简单,数据稳定性好; ⑹

 数据计算自动完成,尽量减少人工干预; 1.1.2 可行性分析 由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是 PIII 以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。

 本系统的设计是在 Window 中文版操作系统环境下,使用 C++ Builder 6.0 开发的。数据库是 MIS 中的重要支持技术,在 MIS 开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在

 选择数据库时,应考虑数据库应用的特点及适用范围。本系统选用的开发语言:C++语言,用 Borland 的 C++ Builder,它是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发 Windows 环境下的种类应用程序。它效率高,且功能强大,可以与 Windows 的专业开发工具 SDK 相媲美。在 C++ Builder 环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用 Windows 内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出 Windows 环境下功能强大、图形界面丰富的应用软件系统。

 1.2 2 系统的功能简介

 本系统主要可以实现以下的管理功能:班级管理、学生档案管理、学生交费管理、课程管理、成绩管理等等。

 1.3.1 项目规划 学生息管理系统是一个典型的数据库应用程序,由系统、设置、录入、查询、帮助等模块组成,特规划如下: 1.3.2 系统模块 该模块的主要任务是维护系统的正常运行和安全性设置,包括系统登录、退出登录、用户管理、退出系统等等。

 1.3.3 设置 模块 :

 该模块的功能是实现设置功能,包括:专业、课程、班级的设置,这三个功能模块各自独立,完成学生管理必需的设置。

 1.3.4 录入 模块 :

 该模块的主要功能是实现录入功能,包括学生档案、学生成绩的录入,完成学生管理数据的录入功能。

 1.3.5 查询 模块 :

 该模块主要功能是实现查询功能,包括学生档案和成绩的查询以及成绩统计,都有打印报表的功能。

 1.3.6 帮助模块:

 本系统的使用说明和关于。

 1.4 4 系统开发的目标

 出于本系统是学校学生管理的一个综合性的系统,本系统的设计目标将最终定位于完成以上所述的系统主要业务的基本模型上。

 2. 系统分析 2.1 1 数据流程分析:

 由于本系统的数据模块较多,下面仅以学生成绩为例来进行编制。

 学生成绩管理系统 0 层数据流程图

  学生成绩管理系统 1 层数据流程图

 2.2 2 数据存储分析:实体联系图

 1、数据模型设计。首先来做出学生成绩管理系统的 E-R 图,分析这个问题的实体,从系统分析可以知道,学生的成绩是由任课教师按照课程给出的,学生、课程、教师组学籍管理部门 教师 学生成绩管理系统 教务处 学生 教师学生情况 学生成绩 查询 统计分析 学生 课程 成绩 管理 部门教 务教师 1.0 学生管理 2.0 课程管理 3.0 成绩管理 4.0 统计分析 D1 D2 D3 查 询管 理

 成了这个系统的三个实体。

 2、再分析三个实体之间的联系。首先,这三个实体不是一个统一体,学生成绩与教师没有内在联系,教师必须通过课程实体才能与学生建立联系,因而先不考虑。课程与学生这两个实体是多对多联系;一位学生要学习多门课程,一门课程有多位学生共同学习。而学习成绩是这两个实体“学生”和“成绩”共有的属性,应填在二者的联系“学习”边。因为成绩既不是学生独有的,也不是课程独有的;“学生甲 70 分”或“英语 70分”是不完全的,说“学生甲英语 70 分”才是正确的,因为 70 分是学生甲和英语课二者共有的。这个 E-R 图可画成下图。

 学生成绩管理系统中学生与课程的 E-R 图

 教师与课程这两个实体之间,是一对多联系;一位教师可以都多门课程,而一门课程对于学生成绩来说只能有一位教师(英语、高等数学有多位教师教,但对某个固定的学生来说只能有一位教师)。其 E-R 图,如下所示。

  教师与课程的 E-R 图组合到一起,得到最后的 E-R 图,有了 E-R 图,就可以设计数据库。下图为数据模型图。

 学生 课程 成绩 学习 m n n 教师 课程 教学 l

 2.3 3 功能分析:功能层次图

 n l m m 学习 学生 课程 教师 学习 学习 课程 学生 教师 实体模型 数据模型 数据库 学生信息管理系统 登录 系统 设置 录入 查询 帮助 退出登录 课程设置 系统登录 用户管理 专业设置 班级设置 学生档案 学生成绩 学生档案 学生成绩 使用说明 关于系统

 退出系统

 3. 系统设计

 1 3.1 软件模块结构设计

 通过对系统的调研与分析,系统主要应完成的功能有:班级管理、学生成绩管理、课程管理、成绩管理、系统管理等功能。分成系统、设置、录入、查询、帮助五个模块‘ 本系统在执行时,先根据不同的操作人员的需要来进行相应的模块,然后可以输入数据或者进行其它的查询或浏览等操作;总体来说,本系统属于一个事务型管理系统。

 3 .2 数据库设计 数据库采用了 Microsoft 推出的 Access 数据库,这是微软集成到 Office 中的一个简易有效的桌面数据库。使用 Access 的好处还在于,如果你的系统扩展到 C/S 模式的时候,可以使用 Microsoft 的数据库服务器软件 SQL Server,此时,程序只需要简单的修改一下链接(ADO 的数据源)就可以,这样,为程序的平滑扩展提供了非常有力的条件。

 本系统中所涉及到的主要实体共有六个数据表, 各表的物理结构如下:

 专业表 表:

 字段名称 类型 宽度 小数位 序号 自动编号

  专业代码 文本 8

 专业名称 文本 50

 学制 文本 1

 课程表 表:

 字段名称 类型 宽度 小数位 序号 自动编号

  课程名称 文本 50

 教材 文本 200

 专业 文本 50

 学期 文本 8

 周学时 文本 2

 班级表 表:

 字段名称 类型 宽度 小数位 序号 自动编号

  年级 文本 4

 专业 文本 50

 班号 文本 8

 名称 文本 50

 用户表:

 字段名称 类型 宽度 小数位 序号 自动编号

  用户名 文本 20

 密码 文本 20

 权限 文本 10

 学生 表:

 字段名称 类型 宽度 小数位 序号 自动编号

  学号 文本 10

 姓名 文本 16

 性别 文本 2

 生日 日期/时间

  政治面貌 文本 20

 民族 文本 20

 籍贯 文本 8

 电话 文本 30

 邮箱 文本 30

 特长 文本 50

 照片 OLE 对象

 成绩 表:

 字段名称 类型 宽度 小数位 序号 自动编号

  学号 文本 8

 学期 文本 20

 课程 文本 50

 平时 数字单精度型

 自动 考查 数字单精度型

 自动 考试 数字单精度型

 自动 总评 数字单精度型

 自动

 3 .2 数据库 E-Rl 图 图

 专业代码 专业 序号 学制 专业名称 课程名称 课程 序号 教材 专业 周学时 年级 班级 序号 专业 班号 名称 学号 学生 序号 性别 政治 面貌 姓名 生日 民族 籍贯 电话 邮箱 特长 照片 成绩 课程 考查 平时 考试 总评 序号 学号 学期 用户名 用户 序号 权限 密码

 4.系统的功能模块设计 本部分主要内容为本系统的运行界面以及源代码。

 一.主界面设计 1.新建一个工程 xsgl,将主窗口命名 fmain,标题为"学生管理系统"。设置其StartPosition 为 CenterScreen。

 2.作主菜单:

 系统:系统登录、退出登录、用户管理、退出系统 设置:专业设置、课程设置、班级设置 录入:学生档案、学生成绩 查询:学生档案、学生成绩 帮助:使用说明、关于系统 3.放一个图像框 pictureBox1,设置 Dock 为 Fill,SizeMode 为 StretchImage,取一幅图像(Image)。

 4.放两个标签 label1~2,标题分别为"欢迎你使用学生管理系统"、空,设置它们的字体、大小、颜色、透明。

 5.代码:

 //响应 fmain 的 Load 事件:

 label1.Parent = pictureBox1;

 label2.Parent = pictureBox1;//设置标签的父容器

 label1.Left = (Width - label1.Width) / 2;//label1 水平居中

 退出登录.Enabled = false;

 用户管理.Enabled = false;

 设置.Enabled = false;

 录入.Enabled = false;

 查询.Enabled = false;//未登录时关闭相应的功能 //响应菜单退出系统的代码:

 Close(); //响应菜单关于系统的代码:

  MessageBox.Show("学生管理系统\n 版本 1.0\n 作者吴三成", "学生管理系统");

 二.登录界面设计 1.新建一个窗口 fdl,标题为登录,设置其 StartPosition 为 CenterScreen。

 2.放两个标签 label1~2,标题分别为"用户名"、"密 码",设置它们的字体、大小、颜色。再放两个文本框 textBox1~2,设置它们的字体、大小、颜色。再放按钮 button1,标题为"登录",设置它的字体、大小、颜色。

 3.代码:

 //为连接 Access 数据库,在代码头加上:

 using System.Data.OleDb; //在生成函数前加上属性:

  public int ndl = 0;

  public string yhm = "";

  public string qx = ""; //响应登录按钮单击事件:

 if (textBox1.Text == "")

 {

  MessageBox.Show("请你输入用户名!", "提示");

  return;

 }

 if (textBox2.Text == "")

 {

  MessageBox.Show("请你输入密码!", "提示");

  return;

 }//以上验证输入

 string cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xsgl.mdb";

 OleDbConnection co = new OleDbConnection(cs); co.Open();

 OleDbCommand cm = new OleDbCommand(); cm.Connection = co;

 OleDbDataReader rd;//以上建立数据库连接

 cm.CommandText = "select * from 用户 where 用户名=""+textBox1.Text+""";

  rd = cm.ExecuteReader();//以上设计与执行查找用户名的 SQL

 if (rd.Read())

 {//找到用户名

  string mm = rd.GetString(2).Trim();//从数据库中取得密码

  if (mm.Equals(textBox2.Text.Trim()))

  {//密码相等则登录成功,保存登录信息,关闭登录窗口

 this.ndl = 1;

 this.yhm = textBox1.Text;

 this.qx = rd.GetString(3);

 MessageBox.Show(this.qx + this.yhm + "登录成功!", "提示");

 co.Close(); this.Close();

  }

  else

  {

 MessageBox.Show("密码不对!", "提示");

  }

 }

 else

 {

  MessageBox.Show("无此用户名!", "提示");

 }

 co.Close();//养成关闭数据库连接的好习惯 //fmain 加上属性:

  static int ndl = 0;

  static string yhm = "";

  static string qx = "";

 //响应 fmain 系统登录菜单单击事件:

 fdl f = new fdl();//生成登录窗口实例

 f.ShowDialog();//模式显示之

 ndl = f.ndl;

  yhm = f.yhm;

 qx = f.qx;//关闭登录窗口后取回登录数据

 f.Dispose();//释放登录窗口资源

 if (ndl == 1)

 {//登录成功则开放相应的功能

  查询.Enabled = true;

  系统登录.Enabled = false;

  退出登录.Enabled = true;

  用户管理.Enabled = true;//所有用户都要开放的

  if (qx.Equals("超级用户"))

  {//超级用户全部开放

 设置.Enabled = true;

 录入.Enabled = true;

  }

  else if (qx.Equals("录入人员"))

  {//录入人员可使用录入功能

 录入.Enabled = true;

  }

  label2.Text = qx + yhm;//显示用户

  label2.Left = (Width - label2.Width) / 2; //响应 fmain 退出登录菜单单击事件:

 //去掉登录信息,关闭相应功能,开放系统登录功能

 label2.Text = "";

 ndl = 0; qx = ""; yhm = "";

 退出登录.Enabled = false;

 用户管理.Enabled = false;

 设置.Enabled = false;

 录入.Enabled = false;

 查询.Enabled = false;

 系统登录.Enabled = true;

查看更多论文写作相关内容,请点击 论文写作