教室管理系统设计报告.docx

上传人:b****1 文档编号:22807042 上传时间:2023-04-28 格式:DOCX 页数:23 大小:84.50KB
下载 相关 举报
教室管理系统设计报告.docx_第1页
第1页 / 共23页
教室管理系统设计报告.docx_第2页
第2页 / 共23页
教室管理系统设计报告.docx_第3页
第3页 / 共23页
教室管理系统设计报告.docx_第4页
第4页 / 共23页
教室管理系统设计报告.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

教室管理系统设计报告.docx

《教室管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《教室管理系统设计报告.docx(23页珍藏版)》请在冰豆网上搜索。

教室管理系统设计报告.docx

教室管理系统设计报告

赤峰学院

数据库原理与技术

课程设计报告

 

题目教室管理系统

院系计算机与信息工程学院

专业班级2010级计算机科学与技术2班

设计成员赵立超、尚小苓、李美静、

张志义、付雪松

指导教师韩志强

 

二O一二年十二月二十日

课程设计——教室管理系统设计

1、课程设计的目的和意义

教室作为一所学校的重要资源,然而在许多学校尤其大学,这种资源往往显得稀缺,必须借助先进的计算机信息技术对教室进行合理分配和管理,“教室管理系统”可以说是对学校的教室管理部门而言是一项基础而重要的工作。

教室管理这样一个系统,可以涉及到大多数SQLServer数据库的重要数据库对象、重要功能和特性,比如:

视图、触发器和存储过程等。

由此,通过这个课程设计可以加深对这些SQLServer数据库知识的学习、理解,积累在实际工程应用中运用各种数据库对象的经验,使学生掌握使用应用软件开发工具开发数据库管理系统的基本方法。

在实用性方面,教室管理系统是很普遍的一种应用,选择该系统作为课程设计也可以为学生以后可能遇到的实际开发提供借鉴。

2、需求分析阶段

2.1处理对象

教室:

教室编号、教室类型、上课时间

班级:

班级名称、教师编号、教室编号、课程、上课时间、备注

教师:

教师编号、教师姓名、性别、职称、教授课程、备注

2.2处理功能及要求

2.2.1能够存储一定数量的教室信息,并方便有效的进行相应的教室如何分配和管理,这主要包括:

  1)教室信息的录入、删除及修改。

  2)教室的空闲时间

2.2.2能够对一定数量的班级、教师进行相应的信息存储与管理,这其中包括:

 1)班级信息的登记、删除及修改。

2)教师信息的增加、删除及修改。

 3)班级和教师资料的查询。

能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。

对查询的结果能够列表显示。

2.3安全性和完整性要求

2.3.1安全性要求

系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。

安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。

2.3.2完整性要求

系统完整性要求系统中数据的正确性以及相容性。

可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。

2.4需求分析阶段成果

表1课程表

M

T

W

S

F

数据库1班

尚老师101

TCP2班李老师102

数据结构1班付老师103(多媒体)

TCP2李老师102

TCP实验机房

(二)1.2班李老师

TCP实验

(一)1.2班李老师

数据库2班尚老师101

数据结构机房

(一)1.2班付老师

数据结构2班付老师103(多媒体)

数据结构1班付老师103(多媒体)

数据结构机房

(一)1.2班付老师

3、概念结构设计

3.1教室管理信息系统数据流图

图1数据流程图

3.2教室管理系统局部E-R模型

教师

性别

备注

教师编号

教师名称

职称

课程

教师编号

班级

班级编号

上课时间

教师名称mingmingchengchrng称

教室

教室编号

上课时间

教室类型

上课时间

备注

备注

图2分E-R图

4、结构逻辑设计

4.1E-R图向关系模型的转换

教室表(教室编号、教室类型、上课时间)

主键:

教室编号

班级表(班级名称、教师编号、教室编号、课程、上课时间、备注)

主键:

班级名称外键:

教室编号、教师编号

