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

下载本文档

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

文档简介

1、数据库课程设计 题目 学生管理系统 学 院 计算机科学与工程专 业 计算机科学与技术学 号 1341901326姓 名 姚振一 班 级 13419013 指导教师 目录1.需求分析1.1用户提出自己的需求1.2根据需求确定工作环境2.概念结构设计2.1概念结构设计的原则2.2将用户需求模块化3数据库设计3.1 罗列数据信息3.2根据数据信息构建表结构4. 系统功能设计5系统的测试5.1系统的测试5.2测试的目的6实训心得与总结1.需求分析一套软件是否有市场,满足用户需求是关键因素,所以搞清楚用户到底需要什么是软件开发的头等大事。用户需求如何得来?用户有没有把需求描述清楚?如何把用户需求转化成自

2、动化方式?软件的开发其实就是从一个个问题开始,再一个个地解决地过程。整个需求的过程如图:用户需求分析流程图开始需求用户提出需求分析人员体验用户工作流程分析人员确定调研结果并写报告项目组分析并确定最终需求与用户共同确定工作环境结束需求准备进入设计图1-1需求过程图1.1 用户提出自己的需求。随着学校规模的增大以及新增学生选课的影响,手工方式已经无法记录学生的实时信息,该学校决定用一套新的学生信息管理系统软件,并要求满足以下条件:(1)能完成学生的学籍注册(2)学生若不喜欢此时的专业,他们可以自动调剂专业(3)学生可以选课,并查看个人信息及日常表现情况。(4)对学生信息、选课信息、课程信息进行记录

3、。 (5) 老师可以对学生学籍信息的查询,添加,修改,删除;学生信息及成绩的录入,修改,删除。修改密码等功能。 (6) 管理员拥有最高的权限。允许添加教师信息和课程信息等。学校需要的就是能满足以上需求的软件。需求就是一套软件的终极目标,但并不是每一个需求都能达到的,分析人员还要根据开发环境一条条地分析这些需求。1.2 根据需求确定工作环境1.2.1 软件环境除了要安装学生管理系统外,还必须具备相应的软件环境,才能更好地运行。(1)采用的软件操作系统(win 7),这是为了更好地管理。(2)服务器上安装数据库系统(SQL Server 2008),从而实现信息资源安全化管理。2.概念结构设计概念

4、结构设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分。概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。122.1 概念结构设计的原则概念结构设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。概要设计要坚持以下几个原则:(1)细分原则:软件系统都是由很多不同的模块组成,当设计一套软件时

5、,要先将所有的功能分解。解决复杂问题的方法是将其分解成几个小问题,一个个来解决。(2)提高代码重用性:在面向对象设计中,首先考虑的就是代码的重用,一个好的设计,将来在升级换代时不需要太大的改动,节省了人力物力。(3)从上而下层层分析:概要设计要从整体出发,逐个剖析软件的功能,从上而下,先分析系统总的功能,然后一步步细分,直到最小的功能模块。(4)一致性原则:概要设计要求所有功能模块在定义时使用统一的规范。(5)提高独立性,减少耦合:各个模块与模块之间尽量减少关联,否则修改一个地方就会引起其他多处的变动,不符合面向对象的原则。一般情况下,对类封装后,只允许对类进行扩展,而不能修改,而封装的类必须

6、具有单一职责,即理论情况下不允许两个类共同完成一个功能。(6)模块的大小要尽量适中:不是结构算法越复杂的模块越好,模块的大小要根据实际工作目标和其他类的耦合紧密程度来决定。经验表明,一个模块的规模不应过大,模块的总行数应控制在10100行的范围内,最好为3060行,这样理解和阅读都较方便。过长的模块往往是分解不充分的表现,会增加阅读理解的难度;但小规模太多也会使模块之间联系变得复杂,增大系统在模块调用时传递信息所花费的开销。2.2 将用户需求模块化根据概要设计的原则来分析一下本项目的用户需求,并最终转化成用程序语言描述的模块。什么样的需求才是一个模块?模块应该具备如下3个特征。(1)输入和输出

7、:模块必须能被调用并且正确的返回调用,而且调用都是相对一个对象而言,这是模块独立性的一个体现。(2)处理功能:模块必须可以对调用的输入数据进行灵活的处理,并为输出准备好处理结果。(3) 程序代码:用来实现模块功能的源代码。2.2.1 确定系统最终模块概要设计中最重要的就是确定此项目包括哪些模块。根据上两节讲述的设计原则和模块特征,将用户需求转化为下面的模块。(1)管理员模块:是本系统的核心模块,该模块又包括对学生管理和课程管理2个子模块,功能如下:l 学生管理子模块:实现对学生信息的添加、修改、删除操作,还可以输入查询条件进行查询操作。查询学生信息删除学生信息修改学生信息学生管理子模块添加学生

