范文例文 >> 论文中心 >> 计算机论文参考 >> 数据库
数据库课程设计             

数据库课程设计

[ 作者:匿名 | 转贴自:本站原创]

 

 

 

《学生管理系统课程设计》

计算机应用班

汪鹏

200602220028


《学生信息管理系统》

 

一. 学生管理系统功能简介:

 

1. 新学年一到,新生去注册,那么操作员可以接受新生的注册信息删除旧的信息。学生基本信息就包括学生的姓名.学号.性别.出生年月.籍贯等等。

 

2. 用户需要根据自己的帐号和密码进入系统,浏览学生信息.修改学生信息.删除学生信息.查询学生信息等操作。

 

其模块图如下:

 

学生信息管理系统

 

 

 

 

学生信息管理模块

 

 

用户信息管理模块

 

 

 

 

二. 学生管理系统模块设计:

 

学生管理系统包括:登陆窗体(Frmlogin).主窗体(Frmmain).学生信息操作窗体(Frmoption).学生信息查询窗体(Frmsearch).学生信息添加窗体(Frmadd).用户添加窗体(Frmaddu).用户信息操作浏览窗体 (Frmumanage).修改密码窗体(Frmchangmm).数据环境设计器(Datdenvironment1).数据报表设计器(DataReport1)等。

 

三.数据库设计:

 

1.需求分析:

 

用户的需求具体体现在各种信息的提供.保存.更新.和查询,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据.数据结构以及数据处理的流程,组成一份详细的数据字典,为后面的具体设计打下基础。 在仔细分析调查有关系统需求的基础上,将得到如图2.1所示的本系统所处理的数据流程。

 


针对学生信息管理系统业务的需要,通过对学生信息管理过程的内容和数据流程分析。设计如下所示的数据项和数据结构:

1 学生信息,包括的数据项有:yh(学号).xm(姓名).yx(院系).zy(专业).xb(性别).sr(生日).bj(班级).nj(年级)..jg(籍贯).picture(照片)

2. 用户信息,包括的数据项有:uname(用户名).pwd(口令).qx(权限)..rname(真实姓名).email(电子邮箱).adress(家庭住址)

3. 院系,包括的数据项有:yx(院系)

4.专业,包括的数据项有:zy(专业)

5.班级,包括的数据项有:bj(班级)

6.年级,包括的数据项有:nj(年级) 2.

概念设计:

 

完成需求分析后,弄明白用户的需求。将需求分析得到的用户需求抽象为信息结构即概念模型,画出系统抽象的E-R图,如图2.2。


以下E-R图为方便理解,换用汉字来解释,数据库的字段以后面的逻辑设计结构为准.

 

逻辑结构设计:

 

现在要将在需求设计阶段设计的数据结构及数据项设计成Microsoft Access数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。 根据数据库的需求分析和概念结构设计,设计了名为wangpeng.mdb的数据库。数据库由下面的表组成,各个表格的设计结果如下面表格所示。每个表格表示数据库中的一个表。 表3.1 students 学生基本信息表

 

列名

数据类型

可否为空

说明

Xh

文本

Not Null

学号

Xm

文本

Null

姓名

Yx

文本

Null

院系

Zy

文本

Null

专业

Xb

文本

Null

性别

Sr

日期/时间

Null

生日

Bj

文本

Null

班级

Nj

文本

Null

年级

Jg

文本

Null

籍贯

picture

OLE 对象

Null

照片

 

表3.2 yonghu 用户基本信息表

列名

数据类型

可否为空

说明

Uname

文本

Not Null

用户名

Pwd

文本

Null

口令

Qx

文本

Null

权限

Rname

文本

Null

真实姓名

Email

文本

Null

电子邮箱

Adress

文本

Null

家庭住址

 

表 3.3 yx 院系基本信息表

 

列名

数据类型

可否为空

说明

yx

文本

Not Null

院系

 

表 3.4 zy 专业基本信息表

 

列名

数据类型

可否为空

说明

zy

文本

Not Null

专业

 

表 3.5 bj 班级基本信息表

 

列名

数据类型

可否为空

说明

bj

文本

Not Null

班级

 

表 3.6 nj 年级基本信息表

 

列名

数据类型

可否为空

说明

nj

文本

Not Null

年级

 

四.系统具体实现

 

经过前面的需求分析、概念结构分析和逻辑结构分析以后,我们了解了系统的功能。下面我就在计算机用vb和access完成系统的功能。

(1).立和关系的设置: 各个表的建立: 在Access中用“使用设计器创建表“对各个表的字段进行设计,并填写上相应的值

(2).的设置: 各个功能模块的具体的实现过程:

 

1.主窗体:创建主窗体的菜单

主窗体的部分代码为:

Private Sub addu_Click() ‘显示“学生信息添加“窗体

Frmaddu.Show

End Sub

Private Sub changepw_Click()‘显示学生“修改密码“窗体

Frmchangmm.Show

End Sub

Private Sub end_Click() ‘结束菜单

End

End Sub

Private Sub excel_Click() ‘打印报表

DataReport1.Show

End Sub

Private Sub fileop_Click() ‘档案操作窗体显示

