学生管理系统_第1页
学生管理系统_第2页
学生管理系统_第3页
学生管理系统_第4页
学生管理系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库课程设计

题目学生管理系统__________

学院计算机科学与工程

专业计算机科学与技术

学号1341901326

姓名姚振一

班级13419013

指导教师_________

目录

L需求分析....................................................

L1用户提出自己得需求.......................................

L2...................................................................................根据需求确定工作环境

2.概念结构设计...............................................

2.1概念结构设计得原则.......................................

2.2将用户需求模块化...........................................

3数据库设计...................................................

3.1罗列数据信息.............................................

3.2根据数据信息构建表结构....................................

4.系统功能设计...............................................

5系统得测试...

5.1系统得测试

5.2测试得目得.

6实训心得与总结

1.需求分析

一套软件就是否有市场,满足用户需求就是关

键因素,所以搞清楚用户到底需要什么就是软件开发得头等大事。用

户需求如何得来?用户有没有把需求描述清楚?如何把用户需求

转化成自动化方式?软件得开发其实就就是从一个个问题开始,再

一个个地解决地过程。整个需求得过程如图:

用户需求分析流程图

图1-1需求过程图

1.1用户提出自己得需求

O随着学校规模得增大以及新增学生选课得影响,手工方式已

而概要设计则就是整个设计得关键部分。概要设计得主要任务就是将

用户得需求划分为不同得功能,然后将这些功能细分成模块,并给模块

一些规则约束,以达到各个模块之间可以相互交流得目得。概要设计

关乎到系统得整体架构,因此想做好一个概要设计,不仅仅要熟悉用户

得业务流程,还要具备相当丰富得设计经验。

1.1概念结构设计得原则

概念结构设计就是根据系统分析得需求与工作环境得情况对整

个软件得总体结构进行大致得设计。概要没计要坚持以下几个原则:

(1)细分原则:软件系统都就是由很多不同得模块组成,当设计一

套软件时,要先将所有得功能分解。解决复杂问题得方法就是将其分

解成儿个小问题,一个个来解决。

⑵提高代码重用性:在面向对象设计中,首先考虑得就就是代码

得重用,一个好得设计,将来在升级换代时不需要太大得改动,节省了

人力物力。

(3)从上而下层层分析:概要设计要从整体出发,逐个剖析软件得

功能,从上而下,先分析系统总得功能,然后一步步细分,直到最小得

功能模块。

(4)一致性原则:概要设计要求所有功能模块在定义时使用统一得

规范。

(5)提高独立性,减少耦合:各个模块与模块之间尽量减少关联,否

则修改一个地方就会引起其她多处得变动,不符合面向对象得原则。

一般情况下,对类封装后,只允许对类进行扩展,而不能修改,而封装

得类必须具有单一职责,即理论情况下不允许两个类共同完成一个功

能。

(6)模块得大小要尽量适中:不就是结构算法越复杂得模块越好,

模块得大小要根据实际工作目标与其她类得耦合紧密程度来决定。经

验表明,一个模块得规模不应过大,模块得总行数应控制在10100行

得范围内,最好为30〜60行,这样理解与阅读都较方便。过长得模块往

往就是分解不充分得表现,会增加阅读理解得难度;但小规模太多也

会使模块之间联系变得复杂,增大系统在模块调用时传递信息所花费

得开销。

1.2将用户需求模块化

根据概要设计得原则来分析一下本项目得用户需求,并最终转化

成用程序语言描述得模块。什么样得需求才就是一个模块?模块应

该具备如下3个特征。

⑴输入与输出:模块必须能被调用并且正确得返回调用,而且调用

都就是相对一个对象而言,这就是模块独立性得一个体现。

(2)处理功能:模块必须可以对调用得输入数据进行灵活得处理,并

为输出准备好处理结果。

(3)程序代码:用来实现模块功能得源代码。

1.2.1确定系统最终模块

概要设计中最重要得就就是确定此项目包括哪些模块。根据上两

节讲述得设计原则与模块特征,将用户需求转化为下面得模块。

⑴管理员模块:就是本系统得核心模块,该模块又包括对学生管

理与课程管理2个子模块,功能如下:

•学生管理子模块:实现对学生信息得添加、修改、删除操作,还

可以输入查询条件进行查询操作。

图3-1学生管理子模块

•课程管理子模块:实现对课程得添加,添加时为其分配任课教

师、上课时闾与地点,实现对课程得修改、删除,查瞧某个课程

得详细信息等。

图3-2课程管理子模块

⑵教师模块:实现查瞧自己所教授得课程、课程有哪些学生选修,

以及利用本系统提交学生得成绩。

图3-3教师管理模块

