教师信息管理系统课程毕业设计.docx

上传人:b****5 文档编号:6278766 上传时间:2023-01-05 格式:DOCX 页数:29 大小:240.12KB
下载 相关 举报
教师信息管理系统课程毕业设计.docx_第1页
第1页 / 共29页
教师信息管理系统课程毕业设计.docx_第2页
第2页 / 共29页
教师信息管理系统课程毕业设计.docx_第3页
第3页 / 共29页
教师信息管理系统课程毕业设计.docx_第4页
第4页 / 共29页
教师信息管理系统课程毕业设计.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

教师信息管理系统课程毕业设计.docx

《教师信息管理系统课程毕业设计.docx》由会员分享,可在线阅读,更多相关《教师信息管理系统课程毕业设计.docx(29页珍藏版)》请在冰豆网上搜索。

教师信息管理系统课程毕业设计.docx

教师信息管理系统课程毕业设计

数据库

课程设计

教师信息管理系统

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

2010年12月28日

数据库课程设计任务及成绩

院(系):

信息工程学院教研室:

软件教研室

学号

40/43/18/

52/53

学生姓名

专业班级

课程设计题目

教师信息管理系统

课程设计任务

利用本学期的数据库(sql2000)的知识做教师信息管理系统,实现对教师信息的管理:

查询、修改、删除、插入等操作。

使用企业管理器建立教师信息数据库,在库中建立相应的教师信息表,在表中添加相应的数据。

然后使用查询分析器进行简单查询、模糊查询、嵌套查询、创建视图、存储过程、触发器等操作。

充分了解教师信息管理系统开发过程,将书本知识更好的运用到实践之中,在实践之中发现自己的优点和不足。

积累实践经验,了解实践过程中所学到的书本没有的知识,将这些知识很好的掌握,为以后工作打下坚实的基础。

同时也将计算机有关方面的知识串联起来,实现计算机学科多面发展。

学会团体合作精神,认真、即使完成自身分配任务,充分融合到团体之中,体会到集体的力量。

 

成绩

成绩:

指导教师签字:

年月日

摘要

通过对教师信息管理系统数据库设计的需求分析、概念设计、逻辑设计、物理设计、数据库运行及维护阶段工作的实践,掌握数据库设计的一般方法与步骤,深入掌握数据库设计的基本理论、方法和步骤。

根据《数据库原理与应用》所学课程的内容,完成教师信息管理系 管理系统数据库设计的需求分析、概念设计、逻辑设计、物理设计、上机运行等工作。

要求所构成的系统和设计的数据库能够满足课程设计任务书提出的各项要求。

教师信息管理信息系统的设计与开发就是为了帮助学校运用信息化手段对学校教师信息流程进行管理。

本系统采用VisualBasic6.0与MicrosoftSQLServer2000结合的模式进行开发。

一系统分析与设计

1.1需求分析

安徽新华学院正在向本科院校发展,所以其教师的各项任务将会发生后很大变化,届时将会实现各个学院之间紧密联系,教师各个学院的相互教学,到时候教师的工作、工资和统计是一项很庞大的工程,所以我们需要一个数据规范化、自动化的电脑管理系统来统计我们的教师任务。

这个系统是为了教师工作更加方便,任务更加明确。

本系统主要考虑了以下几个方面来方便教师工作:

(1)教师一学期的工作计划,包含所教的班级、学生总数、课程等。

(2)教师每周的工作任务,每周的授课次数和所对应的班级,根据所对应的课程数而获得工资。

(3)教师一学期的出勤状况,根据它来判断学期的奖罚状况。

(4)各个教师的基本资料,包含的教师的个人信息和工作信息,让教师和领导可以准确的了解每一位教师的情况,保证了教师的利益,确保教师能将更多精力投入到工作上。

(5)教师员工之间的联系,我们需要的是一个学院之间的能够相互帮助、相互发展,所以需要各个学院教师之间的联系和互动。

