当前位置:文档之家› 学生信息查询系统-基本信息

学生信息查询系统-基本信息

学生信息查询系统-基本信息
学生信息查询系统-基本信息

《数据库技术及应用》课程设计报告

姓名:陆俊

班级:H1001

学号:09

指导老师:陈群贤

2012年6月14日

目录

一、概述 (1)

1.1 开发背景 (2)

二、需求分析 (3)

2.1 框架分析 (3)

2.2 功能需求 (3)

2.3 系统功能清单 (4)

2.4 数据流图 (4)

2.5 数据字典 (4)

三、概念模型设计 (5)

3.1 系统划分 (6)

3.2 系统功能模块结构图 (6)

3.3 系统E-R图 .................................................................. 错误!未定义书签。

四、逻辑模型设计 (8)

五、应用程序设计 (10)

5.1 主程序的设计 (10)

5.2 登录界面的设计 (10)

5.3 主界面的设计 (10)

六、课程设计心得体会 (21)

七、参考文献 (22)

一、概述

1.1 开发背景

随着数据库应用技术的飞速发展,各种信息储存和信息查询也用上了计算机技术。为了解决在学生人数众多管理不便的情况下编写该系统解决教务处对学生信息的管理。同时方便学生对个人信息的查询。该系统利用了数据库管理功能,对学生信息建立了档案,可以进行成绩输入和成绩查询两个功能。信息输入界面和查询界面简单易懂,方便用户输入信息和查询信息。

系统的功能取决开用户的需求。随着科技进步和信息时代的到来,教育的普及程度起来起高,学校的人数也在迅速的增长,怎样的管理好成千上万的学生,已经成为一个学校的管理者必须面对的问题。编写本报告的目的就是用最少的代价,尽可能短的时间内确定问题是否能够解决,通过对学校的一些管理软件的调研分析,发现了一些不足,所以拟做此系统,使学生信息的管理更加准确,安全和快捷。

学校作为一个信息大量存储的地方,每年都有大量的新生入学,尤其是近几年高校生源的持续扩招,使得用户对有关信息的查询十分繁琐。面对高校信息量不断增长的问题,很多学校都选择了在学生信息管理中引入计算机管理系统,而学生信息管理中的查询功能又必不可少。因此一个好的学生信息查询系统,对于任何一所大学来说都是非常需要的。

在本次试验中包括的模块有:按班级号查询学生信息模块、按专业名和课程名查询模块、按专业查询学生人数模块、修改密码模块、四个模块将分工来实现,每人负责一个模块,工作涉及到的内容用下面的关系模式表示。

学生基本信息(学号、姓名、性别、出生日期、入学时间、班级)

学生班级信息(学号、班级、班长、指导老师、院系)

学生院系信息(学号、院系、人数、副院长、院长)

学生奖罚信息(学号、姓名、类型、详细、奖罚时间、办理时间、办理人员)

二、需求分析

2.1 框架分析

1 登录界面

可以点击:登陆、取消;可以选择用户类型来登陆查询信息。

2 主界面

通过三个交互式按钮来实现信息添加、信息修改和信息删除;以及两个可选择查询方式查询需要查询的内容。

3 层次划分

在我们的学生信息查询系统中,采用了三层架构设计模式。

三层架构是基于模块化程序设计的思想,为实现分解应用程序的需求,而逐渐形成的一种标准模式的模块划分方法。

此模型将应用程序划分为:用户界面层、信息逻辑层、数据访问层三个层次。

用户界面层:负责处理用户的输入和向用户输出,但并不负责解释其含义。有时候出于对效率的考虑,这一层可能会在向上传输用户输入之前进行合法性验证。

信息逻辑层:这一层是用户界面层与数据访问层的纽带,它根据用户界面层传来的数据进行相应的信息逻辑操作并把结果返回给前端界面显示。

数据访问层:负责实际的数据存储和检索,它建立实际的数据库连接,根据用户的请求执行检索或更新数据库操作。

2.2 功能需求

目前一些学校对于学生的学生信息查询还处于人工管理的阶段,管理大量学生的档案信息,不但工作繁琐而且效率低下,如果利用现代化的查询方式来查询学生的基本信息的话,就会简单方便地多。现在各大高校已经普遍配备了微机,而且用于学生管理的微机的配置在存储量、速度方面都能满足数据库运行的要求,故在计算机硬件方面不需要太大的花销。