教师表(教师编号、教师姓名、性别、职称、教授课程、备注)

主键:

教师编号

4.2数据模型优化

数据库德逻辑结构设计的结果不是唯一的。

为了提高数据库应用系统的性能,还应该根据应用需要适当的修改,调整关系模式,这就是数据模型的优化。

规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准,可用来预测模式可能出现的问题,使数据库设计工作有了严格的理论基础。

关系数据模型的优化通常以规范化理论为指导,方法为:

(1)确定数据依赖。

分别写出每个关系内部属性的以及不同关系模式属性间

的数据依赖。

(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。

(3)按照数据依赖的理论对关系模式逐一分析,考察是否存在部分函数依赖,传递函数依赖,根据各个函数依赖的依赖集可知各个关系模式没有部分函数依赖和传递函数依赖所以所有的关系模式都是属于3NF。

不需要进一步进行模式分析。

4.3数据库的结构

表2班级信息表结构

列名

数据类型

大小

空值

班级编号

int

主键

教室编号

char

20

外键

教师编号

char

20

外键

课程

char

10

上课时间

char

50

备注

char

10

表3教师信息表结构

列名

数据类型

大小

空值

教师编号

char

10

主键

教师名称

char

10

性别

char

10

职称

char

10

教授课程

char

10

备注

nchar

10

表4教室信息表结构

列名

数据类型

大小

空值

教室编号

char

10

主键

教师类型

char

30

上课时间

nchar

20

备注

nchar

10

5、物理设计阶段

5.1数据存储方面

5.2系统功能模块

5.2.1教室表信息查询和更新模块

将实现对教室信息的查询和更新(修改、插入、删除)操作,方便于对教室基本信息的管理

5.2.2班级表的查询和更新模块

将完成班级基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理

5.2.3教师表的查询和更新模块

将完成教师基本信息的查询、更新(修改、插入、删除)操作,便于对教师信息的集中管理

5.3物理设计阶段结果

表5存储过程插入表

编号

存储过程

作用

1

教室表_select

在教室表中查询一元组

2

班级表_select

在班级表中查询一元组

3

教师表_select

在教师表中查询一元组

6、数据库实施阶段

6.1建立数据库

createclass;

6.2建立数据表

教室表的建立:

createtable教室

(教室编号char(20)notnull,

教室类型char(30)notnull,

上课时间nchar(30)notnull,

备注nchar(10))

教师表的建立:

createtable教师

(教师编号char(10)notnull,

教师名称char(10)notnull,

性别char(10)notnull,

职称char(10)notnull,

教授课程char(10)notnull,

备注char(10))

班级表的建立:

createtable班级

(班级编号intnotnull,

教室编号char(20)notnull,

课程char(20)notnull,

教师编号char(10)notnull,

上课时间char(50)notnull,

备注char(10))

向表中插入数据:

useclass

go

insert班级

(班级编号,教室编号,课程,教师编号,上课时间)

values

('1001','101','数据库','001','周一第一节')

Go

useclass

go

insert班级

(班级编号,教室编号,课程,教师编号,上课时间)

values

('1001','102','TCP','002','周四第一节')

go

useclass

go

insert教师

(教师编号,教师名称,性别,职称,教授课程)

values

('101','尚老师','女','教授','数据库')

go

useclass

go

insert教室

(教室编号,教室类型,上课时间)

values

('1001','普通教室','上午第一节下午第二节')

go

主键约束的建立:

useclass

go

altertable教室

addconstraintpk_jsbh

primarykeyclustered(教室编号)

go

唯一约束的建立:

useclass

go

altertable教师

addconstraintuk_jsbh

uniquenonclustered(教师编号)

go

默认约束的建立:

useclass

go

altertable教师

addconstraintdf_xb

default'女'for性别

go

视图的建立:

createview教室占用情况

as

selectdbo.教室.教室编号,dbo.班级.班级编号,dbo.班级.课程,dbo.班级.上课时间

fromdbo.教室INNERjoindbo.班级

ondbo.教室.教室编号=dbo.班级.教室编号

where(dbo.教室.教室编号='101')

教室编号存储过程的建立:

useclass

go

ifexists(selectnamefromsys.objectswherename='教室'andtype='p')

dropprocedure教室查询

go

createprocedure教室查询

@jschar(8)

withencryption

as

select教室.教室编号,教室类型,班级.课程,班级.上课时间

from教室,班级

where教室.教室编号=班级.教室编号and教室.教室编号=@js

orderby教室.教室编号

go

普通教室存储过程的建立:

useclass

go

ifexists(selectnamefromsys.objectswherename='普通教室查询'andtype='p')

dropprocedure普通教室查询

go

createprocedure普通教室查询

withencryption

as

select教室.教室编号,教室类型,教室.上课时间

from教室

where教室类型='普通教室'

go

实验教室存储过程的建立:

useclass

go

ifexists(selectnamefromsys.objectswherename='实验室教室查询'andtype='p')

dropprocedure实验室教室查询

go

createprocedure实验室教室查询

withencryption

as

select教室.教室编号,教室类型,教室.上课时间

from教室

where教室类型='实验室一'

go

计算机教室存储过程的建立:

useclass

go

ifexists(selectnamefromsys.objectswherename='计算机机房教室查询'andtype='p')

dropprocedure计算机机房教室查询

go

createprocedure计算机机房教室查询

withencryption

as

select教室.教室编号,教室类型,教室.上课时间

from教室

where教室类型='计算机机房一'

go

触发器的建立:

useclass

go

createtriggerins_kc

on班级

forinsert

as

insert教师(教师编号)

select'004'

frominserted

Go

useclass

go

createtriggerins_kc

on班级

forinsert

as

insert教室(教室编号,上课时间)

select'101','周一第二节'

frominserted

go

useclass

go

createtriggerdel_bjsj

on班级

fordelete

as

delete教师where教师编号in(select教室编号fromdeleted)

go

7、数据库实施阶段

主界面程序:

//packageparent_window;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclasssurFaceextendsJFrame{

JButtonfindSt,addSt,chanSt,delSt,exitSt;//查找,添加,删除,推出

//构造函数

publicsurFace(){

Containerc=this.getContentPane();

c.setLayout(newGridLayout(2,1));

JPanellowerPanel=newJPanel();

c.setFont(newFont("plain",Font.PLAIN,13));

JLabellabel=newJLabel("欢迎进入教室管理系统",SwingConstants.CENTER);

label.setFont(newFont("BOLD",Font.BOLD,30));

c.add(label);

//创建按钮

addSt=newJButton("录入");

addSt.setToolTipText("添加教室信息");

findSt=newJButton("查询");

findSt.setToolTipText("查询信息");

chanSt=newJButton("修改");

chanSt.setToolTipText("修改教室信息");

delSt=newJButton("删除");

delSt.setToolTipText("删除教室信息");

exitSt=newJButton("退出");

exitSt.setToolTipText("安全退出统");

lowerPanel.add(findSt);

lowerPanel.add(addSt);

lowerPanel.add(delSt);

lowerPanel.add(exitSt);

c.add(lowerPanel);

//注册监听器,新建独立监听器类查找:

fin(),添加:

ads(),删除:

del(),退出本系统:

ext()

}

//main方法,实现主界面

publicstaticvoidmain(Stringargs[]){

surFacesu=newsurFace();

su.setSize(500,400);

su.setTitle("欢迎进人教室管理系统!

");

su.setVisible(true);

}

}

图3主界面

查询界面:

importjava.awt.*;

importjava.awt.event.*;

importjava.sql.*;

importjavax.swing.*;

classDataWindowextendsJFrameimplementsActionListener

{

JTextField待输入教室编号;

JButton确定按钮;

publicDataWindow()

{super("教室管理系统");

setBounds(150,150,300,120);

setVisible(true);

Containerc=this.getContentPane();

c.setLayout(newGridLayout(2,1));

待输入教室编号=newJTextField(15);

确定按钮=newJButton("确定");

JPanelp1=newJPanel(),p2=newJPanel();

p1.add(newJLabel("请选择将要查询的教室编号"));

p1.add(待输入教室编号);

p2.add(newJLabel(""));

p2.add(确定按钮);

c.add(p1);c.add(p2);

确定按钮.addActionListener(this);

addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{setVisible(false);System.exit(0);}

});

}