(6)教职工的文凭和学习状况,各个教师的学历和工作期间所参加的学习任务,是否和其他高校的员工进行交流,在教学上获得改进。

(7)教师可以通过管理系统查找教师个人信息,以及在校工资信息。

(8)学生对教师的评估,包括教师上课的状况和学生对该门课程的学习状况,以及教师所教班级该课程的最终平均成绩。

1.2系统设计

1.2.1系统功能分析

本系统总体的功能是实现教师信息管理的系统化、规范化和自动化。

本系统要完成的功能有:

(1)系统登录:

包括用户登录、添加用户、修改密码、退出系统等。

通过对用户信息核实,选择权限。

(2)教师信息:

包括教师信息的创建、修改教师信息、删除教师信息等。

其中对教师信息的教师号、姓名、性别、地址、出生日期、联系方式、职务登记。

如果教师的信息有变动,则需要在此修改信息,如果有教师退休,或是辞职,则需要在此删除教师信息。

(3)课时:

包括每日的课时数、每月的课时数、季度课时数、年度课时数等。

通过对每位教师的出勤情况和课时数来计算教师的工资。

如果有代课情况则要记录代课数,以便计算教师工资。

教师可以查看自己的课时。

(4)出勤:

包括每天出勤次数、每月的出勤次数、季度出勤次数、年度出勤次数等。

记录教师每天的出勤情况,教师可以在表格中可以看到每月的出勤次数。

再另一个表格中记录根据出勤次数计算的工资情况。

教师通过对自己的工资了解,来核实出勤。

(5)

授课:

包括教师的职务、授课的班级、所授课程的课程名、课时有关等。

通过对教师的职务来确定教师所授的课程,不同的职位的教师他们的工资不同。

不同的课程所用的课时也不一样。

教师可以通过显示看到自己所教的课程。

(6)教师工资:

包括教师的月基本工资、每课时的工资等。

同时与之相关联的有教师信息表、出勤表、课时表。

通过对教师的职务、出勤、课时等情况记录,实现各教师情况的统计,可一次性显示所有教师的工资情况,也可以根据教师编号看各个教师工资情况。

1.2.2系统功能设计模块

对上述的功能进行集中、分块,按照结构化程序设计要求,尽心分析,得到了如图所示的系统功能模块图

课时信息

教师信息

授课课程

授课

所教班级

1.2.3系统流程图

 

重试

 

成功

 

系统管理员

 

普通教职工

 

二概念结构设计

实体及其属性:

1):

教师信息表E—R图

2):

授课表:

E—R图

3):

出勤表:

E—R图

 

4):

职务工资信息表:

E—R图

5):

上半年教师课时表:

E—R图

 

6)下半年教师课时表:

E—R图

 

7):

用户表:

E—R表

总体:

E—R图:

三.分析与设计数据库

3.1.表的建立

从上面的功能设计和程序浏览中不难看出本系统需要建立以下几个数据表:

教师信息表

授课表

课程表

职务工资信息表

用户表

教师课时

本系统使用的数据量比较小,因此这些表都集中建立在一个数据库中。

一:

(1)教师信息表中有:

教师号,姓名,性别,出生日期,住址等字段:

如图:

列名

数据类型

长度

是否允许为空

说明

教师号

Char

10

主键

姓名

Char

10

性别

Char

2

默认值:

联系方式

Char

15

出生日期

Datetime

住址

varChar

30

职务

Char

10

主键:

默认值:

讲师

(2)授课表中有:

教师号,授课号,课程名,专业,授课班级等字段:

如图:

列名

数据类型

长度

是否允许为空

说明

教师号

Char

10

主键

授课号

Char

10

即“课程号”

课程名

Char

10

授课班级

Char

15

专业

Char

10

(3)出勤表中有:

教师号,第一季度,第二季度,第三季度,第四季度等字段:

如图:

列名

数据类型

长度

是否允许为空

说明

教师号

Char

