数据库-高校教务管理系统.doc

上传人:doc321 文档编号:13550209 上传时间:2022-01-15 格式:DOC 页数:33 大小:957.05KB
返回 下载 相关 举报
数据库-高校教务管理系统.doc_第1页
第1页 / 共33页
数据库-高校教务管理系统.doc_第2页
第2页 / 共33页
数据库-高校教务管理系统.doc_第3页
第3页 / 共33页
数据库-高校教务管理系统.doc_第4页
第4页 / 共33页
数据库-高校教务管理系统.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《数据库-高校教务管理系统.doc》由会员分享,可在线阅读,更多相关《数据库-高校教务管理系统.doc(33页珍藏版)》请在三一文库上搜索。

1、题 目 高校教务管理系统 学生姓名 xxxxxx 学 号 xxxxxxxxxxxx 专业班级 xxxxxxxxxxxxxxxxxxxxx 目 录一、 问题分析-31、设计背景-32、运行环境-3二、需求分析-31、用户需求-42、系统主要功能-43、系统总框架图-6三、结构设计-61、数据字典-62、概念结构设计E-R图-12四、系统代码实现(PowerBuilder环境)-151、SQL Server 2008创建表格代码-152、PowerBuilder环境数据库连接代码-223、运行结果-24一、问题分析1、设计背景教务管理系统是高等学校教育工作的一项重要内容,是整个学校学校管理的核心和

2、基础。教务管理工作是指学校管理人员按照一定的教育方针,运用先进的管理手段,组织、协调,指挥和指导各方面人员的活动,以便高效率、高质量地完成各项教学任务,完成国家所制定的教育目标。教务管理工作是学校教学工作的中枢,是保证高等教学机制正常运转的枢纽,它是一项目的性、计划性、适应性、创造性和科学性很强的工作。教务管理工作关系到高等教学秩序的稳定和教学质量的提高,关系到搞笑的发展和人才的培养,教学管理在高校中占有相当重要的地位。随着计算机技术的飞速发展和高等教育体制改革的不断深入,传统的教务管理方法、手段以及工作效率已不能适应新的发展需要,无法很好地完成教学管理工作。提高教务管理水平的主要途径是更新管

3、理者的思想,增强对管理活动的科学认识。同时,运用先进的信息技术,开发高校综合教务管理系统,是深化教务体制改革的有力措施。要全面理解高校教务管理系统的需求,首先需要了解高校教务管理的内容、方法和流程等知识。2、运行环境本学生学籍管理系统(数据库系统)的开发与运行环境如下:开发环境:Windows 7辅助工具:SQL Server 2008数据库管理系统: PowerBuilder 9.0运行环境:Windows 7/xp二、需求分析进行数据库设计首先必须准确了解也分析用户需求(包括数据和处理)。目的是为教务管理数据库系统的设计打下牢牢的基础,是数据库开发的重要文件依据,主要为数据库设计人员使用,

4、是用户和系统分析员的项目依据文件。作为“地基”的需求分析是否做得充分与准确,它决定了在其上构建数据库大厦的速度和质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。1、用户需求本系统是针对高等院校的教务管理系统,因此教务管理系统的用户包括学生和课程。主要涉及系部信息、班级信息、学生信息、课程信息以及选课记录和成绩等多种数据信息。实现的具体功能如下:l 基础维护:1、 班级信息维护2、 学生信息维护3、 课程信息维护l 教学管理:1、 学生选课管理2、 课表查询3、 成绩输入l 报表打印打印成绩单以上是用户对系统的基本的功能要求,此外用户还要求系统的效率要高,查询速度要快,比较小的冗余,易