publicvoidactionPerformed(ActionEvente)

{}

}

publicclassA

{

publicstaticvoidmain(Stringargs[])

{

DataWindowwindow=newDataWindow();

window.validate();

//window.setSize(500,400);

}

}

图4查询界面

删除程序:

importjava.awt.*;

importjava.awt.event.*;

importjava.sql.*;

importjavax.swing.*;

classDataWindowextendsJFrameimplementsActionListener

{

JTextField待输入教室编号;

JButton确定按钮;

publicDataWindow()

{super("教室管理系统");

setBounds(150,150,300,120);

setVisible(true);

Containerc=this.getContentPane();

c.setLayout(newGridLayout(2,1));

待输入教室编号=newJTextField(15);

确定按钮=newJButton("确定");

JPanelp1=newJPanel(),p2=newJPanel();

p1.add(newJLabel("请输入将要删除的教室编号!

"));

p1.add(待输入教室编号);

p2.add(newJLabel(""));

p2.add(确定按钮);

c.add(p1);c.add(p2);

确定按钮.addActionListener(this);

addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{setVisible(false);System.exit(0);}

});

}

publicvoidactionPerformed(ActionEvente)

{}

}

publicclassB

{

publicstaticvoidmain(Stringargs[])

{

DataWindowwindow=newDataWindow();

window.validate();

//window.setSize(500,400);

}

}

