学生信息管理系统-软件工程课程设计论文_第1页
学生信息管理系统-软件工程课程设计论文_第2页
学生信息管理系统-软件工程课程设计论文_第3页
学生信息管理系统-软件工程课程设计论文_第4页
学生信息管理系统-软件工程课程设计论文_第5页
已阅读5页,还剩22页未读, 继续免费阅读

下载本文档

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

文档简介

课 程 设 计 说 明 书 课程名称:课程名称:软件开发技术 设计题目设计题目:学生信息管理系统 专专业:业:计算机科学与技术班班 级:级: 0801 学生姓名学生姓名: :欧阳锋学学号号:0812030111 指导教师指导教师:何频捷 湖南工业大学科技学院教务部 制 2011 年12 月10 日 1引言(或绪论) 1.1 课题背景课题背景 随着教育事业的不断发展,学校的规模不断扩大,学生数量及其信息量的急剧增 加,有关学生的各种信息管理也随之展开,学生信息管理系统应运而生了,它可用来管 理学生信息与提高系统管理工作的效率。学生信息管理系统把 Eclipse(前台开发)与 SQL 数据库(后台管理)有机地结合,并运用 SWING 等相关技术,完成学生信息的规 范管理、科学统计和快速查询,从而可大大减少该管理上的工作量。 数据库在一个信息管理系统中占有非常重要的地位, 数据库结构设计的好坏将直接 对应用系统的效率以及实现的效果产生影响。 合理的数据库结构设计可以提高数据库存 储的效率,保证数据的完整性和一致性。同时,合理的数据结构也将有利于程序的顺利 实现。 1.2 系统开发关键技术介绍系统开发关键技术介绍 本系统采用的是 Eclipse 开发工具做为开发系统程序,采用 SQL sever 数据库访问 技术完成对数据库信息的规范管理和统计查询。SQL sever 使用更加简单灵活的对象模 型,适用于各种程序设计语言。SQL sever 提供执行以下操作方式: (1) 连接到数据源。 (2) 指定访问数据源的命令,可以在命令中指定参数。 (3) 执行命令,例如一个 SELECT 语句。 (4) 在适当情况下,可以把缓存行的更改内容写回数据库中,更新数据源。 (5)提供常规方法检测错误,错误通常由建立连接或执行命令造成,涉及到SQL 的 error 对象。 2系统分析 2.1总体设计思想及工作流程 用户必须通过已经注册的帐号和密码才能进行对该系统的管理与应用, 否则在登录 系统前要进行新账号的注册; 管理员通过输入密码和帐号可以对数据库的数据进行各种 操作,而普通用户仅仅可以进行一部分的操作;用户根据自己的实际情况选择相应的功 能来提取自己所需信息。 (1) 学生信息管理系统的功能为显示主要操作页面,通过密码验证登陆界面,档案信 息处理功能。 通过密码验证登陆,可实现安全登录,方便可靠。学生信息处理功能包括输入学生 信息,显示学生的档案信息,学生档案信息条件查询(分为:按学生姓名进行查询,按 学生学号进行查询) ,更新学生档案信息。 (2) 学生信息管理系统的功能模块有: 系统登陆界面,美观大方,按 enter 键进入密码验证登陆界面,输入正确密码登陆 主菜单选择框架界面,方便用户对程序个功能进行选择,选择要实现的功能按 enter 键 进入该功能。 1. 输入学生档案信息。 2. 显示学生的档案信息 3. 学生档案信息条件查询 4. 更新学生档案信息。 0. 退出,谢谢使用! 程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。 2.2 业务需求 (1) 安全性:用户必须通过帐号和密码才能进行对该系统的管理。 (2) 权限分配: 超级管理员通过输入密码和帐号可以对数据库的数据进行各种操 作,而普通用户仅仅可以进行一部分的操作。 (3) 易操作性: 可以快速进行查询操作,进行数据的汇总。 2.3 数据流图 用户的需求具体体现在各种信息的提供、保存、更新、查询和统计上,这就要求 数据库结构应充分满足各种信息的输入和输出。系统应定义数据结构、收集基本数据以 及设置数据处理的流程, 组成一份详尽的数据字典, 为以后的具体设计打下基础与伏笔。 在仔细分析、调查有关学生信息管理需要的基础上,得到了本系统的流程图: 图 3.2 总数据流图 图 3.3零层数据流图 图 3.3 一层数据流图 2.2总体设计流程图 学生信息管理系统学生信息管理系统 密码登陆界面密码登陆界面 登陆主菜单选择框架界面登陆主菜单选择框架界面 输入信息输入信息 模块模块 显示信息显示信息 模块模块 条件查询条件查询 模块模块 更新信息更新信息 模块模块 退出系统退出系统 模块模块 从从 键键 盘盘 输输 入入 信信 息息 输输 出出 信信 息息 至至 屏屏 幕幕 按按 学学 生生 学学 号号 查查 询询 按按 学学 生生 姓姓 名名 查查 询询 修修 改改 学学 生生 信信 息息 插插 入入 学学 生生 信信 息息 将将 退退 出出 界界 面面 显显 示示 图 2总体设计流程图 该流程图为此次学生信息查询系统的总体流程图,用户进入界面以后可以看到登陆密码界面, 密码输入正确进入主菜单选择框架界面,1 为输入学生信息档案,2 为显示学生档案,3 为学生信息 档案查询, 4 为更新学生档案, 0 为退出系统。 用户可以根据自己的需求方便快捷的做出自己的选择。 密码登陆函数流程图: 密码函数开始 登陆密码 重新登陆 密码正确 密码错误 该函数为密码登陆函数模块,当输入的密码不正确的时候,系统会提示“密码输入错误,请重新 输入” ,直到输入正确密码为止。 选择框架函数流程图: 选择框架函 数开始 用户选择 1 输入信息2 显示信息3 查询信息4 更新信息0 退出 进入学生档案管理系统时显示程序名称和选择框架主菜单,提示用户进行选择,完成相应任务。 此代码被 main()函数调用。 输入信息函数流程图: 输入信息系统开始 输入学号 输入姓名 输入性别 输入联系方式 输入班级 输入错误 重 新 输入 输入学生信息函数模块,用户可以根据提示的信息来进行每一步的输入操作,当输入不当时, 系统会自动提示,并让用户进行正确的操作。在此系统中,要求用户输入的只有字符型和数值型数 据,设计了相应的函数来进行数据校验工作,保证数据输入的准确性。 显示信息流程图: 显示信息 函数开始 输出学生信息 结束 当用户进入查询信息模块时,系统会显示内部存储的内容。 查询信息流程图: 选择按姓名还 是学号查询 选择查询函数开始 输入错误 重新输入 0 按姓名查询 1 按学号查询 输出信息 输出信息 当用户执行此查询任务时,系统会提醒用户进行查询字段的选择,即按学号或姓名进行查询。 若此学生档案信息记录存在,则会显示该省的档案信息。此函数完成了节点定位的功能。 更新信息流程图: 更改信息函数开始 输入要更改的学号 输入错误 输入更改后信息 输入错误 重新输入 重新输入 输出更改后信息 完成 在更新学生档案信息的操作中,系统会先按输入的学号查询到该生档案信息记录,然后按顺序 填入要修改的学生信息。 3 系统设计 3.1 系统功能结构图 设计数据库系统时应充分满足各种信息的输入和输出。据此,结学生信息管理系 统所需完成的主体任务。学生信息管理系统主要任务如下: (1) 基本信息的输入。包括学籍(学生基本)信息,班能、课程和成绩等住处的 输入。 (2) 基本信息的修改。包括学籍信息、班级、课程和成绩等信息的修改。 (3) 基本信息的查询。包括学籍信息和成绩信息等的查询。 (4) 年级信息及班级信息的设置等。 (5) 学校基本课程信息的输入、修改和设置。 基于需求分析及主要任务的表述,可对上述各项功能按照结构化程序设计的要求 进行集中、分层结构化,自上而下逐层设置得到系统功能模块结构图: 图 3.1 系统功能结构图 4 系统数据库设计系统数据库设计 4.1 系统 E-R 图 概念结构设计就是 E-R 方法的分析与设计,概念结构设计是整个数据库设计的关 键。在此,将使用实体联系(E-R)模型来描述系统的概念结构,同时设计出能够满 足用户需求的的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这 也实体包括各种具体的实际信息,通过相互之间的作用形成数据的流动。本程序根据上 面的设计规划出的实体有:学籍实体、班级实体、年级实体、课程实体与成绩实体,学 生信息管理系统数据库 E-R 模型,如下图所示: 图 4.1 学生信息管理系统 E-R 模型图 4.2 数据表的创建 根据系统特点,由数据模型利用 Oracle10g 进行数据库的详细设计,学生信息管理 系统数据库中各个表格的设计结果如下: 表 1: 学籍信息表 表 2: 学生成绩信息表 表 3: 班级信息表 表 4: 年级课程设置表 表 5: 课程基本信息表 表 6: 系统用户表 4.3 存储过程和触发器设计 为了提高该系统的运行环境,后台有关数据的操作部分使用了存储过程和触发器。 1.创建的存储过程进行添加班级信息,代码如下: create or replace procedure insertclass (p_class_no in class_no%type, p_grade in grade%type, p_director in director%type, p_classroom_no in classroom_no%type ) is v_count number; begin select count(*) into v_countfrom class_info where class_no=p_class_no; if v_count=0 then insertinto class_info values(p_class_no,p_grade,p_director,p_classroom_no ); else dbms_output.put_line(班号已经存在,请重新输入班号); end if; end insertclass; 2.存储过程的调用代码: Private Sub Command1_Click() Dim sqlcon As New ADODB.Connection Dim mrc AsADODB.Recordset Dim MsgText As String Dim txtSQLAs String Dim cmd As NewADODB.Command Dim classNO, grad, DIRECTO, CLASSROOMNO sqlcon.Open Provider=OraOLEDB.Oracle.1;Password=1234;Persist Security Info=True;User ID=CC;Data Source=orcl If Not Testtxt(txtClassno.Text) Then MsgBox 请输入班号!, vbOKOnly + vbExclamation, 警告 txtClassno.SetFocus Exit Sub End If If Not Testtxt(comboGrade.Text) Then MsgBox 请选择年级!, vbOKOnly + vbExclamation, 警告 comboGrade.SetFocus Exit Sub End If If Not Testtxt(txtDirector.Text) Then MsgBox 请输入班主任姓名!, vbOKOnly + vbExclamation, 警告 txtDirector.SetFocus Exit Sub End If If Not Testtxt(txtClassroom.Text) Then MsgBox 请输入教室房间号!, vbOKOnly + vbExclamation, 警告 txtClassroom.SetFocus Exit Sub End If If Not IsNumeric(Trim(txtClassno.Text) Then MsgBox 请输入数字!, vbOKOnly + vbExclamation, 警告 Exit Sub txtClassno.SetFocus End If cmd.ActiveConnection = sqlcon cmd.CommandText = insertclass cmd.CommandType = adCmdStoredProc Set classNO = cmd.CreateParameter(CLASS_NO, adVarChar, adParamInput, 50) cmd.Parameters.Append (classNO) Set grad = cmd.CreateParameter(GRADE, adVarChar, adParamInput, 50) cmd.Parameters.Append (grad) Set DIRECTO = cmd.CreateParameter(DIRECTOR, adVarChar, adParamInput, 50) cmd.Parameters.Append (DIRECTO) SetCLASSROOMNO=cmd.CreateParameter(CLASSROOM_NO,adVarChar, adParamInput, 50) cmd.Parameters.Append (CLASSROOMNO) cmd(CLASS_NO) = txtClassno.Text cmd(GRADE) = comboGrade.Text cmd(DIRECTOR) = txtDirector.Text cmd(CLASSROOM_NO) = txtClassroom.Text Set mrc = cmd.Execute cmd.Parameters.Delete (CLASS_NO) cmd.Parameters.Delete (GRADE) cmd.Parameters.Delete (DIRECTOR) cmd.Parameters.Delete (CLASSROOM_NO) MsgBox 添加班级信息成功!, vbOKOnly + vbExclamation, 添加班级信息 End Sub 3.创建触发器: create or replace trigger course_info_del before delete on course_info for each row declare - local variables here begin deletefrom gradecourse_info; end ; 4.4 数据库的连接 配置文件连接数据库的代码: ConnectString = Provider=OraOLEDB.Oracle.1;Password=1234;Persist Security Info=True;User ID=CC;Data Source=orcl 5 5 系统实现系统实现 根据整个系统的总体设计以及相关子系统的相关模块功能的设计, 我们进行了系统 的软件开发。详细设计和功能展示如下: 5.1 系统实现工具与支持平台系统实现工具与支持平台 (1) 用户界面 本系统采用 Microsoft Visual Basic 6.0 设计,用户交互界面采用的是基于 Windows 的窗口界面。 (2) 开发和运行环境 工具软件:VisualBasic 系统软件:Oracle 10g 开发环境:Windows XPProfessional 运行环境:Windows 98NT2000XP2003 硬件配置:Pentium以上 CPU、256MB 以上的内存、4GB 以上的硬盘空间 5. 2 公用模块的设计公用模块的设计 以下为系统主控窗口的界面截图: 图 5.1 主控窗口 在系统中创建公用模块,存放在整个工程项目中会调用到的函数、变量等。 代码如下: Public fMainForm As frmMain Public UserName As String Sub Main() Dim fLogin As New frmLogin fLogin.Show vbModal If Not fLogin.OK Then Login Failed so exit app End End If Unload fLogin Set fMainForm = New frmMain fMainForm.Show End Sub Public Function ConnectString() _ As String returns a DB ConnectString ConnectString = Provider=OraOLEDB.Oracle.1;Password=1234;Persist Security Info=True;User ID=CC;Data Source=orcl End Function Public Function ExecuteSQL(ByVal SQL _ As String, MsgString As String) _ AsADODB.Recordset executes SQL and returns Recordset Dim cnnAs ADODB.Connection Dim rst AsADODB.Recordset Dim sTokens()As String On Error GoTo ExecuteSQL_Error sTokens = Split(SQL) Set cnn = NewADODB.Connection cnn.Open ConnectString If InStr(INSERT,DELETE,UPDATE, _ UCase$(sTokens(0) Then cnn.Execute SQL MsgString = sTokens(0) Password=1234;PersistSecurityInfo=True;User ID=CC;Data Source=orcl cmd.ActiveConnection = sqlcon cmd.CommandText = insertclass cmd.CommandType = adCmdStoredProc Set classNO = cmd.CreateParameter(CLASS_NO, adVarChar, adParamInput, 50) cmd.Parameters.Append (classNO) Set grad = cmd.CreateParameter(GRADE, adVarChar, adParamInput, 50) cmd.Parameters.Append (grad) Set DIRECTO = cmd.CreateParameter(DIRECTOR, adVarChar, adParamInput, 50) cmd.Parameters.Append (DIRECTO) Set CLASSROOMNO = cmd.CreateParameter(CLASSROOM_NO, adVarChar, adParamInput, 50) cmd.Parameters.Append (CLASSROOMNO) cmd(CLASS_NO) = txtClassno.Text cmd(GRADE) = comboGrade.Text cmd(DIRECTOR) = txtDirector.Text cmd(CLASSROOM_NO) = txtClassroom.Text Set mrc = cmd.Execute cmd.Parameters.Delete (CLASS_NO) cmd.Parameters.Delete (GRADE) cmd.Parameters.Delete (DIRECTOR) cmd.Parameters.Delete (CLASSROOM_NO) MsgBox 添加班级信息成功!, vbOKOnly + vbExclamation, 添加班级信息 End Sub (2) 查询学生成绩模块的部分代码: Private Sub cmdInquire_Click() Dim txtSQLAs String Dim MsgText As String Dim dd(4)As Boolean Dim mrc AsADODB.Recordset txtSQL = select * from RESULT_INFO where If Check1(0).Value Then If Trim(txtSID.Text) = Then sMeg = 学号不能为空 MsgBox sMeg, vbOKOnly + vbExclamation, 警告 txtSID.SetFocus Exit Sub Else If Not IsNumeric(Trim(txtSID.Text) Then MsgBox 请输入数字!, vbOKOnly + vbExclamation, 警告 Exit Sub txtSID.SetFocus End If dd(0) = True txtSQL = txtSQL & student_ID = & Trim(txtSID.Text) & End If End If If Check1(1).Value Then If Trim(txtName.Text) = Then sMeg = 姓名不能为空 MsgBox sMeg, vbOKOnly + vbExclamation, 警告 txtName.SetFocus Exit Sub Else dd(1) = True If dd(0) Then txtSQL = txtSQL & and student_Name = & txtName.Text & Else txtSQL = txtSQL & student_Name = & txtName.Text & End If End If End If If Check1(2).Value Then If Trim(txtCourse.Text) = Then sMeg = 课程不能为空 MsgBox sMeg, vbOKOnly + vbExclamation, 警告 txtCourse.SetFocus Exit Sub Else dd(2) = True If dd(0) Or dd(1) Then txtSQL = txtSQL & and course_Name = & txtCourse.Text & Else txtSQL = txtSQL & course_Name = & txtCourse.Text & End If End If End If If Not (dd(0) Or dd(1) Or dd(2) Or dd(3) Then MsgBox 请设置查询方式!, vbOKOnly + vbExclamation, 警告 Exit Sub End If txtSQL = txtSQL & order by student_ID Set mrc = ExecuteSQL(txtSQL, MsgText) With myflexgrid .Rows = 2 .CellAlignment = 4 .TextMatrix(1, 0) = 考试编号 .TextMatrix(1, 1) = 学号 .TextMatrix(1, 2) = 姓名 .TextMatrix(1, 3) = 班号 .TextMatrix(1, 4) = 课程名称 .TextMatrix(1, 5) = 分数 Do While Not mrc.EOF .Rows = .Rows + 1 .CellAlignment = 4 .TextMatrix(.Rows - 1, 0) = mrc.Fields(0) .TextMatrix(.Rows - 1, 1) = mrc.Fields(1) .TextMatrix(.Rows - 1, 2) = mrc.Fields(2) .TextMatrix(.Rows - 1, 3) = mrc.Fields(3) .TextMatrix(.Rows - 1, 4) = mrc.Fields(4) .TextMatrix(.Rows - 1, 5) = mrc.Fields(5) mrc.MoveNext Loop End With mrc.Close End Sub (3) 修改课程信息部分代码: Private Sub cancelCommand_Click() If Not mcclean Then Frame2.Enabled = True firstCommand.Enabled = True previousCommand.Enabled = True nextCommand.Enabled = True lastCommand.Enabled = True txtCourseno.Enabled = False txtCoursename.Enabled = False comboCoursetype.Enabled = False txtCoursedes.Enabled = False mrc.Bookmark = myBookmark Call viewData Else MsgBox 什么都没有修改,不需要取消!, vbOKOnly + vbExclamation, 警告 End If End Sub Private Sub deleteCommand_Click() myBookmark = mrc.Bookmark str2$ = MsgBox(是否删除当前记录?, vbOKCancel, 删除当前记录) If str2$ = vbOK Then mrc.MoveNext If mrc.EOF Then mrc.MoveFirst myBookmark = mrc.Bookmark mrc.MoveLast mrc.Delete mrc.Bookmark = myBookmark Call viewData Else myBookmark = mrc.Bookmark mrc.MovePrevious mrc.Delete mrc.Bookmark = myBookmark Call viewData End If Else mrc.Bookmark = myBookmark Call viewData End If End Sub Private Sub editCommand_Click() mcclean = False Frame2.Enabled = False firstCommand.Enabled = False previousCommand.Enabled = False nextCommand.Enabled = False lastCommand.Enabled = False txtCourseno.Enabled = True txtCoursename.Enabled = True comboCoursetype.Enabled = True txtCoursedes.Enabled = True comboCoursetype.AddItem 必修 comboCoursetype.AddItem 考查 myBookmark = mrc.Bookmark End Sub Private Sub firstCommand_Click() mrc.MoveFirst Call viewData End Sub Private Sub previousCommand_Click() mrc.MovePrevious If mrc.BOF Then mrc.MoveLast End If Call viewData End Sub Private Sub updateCommand_Click() Dim txtSQLAs String Dim MsgText As String Dim mrcc AsADODB.Recordset If mcclean Then MsgBox 请先修改课程信息, vbOKOnly + vbExclamation, 警告 Exit Sub End If If Not Testtxt(txtCourseno.Text) Then MsgBox 请输入课程编号!, vbOKOnly + vbExclamation, 警告 txtCourseno.SetFocus Exit Sub End If If Not IsNumeric(Trim(txtCourseno.Text) Then MsgBox 课程编号请输入数字!, vbOKOnly + vbExclamation, 警告 txtCourseno.SetFocus Exit Sub End If If Not Testtxt(txtCoursename.Text) Then MsgBox 请输入课程名称!, vbOKOnly + vbExclamation, 警告 txtCoursename.SetFocus Exit Sub End If If Not Testtxt(comboCoursetype.Text) Then MsgBox 请选择课程类型!, vbOKOnly + vbExclamation, 警告 comboCoursetype.SetFocus Exit Sub End If If Not Testtxt(txtCoursedes.Text) Then MsgBox 请输入课程描述信息!, vbOKOnly + vbExclamation, 警告 txtCoursedes.SetFocus Exit Sub End If mrc.Delete txtSQL = select * from course_Info where course_No = & Trim(txtCourseno.Text) & Set mrcc = ExecuteS

温馨提示

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

评论

0/150

提交评论