当前位置:文档之家› 教室管理系统-课程设计报告

教室管理系统-课程设计报告

《数据库程序设计》课程设计报告题目: 教室管理系统 专业: 网络工程班级: 姓名: 指导教师: 成绩:计算机学院 2017年12月8日2017-2018学年 第2学期1、课程设计的目的和意义 (1)2、需求分析阶段 (1)2.1处理对象 (1)2.2处理功能及要求 (1)2.3安全性和完整性要求 (2)2.3.1 安全性要求 (2)2.3.2完整性要求 (2)2.4需求分析阶段成果 (2)3、概念结构设计 (3)3.1教室管理信息系统数据流图 (3)3.2教室管理系统局部E-R模型 (4)4、结构逻辑设计 (5)4.1 E-R 图向关系模型的转换 (5)4.2数据模型优化 (5)4.3数据库的结构 (5)5、物理设计阶段 (7)5.1数据存储方面 (7)5.2系统功能模块 (7)5.3物理设计阶段结果 (7)6、数据库实施阶段 (7)6.1建立数据库 (7)6.2建立数据表 (8)7、数据库实施阶段 (14)8、系统调试和测试 (20)9、总结 (21)计算机学院《C语言程序设计》课程设计报告课程设计——教室管理系统设计1、课程设计的目的和意义教室作为一所学校的重要资源,然而在许多学校尤其大学,这种资源往往显得稀缺,必须借助先进的计算机信息技术对教室进行合理分配和管理,“教室管理系统”可以说是对学校的教室管理部门而言是一项基础而重要的工作。

教室管理这样一个系统,可以涉及到大多数SQL Server数据库的重要数据库对象、重要功能和特性,比如:视图、触发器和存储过程等。

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

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

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 课程表3、概念结构设计3.1教室管理信息系统数据流图图1 数据流程图3.2教室管理系统局部E-R模型图2 分E-R图4、结构逻辑设计4.1 E-R 图向关系模型的转换教室表(教室编号、教室类型、上课时间)主键:教室编号班级表(班级名称、教师编号、教室编号、课程、上课时间、备注)主键:班级名称外键:教室编号、教师编号教师表(教师编号、教师姓名、性别、职称、教授课程、备注)主键:教师编号4.2数据模型优化数据库德逻辑结构设计的结果不是唯一的。

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

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

关系数据模型的优化通常以规范化理论为指导,方法为:(1)确定数据依赖。

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

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

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

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