本系统的设计是在Windows XP中文版环境下,使用Visual Studio 9.0与Microsoft SQL Serve 2005开发的。它是可以运行于 Windows 2000及XP相关平台的数据库开发系统。isual Studio 9.0与Microsoft SQL Serve 2005不仅可以简化数据库管理,而且应用程序的开发流程更为合理,它使组织数据、定义数据库规则和建立应用程序等工作变得简单易行,利用可视化的设计工具和向导,用户可以快速地创建表单、查询等。

如果登陆本系统的用户是学生,主要实现对学生本人自己的基本信息、班级信息、院系信息、奖罚信息等信息的查询;如果登陆本系统的用户是学生,主要实现对学生基本信息、班级信息、院系信息、奖罚信息等信息的添加、删除、修改、查询;可以实现以下几个方面的功能的查询:

(1)学生基本信息查询:查询每个班级的学生的基本信息。

(2)学生班级信息查询:查询学生的所在班级信息。

(3)学生院系信息查询:查询学生的所在院系信息。

(4)学生奖罚信息查询:查询学生的获奖处分信息。

注:管理员可以对以上四项信息做“添加”、“删除”、“修改”、“查询”。

2.3 系统功能清单

前台模块 后台模块 ① 学生登陆 ② 管理员登陆

① 信息查询显示 ② 信息更新显示

表 2-1 系统功能清单

2.4 数据流图

图 2-1 数据流图

2.5 数据字典

用户

管理员

学生

删除

添加

修改

查询

查询

名字:学生基本信息 别名:

描述:反映出学生的基本信息情况

定义:学生基本信息=姓名+年龄+性别+学号+班级+电话入学时间+出生年月+家庭地址

+备注

学生:学生信息查询

管理员:学生信息添加、学生信息删除、学生信息修改、学生信息查询

名字:学生基本信息

别名:

描述:反映出学生的基本信息情况

定义:学生基本信息=姓名+年龄+性别+学号+班级+电话入学时间+出生年月+家庭地址+备注

学生:学生信息查询

管理员:学生信息添加、学生信息删除、学生信息修改、学生信息查询

名字:学生基本信息

别名:

描述:反映出学生的基本信息情况

定义:学生基本信息=姓名+年龄+性别+学号+班级+电话入学时间+出生年月+家庭地址+备注

学生:学生信息查询

管理员:学生信息添加、学生信息删除、学生信息修改、学生信息查询

名字:学生基本信息

别名:

描述:反映出学生的基本信息情况

定义:学生基本信息=姓名+年龄+性别+学号+班级+电话入学时间+出生年月+家庭地址+备注

学生:学生信息查询

管理员:学生信息添加、学生信息删除、学生信息修改、学生信息查询

三、概念模型设计

3.1 系统划分

3.1.1 学生基本信息

学生基本信息的查询,登录用户为学生时,成功登陆后直接显示数据库表里的所有信息,学生只能在弹出的信息显示框里做某个学号的学生或者某个姓名的学生的信息查询显示,而管理员可以做所有信息的添加、删除、修改、查询。

3.1.2 学生班级信息

学生班级信息的查询,登录用户为学生时,成功登陆后直接显示数据库表里的所有信息,学生只能在弹出的信息显示框里做某个学号的学生或者某个班级的学生的信息查询显示,而管理员可以做所有信息的添加、删除、修改、查询。

3.1.3 学生院系信息

学生基本信息的查询,登录用户为学生时,成功登陆后直接显示数据库表里的所有信息,学生只能在弹出的信息显示框里做某个学号的学生或者某个院名的学生的信息查询显示,而管理员可以做所有信息的添加、删除、修改、查询。

3.1.4 学生奖罚信息

学生基本信息的查询,登录用户为学生时,成功登陆后直接显示数据库表里的所有信息,学生只能在弹出的信息显示框里做某个学号的学生的信息查询显示,而管理员可以做所有信息的添加、删除、修改、查询。

3.2 系统功能模块结构图

学生信息查询系统

学生班级信息学生院系信息

3.5 系统E-R 图

1. 局部E-R 图

M

1 1 1

M 1

2. 全局E-R 图

1

M 1

1 1 1 1

M 1 1

1 1

用户

