数据库课程设计.docx

上传人:b****6 文档编号:4951739 上传时间:2022-12-12 格式:DOCX 页数:22 大小:523.04KB
下载 相关 举报
数据库课程设计.docx_第1页
第1页 / 共22页
数据库课程设计.docx_第2页
第2页 / 共22页
数据库课程设计.docx_第3页
第3页 / 共22页
数据库课程设计.docx_第4页
第4页 / 共22页
数据库课程设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

数据库课程设计.docx

《数据库课程设计.docx》由会员分享,可在线阅读,更多相关《数据库课程设计.docx(22页珍藏版)》请在冰豆网上搜索。

数据库课程设计.docx

数据库课程设计

河南理工大学

计算机科学与技术学院

实习报告

2011—2012学年第一学期

 

实习名称学生选课信息系统

实习地点计算机楼605

实习日期2011.12.26—2012.1.8

学生姓名

学号

专业班级

指导教师

2012年1月9日

目录

一、需求描述3

二、系统分析3

2.1系统功能分析3

2.2E-R图3

三、逻辑结构设计6

3.1E-R图转换6

3.2逻辑结构设计6

四、实现7

4.1表结构7

4.2表实例9

4.3表间关系图11

五、功能模块实现11

六、小结18

一、需求描述

学生选课系统是学校最常使用的管理系统,拥有广阔的市场前景,为了满足学校的需求,我们开发此系统,方便学生和老师选课。

二、系统分析

2.1系统功能分析

学生选课系统的主界面里主要包含4个功能模块:

系统管理,基本信息设置,选课管理,信息查询。

1).系统管理是管理员所做的工作,包括对用户管理(添加删除用户,修改密码),实现用户注销功能,数据库还原与备份,退出系统,修改密码.学生自己也可以修改密码。

2).基本信息设置模块主要是对学生信息,教师信息,课程信息的录入,添加和修改.同时也可以的学生信息,教师信息,课程信息进行查询.

3).选课管理包括学生选课和教师选课,主要实现学生选择自己想要的课程,教师选择自己要交的课程。

4).信息查询模块包括了多种查询方式:

我们设置了学生查询和教师查询。

学生查询可以查看到个人信息(可以修改一部分),课程信息,教师信息,同学信息。

教师查询可以查看个人信息,所教课程信息,所交学生信息。

2.2E-R图

图2.2.1教师信息表E-R图

图2.2.2学生信息表E-R图

图2.2.3课程表E-R图

图2.2.4用户表E-R图

 

图2.2.5教师选课表E-R图

图2.2.6学生选课表E-R图

m

m

nn

mn

图2.2.7学生、教师、课程表间联系E-R图

三、逻辑结构设计

3.1E-R图转换

教师信息表(教师号,姓名,性别,职称,电话,住址,备注)

学生信息表(学号,姓名,性别,生日,院系,年级,专业,电话,住址,备注)

课程信息表(课程号,课程名,学时,学分)

教师选课表(教师选课编号,课程号,教师号)

学生选课表(学生选课编号,学号,课程号,教师号)

用户表(用户名,密码,权限)

3.2逻辑结构设计

选课系统数据库中各个表格的逻辑结构设计结果如下:

字段名

类型

条件

说明

Sno

Char

Primarykey

学号

Sname

char

Notnull

姓名

Ssex

char

性别

Sbirth

datetime

出生日期

Scol

Varchar

院别

Sgra

Varchar

年级

Sspe

Varchar

专业

Stel

Char

联系方式

Saddress

Varchar

地址

Sother

text

备注

表3.2.1学生信息表(student)

字段名

类型

条件

说明

Tno

Char

Primarykey

教师编号

Tname

Char

Notnull

教师姓名

Tsex

Char

性别

Tpos

varchar

职位

Ttel

char

联系方式

Taddress

varchar

地址

Tother

text

备注

表3.2.2教师信息表(teacher)

字段名

类型

条件

说明

Cno

Char

Primarykey

课程号

Cname

varchar

Notnull

课程名

Ctime

Int

学时

Cpoint

int

学分

表3.2.3课程信息表(course)

字段名

类型

条件

说明

TCno

char

Primarykey

教师选课编号

Cno

Char

课程号

Tno

char

教师编号

表3.2.4教师选课表(T-choose)

字段名

类型

条件

说明

SCno

Char

Primarykey

学生选课编号

Sno

Char

学生学号

Cno

Char

课程号

Tno

Char

教师编号

表3.2.5学生选课表(S_choose)

字段名

类型

条件

说明

Uname

Char

Primarykey

用户名

Upwd

Char