图5删除界面

录入程序:

importjava.awt.*;

importjava.awt.event.*;

importjava.sql.*;

importjavax.swing.*;

classDataWindowextendsJFrameimplementsActionListener

{

JTextField待输入教室编号;

JButton确定按钮;

publicDataWindow()

{super("教室管理系统");

setBounds(150,150,300,120);

setVisible(true);

Containerc=this.getContentPane();

c.setLayout(newGridLayout(2,1));

待输入教室编号=newJTextField(15);

确定按钮=newJButton("确定");

JPanelp1=newJPanel(),p2=newJPanel();

p1.add(newJLabel("请输入录入教室编号"));

p1.add(待输入教室编号);

p2.add(newJLabel(""));

p2.add(确定按钮);

c.add(p1);c.add(p2);

确定按钮.addActionListener(this);

addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{setVisible(false);System.exit(0);}

});

}

publicvoidactionPerformed(ActionEvente)

{}

}

publicclassC

{

publicstaticvoidmain(Stringargs[])

{

DataWindowwindow=newDataWindow();

window.validate();

//window.setSize(500,400);

}

}

图6录入界面

8、系统调试和测试

对该教室管理系统进行测试,验证每个功能是否符合要求,具体的测试如下:

(1)通过视图查看各个基本表和视图中的数据。

(2)检测各个存储过程的功能。

9、总结

经过近几个星期的努力,终于设计出一个达到程序设计要求的数据库。

其功能完整,用户界面良好,但是也存在着某些缺陷。

通过这一段时间的工作努力,最后的结果固重要,但更重要的是它让我们熟悉了系统设计的整体步骤。

系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、数据库的实施及调试测试六大步骤。

其中,让我们感触最深的是需求分析阶段,在这个阶段,必须对所要设计的系统有总体的构思和了解,知道自己要做什么,要实现什么,并且要实际的进行相关的调查,不能凭想象或自己的了解,这样会避免在后续的工作中遇到很多的问题。

同时,通过这次课程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1