学生

登陆

管理员

管理

学籍信息

用户

学生

登陆

管理员

管理

学籍信息

属于

班级信息

属于

属于 院系信息 奖罚信息

四、逻辑模型设计

数据库中包括系统用户登录表、学生基本信息表、学生班级信息表、学生院系信息表、学生奖罚信息表,各表结构设计如下。

各个数据库表设计如下:

1、基本信息表

基本信息表用来存放所有学生的基本信息,该表被命名为t_student.dbf,其结构如表3.1所示。

表3.1 学生基本信息表结构

编号字段名字段类型字段长度作用

1 学号字符型10 学生学号

2 姓名字符型10 学生姓名

3 性别字符型10 学生性别

4 专业字符型10 学生专业

5 出生日期字符型10 学生的出生年月

6 班级字符型10 学生的高考分数

7 入学时间字符型10 学生的入学时间

2、班级信息表

学生表用来存放学生的基本数据,相当于学校的学生档案,该表被命名为CLASS.DBF,其结构如表3.2所示。

表3.2 学生班级信息表结构

编号字段名字段类型字段长度作用

1 学号字符型10 学生学号

2 班级字符型10 学生所在班级

3 班长字符型10 学生所在班级班长

4 辅导员字符型10 学生班级辅导员

5 院系日期型10 学生班级所在院系

3、院系信息表

专业表用来存放学校中所有学生所学专业的基本信息,包括专业名、专业号、科类、学制、学位四个字段,该表在数据库中被命名为DEPARTMENT.DBF,其结构如表3.3所示。

表3.3 学生院系信息表结构

编号字段名字段类型字段长度作用

1 学号字符型10 学生的学号

2 院系字符型10 学生所在院系

3 人数字符型10 学生所在院人数

4 副院长字符型10 学生所在院院长

5 院长字符型10 学生所在院院长

4、奖罚信息表

存放教学管理系统未来操作员的信息,包括姓名、密码等。将来系统运行时,必须先“登录”,核对操作员的姓名和密码,否则只有通过登录才能进入本

系统。该表被命名为rp_stu.dbf,其结构如表3.4所示。

表3.4 学生奖罚信息表结构

编号字段名字段类型字段长度作用

1 学号字符型10 学生的学号

2 奖罚类型字符型10 学生是奖是罚

3 详细字符型10 学生奖罚详情

4 奖罚时间字符型10 奖罚具体时间

5 办理时间字符型10 奖罚办理时间

6 办理人员字符型10 班里的相关人员

表3.5 系统用户表结构

编号字段名字段类型字段长度作用

1 id 字符型10 用户名称

2 psw 字符型10 用户密码

五、应用程序设计

5.1 主程序的设计

Public Class AddModifyForm

Public opType As Integer' 1表示添加2 表示修改

Dim sql As String

Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click

If opType = 1 Then

add()

Else

modify()

End If

End Sub

Private Sub btnConcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConcel.Click

Me.Close()

End Sub

Sub add()

If tbID.Text.Trim = ""Then

MessageBox.Show("学号不能为空!")

Exit Sub

End If

If tbName.Text.Trim = ""Then

MessageBox.Show("姓名不能为空!")

Exit Sub

End If

sql = "select * from t_student where id ='" & tbID.Text & "'"

m_dal.DataSetFill(sql, "t_search_stu")

m_dal.DataTableFill("t_search_stu")

If m_dal.dt.Rows.Count > 0 Then

MessageBox.Show("学号重复,请更换学号!")

Exit Sub

End If

sql = " insert into

t_student(id,name,sex,birthday,major,_class,start_year,psw)"

sql += " values('" & tbID.Text & "','" & tbName.Text & "','" & cmSex.Text & "','" & tbBirthday.Text & "','" & tbMajor.Text & "','" & tbClass.Text & "','" & tbStartTime.Text & "','" & tbID.Text & "')"

m_dal.InsertDelUpdateRecord(sql)

MessageBox.Show("添加成功!", "提示")

sql = "select id ,name,sex ,birthday ,major ,_class ,start_year from

t_student"

m_dal.DataSetFill(sql, "t_stu")

MainForm.DataGridView1.DataSource = m_dal.ds.Tables("t_stu")

Me.Close()

End Sub

Sub modify()

If tbName.Text.Trim = ""Then