⑶学生模块:实现学生得选课,查瞧、修改自己得选课信息及查瞧

自己日常得表现情况。

图3-4学生模块

(4)公有模块:实现用户得身份验证,密码修改,退出系统等功能。

图3-5公有模块

2数据库设计

数据就是企业运作过程中不可缺少得重要部分,建立自己得数据

资料库就是提高企业整体竞争力得关键因素。对于程序而言,安全完

整地保存客户得信息就是一种责任,因此,数据库设计就成了整个软

件开发中重要得一个环节。一旦数据设计出现问题,软件就会出现问

题,某些功能得使用就发挥不了最大作用。所以,为了更好地开发数据

库,了解信息得来源以及信息得流向就是头等大事。对于客户得整个

操作流程,都要亲身参与,才能客观地掌握数据资料得真实性,为设计

良好得数据库打下基础。本章主要介绍如何收集客户得数据资料,并

将其转化为程序需要得数据资源。

3.1罗列数据信息

在前面已经罗列出了用户得需求,这也正就是数据库信息得来

源。根据列表内容,可以提炼出以下数据信息。

(1)需要管理学生信息:学生表。

(2)需要管理教师信息:教师表。

(3)需要管理课程信息:课程表。

(4)需要管理选一果信息:选课表。

(5)需要管理活动信息:活动表。

(6)需要管理管理员信息:管理员表。

(7)需要管理奖惩信息:奖惩表。

实体属性表:

实体属性

教师教师1D,教师姓名,登录密码

课程课程号,课程名称,教师ID

管理员管理员ID,管理员姓名、登录密码

选课学号,课程号,课程名、成绩、总成绩

学生学号,姓名,性别,密码,身份证号,地址、专业

活动学号,项目,地点、时间、加分

奖惩学号,事件、奖励、惩处

数据库E-R图设计:

3.2根据数据信息构建表结构

对于如何提取数据表字段,要遵守3个原则。

(1)每个字段都就是不可再分得最小数据单位。

(2)非主键字段必须完全依赖于主键

(3)如果两个表存在关联,必须有字段作为外键进行连接。

3.2.1数据库表得设计

学生表:

字段名类型空值约束条件

学号varchar(20)notnull主键

性别char(5)

姓名Char(5)

身份证号Varchar(20)

专业Char(10)

地址varchar(20)notnull

密码|intnotnull

管理员表:

字段名类型空值约束条件

管理员IDIntnotnull主键

登录密码Intnotnull

管理员姓名Char(10)

教师表:

字段名类型空值约束条件

教师IDIntnotnull主键

登录密码Intnotnull

教师姓名Char(10)

课程表:

字段名类型空值约束条件

课程号Intnotnull主键

课程名称varchar(20)notnull