8、信息图3-1 学生管理子模块l 课程管理子模块:实现对课程的添加,添加时为其分配任课教师、上课时间和地点,实现对课程的修改、删除,查看某个课程的详细信息等。查询课程信息删除课程信息修改课程信息课程管理子模块添加课程信息图3-2 课程管理子模块(2)教师模块:实现查看自己所教授的课程、课程有哪些学生选修,以及利用本系统提交学生的成绩。教师模块查看所授课程录入学生成绩图3-3 教师管理模块(3)学生模块:实现学生的选课,查看、修改自己的选课信息及查看自己日常的表现情况。个人信息日常表现学生模块选课查看选课信息修改选课信息图3-4 学生模块(4)公有模块:实现用户的身份验证,密码修改,退出系统等功能

9、。公有模块身份验证密码修改退出系统图3-5 公有模块3 数据库设计数据是企业运作过程中不可缺少的重要部分,建立自己的数据资料库是提高企业整体竞争力的关键因素。对于程序而言,安全完整地保存客户的信息是一种责任,因此,数据库设计就成了整个软件开发中重要的一个环节。一旦数据设计出现问题,软件就会出现问题,某些功能的使用就发挥不了最大作用。所以,为了更好地开发数据库,了解信息的来源以及信息的流向是头等大事。对于客户的整个操作流程,都要亲身参与,才能客观地掌握数据资料的真实性,为设计良好的数据库打下基础。本章主要介绍如何收集客户的数据资料,并将其转化为程序需要的数据资源。3.1 罗列数据信息在前面已经罗

10、列出了用户的需求,这也正是数据库信息的来源。根据列表内容,可以提炼出以下数据信息。(1)需要管理学生信息:学生表。(2)需要管理教师信息:教师表。(3)需要管理课程信息:课程表。(4)需要管理选课信息:选课表。(5)需要管理活动信息:活动表。(6)需要管理管理员信息:管理员表。(7)需要管理奖惩信息:奖惩表。实体属性表:实体属性教师教师ID,教师姓名,登录密码课程课程号,课程名称,教师ID管理员管理员ID,管理员姓名、登录密码选课学号,课程号,课程名、成绩、总成绩学生学号,姓名,性别,密码,身份证号,地址、专业活动学号,项目,地点、时间、加分奖惩学号,事件、奖励、惩处数据库E-R图设计:3.2

11、根据数据信息构建表结构对于如何提取数据表字段,要遵守3个原则。(1)每个字段都是不可再分的最小数据单位。(2)非主键字段必须完全依赖于主键(3)如果两个表存在关联,必须有字段作为外键进行连接。 数据库表的设计学生表:字段名 类型空值约束条件学号 varchar(20)not null主键性别char(5)姓名Char(5)身份证号Varchar(20)专业Char(10)地址varchar(20)not null密码intnot null管理员表:字段名 类型空值约束条件管理员ID Intnot null主键登录密码Intnot null管理员姓名Char(10)教师表:字段名 类型空值约束条

12、件教师ID Intnot null主键登录密码Intnot null教师姓名Char(10)课程表:字段名 类型空值约束条件课程号Intnot null主键课程名称varchar(20)not null教师IDIntnot null外键活动表:字段名 类型空值约束条件学号 varchar(20)not null外键时间char(10)not null地点varchar(10)not null项目Varchar(20)主键选课表:字段名 类型空值约束条件学号 varchar(20)not null外键课程名称varchar(50)not null课程号Intnot null外键成绩Varchar

13、(10)总成绩Varchar(10)奖惩表:字段名 类型空值约束条件学号 varchar(20)not null事件varchar(50)not null主键奖励Varchar(20)not null惩处Varchar(20)教师IDInt外键4. 系统功能设计4.1系统功能框架作为一个学生管理系统,本系统的设计主要包含:系统登录、学生信息管理、班级管理、课程管理和用户管理。学生管理系统主框架的主要结构如下图所示。图7-1 学生管理系统框架图4.2 数据库代码一、首先要建立数据库 (stumgn):    SQL语句:CREATE d