Frmoption.Show

End Sub

Private Sub findfile_Click() ‘档案查询窗体显示

Frmsearch.Show

End Sub

Private Sub Form_Load() ‘显示帮助信息

App.HelpFile = App.Path & "\文本.chm"

End Sub

Private Sub helpmsg_Click()

SendKeys "{F1}" '发送击键到活动窗口

End Sub

2. 学生信息和用户信息操作模块的设计 学生信息操作模块有以下功能:添加、修改、删除、第一条.最后一条.等浏览功能。 用户信息和学生信息操作的功能和实现方式相似,这里以学生信息操作模块为例子说明。

(1)加按钮的就是调出添加模块的窗体:

Private Sub Cndadd_Click()

Frmadd.Show Unload Me

End Sub

(2)修改按钮的实现过程 Private Sub Cndxiugai_Click() '修改记录

Conn.ConnectionString = Connstring Conn.OpenSet Cmd.ActiveConnection =

'如果姓名改变了就修改姓名

If Txtxm.Text <> Adodc1.Recordset.Fields(1) Then

Cmd.CommandText = "update students set xm=" + Trim$(Frmoption.Txtxm.Text) + "where xh='"+Trim$(Frmoption.Txtxh.Text) + "'"

Cmd.Execute Adodc1.Refresh

End If

其他的信息都是类似的代码

(3)除按钮的实现过程

删除的代码如下:

Private Sub Cnddel_Click() '删除记录

Dim a As Integer

Conn.ConnectionString = Connstring

Conn.Open

Set Cmd.ActiveConnection = Conn

a = MsgBox("您确定要删除吗", vbQuestion + vbOKCancel + vbDefaultButton2, "系统提示")

If a = vbOK Then

Cmd.CommandText = "delete from students where xh='" + Trim$(Frmoption.Txtxh.Text) + "'"

Cmd.Execute

MsgBox "删除成功"

Adodc1.Refresh

End If

If a = vbCancel Then

Conn.Close

Exit Sub

End If

Conn.Close

End Sub

(4) 浏览功能的实现过程

浏览包括: 上一条、下一个、最后一个、第一个 具体代码如下:

Private Sub Cndfirst_Click() '第一个记录

Adodc1.Recordset.MoveFirst

End Sub

Private Sub Cndlast_Click() '最后一条记录

Adodc1.Recordset.MoveLast

End Sub

Private Sub Cndnext_Click() '下一条记录

Adodc1.Recordset.MoveNext

If Adodc1.Recordset.EOF = True Then

Adodc1.Recordset.MoveFirst

End If

End Sub

Private Sub Cndprveious_Click() '上一条

Adodc1.Recordset.MovePrevious

If Adodc1.Recordset.BOF = True

Then Adodc1.Recordset.MoveLast

End If

End Sub

3. 学生信息查询模块的设计 查询模块包括:查询和全体查询。 查询代码:

Private Sub Cmdfind_Click()

Dim Command As String

Dim i As Integer Dim getcmd(7) As String

'将你要搜索的依据传输给数组

getcmd(0) = " xm like '%" + Trim$(Txtxm.Text) + "%'"

getcmd(1) = " xh like '%" + Trim$(Txtxh.Text) + "%'"

getcmd(2) = " xb like '%" + Trim$(Cmbxb.Text) + "%'"

getcmd(3) = " zy like '%" + Trim$(Cmbzy.Text) + "%'"

getcmd(4) = " yx like '%" + Trim$(Cmbyx.Text) + "%'"

getcmd(5) = " bj like '%" + Trim$(Cmbbj.Text) + "%'"

getcmd(6) = " nj like '%" + Trim$(Cmbnj.Text) + "%'"

'将数组依次传输给command

Command = ""

For i = 0 To 6

If Check1(i).Value = 1 Then

If Command = "" Then

Command = getcmd(i)

Else

Command = Command & "and" & getcmd(i)

End If

End If

Next i

'如果用户没有输入相应的信息,显示全体

If Command = "" Then

Call Cmdall_Click

Exit Sub

End If

'创建新的数据源并且与datagride连接上

Sql = "select * from students where " & Command

Adodc1.RecordSource = Sql

Adodc1.Refresh

Set DataGrid3.DataSource = Adodc1 End Sub

全体查询的代码如下:

 

Private Sub Cmdall_Click()

Dim Order As String Order = "select * from students "

Adodc1.RecordSource = Order

Adodc1.Refresh Set DataGrid3.DataSource = Adodc1

End Sub

4. 用户信息添加和学生信息添加模块的设计 下面以学生信息添加的添加姓名为例子说明:

Dim a As Integer '学号输入不能为空

If Trim$(Txtxh.Text) = "" Then

MsgBox "学号不能为空", vbExclamation

Txtxh.Text = "" Txtxh.SetFocus

Exit Sub

End If '生日若不为空判断格式的正确性

If Txtsr.Text <> "" And Not IsDate(Txtsr.Text) Then

MsgBox "出生日期应按日期格式(yyyy-mm-dd)输入!", vbExclamation

Txtsr.Text = "" Txtsr.SetFocus

Exit Sub

End If

