1、理 工 学 院课 程 设 计 报 告 课程名称 数据库课程设计 设计题目 教务管理系统 专 业 计算机科学与技术 班 级 学 号 姓 名 完成日期 2013 年 12 月 30 日 课 程 设 计 任 务 书设计题目: 教务管理系统 设计内容与要求:类 似 于 我 校 教 务 管 理 系 统 , 有 四 类 用 户 :教 务 员 可 以 输 入 学 生 、 教 师 、 班 级 、 课 程 信 息 , 一 个 班 级 只 属 于 一 个 专 业 ,一 个 学 生 只 属 于 一 个 班 级 。 教 务 员 负 责 输 入 每 个 专 业 、 每 个 班 级 需 要 学 习 哪 些 课程 , 指
2、定 课 程 的 任 课 教 师 。教 师 可 以 查 看 学 习 该 课 程 的 学 生 名 单 。 课 程 结 束 后 , 教 师 可 以 录 入 课 程 成 绩 。一 个 教 师 可 以 教 授 多 个 班 的 多 门 课 程 , 每 门 课 由 多 位 老 师 讲 授 。课 程 分 两 类 , 必 修 课 和 选 修 课 。 系 统 要 记 录 每 个 学 生 学 习 各 门 必 修 课 的 成 绩 ,还 要 记 录 学 生 选 修 了 哪 些 选 修 课 以 及 课 程 成 绩 。 学 生 可 以 查 看 自 己 各 门 课 程 的 成绩 。 学 生 还 可 以 进 行 评 教 , 给
3、 老 师 打 分 。系 统 管 理 员 可 以 输 入 教 室 信 息 , 并 结 合 班 级 、 课 程 、 教 室 信 息 实 现 自 动 排 课 。指导教师: 2013 年 12 月 20 日课 程 设 计 评 语成绩:指导教师:_年 月 日理 工 学 院 课 程 设 计 报 告1目 录1 概述 .21.1 课程设计目标 .21.2 课程设计的背景和意义 .21.1.2 课程设计的背景 .22 需求分析 .32.1 系统需求 .32.2 可行性分析 .32.3 用户要求 .32.3.1 信息需求 .32.3.2 处理需求 .42.3.3. 课程设计的意义 .43 概念结构设计 63.1
4、设计分析 63.2 概念模型设计 63.2.1 局部概念结构设计 .63.2.2 全局概念结构模型(E-R 图) 74 逻辑结构设计 .85 物理结构设计 .105.1 数据表的设计 105.2 数据库完整性设计 125.2.1 数据库实体完整性设计 .125.2.2 数据库参照完整性设计 .125.2.3 数据库用户定义完整性设计 .135.3 数据库安全性设计 136 应用程序设计 .146.1 系统功能模块图 146.2 系统界面 157 设计总结 .288 体会与收获 .29参考文献 .30理 工 学 院 课 程 设 计 报 告21 概述1.1 课程设计目标课程设计总的目标是衡量学生是
5、否取得学习效果,培养学生具有专业网站初步的规划、设计、制作能力。具体表现在网站内容、功能、安全等方面合理策划和规划;培养具有主页和二级页面的创意、设计等方面的技术处理能力和具有强大的动态效果制作能力。培养学生具有基于后台数据库的编程技术,实现客户服务器端交互式动态网页的制作能力,掌握实际网页设计与制作开发流程和开发方法。1.2 课程设计的背景及意义现如今高等院校的招生人数越来越多,必然就会有大量的学生信息、教师信息及课程信息需要处理。如果只靠人力来完成,这将会变成一项非常繁琐、复杂的工作,而且还有可能出现很多意想不到的错误,给管理这些数据带来了极大的不便,越来越不适合高校的发展需要。教务管理系
6、统是一个庞大而复杂的系统,它包括对教师信息的管理,对课程资料的管理,对学生信息的管理和对学生成绩的管理等主要功能。教务管理系统是每所高校的一项必不可少的内容,它的好坏直接影响到学校的主要工作,此系统一旦瘫痪,不仅会影响到学校的每一位学生,学校也会因此受到非常严重的损失。随着我校近几年来的快速发展,办学模式多元化,在校学生规模不断扩大,为了加速对教务管理的计算机化,我校需要开发出符合我校实际的教务管理系统,为学校教学管理提供一个快速、简单规范的管理平台,同时也方便教员查询相关信息,提高信息传播速度,扩大信息共享范围。所以,现在设计一个功能完整、操作简单以及界面友好的教务管理系统变得非常重要。通过
7、这个系统,管理员能够对教师信息、课程信息、学生信息和学生成绩进行查询、添加、修改和删除等操作,用户也可以对自己的基本信息进行修改,学生还可以用该系统进行网上选课和成绩查询,非常的方便。因此,本系统开发的总体目标就是在教务管理中实现信息管理的系统化、自动化,减少工作繁琐度,增加效率、方便性。理 工 学 院 课 程 设 计 报 告32 需求分析2.1 系统需求通过调查,要求系统需要有以下功能: 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; 由于该系统的使用对象多,要求有较好的权限管理; 原始数据修改简单方便,支持多条件修改 方便的数据查询,支持多条件查询; 在相应的权限下,删除数据方便
8、简单,数据稳定性好; 数据计算自动完成,尽量减少人工干预;2.2 可行性分析由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是 PIII 以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。本系统的设计是在 Window XP 操作系统环境下,使用 VS 开发成功的。在开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多、开发工具也很多。每种产品都具有各自的
9、特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,在选择开发工具时也考虑它的健壮性、可移性、安全性等问题。2.3 用户要求2.3.1 信息需求教务管理系统涉及的实体有: 教师工作证号、姓名、职称、电话等; 学生学号、姓名、性别、出生年月等; 班级班号、最低总学分等;理 工 学 院 课 程 设 计 报 告4 系系代号、系名和系办公室电话等; 课程课序号、课名、学分、上课时间及名额等。这些实体之间的联系如下: 每个学生都属于一个班,每个班都属于一个系,每个教师也都属于一个系。 每个班的班主任都由一名教师担任。 一名教师可以教多门课,一门课可以有几位主讲老师,但不同老师讲的同一
10、门课其课序号是不同的(课序号是唯一的) 。 一名同学可以选多门课,一门课可被若干同学选中。 一名同学选中的课若已学完,应该记录有相应成绩。2.3.2 处理需求教务系统主要提供数据维护、选课和信息查询。其中常见的查询有:系统中各对象的基本信息查询。 查询指定班、系的学生信息(名单、人数等) 。查询学生的成绩、学分情况。查询教师授课情况和学生选课情况。2.3.3 安全性与完整性要求 安全性要求:1.系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;2.系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;3.系统应对不同用户设置
11、不同的权限,区分不同的用户,如学生,教师,系统管理员。 完整性要求:1.各种信息记录的完整性,关键信息记录内容不能为空;2.各种数据间相互的联系的正确性;3.相同的数据在不同记录中的一致性。2.4 需要的信息管理模块1、学生信息管理该模块是教务工作人员进行对学生信息的管理,进 行 学 生 信 息 的 添 加 、 修理 工 学 院 课 程 设 计 报 告5改 、 删 除 。2、教师信息管理教 务 工 作 人 员 通 过 此 模 块 来 管 理 教 师 信 息 , 包 括 教 师 信 息 的 添 加 、 修 改 、删 除 等 。信 息 的 添 加 时 , 需 要 验 证 教 师 的 编 号 是 否
12、 重 复 ; 删 除 和 和 修 改 学 生 信 息 , 和 学生 信 息 管 理 模 块 相 同 。3、院系管理此 模 块 是 用 来 管 理 院 系 的 信 息 , 包 括 班 级 院 系 的 添 加 , 修 改 , 删 除 等 。在 进 行 信 息 的 添 加 时 , 需 要 进 行 班 级 的 编 号 是 否 重 复 的 检 查 , 如 院 系 编 号 重复 则 对 用 户 进 行 提 示 , 不 重 复 则 添 加 成 功 。 院 系 管 理 模 块 的 删 除 和 修 改 和 学生 信 息 管 理 模 块 相 同 。4、课程信息管理教 务 工 作 人 员 通 过 该 模 块 来 管
13、 理 课 程 的 基 本 信 息 , 包 括 课 程 信 息 的 添 加 ,修 改 , 删 除 和 班 级 课 程 的 设 置 等 , 具 体 做 法 同 前 面 的 模 块 。5、成绩管理教 务 工 作 人 员 通 过 该 模 块 来 进 行 学 生 成 绩 的 管 理 , 在 进 行 学 生 成 绩 的 添 加时 , 可 用 它 来 为 学 生 设 置 所 在 班 级 的 课 程 表 来 直 接 输 入 成 绩 。6、综合查询通 过 该 模 块 可 以 查 询 教 务 所 需 要 的 各 种 信 息 。 如 学 生 信 息 查 询 提 供 了 包括 学 生 学 号 、 姓 名 、 所 在
14、班 级 、 班 主 任 名 字 和 宿 舍 等 信 息 , 学 生 信 息 进 行 查 询的 各 种 查 询 条 件 , 用 户 可 以 根 据 单 个 的 查 询 条 件 或 者 它 们 的 组 合 来 进 行 查 询 。同 时 , 在 查 询 的 时 候 还 提 供 了 进 行 模 糊 查 询 的 功 能 , 即 该 模 块 能 够 利 用 读 者 输入 的 非 完 整 的 查 询 条 件 进 行 查 询 , 这 样 更 加 方 便 了 用 户 的 查 询 管 理 。 综 合 查 询模 块 包 括 了 学 生 信 息 查 询 、 教 师 信 息 查 询 、 班 级 信 息 查 询 、 院
15、系 信 息 查 询 、 课程 信 息 查 询 和 成 绩 查 询 等 各 种 功 能 查 询 。理 工 学 院 课 程 设 计 报 告63 概念结构设计3.1 设计分析在概念结构设计中,我采用自底向上设计概念结构的方法。即第一步抽象数据并设计局部视图,第二步是集成局部视图,得到全局的概念结构。3.2 概念模型设计3.2.1 局部概念结构设计(1) 、系内的关系模式图图 3-1 系内关系模式图(2) 、选课系统的关系模式图图 3-2 选课系统的关系模式图(3) 、教师授课系统关系模型图图 3-3 教师授课系统关系模型图1n1n1n教师班级属于最低总学分 班号电话邮箱姓名工作证号系系办公室电话系名
16、系代号属于工作学生学号 年龄性别姓名工资学生 课程学号 年龄性别姓名名额学分课名课序号m n授课教师电话邮箱姓名工作证号1 n课程名额 学分课名课序号工资系代号系代号选修期中成绩平时成绩最后成绩总评成绩期末成绩理 工 学 院 课 程 设 计 报 告7(4) 、教师与班级的关系模型图图 3-4 教师与班级的关系模型图3.2.2 全局概念结构模型(E-R 图)图 3-5 全局概念结构模型图班级负责最低总学分班号教师电话 工资 姓名 工作证号n1邮箱课名1n1n1 n1nm n工资负责n1系代号选修平时成绩最后成绩总评成绩期中成绩期末成绩学生教师系班级课程属于属于工作授课学号 年龄性别姓名名额学分课
17、名课序号最低总学分班号系办公室电话系名系代号 电话邮箱姓名工作证号课名理 工 学 院 课 程 设 计 报 告84 逻辑结构设计关系模式的设计与优化E-R 图向关系模型的转换:1 “教师”实体对应的关系模式:教师(工作证号,姓名,工资,电话,邮箱,系代号)代码表示为:Teacher(Tno. Tname. Salary. Tel. Email. Dno)其中,工作证号为其候选码,又因为教师与系别之间是 n:1 的工作关系,经过与系别关系模式的合并后,系别号 Dno 成为教师关系模式的外码,存在的关系依赖为 Tno ( Tname,Salary,Tel,Email,Dno),不存在对候选码的部分依
18、赖与传递依赖,所以满足 BCNF。2 “学生”实体对应的关系模式:学生(学号,姓名,性别,年龄,班号,系代号)代码表示:Student ( Sno, Sname, Ssex, Sage. Class .Dno)其中,学号为其候选码,又因为学生与班级之间是 n:1 的属于关系,经过与班级关系模式的合并后,班号 Class 成为学生关系模式的外码,存在的关系依赖为Sno(Sname,Ssex.Sage.Class. Dno),Class Dno,存在对候选码的传递依赖,所以满足 2NF.3 系(系代号,系名,系办公室电话)代码表示:Sdept ( Dno, Dname, Dphone )系代号为候
19、选码,存在的函数依赖为 Dno (Dname,Dphone) ,且不存在部分依赖与传递依赖,所以满足 BCNF。4 “选修”联系对应的关系模式:选课(学号,课序号,最后成绩,平时成绩,期中成绩,期末成绩,)代码表示:SC ( Sno, Cno,Grade. Daigrade. Midbrade. Lasgrade,)此为 m:n 联系“选修”所对应的关系模式。Sno 和 Cno 均为外码。存在的函数理 工 学 院 课 程 设 计 报 告9依赖为完全函数依赖(Sno,Cno) (Grade.Daigrade. Midbrade. Lasgrade. Fingrade),且不存在部分依赖与传递依赖
20、,所以满足 BCNF。5 “课程”实体对应的关系模式:课程(课序号,课名,学分,名额,工作证号)代码表示:Course ( Cno, Cname, Credit, Cnum, Tno )其中,课号为其候选码,又由于课程与教师之间是 n:1 的授课关系,所以经过关系模式的合并后,教师的工作证号被合并为课程关系模式中的外码。存在的函数依赖为 Cno (Cname,Credit,Cnum,Tno) ,且不存在对候选码的部分依赖和传递依赖,所以,满足 BCNF。6 “班级”实体对应的关系模式:班级(班号,最低总学分,工作证号,系代号)代码表示:Class ( Class, Ccredit, Tno.
21、Dno )其中,班号为其候选码,又由于班级与系别之间是 n:1 的“属于”关系,经过“班级”与“系别”两个实体关系模式的合并后,系号被合并为班级对应的关系模式的外码。而班级与教师之间是 n:1 的“负责” 关系,所以按照规定,教师的工作证号也被合并为班级的外码。存在的函数依赖为 Class (Ccredit, Tno.Dno ),其中 Class Tno,而 Tno Dno,即存在对候选码的传递依赖,所以只满足2NF。理 工 学 院 课 程 设 计 报 告105 物理结构设计5.1 数据表的设计根据实体属性图可以建立以下各表,建表的同时定义表有关的完整性约束条件。1 学生基本信息表表 5-1
22、学生基本信息表列 名 长 度 类 型 NULL DEFAULT 主 键学 号 10 char() no no Yes姓 名 20 varchar() no no no性 别 2 char() no no no所 在 专 业 2 char() yes no no所 属 院 系 2 char() yes no no联 系 电 话 11 char() yes no no2 专业基本信息表表 5-2 专业基本信息表列名 长度 类型 NULL DEFAULT 主键专业编号 2 char() no no Yes专业名称 20 varchar() no no no所属院系 2 char() yes no n
23、o总学分 5 char() yes no no必修学分 5 char() yes no no3 学生成绩表表 5-3 学生成绩表列名 长度 类型 NULL DEFAULT 主键学号 10 char() no no no姓名 20 char() no no no课程名称 10 char() no no no学期学年 3 char() yes no no成绩 2 char() yes no no理 工 学 院 课 程 设 计 报 告11授课教师 2 char() yes no no4 院系基本信息表表 5-4 院系基本信息表列名 长度 类型 NULL DEFAULT 主键院系号 2 char()
24、no no yes院系名称 20 char() yes no no负责人 10 char() yes no no教务管理员 10 char() yes no no5 教师基本信息表表 5-5 教师基本信息表列名 长度 类型 NULL DEFAULT 主键教师编号 10 char() no no yes姓名 20 varchar() no no no性别 2 char() yes no no所属院系 2 char() yes no no6 评教基本信息表表 5-6 评教基本信息表列名 长度 类型 NULL DEFAULT 主键教师编号 10 char() no no no教师姓名 20 varc
25、har() yes no no课程编号 50 varchar() no no no课程名称 10 char() yes no no满意度 2 char() yes no no7 课程基本信息表表 5-7 课程基本信息表列名 长度 类型 NULL DEFAULT 主键课程编号 20 varchar() no no yes课程名称 10 char() no no no任课教师 10 char() yes no no开设院系 30 varchar() yes no no8 班级基本信息表理 工 学 院 课 程 设 计 报 告12表 5-8 班级基本信息表列名 长度 类型 NULL DEFAULT 主
26、键班级编号 10 char() no no yes班级人数 3 char() yes no no所属院系 2 char() yes no no9 网上选课基本信息表表 5-9 网上选课基本信息表列名 长度 类型 NULL DEFAULT 主键课程号 50 varchar() no no no开课院系 30 varchar() yes no no已选人数 3 char() no no no课程类别 1 char() yes no no限选人数 3 char() yes no no5.2 数据库完整性设计数据库完整性是指数据库中数据的正确性和相容性。数据完整性包括三类:实体完整性,参照体完整性和用
27、户定义完整性。5.2.1 数据库实体的完整性设计本教务管理系统数据库的实体有:学生,教师,专业,院系,教室,考试成绩,课程。为保证实体的完整性,将以上所有实体的主属性的属性值都设置为非空。5.2.2 数据库参照完整性设计1、学生与课程选修关系模式学生信息(学号,姓名,性别,年龄) 主键:学号课程信息(课程号,课程名称,学分) 主键:课程号选修(学号,课程号,考试成绩) 主键:学号,课程号2、学生与班级的从属关系模式:学生信息(学号,姓名,班级编号) 主键:学号班级信息(班级编号,班级名称,专业名称,院系名称) 主键:班级编号3、学生与考试成绩的考试关系模式理 工 学 院 课 程 设 计 报 告
28、13学生信息(学号,姓名)主键:学号成绩信息(成绩号,课程编号)主键:成绩号4、班级与专业的从属关系模式专业信息(专业编号,专业名称) 主键:专业编号班级信息(班级编号,班级名称,专业编号) 主键:班级编号5、专业与院系的从属关系模式院系信息(院系编号,专业名称) 主键:专业编号专业信息(专业编号,专业名称,院系编号) 主键:专业编号6、教师与课程的授课关系模式教师(教师编号,姓名) 主键:教师编号课程(课程编号,课程名称) 主键:课程编号授课(课程名称,教师编号,课时) 主键:课程名称,教师编号5.2.3 数据库的用户定义完整性设计学生基本信息表:(1)性别必须是男或女(2)身份证号必须是
29、18 位(3)所在专业,所属院系必须是本系统提供的5.3 数据库安全性设计数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。 信息系统尽管功能强大,技术先进,但由于受到自身体系结构,设计思路以及运行机制 等限制,也隐含许多不安全因素。常见因素有:数据的输入,输出,存取与备份,源程序以及应用软件,数据库,操作系统等漏洞或缺陷,硬件,通信部分的漏洞,企业内部人员的因素,病毒, “黑客”等因素。因此,为使本系统能够真正安全,可靠,稳定
30、地工作,必须考虑如下问题:为保证安全,不致使系统遭到意外事故的损害,系统因该能防止火,盗或其他形式的人为破坏。 理 工 学 院 课 程 设 计 报 告141) 系统要能重建2) 系统应该是可审查的3) 系统应能进行有效控制,抗干扰能力强4) 系统使用者的使用权限是可识别的6 应用程序设计6.1 系统功能模块图本系统设计的并不复杂,模块划分也比较清楚。通过对不同的功能进行分析,就可以得到系统的模块划分:登录管理模块,又分为管理员登录、教师登录和学生登录三个子模块;管理员模块,包括对教师信息、课程信息、学生信息和学生成绩进行查询、添加、修改及删除等子模块; 教师模块,包括对个人信息的查询及密码的修
31、改、课表的查询等子模块; 学生模块,包括对个人信息的查询及密码的修改、网上选课、课表的查询和个人成绩的查询等子模块图 6-1 系统模块图教务管理系统管理员登录教师登录学生登录登录管理 管理员 教师 学生教师信息管理课程信息管理学生信息管理学生成绩管理个人信息查询课表查询密码修改课表查询个人信息查询密码修改网上选课成绩查询添加教师信息修改教师信息删除教师信息查询课程信息添加课程信息修改课程信息删除课程信息查询学生信息添加学生信息修改学生信息删除学生信息查询学生成绩添加学生成绩修改学生成绩删除学生成绩查询教师信息理 工 学 院 课 程 设 计 报 告156.2 系统界面1 系统的主界面图 6-2
32、系统主界面部分设计代码如下:namespace 教务管理系统public MainForm()InitializeComponent();protected override void Dispose( bool disposing )if( disposing )if (components != null) components.Dispose();base.Dispose( disposing );private bool checkChildFrmExist(string childFrmName)理 工 学 院 课 程 设 计 报 告16foreach(Form childFrm i
33、n this.MdiChildren)if(childFrm.Name = childFrmName) if(childFrm.WindowState = FormWindowState.Minimized)childFrm.WindowState = FormWindowState.Normal;childFrm.Activate();return true;return false;private void menuItem2_Click(object sender, System.EventArgs e)if (this.checkChildFrmExist(“ClassInfo“) =
34、 true)return;ClassInfo newFrm=new ClassInfo();newFrm.MdiParent = this;newFrm.Show();private void menuItem3_Click(object sender, System.EventArgs e)if (this.checkChildFrmExist(“StudentInfo“) = true)return;StudentInfo newFrm=new StudentInfo();newFrm.MdiParent = this;newFrm.Show();private void menuItem
35、4_Click(object sender, System.EventArgs e)if (this.checkChildFrmExist(“CourseInfo“) = true)return;CourseInfo newFrm=new CourseInfo();newFrm.MdiParent = this;newFrm.Show();private void menuItem6_Click(object sender, System.EventArgs e)理 工 学 院 课 程 设 计 报 告17if (this.checkChildFrmExist(“CourseElect“) =
36、true)return;CourseElect newFrm=new CourseElect();newFrm.MdiParent = this;newFrm.Show();private void menuItem7_Click(object sender, System.EventArgs e)if (this.checkChildFrmExist(“CurriculumSchedule“) = true)return;CurriculumSchedule newFrm=new CurriculumSchedule(“);newFrm.MdiParent = this;newFrm.Sho
37、w();private void menuItem8_Click(object sender, System.EventArgs e)if (this.checkChildFrmExist(“ScoreInput“) = true)return;ScoreInput newFrm=new ScoreInput();newFrm.MdiParent = this;newFrm.Show();private void menuItem11_Click(object sender, System.EventArgs e)this.Close();理 工 学 院 课 程 设 计 报 告182 学生选课
38、界面界面图 6-3 学生选课界面部分程序代码如下:private void CourseElect_Load(object sender, System.EventArgs e)dataGrid1.DataSource=this.electTable;string strConn=“workstation id=localhost;Integrated Security=SSPI;database=eisbook;“;SqlConnection cn=new SqlConnection(strConn);cn.Open();string sql=“select a.课序号,a.课程编号,b.课
39、程名称,b.教师,b.开课系别,“+“a.上课地点,a.上课时间天,a.上课时间节,b.拼音码“+“ from 课程表a,课程信息b“+“ where (b.本学期课程=Y)and(a.课程编号=b.课程编号)“;SqlDataAdapter da2=new SqlDataAdapter(sql,cn);da2.Fill(this.courseTable);this.dv=courseTable.DefaultView;dataGrid2.DataSource=dv;private void ShowInfo()/string strConn=“workstation id=localhost
40、;Integrated Security=SSPI;database=eisbook;“;SqlConnection cn=new SqlConnection(strConn);cn.Open();SqlCommand cmd=cn.CreateCommand();理 工 学 院 课 程 设 计 报 告19cmd.CommandText=“select a.姓名,b.班级名称,a.学籍编号from 学生信息a,班级信息b “+“where(a.班级编号=b.班级编号)and(学号=“+txt1.Text.Trim()+“)“;SqlDataReader dr=cmd.ExecuteReader
41、();dr.Read();if(!dr.HasRows)MessageBox.Show(“无此学生,请重新输入学号“,“提示“,MessageBoxButtons.OK,MessageBoxIcon.Stop);dr.Close();return;if(dr.GetValue(2).ToString().Trim()!=“1“)MessageBox.Show(“该学生并非在籍学生,不能选课“,“提示“,MessageBoxButtons.OK,MessageBoxIcon.Stop); return;txt2.Text=dr.GetValue(0).ToString().Trim();txt3
42、.Text=dr.GetValue(1).ToString().Trim();dr.Close();string sql=“select a.学号,a.课序号,b.课程名称,b.教师,“+“b.开课系别,c.上课时间天,c.上课时间节,c.上课地点“+“ from 选课表a,课程信息b,课程表c“+“ where(a.课序号=c.课序号)and(200400000+b.课程编号=a.课序号)“+“and(a.学号=“+txt1.Text.Trim()+“)“;SqlDataAdapter da=new SqlDataAdapter(sql,cn);da.Fill(this.electTable
43、);this.studentID=txt1.Text.Trim();this.stduentName=txt2.Text.Trim();btnElect.Enabled=true;btnDelete.Enabled=true;btnView.Enabled=true;private void btnElect_Click(object sender, System.EventArgs e)if(dv.Count=0)MessageBox.Show(“可选课表为空,无法选课“,“提示“,MessageBoxButtons.OK,MessageBoxIcon.Stop);return;理 工 学
44、院 课 程 设 计 报 告20string courseID=dataGrid2dataGrid2.CurrentCell.RowNumber,0.ToString().Trim();string courseDay=dataGrid2dataGrid2.CurrentCell.RowNumber,6.ToString().Trim();string courseSec=dataGrid2dataGrid2.CurrentCell.RowNumber,7.ToString().Trim();foreach(DataRow aRow in this.electTable.Rows)if(aRow
45、“课序号“.ToString().Trim()=courseID)MessageBox.Show(“所选课程已经在课程表中“,“课程重复“,MessageBoxButtons.OK,MessageBoxIcon.Stop);return;if(aRow“上课时间天“.ToString().Trim()=courseDayMessageBox.Show(msg,“时间冲突“,MessageBoxButtons.OK,MessageBoxIcon.Stop);return;string strConn=“workstation id=localhost;Integrated Security=SS
46、PI;database=eisbook;“;SqlConnection cn=new SqlConnection(strConn);cn.Open();SqlCommand cmd=cn.CreateCommand();cmd.CommandText=“insert into 选课表(学号,课序号) values(“+this.studentID+“,“+courseID+“)“;cmd.ExecuteNonQuery();this.electTable.Clear();string sql=“select a.学号,a.课序号,b.课程名称,b.教师,“+“b.开课系别,c.上课时间天,c.
47、上课时间节,c.上课地点“+“ from 选课表a,课程信息b,课程表c“+“ where(a.课序号=c.课序号)and(200400000+b.课程编号=a.课序号)“+“and(a.学号=“+this.studentID+“)“;理 工 学 院 课 程 设 计 报 告21SqlDataAdapter da=new SqlDataAdapter(sql,cn);da.Fill(this.electTable);3 学生信息的查询界面图 6-4 学生信息的增加、删除、修改部分代码如下:namespace 教务管理系统protected override void Dispose( bool
48、disposing )if( disposing )if(components != null)components.Dispose();base.Dispose( disposing );protected void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)if (e.Button.ToolTipText = “首记录“)this.dataGrid1.UnSelect(cmOrders.Position); /取消原选中的行理 工 学 院 课 程 设 计 报
49、告22cmOrders.Position = 0;this.dataGrid1.Select(cmOrders.Position); /选中当前行this.dataGrid1.CurrentRowIndex = cmOrders.Position; /移动表头指示图标return;if (e.Button.ToolTipText = “上一记录“)if (cmOrders.Position = 0)this.dataGrid1.UnSelect(cmOrders.Position); cmOrders.Position-;this.dataGrid1.Select(cmOrders.Position);