学生管理系统

发布时间:   来源:文档文库   
字号:

数据库课程设计

题目学生管理系统


计算机科学与工程
计算机科学与技术26
姚振一指导教师




目录
1.需求分析........................................................................................................
用户提出自己的需求.............................................................................根据需求确定工作环境.........................................................................

2.概念结构设计.................................................................................................
概念结构设计的原则.............................................................................将用户需求模块化.................................................................................
3数据库设计..................................................................................................罗列数据信息...............................................................................................根据数据信息构建表结构..............................................................................4.系统功能设计...............................................................................................5系统的测试.....................................................................................................系统的测试....................................................................................................测试的目的....................................................................................................6实训心得与总结.............................................................................................


1.需求分析
一套软件是否有市场,满足用户需求是关键因素,所以搞清楚用户到底需要什么是软件开发的头等大事。用户需求如何得来用户有没有把需求描述清楚如何把用户需求转化成自动化方式软件的开发其实就是从一个个问题开始,再一个个地解决地过程。整个需求的过程如图:


用户需求分析流程图
开始需求
用户提出需求
分析人员体验用户
分析人员确定调研工作流程
结果并写报告
项目组分析并确定
最终需求
与用户共同确定工
作环境
结束需求准备进入
设计

1-1需求过程图

1.1用户提出自己的需求
。随着学校规模的增大以及新增学生选课的影响,手工方式已经无法记录学生的实时信息,该学校决定用一套新的学生信息管理系统软件,并要求满足以下条件:1)能完成学生的学籍注册
2)学生若不喜欢此时的专业,他们可以自动调剂专业3)学生可以选课,并查看个人信息及日常表现情况。4)对学生信息、选课信息、课程信息进行记录。
(5老师可以对学生学籍信息的查询,添加,修改,删除;学生信息及成绩的录入,修改,删除。修改密码等功能。
(6管理员拥有最高的权限。允许添加教师信息和课程信息等。
学校需要的就是能满足以上需求的软件。需求就是一套软件的终极目标,但并不是每一个需求都能达到的,分析人员还要根据开发环境一条条地分析这些需求。
1.2根据需求确定工作环境
1.2.1软件环境
除了要安装学生管理系统外,还必须具备相应的软件环境,才能更好地运行。
1)采用的软件操作系统(win7,这是为了更好地管理。2服务器上安装数据库系统SQLServer2008从而实现信息资源安全化管理。


2.概念结构设计
概念结构设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分。概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。
2.1概念结构设计的原则
概念结构设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。概要设计要坚持以下几个原则:1)细分原则:软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。解决复杂问题的方法是将其分解成几个小问题,一个个来解决。
2)提高代码重用性:在面向对象设计中,首先考虑的就是代码的重用,一个好的设计,将来在升级换代时不需要太大的改动,节省了人力物力。
3)从上而下层层分析:概要设计要从整体出发,逐个剖析软件的功能,从上而下,先分析系统总的功能,然后一步步细分,直到最小的功能模块。
4一致性原则:概要设计要求所有功能模块在定义时使用统一的规范。

5提高独立性,减少耦合:各个模块与模块之间尽量减少关联,否则修改一个地方就会引起其他多处的变动,不符合面向对象的原则。一般情况下,对类封装后,只允许对类进行扩展,而不能修改,而封装的类必须具有单一职责,即理论情况下不允许两个类共同完成一个功能。
6)模块的大小要尽量适中:不是结构算法越复杂的模块越好,模块的大小要根据实际工作目标和其他类的耦合紧密程度来决定。验表明,一个模块的规模不应过大,模块的总行数应控制在10~100行的范围内,最好为30~60行,这样理解和阅读都较方便。过长的模块往往是分解不充分的表现,会增加阅读理解的难度;但小规模太多也会使模块之间联系变得复杂,增大系统在模块调用时传递信息所花费的开销。
2.2将用户需求模块化
根据概要设计的原则来分析一下本项目的用户需求,并最终转化成用程序语言描述的模块。什么样的需求才是一个模块模块应该具备如下3个特征。
1)输入和输出:模块必须能被调用并且正确的返回调用,而且调用都是相对一个对象而言,这是模块独立性的一个体现。2处理功能:模块必须可以对调用的输入数据进行灵活的处理,并为输出准备好处理结果。
3程序代码:用来实现模块功能的源代码。
2.2.1确定系统最终模块

