1、教务管理系统需求分析1 教务管理系统需求分析教务管理系统所必备的功能归纳为如图1.1所示,其中每个功能都由若干相关联的子功能模块组成。图1.1 教务管理系统的基本功能模块1.1 系统数据流程系统的数据流程如图1.2所示。教务管理系统基础数据系统教学计划管理课程管理学籍管理教师管理注册收费管理排课选课管理考务成绩管理毕业管理继承管理系统管理奖罚管理 异动管理收费系统 学籍管理 招生系统注册系统 课程管理系统选课系统教学计划系统排课系统排考表系统重修重考成绩管理系统教师录入系统毕业管理系统图1.2 系统数据流程1.2 基础数据管理“基础数据管理” 功能模块用于维护整个教务系统正常运行所需的基础数据
2、集,以保证教务系统有一个统一的标准的基础数据集,便于数据的共享使用,内容包括包括入学年份、学年学期、院系数据、专业设置、教研室情况等,其中所包含子功能模块如图1.3所示图1.3“基础数据管理” 功能模块1.3 教学计划管理“教学计划管理” 功能模块用于维护学校中各系各专业的课程、课组计划安排信息,作为选课和毕业审查的标准,包括的功能有课程计划登记、课程计划审批、选课情况查询、选课信息审批等。1.4 学籍管理“学籍管理”主要包括了高校学籍管理的常用信息,提供对学生学籍基本信息录入、查询、修改、打印输出、维护等常用功能,并提供学号编排、学生照片输入与显示、学籍变动(留级、休学、跳级、转班、转学、退
3、学等) 、奖惩登记毕业情况等功能。1.5 教师管理“教师管理”功能模块用于管理教师相关的信息,提高质量,保证教学工作的高效运行,其中包含的子功能模块如图1.4所示。基础数据管理基本信息专业代码学期代码学年代码科属部门代码班级代码教室代码学历代码职称代码教学计划名称管理教师代码管理其他基础信息管理教师管理教师基本信息教师任课档案教师奖罚档案教师考评管理教师课时数统计教师进修档案图 1.4 “教师管理”功能模块“教师基本信息” 用于管理教师的基本信息,如所学专业、学历、毕业院校等。“教师任课档案” 用于管理教师任课档案信息,如教师姓名、学历和学期、任课班级、课程、周时数、总时数等。“教师奖惩档案”
4、 用于管理教师奖惩档案信息,如教师姓名、奖惩日期、类别原因、奖惩名称、奖惩等级等。“教师考评管理” 用于对教师进行考评。“教师课时数统计” 用于统计教师工作量。“教师进修档案” 用于管理教师进修档案信息,如教师姓名、进修日期、进修科目、进修单位、进修成绩等。1.6 注册收费管理“注册管理”功能模块用于记录学生新学期的注册情况,如果未注册将记录学生的未注册原因及未注册去向。 “收费管理”功能模块用于记录学生开学初的收费情况,每个学生的收费标准来自学生学籍信息中的收费类别。1.7 排课选课管理“排课选课管理” 功能模块用于根据教学计划、教室资源、教师资源等,制定每学期的课程表,其中包含的子功能模块
5、如图1.5所示。图 1.5 “排课选课管理”功能模块“条件设定”用于设置排课的一些限制条件,如班级、教师、教室的排课时段限制。“全校排课设定” 用于对某学期全校课表的共同部分进行设置,如课表的统一抬头、没天上课节数、统一的排课时段等进行设置。“班级课程配置” 用于对某个班级某学期具体开设的课程分别进行排课时段、单双周】连堂课等特殊情况设置。“教师排课设定” 用于对个别教师的排课时段进行特殊设置。“教室排课设定” 用于对个别教室的排课时段进行特殊设置。“课程信息录入” 用于对一些临时添加或修改的课程(不在教学计划之列的)进行设置。排课选课管理条件设置全校排课设定班级课程配置教师排课设定教室排课设
6、定课程信息录入教室分区设定排课时段设定合班信息设定人工排课自动排课学生选课“教室分区设定” 用于把学校所有教室依据空间设置、使用类别等进行分区分组设置。“排课时段设定” 用于设置在一周的哪些时段安排课程,针对不同的班级、教室、教师只有给他们的排课时段相同可以通用。“合班信息设定” 用于对公共选修课打破行政班级的限制,在某个学期临时性的把几个班级组合在一起上课。“人工排课”用于自动排课进行人工干预,常针对哪些调课、代课进行临时处理。“自动排课”用于根据排课管理员设置的课程信息,以班级为单位进行自动的排课。“学生选课”用于学生选择本学期的课程,目前一般都在网上直接完成。1.8 考务成绩管理“考务成
7、绩管理” 功能模块用于根据课程自动生成本学期的考试地点、考试时间、监考老师等数据,并对考试的过程和结果进行监控,其中包含的子功能模块如图1.6所示。图 1.6 “考务成绩管理”功能模块“考务信息发布” 用于发布考务信息,如学年、学期、期中(期末)考试、考试时间等,以及其他一些有关考务的事项。“考试日程安排” 用于管理考试日期、时间、考试科目、考试班级、监考老师、考场等信息。“评卷安排”用于对评卷专业、评卷科目、评卷教师、评卷日期、时间等评卷信息进行管理。“考场情况记录” 用于对考场情况进行管理,如考试班级、考试科目、应考人数、实到人数、违纪记录情况等。“学生成绩录入” 用于授课教师输入学生的考
8、试成绩。“补考成绩录入” 用于授课教师输入学生的补考成绩。“补考通知单”用于教务处依据班级、个人、课程、进行不及格统计,并打印出学生的补考通知单。“班级成绩单”用于以班级为单位,打印该班级所开设课程的每个学生的成绩,送交教务处存档用。1.9 毕业管理“毕业管理”功能模块用于对学生毕业进行处理,同时对毕业信息、学位授予、证书授予及教务成绩管理考务信息发布考试日程安排评卷安排考试情况记录学生成绩录入补考成绩录入补考通知单班级班级成绩单校友信息等进行管理,其中包含的子功能模块如图1.7所示。图 1.7 “毕业管理”功能模块“技能管理”用于对学生在校期间获得资格证书进行存档,有利于提高学生的综合素质。
9、“实习管理”用于记录学生在校期间的实习情况。“论文管理”用于记录学生的毕业论文情况,供日后查询或借鉴。“毕业审核”用于根据学生的所在系(所) 、专业的教师计划、选课成绩和学籍来审查该省是否具备毕业资格。“毕业管理”用于记录学生的毕业信息,包括毕业证书号、工作去向等。1.10教材管理“教材管理”功能模块用于对教材库存、教材计划、教材预定、班级预收款、教材采购及教材销售工资进行有效管理,其中包含的子功能如图1.8所示。图 1.8 “教材管理” 功能模块毕业管理技能管理实习管理论文管理毕业审核成绩单管理毕业管理教材管理管理教材信息设置开课教材设置教材计划库存管理教材采购教师领书2 教务管理系统数据库
10、分析“学生信息”, “教师信息 ”, “课程信息”等都是系统的关键表,其他数据表与这些关键表间的关系是N:1的关系。2.1 教务管理系统E-R图关键实体的E-R图如图2.1所示。班级信息PK 班级编号年级班级名称班级简称人数班主任籍贯代码码表PK 籍贯编码籍贯籍贯籍贯民族代码表PK 民族编号名族政治面貌代码表PK 政治面貌编号名族学籍代码表PK 学籍编号学籍名称成绩表PK 编号FK1 学号FK2 课程编号成绩考试次数是否补修是否重考是否以确定成绩成绩表PK 学号姓名班级编号性别年级政治面貌编号名族编号籍贯编号身份证号学籍编号成绩表PK 编号PK 课程编号课程名称课程简称拼音码本学期课程 教师开
11、课系别学分课程表PK 编号PK 编号课序表课程编号上课时间天上课时间节上课地点课程表PK 编号Pk1 学号课序号图 2.1 教务管理系统E-R图2.2 教务管理系统数据表清单重要表的名称及用途如表2.1所示。数据表名称 数据表用途Bjbkb 班级报考表Bjcjb 班级成绩表(打印用)Bjjhcjb 班级计划成绩表(显示和打印用)Bjhks 班计划学期考试课程表Bjhxq 班计划学期课程开设表Bjxjh 班教学计划信息表Bjxxb 版注册和档案表Bkbpdfb 报考编排登分表Kctdmkbtmp 毕业课程替代免考表Kctdmkb 毕业课程代替免考表Bysmdb 毕业生名单Bycymdb 毕业预审
12、审核差异名单表Byyshsdfb 毕业预审审核得分表Byyshsdfb tmp 毕业预审审核得分表Cgdw 采购单位Cgdwdhzz 采购单位到货总账Cgdwhzz 采购单位总账Cgdhmxb 采购到货明细表Cgdhmxml 采购到货明细目录Cgmxb 采购明细表Cgzb 采购总表Cjdmb 成绩代码表Cjgdb 成绩更动表Cjtjb 成绩统计表Cjzb 成绩总表Cjzbcopy 成绩总表Dgdw 订购单位Dgdwmxb 订购单位明细表Dgmxb 订购明细表Dgzb 订购总表Fxzyb 辅修专表Jhkkkcb 计划开考课程表Jhkkkcd 计划开考课程传递表Jljb 奖励级别Jlqkjzb 奖
13、励情况记载表Jccgfbml 教材采购分单目录Jccgjsb 教材采购计算表Jccgmxb 教材采购明细表Jccgshb 教材采购审核表Jcch 教材册号Jcdgzb 教材订购总表Jclxmdz 教材类型编码对照Jcsmmb 教材说明模板Jcthzt 教材替换状态Dgdwzb 教材征订订购单位总表Jczb 教材总表Jxbm 教学部门表Jxdg 教学大纲Jxhjdy 教学环境定义Kkdw 开课单位表Kcqkb 考试情况表Kdxxb 考点代码表Kslb 考生类别代码表Ksdmb 考试代码表Ksdmcd 考试代码传递表Ksdxb 考试对象表Ksfsdm 考试方式代码表Kslxdmd 考试类型代码表K
14、ccc 课程层次代码表Kcgldw 课程管理单位Kcjsfs 课程建设方式Kcjsjb 课程建设级别表Kcjslb 课程建设类别Kcjcdzb 课程教材对照Kclb 课程类别代码表Kctdb 课程代替表Kcxz 课程性质代码表Kczb 课程总表Ljhkc 类计划课程表Ljhxq 类计划学期开设课程表Ljhks 类计划学期考试课程表Ljxjh 类教学计划表Mzdm 民族代码表Ndszb 年度收支表Njdm 年纪代码表Njkc 年纪课程表Njcy 年期专业表Njzy 新开课程表Xkkc 新生注册表Xszcb 学费来源代码表Xfly 学籍变动代码表Xjyd 学籍变动记载表Xjydjzb 学籍状态代码
15、表Xjzt 学生非在籍和毕业生统计表Xsbyfzjtj 学生基本情况表 Xsjbdab 学生基本情况表Xsjhcjb 学生计划成绩表(显示和打印用)Xslb 学生类别代码表Xslx 学生类型代码表Userxslx 学生类型代码对应表3 制作介绍3.1 实例功能实例介绍如图2.2所示功能的开发过程,并简化其中各功能所包含的属性。需要强调的是,由于用户登陆和权限管理的功能各个系统实现的方法是一致的,图 2.2 详细介绍的功能模块3.2 系统流程图 系统流程图 2.3 所示。教务管理系统(制作演示)基础维护教学管理报表统计学生信息维护班级信息维护表课程信息维护课表查询学生学课成绩输入但因成绩单那图
16、2.3 系统流程图4 数据库设计根据实例介绍, “学生信息表”和“课程信息”是系统关键的表,其他各表均通过相应的编号字段进行多对一的关联。系统共需 10 张表,用途分别如表 2.4 所示。表 2.4 系统数据表及其用途数据表名称 数据表用途政治面貌代码表 保存学生政治面貌的代码和政治面貌,如团员、党员等名族代码表 保存学生名族的代码和名族,如汉族、壮族等籍贯代码表 保存学生籍贯的代码和籍贯,如北京,广西等学籍代码表 保存学生学籍的代码和学籍,如在学、休学、毕业等班级信息 保存班级的基础信息学生信息 保存学生的基础信息课程信息 保存课程的基础信息课程表 保存课程的上课时间和地点的信息,一般有排课
17、子系统生成。成绩表 保存学生的课程成绩4.1 创建数据库班级信息维护学生信息维护课程信息维护教师信息维护操作员 学生选课班级信息表学生信息表课程信息表教师信息表查询课程表成绩输入打印成绩单创建 SQL Server 企业管理器,新建一个数据库,将其命名为 eisbook。4.2 创建“班级信息”数据表CREATE TABLE dbo.班级信息 (班级编号 varchar (14) NOT NULL ,年级 varchar (4) NULL ,班级名称 varchar (30) NULL ,班级简称 varchar (16) NULL ,人数 numeric(3, 0) NULL ,班主任 va
18、rchar (8) NULL ) ON PRIMARYGO4.3 创建“学生信息”数据库CREATE TABLE dbo.学生信息 (学号 varchar (14) NOT NULL ,姓名 varchar (8) NULL ,班级编号 varchar (14) NULL ,性别 varchar (2) NULL ,年级 int NULL ,政治面貌编号 varchar (2) NULL ,民族编号 varchar (2) NOT NULL ,籍贯编号 varchar (2) NOT NULL ,身份证号 varchar (15) NULL ,学籍编号 varchar (2) NOT NULL
19、 ) ON PRIMARYGO4.4 创建“课程信息”数据表CREATE TABLE dbo.课程信息 (课程编号 int NOT NULL ,课程名称 char (40) NOT NULL ,课程简称 char (40) NOT NULL ,拼音码 char (6) NULL ,本学期课程 char (2) NOT NULL ,教师 char (10) NULL ,开课系别 char (30) NULL ,学分 int NULL ) ON PRIMARYGO4.5 创建“课程表”数据表CREATE TABLE dbo.课程表 (编号 int IDENTITY (1, 1) NOT NULL
20、,课序号 varchar (14) NOT NULL ,课程编号 int NOT NULL ,上课时间天 int NOT NULL ,上课时间节 int NOT NULL ,上课地点 varchar (20) NOT NULL ) ON PRIMARYGOCREATE TABLE dbo.选课表 (编号 int IDENTITY (1, 1) NOT NULL ,学号 varchar (14) NOT NULL ,课序号 varchar (14) NOT NULL ) ON PRIMARYGO4.6 创建“成绩表”数据库CREATE TABLE dbo.成绩表 (编号 int IDENTITY
21、 (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 ) ON PRIMARYGO4.7 创建其他关键数据表以下是其他关键数据库的创建脚本。CREATE TABLE dbo.政治面貌代码表 (政治面貌编号 varchar (2) NOT NULL ,政治面貌 varchar (14) NULL ) ON PRIMARYG
22、OCREATE TABLE dbo.民族代码表 (民族编号 varchar (2) NOT NULL ,民族 varchar (18) NULL ) ON PRIMARYGOALTER TABLE dbo.学籍代码表 WITH NOCHECK ADD CONSTRAINT PK_学籍代码表 PRIMARY KEY CLUSTERED (学籍编号) ON PRIMARY GOCREATE TABLE dbo.籍贯代码表 (籍贯编号 varchar (2) NOT NULL ,籍贯 varchar (18) NULL ) ON PRIMARYGO4.8 创建主键及外键等表约束。在查询分析器中通过如
23、下代码创建数据表的主键及外键等表约束。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 KEY CLUSTERED (编号) O
24、N 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 KEY CLUSTERED (
25、班级编号) 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 KEY CLUSTERED (编号)
26、 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 FK_学生信息_籍贯代码表 FOREIG
27、N KEY (籍贯编号) REFERENCES dbo.籍贯代码表 (籍贯编号),CONSTRAINT FK_学生信息_民族代码表 FOREIGN KEY (民族编号) REFERENCES dbo.民族代码表 (民族编号),CONSTRAINT FK_学生信息_学籍代码表 FOREIGN KEY (学籍编号) REFERENCES dbo.学籍代码表 (学籍编号),CONSTRAINT FK_学生信息_政治面貌代码表 FOREIGN KEY (政治面貌编号) REFERENCES dbo.政治面貌代码表 (政治面貌编号)GOALTER TABLE dbo.成绩表 ADD CONSTRAINT
28、 FK_成绩表_课程信息 FOREIGN KEY (课程编号) REFERENCES dbo.课程信息 (课程编号),CONSTRAINT FK_成绩表_学生信息 FOREIGN KEY (学号) REFERENCES dbo.学生信息 (学号)GOALTER TABLE dbo.课程表 ADD CONSTRAINT FK_课程表_课程信息 FOREIGN KEY (课程编号) REFERENCES dbo.课程信息 (课程编号)GO4.9 创建存储过程系统使用了“sf终止选课”和“sf成绩提交”两个存储过程,分别实现结算选课,生成空白成绩单和教师提交最终的成绩但的功能。create proc
29、 sf_成绩提交 courseid intasbegin tran- 提交成绩,提交后不可以再修改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-应该单独有一个【终止选课】的功能,终止选课后生成空的成绩单-所有学生将不允许更改课程信息,如果需要更改,必须单独申请,特殊处理。
30、-终止选课一学年应该只能进行一次操作,实例没有制作开始选课等功能,终止-选课后在学生选课中仍然可以更改选择的课程。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语句加了判断,如果成绩表以有
31、- 改学号/课程,就不插入,实际应用中如果是重复的,应该是补修和重考- 的情况,应该更改已有信息的这些状态- 还要注意select 语句加了distinct说明,因为选课表一个课序号- 一个学号可能有两条记录commitGO5 程序开发本系统采用多文档窗体程序,没一功能对应一个子窗体。5.1 程序运行结果本实例的运行结果如图 2.5所示。选择菜单中的各菜单命令可以进入相应的功能。(1) 选择【基础维护】|【班级信息维护】命令,进入【班级维护功能窗体】,在其中输入学校班级相关的信息,如图 2.6所示,需要新增或修改信息,单击相应的按钮,输入信息后单击【保存】按钮即可。需要删除一条信息,选中该信息
32、后单击【删除】按钮。在搜索条件编辑框输入搜索的条件,单击【搜索】按钮,可以查询出相应的记录。(2) 选择【基础维护】|【学生信息维护】命令,进入【学生信息维护】功能窗体,如 2.7所示,在输入学生相关的信息。其中【班级编号】、【政治编号】、【名族编号】、【籍贯编号】和【学籍编号】列表框都是通过饿数据库中相应的代码表关联出列表框的选择项,选择下拉的一个列表项目后,保存的是该项目的编号信息。图 2.5 实例运行结果图 2.6 班级信息维护功能窗体图 2.7 学生信息维护功能窗体(3) 选择【基础维护】|【课程信息维护】命令,进入【课程信息维护】功能窗体,在其中输入课程的信息,如图 2.8所示。图
33、2.9 课程信息维护功能窗体完成以上基础信息维护后,就可以运行教务管理的各个功能了。一般教务管理系统中的基础信息除了以上信息外还涉及很多其他方面,如教师、教室、系别、教材等信息。在完成了各个资源的设置后,需要通过排课系统排出课程表。本实例使用现成的课程表演学生选课、成绩登记等功能。(4) 选择【教学管理】|【学生选课】命令,进入【学生选课】功能窗体,如图 3.0所示。首先在【学号】编辑框中输入学号并回车,系统显示出对应学生信息和该学生已选的课程;然后在【课程信息】组合框中输入课程查询条件,查询并选择希望选的课程,单击【选课】按钮,系统检查该门课程是否已选择,以及该课序号课程的所有上课时间和已选
34、择课程的上课时间是否冲突,如果都没有问题就可以完成指定课序号的课程的选课操作。需要注意的是,一般教务管理系统都是学生用自己的学号登陆到系统,只能选择自己的课程,而不是在选课界面输入学号,因为实例程序没有制作登陆功能,所以这么处理了。同时还应注意一门课程可以对应多个课程号,一个课程号可以对应多个上课时间。想要删除已经选择的课程,在【已选课程】组合框中选择欲删除的课程号,单击【删除】按钮即可。单击【显示课表】按钮可以按照课表的形式显示选择的课程,具体参见【课表查询】功能。图 3.0 学生选课功能船体(5) 选课完成后,选择【教学管理】|【课表查询】命令,进入【课表查询】功能窗体,如3.1所示,从中
35、可以查询对应课程表。如图 3.1 课表查询功能窗体学生选课完成后通过终止选课功能终止选课时间,产生空成绩单,所选择的课程不能够在修改。实例把终止选课的功能集成到成绩输入功能中。选择【教学管理】|【成绩输入】命令,进入【成绩输入】功能窗体,如图 3.2所示。先单击【终止选课,生成空成绩单】按钮,系统调用“sf终止选课”存储过程,产生对应的成绩表记录。在【选择课程】组合框中输入课程号的查询条件,查询出需要登记成绩的课程,系统列出所有选择了指定课程的学生及成绩,选择相应记录,在【成绩】编辑框中输入成绩,单击【修改成绩】按钮即可。在完成所有的成绩输入后,单击【最终提交】按钮,提交成绩,提交后成绩将不可
36、再修改(在成绩输入功能不能再查询到) 。图 3.2 成绩输入功能窗体(6) 学生毕业前一般都需要打印成绩单,选择【报表统计】|【打印成绩单】命令,进入【打印成绩单】功能窗体,如图 3.3所示。在【学号】编辑框中输入学号后回车,可以查询出指定学号学生的所有成绩单,单击【打印】按钮可以打印出成绩单,如图3.4所示。图 3.3 打印成绩单功能窗体图 3.4 打印成绩单5.2 创建工程启动 Microsoft Visual .NET 2003,在主菜单选择【文件】|【新建】|【项目】命令,弹出【新建项目】对话框,在【项目类型】列表框中选择【visual basic项目】选项,然后在【模板】列表框中选择
37、【windows 应用程序】 。在【名称】文本框中输入一个合适的方案文件名,选取要存放的位置,然后单击【确定】按钮完成新项目的开启。5.3 创建系统主窗体(1)利用系统默认生成的窗体作为主窗体,并为其添加主菜单控件和其他控件,布局如图3.5所示。图 3.5 系统主窗体(2)主窗体及其控件的属性设置如表 3.6和 3.7所示。表 3.6 主窗体属性设置控件类型 对象(控件)名 属性 取值(说明)From Frmmain Name FrmmainCaption EIS教务管理系统Ismdicontainer True表 3.7 窗体主菜单属性设置菜单栏 菜单项 属性 取值(说明)Mnbasic T
38、ext 基础维护(&w)Mnclass Text 班级信息维护(&x)Mnstudent Text 学生信息维护(&y)Msubject Text 课程信息维护(&z)Mnteach Text 教学管理(&x)Mnselect Text 学生学科(&x)Mncourse Text 课表查询(&y)Mnresult Text 成绩输入(&z)Mnprint Text 报表统计(&y)Mnreport Text 打印成绩单(&z)Mnexit Text 退出系统(&z)5.4 创建数据访问模块因为各个窗体均需要对数据库进行访问,可以把对数据库的一些操作通过一个类来实现,这样可以使对数据库的访问更加
39、简单。选择【文件】|【添加新项】命令添加一个名为“database.Vb”的类文件。5.5 创建数据操作窗体的父类窗体因为系统中所有对数据库表进行维护的窗体界面及实现的功能大体是一致的,为了减少系统编程的工作量,可以把这些共同的部分抽取出来,生成一个父类窗体,其他数据库操作窗体均可以通过集成父类窗体获得数据维护的功能。这是 visual 语言的一个特点和优点,也是需要重点去理解和掌握的知识点。新建一个窗体,将其 name属性改为“frmbase” ,并为其添加如图 3.8所示的控件。图 3.8 基础窗体5.6 实现班级信息维护(1) 选择【文件】|【添加新项】命令,在【添加新项】对话框的【模
40、板】列表框中选择【继承选择器】对话框,在其中选择 frmbase选项并单击【确定】按钮。为新建窗体添加如图 3.9所示的控件。图 3.9 frmclass窗体(2)各控件的属性设置如表 4.0所示。表 4.0 frmclass窗体控件属性控件类型 对象名 属性 取值(说明)From Frmclass Text FrmbaseGroupbox Groupbox1 Dock BottomTextbox Txbclaasid Texttextbox Txbgrade TextTextbox Txbnumber TextTextbox Txbteacher TextTextbox Txbname Te
41、xtTextbox Txbshortname Text(3)从工具箱中拖动一个 sqldataadapter对象到窗体上,连接 eisbook数据库,添加班级信息,并选择所有字段。单击【确定】按钮完成 sqldataadapter对象的配置。(4)在 sqldataadapter对象上右击,在弹出的快捷菜单中选择【生成数据集】命令,在弹出的【生成数据集】对话框中单击【确定】按钮。(5)为每个 textbox控件设置数据源。(6)重写 frmclass基类 frmbase的函数。Public Overrides Sub Prepare()Me.Text = “班级信息维护“End SubPubl
42、ic Overrides Sub LoadData()Dim strFilter As StringIf txbOne.Text.Trim.Length = 0 ThenIf txbTwo.Text.Trim.Length = 0 ThenIf txbThree.Text.Trim.Length = 0 ThenstrFilter = “ElsestrFilter = “where 班级名称 like “strFilter += txbThree.Text.Trim + “%“End IfElsestrFilter = “where 年级 like “strFilter += txbTwo.T
43、ext.Trim + “%“If txbThree.Text.Trim.Length 0 ThenstrFilter += “ and 年级 like “strFilter += txbTwo.Text.Trim + “%“If txbThree.Text.Trim.Length 0 ThenstrFilter += “ and 班级名称 like “strFilter += txbThree.Text.Trim + “%“End IfEnd IfEnd If清空DataSet11DataSet11.Clear()SqlConnection1.ConnectionString = DataBa
44、se.sConnDim strSQL As StringSqlDataAdapter1.SelectCommand.CommandText _= “select * from 班级信息 “ + strFilter根据查询条件重新填充DataSet11SqlDataAdapter1.Fill(DataSet11)dtData = DataSet11.Tables(“班级信息“)bmData = Me.BindingContext(DataSet11, “班级信息“)If bmData.Count 0 ThenbmData.Position = 0End IfEnd SubPublic Overr
45、ides Sub SetDataGrid()LoadData()定义一个DataGrid表样式Dim ts As New DataGridTableStyleDim aColumnTextColumn As DataGridTextBoxColumnDim numCols As Integer = dtData.Columns.CountDim i As IntegerFor i = 0 To numCols - 1aColumnTextColumn = New DataGridTextBoxColumnaColumnTextColumn.MappingName = _dtData.Colum
46、ns(i).ColumnNameaColumnTextColumn.HeaderText = _dtData.Columns(i).ColumnNameaColumnTextColumn.NullText = “aColumnTextColumn.ReadOnly = Truets.GridColumnStyles.Add(aColumnTextColumn)Nextts.AlternatingBackColor = Color.LightGrayts.AllowSorting = Falsets.MappingName = dtData.TableNamedgdList.TableStyles.Clear()dgd