5、维护,具有较高的数据安全性。2、系统主要功能(1)班级信息维护界面 能够完成学校各个班级所有基本信息的输人登记,所有班级信息的修改、插人、删除等工作。 可以按照特定的信息进行查找,并按照特定的要求进行排序。 提供一定的帮助文件和系统维护功能。(2)学生信息维护界面 能够完成学生所有基本信息的输人登记,所有学生信息的修改、插人、删除等工作。 可以按照特定的信息进行查找,并按照特定的要求进行排序。 提供一定的帮助文件和系统维护功能。(3)课程信息维护界面 能够完成学校不同专业课程信息的录入,包括任课老师的信息。还可以对课程信息进行修改、删除等操作。 可以按照课程编号、课程名称、拼音码进行查询,相应

6、的课程的信息会出现在窗口界面。(3)学生选课界面 此部分的功能如下: 学生根据自己的学号、姓名、年级进行选课。 可以通过课程拼音、课程名称、课程编号和课程序号对课程信息进行查询,然后会出现所选课程的基本信息。 通过该界面既可以实现选课功能,还可以实现删课功能。(4)课表查询界面 学生根据自己的学号、姓名、年级进行选课可以查到自己所选课程的详细上课时间。(5)学生成绩输入界面 当选课结束时,教师可以根据课程编号查询其所教授的课程,然后给学生输入一定的成绩,然后提交。(6)打印成绩单界面 可以根据学号打印学生相应的成绩。由于数据库内的信息会很多,注意数据库表格设计,使得学生查询基本信息或学习成绩时

7、使用时间较短。按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计。3、系统总框架图教务管理系统基础信息维护教学管理报表统计班级信息维护课程信息维护打印成绩单成绩输入学生选课课表选课学生信息维护三、结构设计1、 数据字典(1)数据项数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果,数据字典是对系统所用到的所有表结构的描述,教务管理的主要数据见下表。班级信息表成绩表籍贯代码表课程表课程信息表民族代码表选课表学籍代码表学生信息政治面貌代码表(2)数据结构数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构

8、组成,或若干个数据项和数据结构混合组成。经过数据项和用户需求的分析,我对本系统一共分了5个组,具体如下表所示:数据结构名含义说明组成部分班级信息描述班级基本信息班级编号+年级+班级名称+班级简称+人数 +班主任学生信息描述学生基本信息学号+姓名+班级编号+性别+年级+政治面貌+民族编号+籍贯编号+省份证号+学籍编号课程信息描述学校课程的基本信息课程编号+课程名称+课程简称+拼音码+本学期课程+教师+开课系别学生选课学生的信息和选课的课程信息学号+课序号+课程名称+教师+开课系别+上课时间+上课时间(3)数据流系统流程图:班级信息维护学生信息表操作员课程信息维护学生选课课程信息表教师信息维护班级

9、信息表班级信息维护教师信息表查询课程表成绩输入打印成绩单数据流是数据结构在系统内传输的路径。通过对用户的需求分析,以及数据项和数据流的设计,得出了相应的数据流描述如下表所示:数据流定义表编号数据流名组成流量备注01班级信息班级编号+年级+班级名称+班级简称+人数 +班主任大班级基本信息02学生信息学号+姓名+班级编号+性别+年级+政治面貌+民族编号+籍贯编号+省份证号+学籍编号大学生详细信息03课程信息课程编号+课程名称+课程简称+拼音码+本学期课程+教师+开课系别大课程详细信息04课程表信息学号+姓名+班级+课程名称大课程表信息05成绩输入学生成绩+课程编号+课程名称+学号+姓名大学生成绩信

10、息数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。经过数据项、数据结构和数据流的设计,本系统一共选用了三个数据存储,具体对数据存储的描述通常如下表所示:数据存储编号数据存储名输入数据流输出数据流数据量存取方式A1班级基本信息大批处理、顺序检索A2学生基本信息大批处理、顺序检索A3学生成绩单大批处理、更新、顺序检索处理过程的具体处理逻辑一般用判定表或判定树来描述。对于本系统用于高校教务管理系统一共设计了三种处理方法,具体处理方式如下表所示:处理过程编号名称输入数据流输出数据流备注B1插入修改01,02,0301,02,03插入学生信息信息B2更新修改01,02,0301,02,0