10

主键

第一季度

Char

5

单位:

第二季度

Char

5

单位:

第三季度

Char

5

单位:

第四季度

Char

5

单位:

(4)职务工资信息表中有:

教师类型代号,月基本工资,每课时数工资,每课时数工资,教师类型等字段:

如图:

列名

数据类型

长度

是否允许为空

说明

职务

char

10

主键

月基本工资

Int

每课时数工资

Int

(5)用户表中有:

用户编号,用户名,密码等字段:

如图:

列名

数据类型

长度

是否允许为空

说明

用户编号

Int

标示,自动编号,主键

用户名

Char

20

密码

Char

30

(6)上半年教师课时表中有:

教师号,2月,3月,4月,5月,6月上半年等字段:

如图:

列名

数据类型

长度

是否允许为空

说明

教师号

Char

10

主键

2月

Int

4

课时数

3月

Int

4

课时数

4月

Int

4

课时数

5月

Int

4

课时数

6月

Int

4

课时数

上半年

Char

5

课时数

(7)(7)下半年教师课时表中有:

教师号,7月,8月,9月,10月,11月,12月,一月下半年等字段:

如图:

列名

数据类型

长度

是否允许为空

说明

教师号

Char

10

主键

7月

Int

4

课时数

8月

Int

4

课时数

9月

Int

4

课时数

10月

Int

4

课时数

11月

Int

4

课时数

12月

Int

4

课时数

一月

Int

4

课时数

下半年

Char

5

课时数

3.2表之间联系

数据表的关系图:

如下:

3.3.SQL命令语句实现相关功能

经过前面的系统需求分析和概念结构设计以后,得到数据库逻辑结构。

现在就可以在SQLSever2000数据库系统中,实现上面设计的数据库逻辑结构。

这一步是利用数据库系统中的查询分析器实现的。

下面给出穿件这些表格的主要SQL语句。

3.3.1.创建教师数据库

createdatabaseteacher

on

(name=teacher1,

filename='e:

\数据库\teacher1.mdf',

size=5,

maxsize=15,

filegrowth=10%)

logon

(name=teacher_log,

filename='e:

\数据库\teacher_log.ldf',

size=5,

maxsize=10,

filegrowth=1)

3.3.2.创建表

Useteacher

Go

(1)createtable用户表

(用户编号intidentity(1,1)primarykey,

用户名char(20),

密码char(30))

用户表的视图:

select*from用户表

Useteacher

Go

(2)createtable教师信息表

(教师号char(10)primarykey,

姓名char(10),

性别char

(2)default'男',

联系方式char(15),

出生日期datetime,

住址varchar(30))

教师信息表的视图:

select*from教师信息表

(3)createtable授课表

(教师号char(10)primarykey,

授课号char(10),

课程名char(10),

授课班级char(15),

专业char(10))

授课表的视图:

select*from授课表

Useteacher

Go

(4)createtable上半年教师课时表

(教师号char(10)primarykey,

二月char(6),

三月char(6),

四月char(6),

五月char(6),

六月char(6),

上半年char(10))

上半年教师课时表的视图:

select*from上半年教师课时表:

Useteacher

Go

(5)createtable下半年教师课时表

(教师号char(10)primarykey,

七月char(6),

八月char(6),

九月char(6),

十月char(6),

十一月char(6),

十二月char(6),

一月char(6),

下半年char(10))

下半年教师课时表的视图:

select*from下半年教师课时表:

Useteacher

Go

6)createtable出勤表

(教师号char(10)primarykey,

第一季度char(5),

第二季度char(5),

第三季度char(5),

第四季度char(5))

出勤表的视图:

select*from出勤表

Useteacher

Go

7)createtable职务工资信息表

(教师类型代号chaR(10)primarykey,

月基本工资int,

每课时数工资int,

教师类型char(20))

职务工资信息表的视图:

select*from职务工资信息表

四SQL语句查询

4.1简单查询:

1)在教师信息表中查询教师号为1003和1005的信息:

Select*from教师信息表where教师号='1003'or教师号='1005'

2)在职务工资信息表中查询教授工资的基本信息,查询教师类型和教师类型代号:

Select*from职务工资信息表where职务='教授'

3)在出勤表中查询教师号为1003一年四个季度的课时数:

Select*from出勤表where教师号=’1003’

4.2对表中数据进行插入(insert),更新(update),删除(delete)操作:

1):

向职务工资信息表中插入新数据:

职务‘外教’月基本工资‘0’每课时数工资‘100

insert职务工资信息表

values('外教',0,100)

如图:

2)教师信息表中教师号为1003的职务由讲师变为助教:

update教师信息表set职务='助教'where教师号='1003'

3):

删除授课表中课程名为高数的教师号:

deletefrom授课表where课程名='高数'and专业='软件'

如图

4.3模糊查询:

1):

在教师信息表中查询姓张老师的信息:

Select*from教师信息表where姓名like'张%'

2):

在职务工资信息表中查询职务第一个字和第二个字是‘教’的职务工资情况:

select职务,月基本工资,每课时数工资from职务工资信息表where职务like'_教%'

4.4多表查询:

1)在教师信息表和授课表中查询教师号为‘1005’‘1007’一些基本信息和授课信息:

如下:

select教师信息表.教师号,姓名,性别,课程名,授课班级,专业from教师信息表,授课表where教师信息表.教师号=授课表.教师号and(教师信息表.教师号='1005'or教师信息表.教师号='1007')

2)在教师信息,职务工资信息表,出勤表中查询丽丽,张海,linad等教师的教师号,姓名,职务,月基本工资每课时数工资及教师第一季度和第二季度出勤天数:

select教师信息表.教师号,姓名,教师信息表.职务,月基本工资,每课时数工资,第一季度,第二季度from教师信息表,职务工资信息表,出勤表where

教师信息表.职务=职务工资信息表.职务and教师信息表.教师号=出勤表.教师号and(姓名='丽丽'or姓名='张海'or姓名='linad')

4.5嵌套查询:

1)在教师信息,授课表,职务工资信息表中查询教c++课程的姓名,职务,课程名,月基本工资:

select教师信息表.教师号,姓名,课程名,教师信息表.职务,月基本工资from教师信息表,职务工资信息表,授课表where课程名in(select

课程名from授课表where课程名='c++')and教师信息表.教师号=授课表.教师号and教师信息表.职务=职务工资信息表.职务

2)在教室信息表和下半年教师课时表中查询下半年总课时数比下半年平均总课时数多的教师信息:

如图:

select下半年教师课时表.教师号,姓名,性别,联系方式,职务,下半年as下半年总课时数from教师信息表,下半年教师课时表where

下半年>(selectavg(下半年)from下半年教师课时表)and教师信息表.教师号=下半年教师课时表.教师号

selectavg(下半年)from下半年教师课时表

 

4.6创建视图:

1)由教师信息表中女教师的教师号,姓名,联系方式,住址,职务创建视图v1:

Createviewv1

as

select教师号,姓名,性别,联系方式,住址,职务from教师信息表where性别in('女')

select*fromv1

2)查询教师的教师号,姓名,职务,,月基本工资,每课时数工资创建视图v2:

createviewv2

as

select教师信息表.教师号,姓名,教师信息表.职务,月基本工资,每课时数工资from教师信息表,职务工资信息表where

教师信息表.职务=职务工资信息表.职务

对视图v1,v2进行操作:

修改视图v1添加约束以后对v1进行修改教师的性别只能为女,('1012','江江','女','15715512222','合肥阳光小区','助教')插入新数据('1012','江江','女','15715512222','合肥阳光小区','助教',给视图V2加密;如图:

alterviewv1

as

select教师号,姓名,性别,联系方式,住址,职务from教师信息表where性别in('女')

withcheckoption

insertv1

values('1012','江江','女','15715512222','合肥阳光小区','助教')

alterviewv2

withencryption

as

select教师信息表.教师号,姓名,教师信息表.职务,月基本工资,每课时数工资from教师信息表,职务工资信息表where

教师信息表.职务=职务工资信息表.职务

sp_helptextv2

4.7创建存储过程:

1):