14、atabASe stumgn on primary  (name=stumgn_data,filename='c:Program FilesMicrosoft SQL ServerMSSQLdatastumgn_data.mDF', SIZE=20MB, maxsize=100MB, filegrowth=25%) log on (name=stumgn_log,filename='c:Program FilesMicro

15、soft SQL ServerMSSQLdatastumgn_Log.LDF', size=5MB, maxsize=20MB, filegrowth=1MB)  二、创建表:    (1)学生基本情况表(stu_jb.dbf)包括信息有:学生学号(主键),学生姓名,学生性别,籍贯,出生日期,联系电话,入校时间,家庭地址,注释等字段。 SQL语句如下: CREATE TABLE dbo.stu_jb (  s

16、tudent_id bigint IDENTITY (1, 1) NOT FOR REPLICATION  NOT NULL ,  stu_name char (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,  sex char (1) COLLATE Chinese_PRC_CI_AS NOT

17、 NULL ,  stu_jg char (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,  birthday datetime NULL ,  tele char (14) COLLATE Chinese_PRC_CI_AS NULL ,  in_date char (10)

18、0;COLLATE Chinese_PRC_CI_AS NOT NULL ,  home_add char (50) COLLATE Chinese_PRC_CI_AS NULL ,  note char (60) COLLATE Chinese_PRC_CI_AS NULL  ) ON PRIMARY 插入内容语句: insert in

19、to stu_jb values (20029543,'樊浩','男','重庆',1983-4-23,65119449,2002-9-1,'重庆') 删除记录: delete stu_jb where stu_id=20029890 修改记录: update stu_jb set stu_id=20029546 (2)成绩表(score.dbf) 包括信息有:学生学号,学生姓名,课程

20、名称,分数,等级  建表:SQL语句:  CREATE TABLE score ( student_ID  INT  NOT NULL, student_Name  VARCHAR(10)  NOT NULL, class_no   int    NULL, result  tinyint 

21、; NULL, credit  tinyint  null constraINT PK_TESTPROCESS PRIMARY KEY  (student_ID, course_No) ) 插入内容语句: insert into stu_jb values (20029543,'樊浩','计算机维护',80,良好) (3)课程信息表(course.dbf)

22、 建表:SQL语句: 包括信息有:课程编号,课程名称,课程类型,课程描述 建表: SQL语句: CREATE TABLE course ( course_No    INT   PRIMARY KEY    NOT NULL,grade_No     INT      

23、NULL, course_Name   VARCHAR(10)     NULL, course_Type    VARCHAR(10)     NULL, course_Des     VARCHAR(50)     NULL) (4)学生班级情况表(stu_class.dbf)

24、0;包括信息有:学生学号,所在班级,所在系,所学专业, 建表:SQL语句:  CREATE TABLE stu_class ( student_ID  INT  NOT NULL, grade  char(10)  NOT NULL, xi  VARCHAR(10)  NOT NULL, profess VARCHAR(10) 

25、 NOT NULL, constraINT PK_TESTPROCESS PRIMARY KEY  (student_ID) ) (5)系统管理表(user_info.dbf)包括信息有:用户名,密码,用户描述 建表: SQL语句: CREATE TABLE user_Info ( user_ID        CHAR(10)  

26、60;PRIMARY KEY   NOT NULL, user_PWD      CHAR(10)     NULL, user_DES       CHAR(10)    NULL, )  三、在stumgn中创建视图 (1). 创建名为l_view的视图。

27、基于stu_jb和course两个表建立视图l_view,并显示student_id和course_no。所用语句如下:  CREATE view l_view AS select student_id ,course_no from student_info,course_info SELECT * FROM l_view   (2).创建一个名为sex_view的视图。显示性别为“男”的所有学生的资料,所用语句如下:

28、60; CREATE view sex_view AS SELECT * FROM student_info WHERE student_sex='男' SELECT * FROM sex_view 四、创建存储过程 下面语句是在stumgn数据库中建立一个名为“stu_scr”的存储过程,用于检索student_id=2002的信息,代码如下: IF exists(select name&

29、#160;from sysobjects  WHERE name='stu_scr'and type='p') drop procedure stu_scr go CREATE procedure stu_scr AS  select student_id=2002 from student_info go execute stu_scr go&

30、#160;五、创建索引 (1) 在stumgn数据库中建立名为clASs_no的唯一性簇索引,填充率为90%,并查看索引信息,代码: CREATE unique clustered INDEX clASs_no on clASs_info(clASs_no,grade_no) with pad_INDEX, FILLFACTOR=90 exec sp_helpINDEX clASs_info 六、创建触发器 建立一个名为tes

31、tprocess_insupd的触发器。代码如下: USE stumgn go IF EXISTS (SELECT name FROM sysobjects    WHERE name = 'testprocess_insupd' AND type = 'TR')    DROP TRIGGER testp

32、rocess_insupd GO CREATE TRIGGER testprocess_insupd ON testprocess FOR insert AS DECLARE result tinyINT DECLARE credit tinyINT SELECT result=testprocess.result from testprocess  SELECT credit

33、=testprocess.credit from testprocess IF (result>60)  BEGIN   UPDATE testprocess set testprocess.credit=credit   FROM testprocess END GO 六、确定表内和表之间的数据完整性 (1)缺省值约束 为表stu_jb中的列sex创建一个约束,缺省值为1。 use stumgngo alter table student_info  add constraint default_student_sex default 女 for student_sex 现我向表中插入一行学号为20006598,不给student_sex赋值.   (2)check约束 对表grade中的

温馨提示

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

评论

0/150

提交评论