教师ID[ntnotnul1外键

活动表:

字段名类型空值约束条件

学号varchar(20)notnul1外键

时间char(10)notnull

地点varchar(10)notnull

项目Varchar(20)主键

选课表:

字段名类型空值约束条件

学号varchar(20)notnull外键

课程名称varchar(50)notnull

课程号Intnotnull外键

成绩Varchar(10)

总成绩Varchar(10)

奖惩表:

字段名类型空值约束条件

学号varchar(20)notnull

事件varchar(50)notnull主键

奖励Varchar(20)notnull

惩处Varchar(20)

教师教Int外键

4.系统功能设计

4.1系统功能框架

作为一个学生管理系统,本系统得设计主要包含:系统登录、学生

信息管理、班级管理、课程管理与用户管理。学生管理系统主框架得

主要结构如下图所不。

学生管理系统

学生管理课程管理用户管理

注除

册用

图7-1学生管理系统框架图

4.2数据库代码

一、首先要建立数据库(stumgn):SQL语

句:CREATEdatabASestumgnon

primary

(name二stumgndata,'c:\ProgramFiles\MicrosoftSQL

Server\MSSQL\data\stumgndata、

mDF',SIZE=20MB,maxsize=100MB,)logon

(name=stumgn_log,?c:\ProgramFiles\MicrosoftSQL

Server\MSSQL\data\stumgn_Log>LDF),size=5MB,

maxsize=20MB,)

二、创建表:

(1)学生基本情况表(stu_jb、dbf)

包括信息有:学生学号(主键),学生姓名,学生性别,籍贯,出生日期,

联系电话,入校时间,家庭地址,注释等字段。SQL语句如下:

CREATETABLE[dbo]、

[stujb]([student_id][bigint]IDENTITY(1,1)N

OTFORREPLICATIONNOTNULL,[stu_name][char]

(10)COLLATEChinese_PRC_CI_ASNOTNULL,[sex]

[char](1)COLLATEChinese_PRC_CI_ASNOTNULL,[s

tu_jg][char](10)COLLATEChinese_PRC_CI_ASNOTNULL

,[birthday][datetime]NULL,[tele][char](

14)COLLATEChinese_PRC_CI_ASNULL,[in_date][cha

r](10)COLLATEChinese_PRC_CI_ASNOTNULL,[home

_add][char](50)COLLATEChinese_PRC_CI_ASNULL,

[note][char](60)COLLATEChinesePRCCIASNULL

)ON[PRIMARY]插入内容语句:

insertintostu_jbvalues

(20029543/樊浩男','重庆',1983-4-23,65119449,2002-9-1,'

重庆')删除记录:

deletestujbwherestu_id=20029890修改记

录:updatestujb

setstuid=20029546

(2)成绩表(score、dbf)

包括信息有:学生学号,学生姓名,课程名称,分数,等级建表:SQL

语句:

CREATETABLEscore(

studentJDINTNOTNULL,

studentNameVARCHAR(IO)NOTNULL,class_noin

tNULL,resulttinyintNULL,credittinyi

ntnull

constraINTPK_TESTPROCESSPRIMARYKEY(student_ID,c

ourse_No))

插入内容语句:

insertintostu_jbvalues

(20029543,'樊浩',’计算机维护',80J良好')

(3)课程信息表(course,dbf)建表:SQL语句:

包括信息有:课程编号,课程名称,课程类型,课程描述建表:SQL

语句:

CREATETABLEcourse(

courseNoINTPRIMARYKEYNOTNULL,

gradeNoINTNULL,

courseNameVARCHAR(IO)NULL,course_Type

VARCHAR(IO)NULL,courseDesVARCH

AR(50)NULL)

(4)学生班级情况表(stu_class、dbf)

包括信息有:学生学号,所在班级,所在系,所学专业,建表:SQL语

句:

CREATETABLEstu_class(

student_IDINTNOTNULL,gradechar(10)NOT

NULL,xiVARCHAR(IO)NOTNULL,professVARCHAR(1O

)NOTNULL,

constraINTPK_TESTPROCESSPRIMARYKEY(student_ID))

(5)系统管理表(usejinfo、dbf)

包括信息有:用户名,密码,用户描述建表:SQL语句:

CREATETABLEuser_Info(

user_IDCHAR(10)PRIMARYKEYNOT

NULL,userPWDCHAR(10)NULL,usej

DESCHAR(10)NULL,)

三、在stumgn中创建视图

(1)、创建名为l_view得视图。基于stu_jb与course两个表建立

视图l_vicw,并显示studont_id与course_nOo所用语句如下:

CREATEviewl_view

ASselectstudent_id,coursenofromstudentinfo,cour

se_infoSELECT*FROM1view

(2)、创建一个名为sex_view得视图。显示性别为“男”得所有学

生得资料,所用语句如下:

CREATEviewsex_view

ASSELECT*FROMstudent_infoWHEREstudent_sex=,男

SELECT*FROMsex_view四、创建存储过程

下面语句就是在stamgn数据库中建立一个名为“'stu_scr'”得存储

过程,用于检索'student_id=2002'得信息,代码如

下:IFexists(selectnamefromsysobjectsWHEREna

me=,stu_scr,andtype='p')dropprocedurestu_scrgo

CREATEprocedurestu_scrAS

selectstudent_id=2002fromstudent_infogo

executestu_scrgo

五、创建索引

(1)在stumgn数据库中建立名为clASsjo得唯一性簇索引,填充率

为90%,并查瞧索引信息,代码:

CREATEuniqueclustered

INDEXclASs_noonclASs_info(clASs_no,grade_no)with

pad_TNDEX,FILLFACT0R=90execsp_helpINDEXclASs_info

六、创建触发器

建立一个名为testprocessinsupd得触发器。代码如

下:USEstumgngo

IFEXISTS(SELECTnameFROMsysobjects

WHEREname='testprocess_insupd,ANDtype=

TR')DROPTRIGGERtestprocess_insupdGO

CREATETRIGGERtestprocess_insupdONtestprocessFOR

insertAS

DECLAREresulttinyINTDECLAREcredittinyINT

SELECTresult=testprocess、

resultfromtestprocessSELECTcredit=testprocess、

creditfromtestprocessIF(result>60)BEGIN

UPDATEtestprocesssettestprocess、

credit二creditFROMtestprocessENDGO

六、确定表内与表之间得数据完整性

(1)缺省值约束

为表stu_jb中得列sex创建一个约束,缺省值为‘1'。usestumgn

go

altertablestudent_info

addconstraintdefault_student_sexdefault'女'for

student_sex现我向表中插入一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论