实现输入教师号和月份查询该教师所对应月份的工资:

ifexists(selectnamefromsysobjectswherename='p'andtype='p')

dropprocp

go

createprocp

@nochar(10),@nint=null,@n1int=null,@n2int=null

as

ifexists(selectnamefromsysobjectswherename='salary'andtype='u')

begin

droptablesalary

createtablesalary

(教师号char(10),

姓名char(15),

工资int,

月份int)

insertsalary

select教师信息表.教师号,姓名,(select月基本工资from职务工资信息表where教师信息表.职务=职务工资信息表.职务)+(select每课时数工资from职务工资信息表where教师信息表.职务=职务工资信息表.职务)*(select二月from上半年教师课时表where教师信息表.教师号=上半年教师课时表.教师号)工资,'2'月份from教师信息表,上半年教师课时表,职务工资信息表where教师信息表.职务=职务工资信息表.职务and教师信息表.教师号=上半年教师课时表.教师号and教师信息表.教师号=@no

/*三,四,五,六月相识删减*/

insertsalary

select教师信息表.教师号,姓名,(select月基本工资from职务工资信息表where教师信息表.职务=职务工资信息表.职务)+(select每课时数工资from职务工资信息表where教师信息表.职务=职务工资信息表.职务)*(select七月from下半年教师课时表where教师信息表.教师号=下半年教师课时表.教师号)工资,'7'月份from教师信息表,上半年教师课时表,职务工资信息表where教师信息表.职务=职务工资信息表.职务and教师信息表.教师号=上半年教师课时表.教师号and教师信息表.教师号=@no

/*八,九,十,十一,十二,一月相识删减*/

end

else

begin

createtablesalary

(教师号char(10),

姓名char(15),

工资int,

月份int)

insertsalary

select教师信息表.教师号,姓名,(select月基本工资from职务工资信息表where教师信息表.职务=职务工资信息表.职务)+(select每课时数工资from职务工资信息表where教师信息表.职务=职务工资信息表.职务)*(select二月from上半年教师课时表where教师信息表.教师号=上半年教师课时表.教师号)工资,'2'月份from教师信息表,上半年教师课时表,职务工资信息表where教师信息表.职务=职务工资信息表.职务and教师信息表.教师号=上半年教师课时表.教师号and教师信息表.教师号=@no

/*三,四,五,六月相识删减*/

insertsalary

select教师信息表.教师号,姓名,(select月基本工资from职务工资信息表where教师信息表.职务=职务工资信息表.职务)+(select每课时数工资from职务工资信息表where教师信息表.职务=职务工资信息表.职务)*(select七月from下半年教师课时表where教师信息表.教师号=下半年教师课时表.教师号)工资,'7'月份from教师信息表,上半年教师课时表,职务工资信息表where教师信息表.职务=职务工资信息表.职务and教师信息表.教师号=上半年教师课时表.教师号and教师信息表.教师号=@no

/*八,九,十,十一,十二,一月相识删减*/

end

select*fromsalarywhere月份=@nor月份=@n1or月份=@n2

由存储过程p可得:

例:

查询教师号‘1010’1月的工资:

如图:

execp'1010',1

查询教师号‘1009’,3,4,7月的工资:

如图:

execp'1009',3,4,7

4.8创建触发器:

1)级联修改教师号,修改教师信息表的教师号时,授课表,出勤表,上半年教师课时表,下半年教师课时表的相应教师号进行修改:

createtriggert_update

on教师信息表

forupdate

as

declare@nochar(10),@no1char(10),@namechar(15)

select@

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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