Conn.ConnectionString = Connstring Conn.Open '检查学号是不是重复

Set Rs.ActiveConnection = Conn Rs.CursorLocation = adUseClient '定义游标类型

Rs.Open "select * from students where xh ='" & Trim$(Txtxh.Text) & "'", Conn, adOpenStatic, adLockReadOnly

If Rs.RecordCount > 0 Then MsgBox "请重新输入,学号重复", vbExclamation

Txtxh.Text = "" Txtxh.SetFocus

Conn.Close

Exit Sub

End If '向数据库添加信息

Set Cmd.ActiveConnection = Conn

Cmd.CommandText = "insert into students(xh) values (" & Trim$(Frmadd.Txtxh.Text) & ")" Cmd.Execute

'假如姓名不为空就加入数据库

If Txtxm.Text <> "" Then

Cmd.CommandText = "update students set xm='" + Txtxm.Text + "'" + "where xh='" + Txtxh.Text + "'" Cmd.Execute

End If

5. 密码修改模块的设计 从主窗体读取当前用户的用户名,并赋值给修改密码窗体,然后修改其密码 Private Sub Cmdcon_Click()

Dim Cmd As New ADODB.Command

'判断信息是否输入完整

If Txtnew.Text = "" Or Txtcnew.Text = "" Then

MsgBox "请输入完整信息", vbOKOnly, "系统提示"

Exit Sub

End If

'判断新密码的2次输入是否一致

If Txtnew.Text <> Txtcnew.Text Then

MsgBox "你输入的新密码不一致", vbInformation, "系统提示"

Txtnew.Text = "" Txtcnew.Text = "" Txtnew.SetFocus

Exit Sub

End If '执行密码的修改

Conn.ConnectionString = Connstring Conn.Open

Set Cmd.ActiveConnection = Conn

Cmd.CommandText = " update yonghu set pwd = ' " & Trim(Frmchangmm.Txtnew.Text) & "'" & " where uname = '" & Trim(Frmchangmm.Text1.Text) & "'"

Cmd.Execute

Conn.Close

MsgBox "修改成功", vbInformation, "系统提示"

Unload Me

End Sub

6.报表打印模块的设计 报表首先要用数据环境设计器来把数据表现出来,然后把数据关系导入到数据报表设计器中,再通过程序调出数据报表设计器来,就可以显示了。

Private Sub excel_Click()

DataReport1.Show

End Sub

7. 帮助信息模块的设计 先制作出帮助文件*.chm,然后再编辑程序就可以显示出帮助信息了。

Private Sub Form_Load()

App.HelpFile = App.Path & "\文本.chm"

End Sub

Private Sub helpmsg_Click()

SendKeys "{F1}" '发送击键到活动窗口

End Sub

五. 调试与异常处理

 

调试过程中有很多的错误和bug。这里只说几个典型的错误。

1. 权限的设置中,当窗体被2次打开的话所设置的权限就快失去作用。以前不能用的按钮都转为可用了。 最后在书上看见了一种在Form_load事件中加载的方法:就是在要设置权限的窗体的Form_load事件中控制权限。 Form_load事件

2. “至少有一个参数未指定”的错误

3. 开始我很是害怕这样的错误,后来经过慢慢的修改发现,它不是想象中的那么可怕。 其本质就是数据库里的名字和程序里面的名字不相同,导致了无法添加或者是修改。 解决方法就只有是不断的调试和核对数据库和程序里面的名字是不是相对的。

4. 最后一个就是典型的“要求对象”或“找不到数据方法和成员”

这2个错误就是说窗体上对象的名称和程序里面的不相同,导致了程序没办法进行相应的事件响应;或者是对象没有程序需要的方法,这样的话就只有重新建立新的对象。

六. 结束语

1个多月的编写,终于完成了这个小工程。期间有很多的错误和迷茫,都一个一个的克服了。这少不了老师的指导和个人的努力。至此要特别感谢我的老师,和那些帮助过我的网友。

七. 参考文献

参考文献有:《VB高级教程》,《课程设计有关文档》,《VB数据库设计技巧》 还有就是网上查询等等


2007-06-11 蚌埠学院

 

[1] 


本站资料来源于网络或网友提供,如有不妥之处,请来信说明,我们将及时处理。Email: ckzlnet#126.com (#改为@)

上一篇文章:没有了
下一篇文章:没有了
发表评论 | 告诉好友 | 打印此文 | 关闭窗口
热门文章
 
推荐文章
 
相关文章
· 禁毒作文——铭记历史,远[68]
· 禁毒作文——顽强必将战胜[68]
· 禁毒作文——向毒品宣战[68]
· 禁毒作文——珍爱生命 远离[68]
· 禁毒作文——远离毒品—《[68]
 
· 毕业典礼发言稿(大学生)[2]
· 学习贯彻中纪委禁止谋取不[2]
· 关于“为谋取不正当利益”[4]
· 关于对“不正当利益”的几[2]
· 学习严格禁止利用职务之便[1]
  · 没有相关文章
网友评论 只显示最新10条。评论内容只代表网友观点,与本站立场无关!
    没有任何评论
查看关于此文章的所有评论