概要设计中最重要的就是确定此项目包括哪些模块。根据上两节讲述的设计原则和模块特征,将用户需求转化为下面的模块。1)管理员模块:是本系统的核心模块,该模块又包括对学生管理和课程管理2个子模块,功能如下:
学生管理子模块:实现对学生信息的添加、修改、删除操作,还可以输入查询条件进行查询操作。
添加学生信息
修改学生信息
学生管理子模块
删除学生信息查询学生信息

3-1学生管理子模块
课程管理子模块:实现对课程的添加,添加时为其分配任课教师、上课时间和地点,实现对课程的修改、删除,查看某个课程的详细信息等。
添加课程信息
修改课程信息
课程管理子模块
删除课程信息查询课程信息

3-2课程管理子模块
2)教师模块:实现查看自己所教授的课程、课程有哪些学生选
修,以及利用本系统提交学生的成绩。

教师模块
查看所授课程录入学生成绩

3-3教师管理模块
3)学生模块:实现学生的选课,查看、修改自己的选课信息及
查看自己日常的表现情况。
学生模块
个人信息
日常表现
查看选课信息
选课修改选课信息

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

3-5公有模块
3数据库设计
数据是企业运作过程中不可缺少的重要部分,建立自己的数据资料库是提高企业整体竞争力的关键因素。对于程序而言,安全完整地保存客户的信息是一种责任,因此,数据库设计就成了整个软件开发中重要的一个环节。一旦数据设计出现问题,软件就会出现问题,某些功能的使用就发挥不了最大作用。所以,为了更好地开发数据库,

了解信息的来源以及信息的流向是头等大事。对于客户的整个操作流程,都要亲身参与,才能客观地掌握数据资料的真实性,为设计良好的数据库打下基础。本章主要介绍如何收集客户的数据资料,并将其转化为程序需要的数据资源。
罗列数据信息
在前面已经罗列出了用户的需求,这也正是数据库信息的来源。根据列表内容,可以提炼出以下数据信息。
1)需要管理学生信息:学生表。2)需要管理教师信息:教师表。3)需要管理课程信息:课程表。4)需要管理选课信息:选课表。5)需要管理活动信息:活动表。6)需要管理管理员信息:管理员表。7)需要管理奖惩信息:奖惩表。

实体属性表:

实体教师课程
属性
教师ID,教师姓名,登录密码课程号,课程名称,教师ID

管理员选课学生活动奖惩
管理员ID,管理员姓名、登录密码学号,课程号,课程名、成绩、总成绩
学号,姓名,性别,密码,身份证号,地址、专业学号,项目,地点、时间、加分学号,事件、奖励、惩处
数据库E-R图设计:
登录密码
管理员姓名
管理员ID
管理员
管理
教师ID
课程名
课程号
学号
事件
奖励
惩处
课程
授课
教师ID教师姓名
教师公布奖惩
登录密码
学号课程号
学生
课程名
成绩
总成绩
活动
选课
管理
学号
姓名
性别
身份证号地址专业密码
学号
时间
地点
项目
加分


根据数据信息构建表结构
对于如何提取数据表字段,要遵守3个原则。1)每个字段都是不可再分的最小数据单位。2)非主键字段必须完全依赖于主键