11、3更新学生信息信息B3删除修改01,02,0301,02,03删除学生信息信息2、 概念结构设计的E-R图年级班级编号性别学号姓名籍贯编号学籍编号省份证号民族编号政治面貌编号学生图 3-1 学生实体E-R图课程信息课程简称课程编号课程名称拼音码教师本学期课程开课系别学分图 3-2 课程信息实体E-R图选课表课序号编号学号图 3-3 选课表实体E-R图课程表上课时间天上课时间节课序号课程编号编号上课地点图 3-4 课程表实体E-R图成绩表考试次数课程编号成绩是否重考是否已确定成绩编号是否补修图 3-5 成绩表实体E-R图在基础维护系统中存在这样的关系:学习(一个学生只能在一个班级学习,而一个班级

12、可以供多个学生学习,故是多对一的关系)。学生班级学习n1图 3-5学生关系E-R图在教学管理中存在这样的关系:选课(一个学生可以选择多门课程,而一门课程可以供多个学生选择,故是多对多的关系)学生课程选课nm图 3-6 选课关系E-R图3 对于报表统计,我们可以将成绩单实体抽象出来。成绩单课程名称成绩开课系别教师图 3-7课程实体E-R图以上是本系统中的基本的实体和关系,本系统是将其分步找出来加以描述,下面是本系统总体的E-R图:图 3-8学籍管理系统E-R图四、系统代码实现(PowerBuilder环境)1、SQL Server 2008创建表格代码(1)建立班级信息表格:CREATE TAB

