1、数据库学分管理系统课程设计课程设计报告课程设计题目:学分管理系统 学生姓名 : 专 业 : 班 级 : 学 号 : 指导教师 : 2011年 11月 23日学分管理系统数据库设计 随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,学分统计工作的各种信息量也成倍增长,其教学管理工作也变得相当困难和复杂。以前这些工作都由人工完成,不仅耗费了大量的人力和物力,还会存在人为的错误。通过计算机进行学分统计管理,管理员只要将学生学分信息输入计算机,大量统计工作可由计算机自动完成,节省了大量的人力和时间。同时,借助学分管理系统,教师日常教学中的各项环节,如统计学分结果等一系列工作都可以借助计算机系统自
2、动完成,大大提高了高校教学的信息化程度,减轻了教师负担,提高了工作效率。第1章需求分析1.1功能需求本系统开发的目的,就是通过系统开发,实现学分管理有关工作的计算机化,提高关键环节的处理速度和规范化,并对有关的工作进行集成和重组,通过网络系统实现集中管理、分散操作,提高工作的质量和效率。1.1.1学生需求在学校规定的选课期间,学生通过任何一台连接因特网计算机的浏览器就能进行网上浏览。学生以用户名和密码进入学分查询系统。查询系统会根据用户名和密码自动识别所在的系,然后显示出与学生有关的学分列表。1.1.2教师需求任课教师登录后,可以查看自己所教班级的学分情况及学校的总情况,对于学生所拿学分情况,
3、予以结业标准。1.1.3管理员需求系统管理员登录后,可以对学生,课程,教学班级的基本信息进行添加,修改,删除等工作。学分录入是核心,只有按照实际的学分所得才能总结出每个学期必修和选修的学分情况,才能保证查看的顺利进行。学校根据学分情况,予以能否毕业。根据以上需求分析,系统把用户划分为3类:管理员、教师和学生。不同的用户在系统中的作用和权限有所不同,所需要完成的功能也不同,系统对于一个用户只允许以一种身份登录。为了系统的保密性,任何用户必须登录后才能使用系统。 系统要求 实现下列功能:1 录入某位学生的学分信息2 给定学号,显示某位学生的学分完成情况;3 给定班号,显示该班所有学生的学分完成情况
4、;4 给定学号,修改该学生的学分信息;5 按照某类课程的学分高低进行排序;6. 给定学号,对该学生能否毕业进行确定; 二数据库关系模式如下;学生 ( 学号,姓名,性别,班号)课程(课程名,学分,课程类)班级(班号)系别(系别名)学习(学号,课程名)属于1(姓名,班号)属于2( 系名,班号)属于3(系名,课程号)三用SQL语句实现各种要求建数据库Create database student On(name=student_data,Filename=d:studentdata.mdf,Size=30,Maxsize=100,Filegrowth=5)Log on(name=student_lo
5、g,Filename=d:studentdata.ldf,Size=30,Maxsize=80,Filegrowth=5)建表Create table s (sno nvarchar (255) primary key ,Sn nvarchar (255),Sex int ,classNo int )create table st (sno nvarchar (255) not null,Cno nvarchar (255) not null ,Sc int,primary key (sno,cno)Create table c (cno nvarchar (255) primary key,
6、Ctype nvarchar (255),Sc int )Create table classtype(sno nvarchar (255) not null ,ClassNo int ,Dept nvarchar (255)Create table coursetype(cno ncarchar (255) not null,Ctype nvarchar (255),Cn nvarchar (255)select st.sno as 学号,sn as 姓名,cno as 课程号,sc as 学分 from st,swhere st.sno=s.sno/*1.录入某位学生的学分信息;*/cre
7、ate trigger str_insert14on st for insert asselect st.sno as 学号,sn as 姓名,cno as 课程号,sc as 学分 from st,s where st.sno=s.sno/*录入学生学分信息存储过程*/create procedure p_insert123(sno nvarchar(255),sn nvarchar(255),cno nvarchar(255),sc float(8)as insert into st values(sno,cno,sc) /*exec p_insert sno=s9,cno=c2,sc=5
8、0*/*2.给定学号,显示某位学生的学分完成情况*/create procedure p_display1(sno nvarchar(255)asselect st.sno as 学号,sn as 姓名,o as 课程号,ctype as 课程名,st.sc as 学分 from st,s,cwhere st.sno=sno and st.sno=s.sno and o=o/*exec p_display1 sno=s3*/*3.给定班号,显示该班所有学生的学分完成情况;*/create procedure p_display22(classNo int)asselect st.sno as
9、学号,sn as 姓名,sex as 性别,o as 课程号,ctype as 课程名,st.sc as 学分,classNo as 班级from st,s,cwhere st.sno=s.sno and classNo=1 and o=o/*exec p_display2 classNo=1*/*4.给定学号,修改该学生的学分信息;*/create procedure p_update121(sno nvarchar(255),cno nvarchar(255),sc float(8) )asupdate st set sno=sno,cno=cno,sc=scwhere cno=cno a
10、nd sno=sno/*exec p_update121 sno=s1,cno=c1,sc=10*/select sno as 学号,o as 课程号,ctype as 课程名, st.sc as 学分from st,cwhere o=o/*5.按照某类课程的学分高低进行排序*/create procedure p_order1(ctype nvarchar(255)asselect st.sno as 学号,sn as 姓名,ctype as 课程名from st,c,swhere ctype=ctype and o=o and st.sno=s.snoorder by st.sc desc
11、/*exec p_order1 ctype=实验*/ /*6.给定学号,对该学生能否毕业进行确定。*/create procedure select22(sno nvarchar(255)asif (select sum(sc) from st where sno=sno group by sno)=(select sum(sc) from c) begin print 学分已够 可以毕业 endelseprint 学分不够 不能毕业/*exec select22 sno=s1*/S表 C表 St表 coursetype表 Classtype表课程设计总结: 经过这次试验,收获了许多,不光是在知识上,最重要的是信心上。自己一个人做完,很快就交了,所以感到很充实,有成就感。在期末考试之前看了好几遍课本,所以做起来感觉不是很难。试验不同别的,一定要上机试验,反复操作,不断改进,才能得到最漂亮的效果。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1