3)如果两个表存在关联,必须有字段作为外键进行连接。3.2.1数据库表的设计学生表:
字段名学号性别姓名身份证号专业地址密码
类型varchar(20char(5Char(5Varchar(20Char10varchar(20int
空值notnullnotnullnotnull
约束条件主键
管理员表:
字段名管理员ID登录密码管理员姓名教师表:字段名教师ID登录密码教师姓名
类型IntIntChar(10
空值notnullnotnull
约束条件主键
类型IntIntChar(10
空值notnullnotnull
约束条件主键
课程表:
字段名课程号课程名称教师ID
类型Intvarchar(20Int
空值notnullnotnullnotnull
约束条件主键外键
活动表:
字段名学号时间地点项目
类型varchar(20char(10varchar(10Varchar(20
空值notnullnotnullnotnull
约束条件外键主键
选课表:
字段名
类型
空值
约束条件

学号课程名称课程号成绩总成绩
varchar(20varchar(50Int
Varchar10Varchar10
notnullnotnullnotnull
外键外键
奖惩表:
字段名学号事件奖励惩处教师ID
类型varchar(20varchar(50Varchar(20Varchar20Int
空值notnullnotnullnotnull
约束条件主键外键
4.系统功能设计
系统功能框架
作为一个学生管理系统,本系统的设计主要包含:系统登录、学生信息管理、班级管理、课程管理和用户管理。学生管理系统主框架的主要结构如下图所示。
学生管理系统
学生管理课程管理
用户管理









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


数据库代码
一、首先要建立数据库stumgnSQL语句:CREATEdatabASestumgnonprimary
(name=stumgn_data,filename='c:\ProgramFiles\MicrosoftSQL
Server\MSSQL\data\',SIZE=20MB,maxsize=100MB,filegrowth=25%logon(name=stumgn_log,filename='c:\ProgramFiles\MicrosoftSQLServer\MSSQL\data\',size=5MB,maxsize=20MB,filegrowth=1MB二、创建表:
1)学生基本情况表()
包括信息有:学生学号(主键),学生姓名,学生性别,籍贯,出生日期,联系电话,入校时间,家庭地址,注释等字段。SQL语句如下:CREATETABLE[dbo].[stu_jb]([student_id][bigint]IDENTITY(1,1NOTFORREPLICATIONNOTNULL,[stu_name][char](10COLLATEChinese_PRC_CI_ASNOTNULL,[sex][char](1COLLATEChinese_PRC_CI_ASNOTNULL,[stu_jg][char](10COLLATEChinese_PRC_CI_ASNOTNULL,[birthday][datetime]NULL,[tele][char](14COLLATEChinese_PRC_CI_ASNULL,[in_date][char](10COLLATEChinese_PRC_CI_ASNOTNULL,[home_add][char](50COLLATEChinese_PRC_CI_ASNULL,[note][char](60COLLATEChinese_PRC_CI_ASNULLON[PRIMARY]插入内容语句:insertintostu_jbvalues
(,'樊浩','','重庆',1983-4-23,,2002-9-1,'重庆'删除记录:

deletestu_jbwherestu_id=修改记录:updatestu_jbsetstu_id=2)成绩表()
包括信息有:学生学号,学生姓名,课程名称,分数,等级建表:SQL语句:
CREATETABLEscore(student_IDINTNOTNULL,
student_NameVARCHAR(10NOTNULL,class_nointNULL,resulttinyintNULL,credittinyintnull
constraINTPK_TESTPROCESSPRIMARYKEY(student_ID,course_No插入内容语句:insertintostu_jbvalues
(,'樊浩','计算机维护',80,’良好’(3课程信息表()建表:SQL语句:
包括信息有:课程编号,课程名称,课程类型,课程描述建表:SQL语句:
CREATETABLEcourse(
course_NoINTPRIMARYKEYNOTNULL,grade_NoINTNULL,
course_NameVARCHAR(10NULL,course_TypeVARCHAR(10NULL,course_DesVARCHAR(50NULL

4)学生班级情况表()
包括信息有:学生学号,所在班级,所在系,所学专业,建表:SQL语句:
CREATETABLEstu_class(
student_IDINTNOTNULL,gradechar(10NOTNULL,xiVARCHAR(10NOTNULL,professVARCHAR(10NOTNULL,
constraINTPK_TESTPROCESSPRIMARYKEY(student_ID5系统管理表()
包括信息有:用户名,密码,用户描述建表:SQL语句:CREATETABLEuser_Info(
user_IDCHAR(10PRIMARYKEYNOTNULL,user_PWDCHAR(10NULL,user_DESCHAR(10NULL,三、在stumgn中创建视图
(1.创建名为l_view的视图。基于stu_jbcourse两个表建立视图l_view,并显示student_idcourse_no。所用语句如下:CREATEviewl_view
ASselectstudent_id,course_nofromstudent_info,course_infoSELECT*FROMl_view
2.创建一个名为sex_view的视图。显示性别为“男”的所有学生的资料,所用语句如下:CREATEviewsex_view

ASSELECT*FROMstudent_infoWHEREstudent_sex=''SELECT*FROMsex_view四、创建存储过程
下面语句是在stumgn数据库中建立一个名为“stu_scr”的存储过student_id=2002IFexists(selectnamefromsysobjectsWHEREname='stu_scr'andtype='p'dropprocedurestu_scrgoCREATEprocedurestu_scrAS
selectstudent_id=2002fromstudent_infogoexecutestu_scrgo五、创建索引
1)在stumgn数据库中建立名为clASs_no的唯一性簇索引,填充率为90%,并查看索引信息,代码:CREATEuniqueclustered
INDEXclASs_noonclASs_info(clASs_no,grade_nowithpad_INDEX,FILLFACTOR=90execsp_helpINDEXclASs_info六、创建触发器
建立一个名为testprocess_insupd的触发器。代码如下:USEstumgngoIFEXISTS(SELECTnameFROMsysobjects
WHEREname='testprocess_insupd'ANDtype='TR'DROPTRIGGERtestprocess_insupdGO
CREATETRIGGERtestprocess_insupdONtestprocessFORinsertASDECLARE@resulttinyINTDECLARE@credittinyINT

SELECT@result=fromtestprocessSELECT@credit=fromtestprocessIF(@result>60BEGIN
UPDATEtestprocessset=@creditFROMtestprocessENDGO
六、确定表内和表之间的数据完整性1)缺省值约束
为表stu_jb中的列sex创建一个约束,缺省值为‘1usestumgngo
altertablestudent_info
addconstraintdefault_student_sexdefault‘女’forstudent_sex现我向表中插入一行学号为,不给student_sex赋值.2check约束
对表grade中的result字段进行约束,使result的值在0100之间。a.通过企业管理器创建check约束
在表设计窗口中,单击属性按钮,选择check约束表单,在约束表达式中输入:([result]>=0and[result]<=100b.createtable语句建立check约束,语句为:
altertabletestprocessaddconstraintcheck_resultcheck(result>=0andresult<=50
当向表中result列中键入值大于50或小与0时就会弹出出错信息。3FOREIGNKEY(外部关键字约束)SQL语句:altertablestudent_infoaddconstraintfk_class_idforeignkey(student_id

referencesstudent_info(student_id



5系统的测试
按照极限编程的理论,写测试就是对软件进行设计的过程,它的重要性甚至超过了完成实际功能的代码。先将测试写完,然后再来实现代码,这样所有的测试通过之日也就是程序完成之时。虽然这些理论并不能完全实践,但测试的重要性是毋庸置疑的。

系统的测试
测试是为了更好地完成项目的功能,虽然测试并不能完全模拟实际发生的流程,但可以降低错误的发生概率,提高软件项目的稳定性。
测试的目的
1)软件测试是为了发现错误而执行程序的过程。
2)测试是为了证明程序不够完美,任何程序都不可能有错。
6实训心得与总结
感觉在这一学期当中学到东西最多的时候就是在实验期间了,
虽然遇到很多困难,我们都一一的解决。尤其是在建数据库表的时候遇到点困难,就是表之间的关系,主键和外键约束、数据的删除、添加、修改等~~还就是在本系统的实现时有点难。在做界面的时候,我们用的时间最多,因为光是界面就十几个都一一的拖拉好,然后再把

每一个界面之间建立联系,不光是这些,还有就是界面的外观设计,使得更加美观,而且让系统容易操作,在这方面下了很大的功夫。在实验的过程中学到了平时没有学到的东西,这段时间感觉过的很充实,知识得到了巩固而且动手的能力也有所提高。


本文来源:https://www.2haoxitong.net/k/doc/f38e31e00a4c2e3f5727a5e9856a561253d32136.html

《学生管理系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式