13、LE dbo.班级信息(班级编号 varchar(14) NOT NULL,年级 varchar(4) NULL,班级名称 varchar(30) NULL,班级简称 varchar(16) NULL,人数 numeric(3, 0) NULL,班主任 varchar(8) NULL, CONSTRAINT PK_班级信息 PRIMARY KEY CLUSTERED (班级编号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PA

14、GE_LOCKS = ON) ON PRIMARY) ON PRIMARY(2)建立成绩表格:CREATE TABLE dbo.成绩表(编号 int IDENTITY(1,1) NOT NULL,学号 varchar(14) NOT NULL,课程编号 int NOT NULL,成绩 int NOT NULL,考试次数 int NULL,是否补修 varchar(2) NULL,是否重考 varchar(2) NULL,是否已确定成绩 varchar(2) NULL, CONSTRAINT PK_成绩表 PRIMARY KEY CLUSTERED (编号 ASC)WITH (PAD_INDEX

15、 = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY(3)建立籍贯代码表格:CREATE TABLE dbo.籍贯代码表(籍贯编号 varchar(2) NOT NULL,籍贯 varchar(18) NULL, CONSTRAINT PK_籍贯代码表 PRIMARY KEY CLUSTERED (籍贯编号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECO

16、MPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY(4)建立课程表格:CREATE TABLE dbo.课程表(编号 int IDENTITY(1,1) NOT NULL,课序号 varchar(14) NOT NULL,课程编号 int NOT NULL,上课时间天 int NOT NULL,上课时间节 int NOT NULL,上课地点 varchar(20) NOT NULL, CONSTRAINT PK_课程表 PRIMARY KEY

17、 CLUSTERED (编号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY(5)建立课程信息表格:CREATE TABLE dbo.课程信息(课程编号 int NOT NULL,课程名称 char(40) NOT NULL,课程简称 char(40) NOT NULL,拼音码 char(6) NULL,本学期课程 char(2) NOT NULL,教

18、师 char(10) NULL,开课系别 char(30) NULL,学分 int NULL, CONSTRAINT PK_课程信息 PRIMARY KEY CLUSTERED (课程编号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY(6)建立民族代码表格:CREATE TABLE dbo.民族代码表(民族编号 varchar(2) NOT NULL

19、,民族 varchar(18) NULL, CONSTRAINT PK_民族代码表 PRIMARY KEY CLUSTERED (民族编号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY(7)建立选课表格:CREATE TABLE dbo.选课表(编号 int IDENTITY(1,1) NOT NULL,学号 varchar(14) NOT NULL

20、,课序号 varchar(14) NOT NULL, CONSTRAINT PK_选课表 PRIMARY KEY CLUSTERED (编号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY(8)建立学籍代码表格:CREATE TABLE dbo.学籍代码表(学籍编号 varchar(2) NOT NULL,学籍名称 varchar(8) NULL, C

21、ONSTRAINT PK_学籍代码表 PRIMARY KEY CLUSTERED (学籍编号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY(8)建立学生信息表格:CREATE TABLE dbo.学生信息(学号 varchar(14) NOT NULL,姓名 varchar(8) NULL,班级编号 varchar(14) NULL,性别 varch

22、ar(2) NULL,年级 int NULL,政治面貌编号 varchar(2) NULL,民族编号 varchar(2) NOT NULL,籍贯编号 varchar(2) NOT NULL,身份证号 varchar(15) NULL,学籍编号 varchar(2) NOT NULL, CONSTRAINT PK_学生信息 PRIMARY KEY CLUSTERED (学号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE

23、_LOCKS = ON) ON PRIMARY) ON PRIMARY(9)建立政治面貌代码表格:CREATE TABLE dbo.政治面貌代码表(政治面貌编号 varchar(2) NOT NULL,政治面貌 varchar(14) NULL, CONSTRAINT PK_政治面貌代码表 PRIMARY KEY CLUSTERED (政治面貌编号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

24、ON PRIMARY) ON PRIMARY(10)创建主键及外键等表的约束ALTER TABLE dbo.学生信息 WITH NOCHECK ADD CONSTRAINT PK_学生信息 PRIMARY KEY CLUSTERED (学号) ON PRIMARY GOALTER TABLE dbo.学籍代码表 WITH NOCHECK ADD CONSTRAINT PK_学籍代码表 PRIMARY KEY CLUSTERED (学籍编号) ON PRIMARY GOALTER TABLE dbo.成绩表 WITH NOCHECK ADD CONSTRAINT PK_成绩表 PRIMARY K

25、EY CLUSTERED (编号) ON PRIMARY GOALTER TABLE dbo.政治面貌代码表 WITH NOCHECK ADD CONSTRAINT PK_政治面貌代码表 PRIMARY KEY CLUSTERED (政治面貌编号) ON PRIMARY GOALTER TABLE dbo.民族代码表 WITH NOCHECK ADD CONSTRAINT PK_民族代码表 PRIMARY KEY CLUSTERED (民族编号) ON PRIMARY GOALTER TABLE dbo.班级信息 WITH NOCHECK ADD CONSTRAINT PK_班级信息 PRIM

26、ARY KEY CLUSTERED (班级编号) ON PRIMARY GOALTER TABLE dbo.籍贯代码表 WITH NOCHECK ADD CONSTRAINT PK_籍贯代码表 PRIMARY KEY CLUSTERED (籍贯编号) ON PRIMARY GOALTER TABLE dbo.课程信息 WITH NOCHECK ADD CONSTRAINT PK_课程信息 PRIMARY KEY CLUSTERED (课程编号) ON PRIMARY GOALTER TABLE dbo.课程表 WITH NOCHECK ADD CONSTRAINT PK_课程表 PRIMARY

27、 KEY CLUSTERED (编号) ON PRIMARY GOALTER TABLE dbo.选课表 WITH NOCHECK ADD CONSTRAINT PK_选课表 PRIMARY KEY CLUSTERED (编号) ON PRIMARY GOALTER TABLE dbo.成绩表 ADD CONSTRAINT DF_成绩表_成绩 DEFAULT (0) FOR 成绩GOALTER TABLE dbo.学生信息 ADD CONSTRAINT FK_学生信息_班级信息 FOREIGN KEY (班级编号) REFERENCES dbo.班级信息 (班级编号),CONSTRAINT F

28、K_学生信息_籍贯代码表 FOREIGN KEY (籍贯编号) REFERENCES dbo.籍贯代码表 (籍贯编号),CONSTRAINT FK_学生信息_民族代码表 FOREIGN KEY (民族编号) REFERENCES dbo.民族代码表 (民族编号),CONSTRAINT FK_学生信息_学籍代码表 FOREIGN KEY (学籍编号) REFERENCES dbo.学籍代码表 (学籍编号),CONSTRAINT FK_学生信息_政治面貌代码表 FOREIGN KEY (政治面貌编号) REFERENCES dbo.政治面貌代码表 (政治面貌编号)GOALTER TABLE dbo

29、.成绩表 ADD CONSTRAINT FK_成绩表_课程信息 FOREIGN KEY (课程编号) REFERENCES dbo.课程信息 (课程编号),CONSTRAINT FK_成绩表_学生信息 FOREIGN KEY (学号) REFERENCES dbo.学生信息 (学号)GOALTER TABLE dbo.课程表 ADD CONSTRAINT FK_课程表_课程信息 FOREIGN KEY (课程编号) REFERENCES dbo.课程信息 (课程编号)GO(11)创建存储过程create proc sf_成绩提交 courseid intasbegin tran- 提交成绩,提

30、交后不可以再修改update 成绩表 set 是否已确定成绩=Y where 课程编号=courseidand 成绩0commitGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GOSET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GOcreate proc sf_终止选课as begin tran-应该单独有一个【终止选课】的功能,终止选课后生成空的成绩单-所有学生将不允许更改课程信息,如果需要更改,必须单独申请,特殊处理。-终止选课一学年应该只能进行一次操作,实例没有制作开始选课等功能,终止-选课后在学

31、生选课中仍然可以更改选择的课程。insert into 成绩表(学号,课程编号,成绩,考试次数,是否补修,是否重考,是否已确定成绩)select distinct a.学号, b.课程编号, 0, 1, N, N,N from 选课表 as a, 课程表 as b where a.课序号=b.课序号and rtrim(a.学号)+rtrim(b.课程编号) not in (select rtrim(学号)+rtrim(课程编号) from 成绩表)- 因为没有记录选课状态,上面的sql语句加了判断,如果成绩表以有- 改学号/课程,就不插入,实际应用中如果是重复的,应该是补修和重考- 的情况,应

32、该更改已有信息的这些状态- 还要注意select 语句加了distinct说明,因为选课表一个课序号- 一个学号可能有两条记录commitGO2、PowerBuilder环境数据库连接代码:forwardglobal type eisbook from applicationend typeglobal transaction sqlcaglobal dynamicdescriptionarea sqldaglobal dynamicstagingarea sqlsaglobal error errorglobal message messageend forwardglobal type e

33、isbook from applicationstring appname = eisbookend typeglobal eisbook eisbookon eisbook.createappname=eisbookmessage=create messagesqlca=create transactionsqlda=create dynamicdescriptionareasqlsa=create dynamicstagingareaerror=create errorend onon eisbook.destroydestroy(sqlca)destroy(sqlda)destroy(s

34、qlsa)destroy(error)destroy(message)end onevent open;/ Profile hislinkSQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = ConnectString=DSN=eisbook;UID=local;PWD=Connect using SQLCA;/连接数据库 /连接失败则返回if SQLCA.sqlcode 0 thenMessageBox(提示信息,连接ODBC【liblink】失败!)returnend if/打开主窗口open(w_main)end eventevent close;disconnect using sqlca; /断开数据库连接end event3、运行结果:1、程序运行之后的主界面:2、基础维护/班级维护的界面:查询计算机专业的班级信息的结果:添加信息与计算科学09-1班:3、基础维护/学生信息维护的界面:查询学生王斌的信息:添加学生信息:4、基础维护/课程信息维护的界面:查询体育课程的基本信息:添加课程的基本信息:5、教学管理/学生选课的界面:6、教学管理/课表查询界面:7、教学管理/成绩输入界面:8、报表统计/打印成绩单界面:

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1