Notnull

密码

Urole

Int

Notnull

权限(1表示管理员,2表示教师,3表示学生,4表示操作员)

表3.2.6登录用户表(user_if)

四、实现

4.1表结构

图4.1.1user_if表结构图

图4.1.2course表结构图

图4.1.3s_choose表结构图

图4.1.4student表结构图

图4.1.5t_choose表结构图

图4.1.6teacher表结构图

4.2表实例

图4.2.1user_if表实例图

图4.2.2course表实例图

图4.2.3s_choose表实例图

图4.2.4student表实例图

图4.2.5t_choose表实例图

图4.2.6teacher表实例图

4.3表间关系图

图4.3.1表间关系图

五、功能模块实现

图5.1查询学生信息

PrivateSubSmartNetXpButton1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

DimMsgTextAsString

Dimdd(3)AsBoolean

DimmrcAsADODB.Recordset

DimrsAsBoolean

DimsMegAsString

rs=True

OnErrorResumeNext

txtSQL="select*fromstudentwhere"

IfCheck1.ValueThen

IfTrim(Combo1.Text)=""Then

sMeg="学号不能为空"

MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"

Combo1.SetFocus

ExitSub

Else

dd(0)=True

txtSQL=txtSQL&"Sno='"&Trim(Combo1.Text)&"'"

EndIf

EndIf

IfCheck2.ValueThen

IfTrim(Combo2.Text)=""Then

sMeg="姓名不能为空"

MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"

Combo2.SetFocus

ExitSub

Else

dd

(1)=True

Ifdd(0)Then

txtSQL=txtSQL&"andSname='"&Trim(Combo2.Text)&"'"

Else

txtSQL=txtSQL&"Sname='"&Trim(Combo2.Text)&"'"

EndIf

EndIf

EndIf

IfCheck3.ValueThen

IfTrim(Combo3.Text)=""Then

sMeg="学生所属年级"

MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"

Combo3.SetFocus

ExitSub

Else

dd

(2)=True

Ifdd(0)Ordd

(1)Then

txtSQL=txtSQL&"andSgra='"&Trim(Combo3.Text)&"'"

Else

txtSQL=txtSQL&"Sgra='"&Trim(Combo3.Text)&"'"

EndIf

EndIf

EndIf

IfCheck4.ValueThen

IfTrim(Combo4.Text)=""Then

sMeg="请输入学生所属学院"

MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"

Combo4.SetFocus

ExitSub

Else

dd(3)=True

Ifdd(0)Ordd

(1)Ordd

(2)Then

txtSQL=txtSQL&"andScol='"&Trim(Combo4.Text)&"'"

Else

txtSQL=txtSQL&"Scol='"&Trim(Combo4.Text)&"'"

EndIf

EndIf

EndIf

IfNot(dd(0)Ordd

(1)Ordd

(2)Ordd(3))Then

MsgBox"请设置查询方式!

",vbOKOnly+vbExclamation,"警告"

ExitSub

EndIf

Ifrs=TrueThen

txtSQL=txtSQL&"orderbySno"

Setmrc=MyDB.ExecuteSQL(txtSQL,MsgText)

fmrc.RecordCount>0ThenSmartNetXpButton4.Enabled=True

Else

SmartNetXpButton4.Enabled=False

EndIf

WithMSFlexGrid1

.Rows=2

.CellAlignment=4

.TextMatrix(1,1)="学号"

.TextMatrix(1,2)="姓名"

.TextMatrix(1,3)="性别"

.TextMatrix(1,4)="出生日期"

.TextMatrix(1,5)="院别"

.TextMatrix(1,6)="年级"

.TextMatrix(1,7)="专业"

.TextMatrix(1,8)="联系方式"

.TextMatrix(1,9)="地址"

.TextMatrix(1,10)="备注"

DoWhileNotmrc.EOF

.Rows=.Rows+1

.CellAlignment=4

.TextMatrix(.Rows-1,1)=mrc.Fields(0)

.TextMatrix(.Rows-1,2)=mrc.Fields

(1)

.TextMatrix(.Rows-1,3)=mrc.Fields

(2)

.TextMatrix(.Rows-1,4)=mrc.Fields(3)

.TextMatrix(.Rows-1,5)=mrc.Fields(4)

.TextMatrix(.Rows-1,6)=mrc.Fields(5)

.TextMatrix(.Rows-1,7)=mrc.Fields(6)

.TextMatrix(.Rows-1,8)=mrc.Fields(7)

.TextMatrix(.Rows-1,9)=mrc.Fields(8)

.TextMatrix(.Rows-1,10)=mrc.Fields(9)