MessageBox.Show("姓名不能为空!")

Exit Sub

End If

sql = " update t_student "

sql += " set name='" & tbName.Text & "',sex='" & cmSex.Text &

"',birthday='" & tbBirthday.Text & "',major='" & tbMajor.Text & "',_class='" & tbClass.Text & "',start_year='" & tbStartTime.Text & "'"

sql += " where id='" & tbID.Text & "'"

m_dal.InsertDelUpdateRecord(sql)

MessageBox.Show("修改成功!", "提示")

sql = "select id ,name,sex ,birthday ,major ,_class ,start_year from

t_student"

m_dal.DataSetFill(sql, "t_stu")

MainForm.DataGridView1.DataSource = m_dal.ds.Tables("t_stu")

Me.Close()

End Sub

Private Sub AddModifyForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

If opType = 2 Then

Me.Text = "修改学生信息"

tbID.Enabled = False

tbID.Text = m_id

tbName.Text = m_name

cmSex.Text = m_sex

tbBirthday.Text = m_birthday

tbClass.Text = m_class

tbMajor.Text = m_major

tbStartTime.Text = m_startYear

End If

End Sub

End Class

VB类代码:

Public Class DAL

Public connstr As String = "Data Source = s90309;Initial Catalog = 学生信息;Integrated Security = SSPI;"

Public cn As System.Data.SqlClient.SqlConnection

Public da As System.Data.SqlClient.SqlDataAdapter

Public ds As New DataSet

Public dt As New DataTable

Public cmd As System.Data.SqlClient.SqlCommand

'******************************************************************** ********************

'连接数据库

Public Function ConnectionOpen() As Boolean

cn = New System.Data.SqlClient.SqlConnection(connstr)

Try

cn.Open()

Catch ex As System.Data.SqlClient.SqlException

MsgBox(ex.Message.ToString())

End Try

End Function

'断开数据库的连接

Public Function ConnectionClose() As Boolean

Try

cn.Close()

Catch ex As System.Data.SqlClient.SqlException

MsgBox(ex.Message.ToString())

End Try

End Function

'插入记录、删除记录、更新记录到指定的数据库->数据表

Public Function InsertDelUpdateRecord(ByVal cmdText As String) As Boolean Try

cmd = New System.Data.SqlClient.SqlCommand(cmdText, cn) '指定sql命令及该命令用于哪一个数据库连接

cmd.ExecuteNonQuery()

Catch ex As Exception

MsgBox(ex.Message.ToString())

End Try

End Function

'填充数据集,他会根据cmdtext参数说指定的查询返回数据库里特定的表Public Function DataSetFill(ByVal cmdText As String, ByVal tabName As String) As Boolean

Try

If ds.Tables.Contains(tabName) Then

ds.Tables(tabName).Clear()

End If

cmd = New System.Data.SqlClient.SqlCommand(cmdText, cn) '指定sql查询命令及该命令用于哪一个数据库连接

da = New System.Data.SqlClient.SqlDataAdapter(cmd)

da.Fill(ds, tabName) '表名可以映射为数据库中实际的表名称,但是他和数据库实际的表名称不是一回事

Catch ex As Exception

MsgBox(ex.Message.ToString())

End Try

End Function

'调用存储过程

Public Function ExecProc(ByVal procName As String, ByVal tabName As String) As Boolean

Try

cmd = New System.Data.SqlClient.SqlCommand(procName, cn)

https://www.doczj.com/doc/be16028810.html,mandType = CommandType.StoredProcedure

da = New System.Data.SqlClient.SqlDataAdapter(cmd)

da.Fill(ds, tabName)

Catch ex As Exception

MsgBox(ex.Message.ToString())

End Try

End Function

'这个基本不用,因为可以直接通过ds来调用

Public Function DataTableFill(ByVal index As Integer) As Boolean Try

dt = ds.Tables(index)

Catch ex As Exception

MsgBox(ex.Message.ToString())

End Try

End Function

'这个基本不用,因为可以直接通过ds来调用

Public Function DataTableFill(ByVal name As String) As Boolean Try

dt = ds.Tables(name)

Catch ex As Exception

MsgBox(ex.Message.ToString())

End Try

End Function

'释放资源

Public Function DBDispos() As Boolean

Try

cn.Dispose()

'da.Dispose()