4.3数据库的结构表2 班级信息表结构表3 教师信息表结构表4 教室信息表结构5、物理设计阶段5.1数据存储方面5.2系统功能模块5.2.1教室表信息查询和更新模块将实现对教室信息的查询和更新(修改、插入、删除)操作,方便于对教室基本信息的管理5.2.2班级表的查询和更新模块将完成班级基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理5.2.3教师表的查询和更新模块将完成教师基本信息的查询、更新(修改、插入、删除)操作,便于对教师信息的集中管理5.3物理设计阶段结果表5 存储过程插入表6、数据库实施阶段6.1建立数据库create class;6.2建立数据表教室表的建立:create table 教室( 教室编号 char(20) not null,教室类型 char(30) not null,上课时间 nchar(30) not null,备注 nchar(10))教师表的建立:create table 教师( 教师编号 char(10) not null,教师名称 char(10) not null,性别 char(10) not null,职称 char(10) not null,教授课程 char(10) not null,备注 char(10))班级表的建立:create table 班级( 班级编号 int not null,教室编号 char(20) not null,课程 char(20) not null,教师编号 char(10) not null,上课时间 char(50) not null,备注 char(10))向表中插入数据:use classgoinsert 班级(班级编号,教室编号,课程,教师编号,上课时间) values('1001','101','数据库','001','周一第一节') Gouse classgoinsert 班级(班级编号,教室编号,课程,教师编号,上课时间) values('1001','102','TCP','002','周四第一节')gouse classgoinsert 教师(教师编号,教师名称,性别,职称,教授课程)values('101','尚老师','女','教授','数据库')gouse classgoinsert 教室(教室编号,教室类型,上课时间)values('1001','普通教室','上午第一节下午第二节') go主键约束的建立:use classgoalter table 教室add constraint pk_jsbhprimary key clustered(教室编号)go唯一约束的建立:use classgoalter table 教师add constraint uk_jsbhunique nonclustered(教师编号)go默认约束的建立:use classgoalter table 教师add constraint df_xbdefault '女' for 性别go视图的建立:create view 教室占用情况asselect dbo.教室.教室编号,dbo.班级.班级编号,dbo.班级.课程,dbo.班级.上课时间from dbo.教室INNER join dbo.班级on dbo.教室.教室编号=dbo.班级.教室编号where (dbo.教室.教室编号='101')教室编号存储过程的建立:use classgoif exists(select name from sys.objects where name ='教室' and type='p')drop procedure 教室查询gocreate procedure 教室查询@js char(8)with encryptionasselect 教室.教室编号,教室类型,班级.课程,班级.上课时间from 教室,班级where 教室.教室编号=班级.教室编号 and 教室.教室编号=@jsorder by 教室.教室编号go普通教室存储过程的建立:use classgoif exists(select name from sys.objects where name='普通教室查询' and type='p')drop procedure 普通教室查询gocreate procedure 普通教室查询with encryptionasselect 教室.教室编号,教室类型,教室.上课时间from 教室where 教室类型='普通教室'go实验教室存储过程的建立:use classgoif exists(select name from sys.objects where name='实验室教室查询' and type='p')drop procedure 实验室教室查询gocreate procedure 实验室教室查询with encryptionasselect 教室.教室编号,教室类型,教室.上课时间from 教室where 教室类型='实验室一'go计算机教室存储过程的建立:use classgoif exists(select name from sys.objects where name='计算机机房教室查询' and type='p')drop procedure 计算机机房教室查询gocreate procedure 计算机机房教室查询with encryptionasselect 教室.教室编号,教室类型,教室.上课时间from 教室where 教室类型='计算机机房一'go触发器的建立:use classgocreate trigger ins_kcon 班级for insertasinsert 教师(教师编号)select '004'from insertedGouse classgocreate trigger ins_kcon 班级for insertasinsert 教室(教室编号,上课时间)select '101','周一第二节'from insertedgouse classgocreate trigger del_bjsjon 班级for deleteasdelete 教师where 教师编号in (select 教室编号from deleted)go7、数据库实施阶段主界面程序://package parent_window;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class surFace extends JFrame{JButton findSt,addSt,chanSt ,delSt,exitSt;//查找,添加,删除,推出//构造函数public surFace(){Container c=this.getContentPane();c.setLayout(new GridLayout (2,1));JPanel lowerPanel=new JPanel();c.setFont(new Font("plain",Font.PLAIN,13));JLabel label=new JLabel("欢迎进入教室管理系统",SwingConstants.CENTER);label.setFont(new Font("BOLD",Font.BOLD,30));c.add(label);//创建按钮addSt=new JButton("录入");addSt.setToolTipText("添加教室信息");findSt=new JButton("查询");findSt.setToolTipText("查询信息");chanSt=new JButton("修改");chanSt.setToolTipText("修改教室信息");delSt=new JButton("删除");delSt.setToolTipText("删除教室信息");exitSt=new JButton("退出");exitSt.setToolTipText("安全退出统");lowerPanel.add(findSt);lowerPanel.add(addSt);lowerPanel.add(delSt);lowerPanel.add(exitSt);c.add(lowerPanel);//注册监听器,新建独立监听器类查找:fin(),添加:ads(),删除:del (),退出本系统:ext()}//main 方法,实现主界面public static void main (String args[ ]){surFace su=new surFace();su.setSize(500,400);su.setTitle("欢迎进人教室管理系统!");su.setVisible(true);}}图3 主界面查询界面:import java.awt. *;import java.awt.event. *;import java.sql. *;import javax.swing. *;class DataWindow extends JFrame implements ActionListener {JTextField 待输入教室编号;JButton 确定按钮;public DataWindow(){super("教室管理系统");setBounds(150,150,300,120);setVisible(true);Container c=this.getContentPane();c.setLayout(new GridLayout(2,1));待输入教室编号=new JTextField(15);确定按钮=new JButton("确定");JPanel p1=new JPanel(),p2=new JPanel();p1.add(new JLabel("请选择将要查询的教室编号"));p1.add(待输入教室编号);p2.add(new JLabel(""));p2.add(确定按钮);c.add(p1);c.add(p2);确定按钮.addActionListener(this);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){setVisible(false); System.exit(0);}});}public void actionPerformed(ActionEvent e){}}public class A{public static void main(String args[]){DataWindow window=new DataWindow();window.validate();//window.setSize(500,400);}}图4 查询界面删除程序:import java.awt. *;import java.awt.event. *;import java.sql. *;import javax.swing. *;class DataWindow extends JFrame implements ActionListener {JTextField 待输入教室编号;JButton 确定按钮;public DataWindow(){super("教室管理系统");setBounds(150,150,300,120);setVisible(true);Container c=this.getContentPane();c.setLayout(new GridLayout(2,1));待输入教室编号=new JTextField(15);确定按钮=new JButton("确定");JPanel p1=new JPanel(),p2=new JPanel();p1.add(new JLabel("请输入将要删除的教室编号!!"));p1.add(待输入教室编号);p2.add(new JLabel(""));p2.add(确定按钮);c.add(p1);c.add(p2);确定按钮.addActionListener(this); addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e) {setVisible(false); System.exit(0);} });}public void actionPerformed(ActionEvent e) {}}public class B{public static void main(String args[]) {DataWindow window=new DataWindow(); window.validate();//window.setSize(500,400);}}图5 删除界面录入程序:import java.awt. *;import java.awt.event. *;import java.sql. *;import javax.swing. *;class DataWindow extends JFrame implements ActionListener {JTextField 待输入教室编号;JButton 确定按钮;public DataWindow(){super("教室管理系统");setBounds(150,150,300,120);setVisible(true);Container c=this.getContentPane();c.setLayout(new GridLayout(2,1));待输入教室编号=new JTextField(15);确定按钮=new JButton("确定");JPanel p1=new JPanel(),p2=new JPanel();p1.add(new JLabel("请输入录入教室编号"));p1.add(待输入教室编号);p2.add(new JLabel(""));p2.add(确定按钮);c.add(p1);c.add(p2);确定按钮.addActionListener(this);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){setVisible(false); System.exit(0);}});}public void actionPerformed(ActionEvent e){}}public class C{public static void main(String args[]){DataWindow window=new DataWindow();window.validate();//window.setSize(500,400);}}图6 录入界面8、系统调试和测试对该教室管理系统进行测试,验证每个功能是否符合要求,具体的测试如下:(1)通过视图查看各个基本表和视图中的数据。

相关主题