mrc.MoveNext

Loop

EndWith

mrc.Close

EndIf

EndSub

图5.2学生选课

PrivateSubxian_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

DimiAsInteger

DimkAsInteger

k=0

DimmrccAsADODB.Recordset

DimtxtstringAsString

Dima,m,nAsString

Dimj,p,qAsInteger

strsql="selectcnofromcoursewherecname='"&List1.Text&"'"

Setrs=MyDB.ExecuteSQL(strsql,MsgText)

IfNotrs.EOFThen

a=rs.Fields(0)

EndIf

rs.Close

strsql="selecttnofromteacherwheretname='"&List2.Text&"'"

Setrs=MyDB.ExecuteSQL(strsql,MsgText)

IfNotrs.EOFThen

m=rs.Fields(0)

EndIf

rs.Close

txtstring="select*fromS_choose"

Setmrcc=MyDB.ExecuteSQL(txtstring,MsgText)

Fori=0ToList3.ListCount-1

IfList3.List(i)=List1.TextThenk=1

Next

sqlstr="select*fromS_choose,coursewhereS_choose.Cno=course.CnoandCname='"&Trim(List1.Text)&"'andSno='"&Trim(user_name)&"'"

Setrs=MyDB.ExecuteSQL(sqlstr,MsgText)

IfNotrs.EOFThenk=1

rs.Close

strsql="selectcount(cno)froms_choosewheresno='"&user_name&"'"

Setrs=MyDB.ExecuteSQL(strsql,MsgText)

fNotrs.EOFThen

n=rs.Fields(0)

EndIf

rs.Close

Ifk<>1Then

IfList1.ListIndex<>-1AndList2.ListIndex<>-1Then

Ifn<3Then

mrcc.AddNew

mrcc.Fields

(1)=user_name

mrcc.Fields

(2)=a

mrcc.Fields(3)=m

mrcc.Update

MsgBox"贺喜你已经选了这门课程!

"

List3.AddItemList1.Text

List4.AddItemList2.Text

mrcc.Close

Else

MsgBox"你已经超过3门课程,不能再选课",vbInformation+vbOKOnly,"提示'"

ExitSub

EndIf

Else

IfList1.ListIndex=-1ThenMsgBox"请选中课程",vbInformation+vbOKOnly,"提示"

IfList2.ListIndex=-1ThenMsgBox"请选中教师",vbInformation+vbOKOnly,"提示"

EndIf

Else

MsgBox"你已经选了该课程,请重选!

",vbInformation+vbOKOnly,"提示"

ExitSub

EndIfEndSub

图5.3教师选课

PrivateSubSmartNetXpButton1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

DimiAsInteger

DimkAsInteger

DimsqlstringAsString

DimmrccAsADODB.Recordset

DimccnoAsString

k=0

Fori=0ToList2.ListCount-1

IfList2.List(i)=List1.TextThenk=1

Next

sqlstring="select*fromT_choose,coursewhereT_choose.Cno=course.CnoandCname='"&Trim(List1.Text)&"'andtno='"&Trim(user_name)&"'"

Setmrcc=MyDB.ExecuteSQL(sqlstring,MsgText)

IfNotmrcc.EOFThenk=1

mrcc.Close

Ifk<>1Then

IfList1.ListIndex<>-1Then

sqlstring="selectCnofromcoursewhereCname='"&Trim(List1.Text)&"'"

Setmrcc=MyDB.ExecuteSQL(sqlstring,MsgText)

IfNotmrcc.EOFThen

ccno=mrcc.Fields(0)

EndIf

mrcc.Close

txtstring="select*fromT_choose"

Setmrc=MyDB.ExecuteSQL(txtstring,MsgText)

mrc.AddNew

IfNotmrc.EOFThen

mrc.Fields

(1)=ccno

mrc.Fields

(2)=user_name

EndIf

mrc.Update

MsgBox"选课成功",vbOKOnly+vbExclamation,"祝贺"

mrc.Close

List2.AddItemList1.Text

Else

MsgBox"请选中你要教的课程",vbInformation+vbOKOnly,"提示"

ExitSub

EndIf

Else

MsgBox"你已经选了该课程,请重选!

",vbInformation+vbOKOnly,"提示"

ExitSub

EndIf

EndSub

六、小结

这次课程设计为期两周,虽然以前也做过课程设计,但我认为这次很特别。

通过这次的课程设计,我复习和巩固了VB知识,使自己的编程能力有了很大的提高,同时,也得到了同学们的帮助,在此感谢他们。

最后祝老师在新的一年里工作顺利,万事如意!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1