ds.Dispose()

dt.Dispose()

Catch ex As Exception

MsgBox(ex.Message.ToString())

End Try

End Function

End Class

Public Class Login

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

m_dal.ConnectionOpen()

rb_stu.Select()

End Sub

Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click

Dim datable As New DataTable

Dim psw As String

Dim sql As String

If rb_stu.Checked Then

sql = "select * from t_student where id = '" & tbID.Text & "'"

userType = "学生"

Else

sql = "select * from t_admin where id = '" & tbID.Text & "'"

userType = "管理员"

End If

m_dal.DataSetFill(sql, "t_user")

datable = m_dal.ds.Tables("t_user")

If datable.Rows.Count = 0 Then

MessageBox.Show("用户不存在!")

Else

psw = datable.Rows(0).Item("psw")

If psw <> tbPSW.Text Then

MessageBox.Show("密码错误!")

Else

MessageBox.Show("登陆成功!")

Me.Hide()

MainForm.Show()

End If

End If

End Sub

Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click

m_dal.ConnectionClose()

End

End Sub

End Class

Public Class MainForm

Dim sql As String

Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

If userType = "学生"Then

btnAdd.Visible = False

btnDel.Visible = False

btnMod.Visible = False

End If

sql = "select id ,name,sex ,birthday ,major ,_class ,start_year from

t_student"

m_dal.DataSetFill(sql, "t_stu")

DataGridView1.DataSource = m_dal.ds.Tables("t_stu")

DataGridView1.Columns(0).HeaderText = "学号"

DataGridView1.Columns(1).HeaderText = "姓名"

DataGridView1.Columns(2).HeaderText = "性别"

DataGridView1.Columns(3).HeaderText = "生日"

DataGridView1.Columns(4).HeaderText = "专业"

DataGridView1.Columns(5).HeaderText = "班级"

DataGridView1.Columns(6).HeaderText = "入学时间"

End Sub

Private Sub MainForm_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing End

End Sub

Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

End Sub

Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click

sql = "select id ,name,sex ,birthday ,major ,_class ,start_year from t_student where id<>'' "

If CheckBoxID.Checked And tbID.Text.Trim <> ""Then

sql += " and id like '" & tbID.Text.Trim & "%'"

End If

If CheckBoxName.Checked And tbName.Text.Trim <> ""Then

sql += " and name like '" & tbName.Text.Trim & "%'"

End If

m_dal.DataSetFill(sql, "t_stu")

DataGridView1.DataSource = m_dal.ds.Tables("t_stu")

End Sub

Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click

AddModifyForm.opType = 1

AddModifyForm.Show(Me)

End Sub

Private Sub btnMod_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMod.Click

Dim index As Integer

index = DataGridView1.CurrentCell.RowIndex

m_id = DataGridView1.Rows(index).Cells(0).Value

m_name = DataGridView1.Rows(index).Cells(1).Value

m_sex = DataGridView1.Rows(index).Cells(2).Value

m_birthday = DataGridView1.Rows(index).Cells(3).Value

m_major = DataGridView1.Rows(index).Cells(4).Value

m_class = DataGridView1.Rows(index).Cells(5).Value

m_startYear = DataGridView1.Rows(index).Cells(6).Value

AddModifyForm.opType = 2

AddModifyForm.Show(Me)

End Sub

Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click

Dim index As Integer

index = DataGridView1.CurrentCell.RowIndex

Dim result As System.Windows.Forms.DialogResult

result = MessageBox.Show("确定删除", "提示",

System.Windows.Forms.MessageBoxButtons.YesNo)

If result = System.Windows.Forms.DialogResult.Yes Then

m_id = DataGridView1.Rows(index).Cells(0).Value

sql = " delete from t_student where id ='" & m_id & "'"

m_dal.InsertDelUpdateRecord(sql)

DataGridView1.Rows.RemoveAt(index)

MessageBox.Show("删除成功!", "提示")

End If

End Sub

End Class

VB类代码:

Module Module1

Public m_dal As New DAL

Public userType As String

Public m_id As String

Public m_name As String

Public m_sex As String

Public m_birthday As String

Public m_major As String

Public m_class As String

Public m_startYear As String End Module

5.2 登录界面的设计

5.3 主界面的设计

学生登陆:

相关主题
文本预览
相关文档 最新文档