学生成绩管理系统SQL+VB.docx
《学生成绩管理系统SQL+VB.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统SQL+VB.docx(75页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统SQL+VB
项目开发实训(课程设计)项目
VB6.0/SQLServer2005设计与开发
学生信息管理系统
专业:
计算机应用技术课程名称:
网络数据库应用
系(部)计算机系班级:
091311
指导老师:
罗兴荣完成时间:
2012年12月
学生姓名:
潘杰学号:
********
恩施职业技术学院
学生项目开发实训(课程设计)评分表
学生姓名
潘杰
专业
计算机应用
班级
091311
课程名称
网络数据库应用
综合实训项目(课程设计题目)
学生信息管理系统
完成时间
2010年12月
实训总结(设计说明)摘要
通过这次的实训让我学到了很多的东西,能够自主的设计学生信息系统,能够队标的创建,插入,删除,在实训操作中,那些不懂的、概念模糊的知识,得到了概括,并且得以融会贯通,我们觉得耐心、细心在实训中是很重要的。
不细心,出一点小错都会搞的系统无法运行,经过实训,我们不仅巩固了旧知识,也学到了新的知识,并且把所学的应用到实际操作中,提高了我们的实际动手能力和逻辑思维能力。
也让我们对软件开发的流程有一定了解,并且对开发软件有了一些初步的经验。
当然还有很多不足和错误的地方,以后我也会努力的去改正这些毛病的。
指
导
教
师
意
见
指导教师签字:
年月日
项目开发(课程设计)成绩
091311班网络数据库应用项目开发实训方案
一、实训依据
根据计算机应用技术专业的教学计划和《网络数据库应用》课程整体设计要求,为达到人才培养目标,巩固操作技能,提高教学效果,达到教学目的而制定。
二、实训目的
检查学生平时对本课程及相关课程学习的效果,检查学生对网络数据库基本操作和技能掌握的程度,加深对课程基本内容的理解和掌握,在实训中进一步增强感性认识。
运用所学知识,培养和训练学生观察问题、分析问题和解决问题的能力,训练和培养对所学知识的综合应用能力,使学生能以VB6.0为前台开发工具,SQLServer2005为后台数据库管理工具设计和开发一个具体的应用管理信息系统,亲身体会软件设计与开发的过程。
三、实训内容
完善项目,用VB6.0/SQLServer2005设计与开发信息管理系统:
图书借阅系统、学生成绩管理系统、学生信息管理系统、超市管理系统、现代企业职工考勤管理系统、……
四、实训机房实训大楼机房
五、实训课时实训课时26学时
六、实训时间第16周。
七、具体实训内容及完成时间要求
(一)设计所做项目的数据库
1、需求分析和概念设计。
要求画出功能模块图和实体E-R图。
(星期一)
2、数据库的逻辑设计。
根据E-R图设计出数据库中的关系模式。
(星期二)
3、数据库的物理设计。
设计表结构,设计存储过程名等。
(星期二)
(二)建立、更新和查询所做项目的数据库及其对象。
(星期三、四)
1、创建数据库
2、创建表(项目中的所有表)
3、创建视图(常见的连接查询)
4、创建存储过程。
对每个表都应设计出插入、修改和删除的存储过程;对所有涉及到的查询都创建存储过程。
(三)所做项目前台界面及代码设计与实现。
(星期五)
要求界面美观大方,有登录窗口;在主操作界面上有主菜单(能反映设计中的所有功能)和常用工具,并能插入、更新和查询后台数据库。
(四)调试运行系统,要求基本正常。
生成EXE文件;制成安装盘。
八、要求:
1、所有设计过程、主要界面及代码都要用Word记录并编辑排版打印成项目开发报告。
所有窗体或界面上都有自己的姓名标志。
(星期六及以后自行完成,实训结束一周后上交指导老师)
2、实训期间不能做其他的事,有事请假,按时上下课。
九、指导教师罗兴荣
十、考核方法
综合考核实训态度、表现、运用知识能力与综合实训报告的完成情况评定其成绩。
详见项目成绩评定表。
2010年12月10日
《网络数据库应用》项目开发实训
考核方案(100分)
项目名称:
学生信息管理系统
班级:
091311姓名:
潘杰
完成时间:
2010年12月
第一部分:
数据库及其对象的设计、创建、管理和维护。
包括合理的数据库、表、视图、存储过程和触发器等;
第二部分:
前台界面设计与系统实现。
利用VB(Java)中调用SQL语句设计完成。
包括对各表数据的插入、修改、删除和查询操作,视图、存储过程的调用等。
第三部分:
系统设计文档(综合实训报告的形成)。
包括需求分析、概念设计、逻辑设计、物理设计、数据库及对象的建立、管理和维护及系统实现的所有图、文、表。
第一部分60分;第二部分20分;第三部分20分。
各部分的评分标准见下表。
项目
内容
标准
分数比例%
自评分
老师评分
第一部分
(60分)
数据库
设计步骤完整合理,便于管理和维护
20
20
表
结构设计规范,属性明确,约束得当,数据完整、安全
20
18
视图
创建合理
5
5
存储过程
每个表都有插入、更新、删除和查询的存储过程
15
15
第二部分
(20分)
登录界面
美观大方,简洁,交互性好,能登录
5
5
主界面
美观大方,操作方便,功能齐全
5
5
子界面
美观大方,操作方便,能实现其功能
交互性好
10
8
第三部分
(20分)
文档
步骤完整,排版合理规范
15
11
创意
有个性特点,技术全面
5
3
合计
100
90
1需求分析
根据调查询分析,本系统有以下几个功能:
系统管理功能:
为用户设置权限功能,可分为普通用户,超级用户。
普通用户只是查询不能改。
超级用户能修改、删除所有信息。
退出和关闭系统。
添加功能:
为一般用户提供相应的录入功能,为超级用户提供对所有信息的录入功能。
查询与修改:
为所有用户提供查询的功能,可查询允许范围内的所有信息。
为一般用户提供查询及相应的修改,删除功能,为超级用户提供对所有信息的修改删除功能。
根据以上分析得出本系统的功能模块图如图1-1所示。
图1-1系统功能模块图
2概念结构设计
在学生信息管理系统中,根据需求分析,有以下实体:
系部、专业、班级、课程和学生。
各实体之间存在以下关系:
1、系部和专业之间的关系:
一个系由一个或多个专业组成,多个专业属于一个系,系部和专业之间是一对多的关系。
通常用来描述系部的属性有系部代号、系部全称和系部简称,通常用来描述专业的属性有专业代号、专业全称和专业简称。
其E-R图如图2-1所示:
图2-1系部与专业的E-R图
2、专业和课程之间的关系:
一个专业设置多门课程,多门课程属于一个专业,专业和课程之间的关系是一对多的关系。
通常用来描述课程的属性是课程代号、课程全称、课程简称、学时数、学分和是否选修,其E-R图如图2-2所示:
图2-2专业与课程的E-R图
3、专业和班级之间的关系:
一个专业有一个或多个班级,多个班级属于一个专业,专业与班级之间构成一对多的关系。
通常用来描述班级的属性有班级代号、专业代号、年级、学制。
其E-R图如图2-3所示:
图2-3专业与班级E-R图
4、班级与学生之间的关系:
一个班级由多个学生组成,多个学生属于一个班,班级与学生之间的关系是一对多的关系。
通常用来描述学生的属性有学号、姓名、性别、出生日期、政治面貌、籍贯、家庭地址等。
其E-R图如图2-4所示:
图2-4班级与学生E-R图
5、学生与课程之间的关系:
一个学生可以选修多门课程,一门课程可以被多个学生选修,学生和课程之间的关系是多对多的关系。
学生和课程之间的E-R图如图2-5所示:
图2-5学生和课程E-R图
根据以上分析,得出学生信息管理系统的整体E-R图如图2-6所示:
图2-6系统E-R图
3数据库设计
根据E-R图设计出数据库中的关系模式及其结构。
数据库名称:
学生信息管理系统潘杰
根据以上分析和E-R图转换成关系模式的转换规则可知,学生信息管理系统中有七个关系模式:
3.1系部关系模式
系部(系部代号,系部全称,系部简称)
系部代号为主码,其结构表如表3-3所示:
表3-3系部关系模式结构
字段名称
字段类型
宽度
可否为空
是否主键
系部代号
Char
2
否
是
系部全称
Char
15
否
否
系部简称
char
10
否
否
3.2专业关系模式
专业(专业代号,专业全称,专业简称)
专业代号为主码,其结构表如表3-3所示:
表3-3系部关系模式结构
字段名称
字段类型
宽度
可否为空
是否主键
专业代号
Char
4
否
是
专业全称
Char
30
否
否
专业简称
char
10
否
否
3.3班级关系模式
班级表(班级编号,班级名称,专业代号)
班级编号是主码,其结构表如表3-2所示:
表3-2班级关系模式结构
字段名称
字段类型
宽度
可否为空
是否主键
班级编号
Char
6
否
是
班级名称
Char
30
否
否
专业代号
Char
2
否
外码
3.4学生关系模式
学生(学号,姓名,性别,出生日期,政治面貌,班级编号,家庭住址,联系电话,照片),学号为主码,其结构如表3-1所示:
表3-1学生关系模式结构
字段名称
字段类型
宽度
可否为空
是否主键
学号
char
8
否
是
姓名
Char
8
否
单值
性别
Char
2
可
否
出生日期
Datetime
8
可
否
政治面貌
Char
10
可
否
联系电话
Char
11
可
否
班级编号
Char
6
否
外码
家庭住址
char
40
可
否
3.5课程表关系模式
课程(课程编号,课程名称,开课学期,专业代号,考试类型)
课程编号是主码,其结构表如表3-4所示:
表3-4课程关系模式结构
字段名称
字段类型
宽度
可否为空
是否主键
课程编号
Char
2
否
是
课程名称
Char
30
否
否
开课学期
Int
2
否
否
专业代号
Char
2
否
外码
学分
int
否
否
3.6选课关系模式
选课(学号,课程编号,成绩)
学号和课程编号的集合为主码,学号是学生表关系中的外码,课程编号是课程关系中的外码,其结构表如表3-5所示:
表3-5成绩关系模式结构
字段名称
字段类型
宽度
可否为空
是否主键
学号
Char
8
否
外码
课程编号
Char
2
否
外码
成绩
float
否
否
3.7用户关系模式
用户关系模式是操作员登录系统时系统要验证用户名和密码,检验是否合法用户,其结构如表3-6所示:
表3-6用户关系模式结构
字段名称
字段类型
宽度
可否为空
是否主键
用户名
char
10
否
是
用户密码
char
10
否
否
3.8视图结构设计
1、学生选课情况
字段名称
字段类型
宽度
班级
char
6
学号
char
8
姓名
char
8
课程名称
varchar
50
成绩
numeric
(5,2)
2、学生补考情况视图
字段名称
字段类型
宽度
学号
char
8
姓名
char
8
课程名称
varchar
50
3、学生成绩视图
字段名称
字段类型
宽度
学号
char
8
姓名
char
8
课程代码
char
4
课程名称
varchar
50
成绩
numeric
(5,2)
4数据库实施
4.1创建数据库
创建数据库界面如图4-1所示。
图4-1创建数据库界面
createdatabase学生信息管理系统pj
onprimary
(name='学生信息管理系统pj_data',
filename='d:
\学生管理系统潘杰\学生信息管理系统pj_data.mdf',
size=3,
maxsize=unlimited,
filegrowth=1MB
)
logon
(name='学生信息管理系统pj_log',
filename='d:
\学生管理系统潘杰\学生信息管理系统pj_log.ldf',
size=1,
maxsize=unlimited,
filegrowth=10%
)
4.2创建表
(1)系部表代码如下,创建界面如图4-1所示。
createtable系部
(系部编号char
(2)primarykey,
系部全称char(30),
系部简称char(10)
)
系部创建表界面,如图4-1所示
(2)专业表代码如下,创建界面如图4-2所示。
createtable专业(
专业代码char(4)primarykey,
专业全称char(30)notnull,
专业简称char(10)notnull
)
专业表创建界面如图4-2所示
(3)班级表代码如下,创建界面如图4-3所示。
ccreatetable班级
(
班级代号char(6)primarykey,
专业代号char(6),
年级char(6),
学制nvarchar(4)
)
班级表创建界面如图4-3所示
(4)课程表代码如下,创建界面如图4-4所示。
createtable课程
(
课程代号char(8)primarykey,
课程全称char(20),
课程简称char(10),
学实数int,
学分int,
是否选修char
(2)
)
课程表创建界面如图4-4所示
(5)学生表代码如下,创建界面如图4-5所示。
createtable学生
(
学号char(8)primarykey,
姓名char(8),
性别char
(2),
出生日期datetime,
政治面貌varchar(4),
民族varchar(20),
籍贯varchar(10),
住址varchar(20),
备注char(20),
班级代号char(6)notnull
)
学生表创建界面如图4-5所示
(6)成绩表代码如下,创建界面如图4-6所示。
createtable成绩
(
学号char(8)primarykey,
课程代号char(8),
开课学期char(6),
考试时间datetime,
考试类型char(4),
成绩int,
考核课char(6)
)
成绩表创建界面如图4-6所示
(7)用户表代码如下,创建界面如图4-7所示。
createtable用户表
(用户名char(10)primarykey,
用户密码char(10)NOTNULL
)
用户表创建界面如图4-7所示
4.3创建视图
创建学生成绩视图代码如下,创建界面如图4.3-1所示。
createview学生成绩视图表(学号,姓名,课程代号,课程名,成绩)
as
select成绩.学号,姓名,成绩.课程代号,课程全称,成绩
from学生,课程,成绩
where学生.学号=成绩.学号and课程.课程代号=成绩.课程代号
成绩视图界面如图4.3-1所示
(2)创建学生成绩视图代码如下,创建界面如图4.3-2所示。
createview学生成绩情况(bj,xh,xm,kcmc,cj)
as
select班级代号,学生.学号,姓名,课程全称,成绩
from学生,课程,成绩
where学生.学号=成绩.学号and课程.课程代号=成绩.课程代号
学生成绩视图界面如图4.3-2所示
4.5创建存储过程
(1)对学生表
1)插入的存储过程代码如下,创建界面如图4.5-1所示。
createprocinsert_学生
@xhchar(8),@xmnvarchar(4),@xbnchar
(1),@csrqdatetime,@bjdmchar(6),
@zzmmchar(10),@jgnchar(10),@zzvarchar(40),@mzvarchar(20),@bjdhchar(6)
as
insertinto学生
values(@xh,@xm,@xb,@csrq,@bjdm,
@zzmm,@jg,@zz,@mz,@bjdh)
return
插入的存储过程如图4.5-1所示
2)修改的存储过程代码如下,创建界面如图4.5-2所示。
createprocupdate_学生
@xhchar(8),@xmnvarchar(4),@xbnchar
(1),@csrqdatetime,@bjdmchar(6),
@zzmmchar(10),@jgnchar(10),@zzvarchar(40),@mzvarchar(20)
as
update学生set姓名=@xm,性别=@xb,出生日期=@csrq,班级代号=@bjdm,
政治面貌=@zzmm,籍贯=@jg,住址=@zz,民族=@mzwhere学号=@xh
return
修改的存储过程界面如图4.5-2所示
3)删除的储存过程代码如下,创建界面如图4.5-3所示。
createprocdelete_学生dcj
@zzmmchar(10)
as
deletefrom学生dcjwhere政治面貌=@zzmm
return
删除的储存过程如图4.5-3所示
(2)对系部表
1)插入的存储过程代码如下,创建界面如图4-13所示。
createprocinsert_系部
@xdmchar
(2),@xqcnvarchar(15),@xjcnvarchar(10)
as
insertinto系部values(@xdm,@xqc,@xjc)
return
插入的存储过程界面如图4-13所示
2)修改的存储过程代码如下,创建界面如图4-14所示。
createprocupdate_系部
@xdmchar
(2),@xqcnvarchar(15),@xjcnvarchar(10)
as
update系部set系部全称=@xqc,系部简称=@xjcwhere系部编号=@xdm
return
修改的存储过程界面如图4-14所示
3)删除的存储过程代码如下,创建界面如图4-15所示。
createprocdelete_系部
@xdmchar
(2)
as
deletefrom系部where系部编号=@xdm
return
删除的存储过程界面如图4-15所示
(3)对班级表
1)插入的储存过程代码如下,创建界面如图4-16所示。
createprocinsert_班级
@bjdmchar(6),@bjmvarchar(50),@xdmchar
(2),@zydmchar(4)
as
insertinto班级values(@bjdm,@bjm,@xdm,@zydm)
return
对班级表插入的储存过程界面如图4-16所示
2)修改的存储过程代码如下,创建界面如图4-17所示。
createprocupdate_班级
@bjdhchar(6),@bjmvarchar(50),@njchar(6),@zydhchar(4)
as
update班级set班级名=@bjm,年级=@nj,专业代号=@zydhwhere班级代号=@bjdh
return
对班级表修改的存储过程界面如图4-17所示
3)删除的存储过程代码如下,创建界面如图4-18所示。
createprocdelete_班级
@bjdmchar(6)
as
deletefrom班级where班级代号=@bjdm
return
对班级表删除的存储过程创建界面如图4-18所示
(4)对课程表
1)插入的存储过程代码如下,创建界面如图4-19所示。
createprocinsert_课程
@kcdhchar(8),@kcqcchar(20),@kcjcchar(10),@xfint,@xssint,@sfxxchar
(2)
as
insertinto课程(课程代号,课程全称,课程简称,学分,学时数,是否选修)
values(@kcdh,@kcqc,@kcjc,@xf,@xss,@sfxx)
go
对课程表插入的存储过程界面如图4-19所示
2)修改的存储过程代码如下,创建界面如图4-20所示。
createprocalter_课程
@kcdhchar(8),@kcqcchar(20),@kcjcchar(10),@xfint,@xssint,@sfxxchar
(2)
as
updatekc
set课程代号=kcdh,课程全称=@kcqc,课程简称=kcjc,学分=xf,
学时数=xss,是否选修=sfxx
where课程代号=@kcdh
对课程表修改的存储过程创建界面如图4-20所示
3)删除的存储过程代码如下,创建界面如图4-21所示。
createprocdelete_课程
@kcdhchar(8),@kcqcchar(20),@kcjcchar(10),@xfint,@xssint,@sfxxchar
(2)
as
delete课程
where课程代号=@kcdh
对课程表删除的存储过程界面如图4-21所示
(5)对成绩表
1)插入的存储过程代码如下,创建界面如图4-22所示。
createprocinsert_成绩
@xhchar(8),@kcdhchar(8),@kkxqchar(6),@kssjdatetime,
@kslxchar(4),@cjint,@khkchar(6)
as
insertinto成绩(学号,课程代号,开课学期,
考试时间,考试类型,成绩,考核课)
values(@xh,@kcdh,@kkxq,@kssj,@kslx,@cj,@khk)
go
对成绩表插入的存储过程界面如图4-22所示
2)修改的存储过程代码如下,创建界面如图4-23所示。
createprocalter_成绩
@xhchar(8),@kcdhchar(8),@kkxqchar(6),@kssjdatetime,
@kslx