数据库学分管理系统课程设计Word下载.docx
《数据库学分管理系统课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《数据库学分管理系统课程设计Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
同时,借助学分管理系统,教师日常教学中的各项环节,如统计学分结果等一系列工作都可以借助计算机系统自动完成,大大提高了高校教学的信息化程度,减轻了教师负担,提高了工作效率。
第1章需求分析
1.1功能需求
本系统开发的目的,就是通过系统开发,实现学分管理有关工作的计算机化,提高关键环节的处理速度和规范化,并对有关的工作进行集成和重组,通过网络系统实现集中管理、分散操作,提高工作的质量和效率。
1.1.1学生需求
在学校规定的选课期间,学生通过任何一台连接因特网计算机的浏览器就能进行网上浏览。
学生以用户名和密码进入学分查询系统。
查询系统会根据用户名和密码自动识别所在的系,然后显示出与学生有关的学分列表。
1.1.2教师需求
任课教师登录后,可以查看自己所教班级的学分情况及学校的总情况,对于学生所拿学分情况,予以结业标准。
1.1.3管理员需求
系统管理员登录后,可以对学生,课程,教学班级的基本信息进行添加,修改,删除等工作。
学分录入是核心,只有按照实际的学分所得才能总结出每个学期必修和选修的学分情况,才能保证查看的顺利进行。
学校根据学分情况,予以能否毕业。
根据以上需求分析,系统把用户划分为3类:
管理员、教师和学生。
不同的用户在系统中的作用和权限有所不同,所需要完成的功能也不同,系统对于一个用户只允许以一种身份登录。
为了系统的保密性,任何用户必须登录后才能使用系统。
系统要求
实现下列功能:
1.录入某位学生的学分信息
2.给定学号,显示某位学生的学分完成情况;
3.给定班号,显示该班所有学生的学分完成情况;
4.给定学号,修改该学生的学分信息;
5.按照某类课程的学分高低进行排序;
6.给定学号,对该学生能否毕业进行确定;
二.数据库关系模式如下;
学生(学号,姓名,性别,班号)
课程(课程名,学分,课程类)
班级(班号)
系别(系别名)
学习(学号,课程名)
属于1(姓名,班号)
属于2(系名,班号)
属于3(系名,课程号)
三.用SQL语句实现各种要求
建数据库
Createdatabasestudent
On
(name=student_data,
Filename=’d:
\studentdata.mdf’,
Size=30,
Maxsize=100,
Filegrowth=5)
Logon
(name=student_log,
\studentdata.ldf’,
Maxsize=80,
建表
Createtables
(snonvarchar(255)primarykey,
Snnvarchar(255),
Sexint,
classNoint)
createtablest
(snonvarchar(255)notnull,
Cnonvarchar(255)notnull,
Scint,primarykey(sno,cno))
Createtablec
(cnonvarchar(255)primarykey,
Ctypenvarchar(255),
Scint)
Createtableclasstype
(snonvarchar(255)notnull,
ClassNoint,
Deptnvarchar(255))
Createtablecoursetype
(cnoncarchar(255)notnull,
Cnnvarchar(255))
selectst.snoas学号,snas姓名,cnoas课程号,scas学分fromst,s
wherest.sno=s.sno
/*1.录入某位学生的学分信息;
*/
createtriggerstr_insert14
onst
forinsert
as
selectst.snoas学号,snas姓名,cnoas课程号,scas学分fromst,s
/*录入学生学分信息存储过程*/
createprocedurep_insert123
(@snonvarchar(255),
@snnvarchar(255),
@cnonvarchar(255),
@scfloat(8))
as
insertintostvalues(@sno,@cno,@sc)
/*execp_insert@sno='
s9'
@cno='
c2'
@sc='
50'
/*2.给定学号,显示某位学生的学分完成情况*/
createprocedurep_display1
(@snonvarchar(255))
selectst.snoas学号,snas姓名,oas课程号,ctypeas课程名,st.scas学分
fromst,s,c
wherest.sno=@snoandst.sno=s.snoando=o
/*execp_display1@sno='
s3'
/*3.给定班号,显示该班所有学生的学分完成情况;
createprocedurep_display22
(@classNoint)
selectst.snoas学号,snas姓名,sexas性别,oas课程号,ctypeas课程名,st.scas学分,classNoas班级
wherest.sno=s.snoandclassNo='
1'
ando=o
/*execp_display2@classNo='
/*4.给定学号,修改该学生的学分信息;
createprocedurep_update121
@scfloat(8))
updatest
setsno=@sno,cno=@cno,sc=@sc
wherecno=@cnoandsno=@sno
/*execp_update121@sno='
s1'
c1'
@sc=10*/
selectsnoas学号,oas课程号,ctypeas课程名,st.scas学分
fromst,c
whereo=o
/*5.按照某类课程的学分高低进行排序*/
createprocedurep_order1
(@ctypenvarchar(255))
selectst.snoas学号,snas姓名,ctypeas课程名
fromst,c,s
wherectype=@ctypeando=oandst.sno=s.sno
orderbyst.scdesc
/*execp_order1@ctype='
实验'
/*6.给定学号,对该学生能否毕业进行确定。
createprocedureselect22
if(selectsum(sc)fromst
wheresno=@sno
groupbysno)>
=(selectsum(sc)fromc)
begin
print'
学分已够可以毕业'
end
else
print'
学分不够不能毕业'
/*execselect22@sno='
S表C表
St表coursetype表
Classtype表
课程设计总结:
经过这次试验,收获了许多,不光是在知识上,最重要的是信心上。
自己一个人做完,很快就交了,所以感到很充实,有成就感。
在期末考试之前看了好几遍课本,所以做起来感觉不是很难。
试验不同别的,一定要上机试验,反复操作,不断改进,才能得到最漂亮的效果。