学生选课系统
学生选课系统实验报告

一、实验目的1. 熟悉数据库的基本概念和操作方法。
2. 掌握SQL语言的基本语法和应用。
3. 了解并掌握Java编程语言在数据库应用中的基本操作。
4. 提高学生选课系统的设计与实现能力。
二、实验环境1. 操作系统:Windows 102. 数据库:MySQL 5.73. 开发工具:Eclipse IDE4. 编程语言:Java三、实验内容1. 数据库设计2. 系统模块设计3. 系统实现4. 系统测试四、实验步骤1. 数据库设计(1)创建数据库在MySQL中创建名为“student_course”的数据库。
(2)创建数据表在“student_course”数据库中创建以下数据表:- 学生表(students):包含学生ID、姓名、性别、出生日期、班级等字段。
- 课程表(courses):包含课程ID、课程名称、学分、上课时间、上课地点等字段。
- 选课表(enrollments):包含学生ID、课程ID、选课时间等字段。
(3)建立数据表之间的关系- 学生表和选课表通过学生ID建立一对一的关系。
- 课程表和选课表通过课程ID建立一对一的关系。
2. 系统模块设计(1)登录模块- 用户输入用户名和密码,系统验证用户身份。
- 验证成功后,进入系统主界面。
(2)选课模块- 查询课程信息:学生可以查看所有课程信息,包括课程名称、学分、上课时间、上课地点等。
- 选课:学生可以选择感兴趣的课程,并提交选课请求。
- 查看选课结果:学生可以查看自己的选课结果,包括已选课程、未选课程等信息。
(3)退课模块- 查看选课结果:学生可以查看自己的选课结果,包括已选课程、未选课程等信息。
- 退课:学生可以申请退课,并提交退课请求。
(4)管理员模块- 添加课程:管理员可以添加新的课程信息。
- 删除课程:管理员可以删除课程信息。
- 修改课程:管理员可以修改课程信息。
3. 系统实现(1)使用Java编程语言实现各个模块的功能。
(2)使用JDBC连接MySQL数据库,实现数据操作。
学生选课管理系统设计

学生选课管理系统设计一、引言学生选课管理系统是一种用于高校学生选课和管理选课信息的系统。
随着教育信息化的发展,学生选课管理系统的设计和应用对于提高教育质量、优化教学流程具有重要意义。
本文将围绕学生选课管理系统的设计展开讨论,包括系统的功能需求、数据库设计、系统架构等方面。
二、系统功能需求1. 学生模块•学生登录系统•学生浏览可选课程•学生选择课程•学生查看已选课程•学生退选课程2. 教师模块•教师登录系统•教师发布课程信息•教师查看本人所教授课程•教师查看选课学生信息3. 管理员模块•管理员登录系统•管理员管理学生信息•管理员管理教师信息•管理员管理课程信息三、数据库设计1.学生表(student)•学生ID•学生姓名•学生年龄•所选课程ID2.教师表(teacher)•教师ID•教师姓名•所教课程3.课程表(course)•课程ID•课程名称•授课教师•上课时间•上课地点四、系统架构学生选课管理系统采用B/S架构,前端使用HTML、CSS、JavaScript进行开发,后端采用Java语言和MySQL数据库进行搭建。
系统的主要模块包括学生模块、教师模块、管理员模块以及数据管理模块。
五、系统流程1.学生打开选课系统网页,输入账号和密码进行登录。
2.学生浏览可选课程列表,选择感兴趣的课程。
3.学生提交选课申请,系统自动将选课信息存入数据库。
4.教师登录系统后,可以查看自己所教授的课程和选课学生信息。
5.管理员负责管理学生、教师和课程信息,并保证系统正常运行。
六、系统优势学生选课管理系统的设计和应用,有效提高了教务管理效率,减少了手工操作,降低了选课过程中的错误率,提升了学生和教师的体验。
通过系统记录和分析学生选课情况,学校可以更好地根据实际需求进行教学资源配置,优化课程设置,提高教学质量。
七、总结学生选课管理系统是一种便捷高效的教务管理工具,对于高校提高教学质量和管理水平具有积极作用。
通过本文对学生选课管理系统设计的讨论,希望能够为相关教育管理工作者提供一些参考和借鉴,促进教育信息化建设的不断完善和发展。
学生选课管理系统java+数据库

学生选课管理系统java+数据库简介学生选课管理系统是一个基于Java编程语言和数据库开发的系统,旨在提供学生选课的便捷和教务管理的智能化。
该系统具有课程管理、学生管理、教师管理、选课关联等功能模块,可以实现学生选课、教师管理课程、生成选课报表等操作。
功能模块1. 课程管理•提供课程信息录入和编辑功能,包括课程号、课程名称、授课教师等信息。
2. 学生管理•支持学生信息的录入、查询、修改和删除,学生信息包括学号、姓名、性别、年级等。
3. 教师管理•实现对教师信息的管理,可以录入教师信息、查询教师信息、修改和删除教师信息。
4. 选课关联•学生可以根据课程列表进行选课操作,系统会检查选课的合法性,避免时间冲突等问题。
数据库设计系统采用关系型数据库存储数据,设计了以下表结构: 1. 课程表:存储课程的信息,包括课程号、课程名称、授课教师等字段。
2. 学生表:存储学生的信息,包括学号、姓名、性别、年级等字段。
3. 教师表:存储教师的信息,包括教师号、姓名、职称等字段。
4. 选课表:记录学生选课的信息,包括学号、课程号、选课状态等字段。
技术实现系统使用Java语言开发,结合数据库技术进行数据存储和查询。
通过编写DAO(Data Access Object)层实现数据访问,实现了数据的持久化和业务逻辑的分离。
在用户界面方面,可以使用Swing或JavaFX等技术实现交互界面,使用户可以方便地操作系统功能。
总结学生选课管理系统是一个方便学生选课和教务管理的工具,通过Java编程语言和数据库技术的结合,实现了课程管理、学生管理、教师管理和选课关联等功能。
系统设计合理,可以提高选课效率,降低管理成本,是教育管理的重要辅助工具。
以上是对学生选课管理系统的介绍,希望能够为你对这一类型系统的理解提供帮助。
大学生选课系统

大学生选课系统引言大学生选课是大学教育中一个非常重要的环节。
选课系统的设计与实现,对于学生的学习体验和教学管理都有着重要的影响。
本文将探讨大学生选课系统的需求和设计,通过合理的功能设计和技术实现,提高选课系统的效率和用户体验。
需求分析用户需求大学生选课系统的主要用户是学生和教师。
对于学生而言,选课系统需要具备以下功能: - 显示开设的课程及其详细信息 - 可以进行课程查询和筛选 - 可以方便地添加或删除课程 - 显示已选课程和课程表 - 提供选课规则和注意事项的相关信息对于教师而言,选课系统需要具备以下功能: - 显示教授的课程情况 - 可以对课程信息进行管理 - 可以查看学生选课情况系统需求选课系统需要满足以下系统需求: - 系统应具备良好的用户界面,便于用户操作和理解 - 系统需要具备高效的查询和筛选功能,方便用户查找课程 - 系统需要有良好的错误处理和反馈机制,确保数据的准确性 - 系统需要具备安全性和权限管理,保护用户的信息安全 - 系统需要具备可扩展性和可维护性,方便后续功能的添加和更新系统设计数据库设计选课系统需要设计适当的数据库模型,存储学生、教师、课程等相关信息。
一个简单的数据库设计可以包括以下几个表: - 学生表:存储学生的基本信息,如学号、姓名、专业等 - 教师表:存储教师的基本信息,如工号、姓名、所教课程等 -课程表:存储开设的课程信息,如课程号、课程名称、学分等 - 选课表:存储学生选课信息,包括学生ID、课程ID等 - 课程表:存储教师课程信息,包括教师ID、课程ID等数据库设计需要根据实际需求和业务逻辑进行合理的设计,确保数据的完整性和一致性。
功能设计功能设计是选课系统设计的核心部分。
选课系统需要满足用户需求,提供良好的用户体验。
具体的功能设计可以包括以下几个方面: - 学生功能: - 显示开设的课程和课程详情:学生可以浏览所有开设的课程,并查看课程的详细信息,包括课程名称、授课教师、上课时间等。
学生在线选课系统

3.7 录入教学楼教室信息
3.8 教师信息管理
3.8 开设课程
3.9 课程时间地点编辑
4 总结
选课系统的核心就是数据库,根据 数据库需求分析中的结果建立了选课系 统需要的数据库,所有的学生信息及选 课信息都存放在数据库中,后面所有的 操作本质上都是在对数据库进行操作。
谢谢
毕业设计提纲
引言 系统的设计与实现 系统的功能介绍 总结
1. 引言
1.1 课题简介 在线选课系统是学校教务领域中的一
个重要系统,涉及教师开课和学生选课的 双向交互关系。该系统基于SQL Server 2000构建,采用作为开发工具。
1.2 课题研究的目的
选课系统主要目的就是利用网络实 现教师开课的网络化,学生选课的网络 化,教师评定学生成绩的网络化等,提 高教师和学生的效率,降低管理的成本。
公共函数调用,把它们都写在一个工具 类里:MyUtility类,每个函数作为工具类 的一个静态成员函数。 登录页面
登录页面是所有用户公用的功能。
3 系统的功能介绍
3.1 登录页面
3.2 查看必修课程
3.3 查看选修课程
Байду номын сангаас
3.4 查看已选课程
3.5 设置选课时间段
3.6 录入学生和教师信息
2 系统的设计与实现
2.1 系统分析 在本系统中,有三类用户:系统管
理员,教师和学生。三种不同的用户所 具有的操作权限以及操作内容均不一样。
2.2 系统总体设计
用户登录身份验证模块
编
设
置
录
选
入
课
信
时
息
间
模
模
块
块
辑
学生选课系统

一、问题定义1.1问题的定义学生选课系统:也称学生课程选修制,即允许学生对学校所开设的课程有一定的选择自由,包括选择课程、任课教师和上课时间,选择适合自己的学习量和学习进程。
对于习惯了中小学课程(所有的课程由学校统一安排,而且科目从小学到高中有连续性)的大学新生来说,大学的课程多得令他们眼花缭乱,课程分类也比较复杂,因此选课对他们而言还是一件新鲜而陌生的事物。
但大学的学习与选课有莫大的关系,必须了解它,才能掌握主动权。
而要了解选课制,首先要对大学的课程设置有所认识。
1.2 系统要解决的问题建立一个小型的学生选课系统,用户(学号,姓名,年龄,性别,系别,班级,出生年月)可以注册成为会员,注册的用户可以选择要选修的课程,也可以查询已选修的课程(包含课程名、任课教师和上课时间,学分)等,老师(姓名,职位,所教课程)可以查看该门课程的选课人数及上课时间,管理员可以查看所有学生的选课情况,查看各门课程的任课老师的信息,查看各门课程选课人数,查看注册用户信息。
二、可行性研究2.1 引言2.1.1目的本项目开发计划旨在明确规范开发过程,保证项目质量,统一小组成员对项目的理解,并对其开发工作提供指导;同时还作为项目通过评审的依据。
并说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由。
2.1.2背景及功能A、系统的名称为学生选课系统(Java实现);B、项目的任务提出者是本次课程设计辅导老师;开发者包括:何南平,徐小聪。
2.1.3 参考资料[1] 张海藩.软件工程导论(第5 版)[M].清华大学出版社,2008 年2 月.[2] 窦万峰.软件工程方法与实践.机械工业出版社,2009 年5 月.[3] 窦万峰.软件工程实验教程.机械工业出版社,2009 年5 月.[4] 陈勇孝.java程序设计实用教程,2008年6月.[5] 王珊,萨师煊.数据库系统概论,高等教育出版社,2006年5月.第6/55页2.2 可行性研究的前提2.2.1 要求A、功能:1) 普通用户:登录系统前用户可以查看用户选课的情况;用户可以注册;查找忘记的密码;查看自己选课的一些相关信息。
学生选课系统数据流图

学生选课系统数据流图一、引言学生选课系统是现代高校教务管理的重要组成部份,它通过计算机技术的应用,为学生提供了方便快捷的选课服务。
本文将根据学生选课系统的功能需求,设计相应的数据流图,以展示系统的数据流动和处理过程。
二、数据流图的基本概念数据流图是一种图形化的工具,用于描述系统中数据的流动和处理过程。
它由一系列的方框和箭头组成,方框表示处理过程,箭头表示数据的流动方向。
三、学生选课系统的数据流图根据学生选课系统的功能需求,我们将设计一个包含四个主要功能的数据流图:学生登录、查看课程、选择课程和提交选课。
1. 学生登录学生登录是学生选课系统的入口,学生需要输入正确的用户名和密码来进行登录操作。
以下是学生登录的数据流图:[学生登录数据流图]2. 查看课程学生登录成功后,可以查看当前学期的课程列表。
系统会根据学生的专业和年级信息,从数据库中获取相应的课程信息,并将其显示给学生。
以下是查看课程的数据流图:[查看课程数据流图]3. 选择课程学生在查看课程列表后,可以选择自己感兴趣的课程进行选修。
学生需要点击相应的课程,系统会将选课信息保存到数据库中,并更新学生的选课记录。
以下是选择课程的数据流图:[选择课程数据流图]4. 提交选课学生完成课程选择后,需要点击提交选课按钮,系统会对学生的选课信息进行验证,确保选课符合规定的要求。
如果选课信息无误,系统会将选课结果保存到数据库中,并生成选课成功的提示信息。
以下是提交选课的数据流图:[提交选课数据流图]四、总结本文根据学生选课系统的功能需求,设计了包含学生登录、查看课程、选择课程和提交选课四个主要功能的数据流图。
通过这些数据流图,我们可以清晰地看到学生选课系统中数据的流动和处理过程,从而更好地理解系统的工作原理。
数据流图的设计有助于系统开辟人员进行系统设计和编码工作,同时也方便用户理解系统的功能和操作流程。
学生选课系统数据流图

学生选课系统数据流图一、引言学生选课系统是为了方便学生在大学期间选择课程而设计的一种信息管理系统。
本文将以数据流图的形式来描述学生选课系统的功能和数据流动。
二、系统概述学生选课系统主要包括学生信息管理、课程信息管理、选课管理和成绩管理等模块。
学生可以通过系统查询课程信息、进行选课和退课操作,并查看自己的成绩。
三、数据流图下面是学生选课系统的数据流图,包括了系统的各个功能模块和数据流动的过程。
1. 学生信息管理模块学生信息管理模块用于管理学生的个人信息,包括学生的学号、姓名、性别、年龄等。
该模块接收来自学生的个人信息输入,并将其存储到学生信息数据库中。
2. 课程信息管理模块课程信息管理模块用于管理课程的相关信息,包括课程编号、课程名称、授课教师、上课时间、上课地点等。
该模块接收来自教务处的课程信息输入,并将其存储到课程信息数据库中。
3. 选课管理模块选课管理模块用于学生选课和退课的操作。
学生可以通过该模块查询可选课程列表,并选择自己感兴趣的课程进行选课。
选课管理模块接收学生的选课请求,并将其发送到选课信息数据库中进行处理。
同时,该模块还会将选课结果反馈给学生,包括选课成功或失败的提示。
4. 成绩管理模块成绩管理模块用于记录学生的课程成绩和计算学生的绩点。
该模块接收来自教师的成绩录入,并将成绩信息存储到成绩信息数据库中。
学生可以通过该模块查询自己的成绩和绩点情况。
四、数据流图说明1. 输入流- 学生个人信息输入:学生在注册或更新个人信息时输入的相关数据。
- 课程信息输入:教务处或教师输入的课程相关信息。
2. 输出流- 选课结果反馈:选课管理模块将选课结果反馈给学生,包括选课成功或失败的提示。
- 学生成绩和绩点查询结果:成绩管理模块将学生的成绩和绩点查询结果反馈给学生。
3. 数据存储- 学生信息数据库:用于存储学生的个人信息。
- 课程信息数据库:用于存储课程的相关信息。
- 选课信息数据库:用于存储学生的选课信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生选课系统一、概要设计1.1 目的和意义随着无纸化办公的普遍实现,信息的自动处理以及网络式的信息交互方式已经被人们广泛应用。
让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校教学管理工作的重要内容之一。
网上选课与传统的选课方式相比更加节约资源,增加了学生选课自主权。
学生选课系统作为一种现代化的教学技术,越来越受到人们的重视,是一个学校不可或缺的部分, 学生选课系统就是为了管理好选课信息而设计的。
学生选课系统的将使选课管理工作规范化、系统化、程序化,避免选课管理的随意性,提高信息处理的速度和准确性,能够准确、及时、有效的查询和修改学生选课情况。
与传统的选课方式相比,网上选课系统利用局域网为学生选课带来了极大的便捷。
学生在公共机房,或者宿舍的个人电脑上便可以通过校园网络来选课。
在选课期间内,学生能够使用选课系统灵活的修改自己的选课情况,大大提高了学校选课工作的效率。
教务处的教师则可以通过选课系统的管理员子系统来管理学生的选课情况,使得学生选课工作达到系统化和自动化,大大提高了学校的工作效率,为广大师生及相关人员节省了极多的时间。
数据库对于一个应用系统的意义是相当重要的,一个设计良好的数据库系统一方面,能够给开发者带来便捷,更轻松的进行系统设计与编码;另一方面,对于系统的后期维护也非常重要,一个良好的数据库系统能够保证系统的可扩充性,以及系统的移植性等问题。
1.2 内容和要求本实验将设计出一个高校网上选课数据库系统,其要求简要如下:(1)系统用户由三类组成:教师、学生和管理员。
(2)管理员负责的主要功能:①用户管理(老师、学生及管理员的增、删、改);②课程管理(添加、删除和修改);③选课管理(实现选课功能开放和禁止、老师成绩输入开放和禁止)。
(3)学生通过登录,可以查询课程的基本信息、实现选课、退课和成绩查询;(4)老师通过登录,可以查看选课学生的基本信息,可以输入成绩。
二、需求分析2.1 概要分析根据1.2节中所描述的系统分析要求,我们的高校选课系统将包含学生、教师、管理员等实体,学生可以在规定的时间内选课、退选和成绩查询等操作;教师可以查看学生的相关信息,录入学生成绩等操作;管理员可以添加管理员,管理教师、学生等信息。
2.2 系统主要功能实验选课系统分为教师,学生及系统管理员三类用户,学生的功能包括选课、退选、查询选课信息等,教师的功能包括学生成绩录入,查询实验信息等。
管理员的功能包括新建教师、学生账户,添加课程信息,其系统功能模块如图2-1:图2-1 系统功能模块三、E-R图本章节主要包含概念设计、E-R图,以及如何将E-R图转换为实际的物理模型等内容。
3.1 概念设计在我们的数据库系统中共有6个实体:学生、教师、管理员、专业、院系、课程。
(1)学生的属性:学号、姓名、性别、生日、密码(2)教师的属性:工号、姓名、性别、生日、密码、职称(3)管理员的属性:工号、姓名、性别、生日、密码、权限标志(4)专业的属性:专业号码、专业名、辅导员、联系方式、专业介绍(5)院系的属性:系号码、系名称、系主任、联系方式、系介绍(6)课程的属性:课程号码、学时、学分、课程介绍(7)控制设置属性:选课控制、成绩录入控制3.2 E-R图各个实体的E-R图如下所示:图3-1 学生图3-2 教师图3-3 管理员图3-4 专业图3-5 系图3-6 课程然后,将以上实体之间联系表示出来,画出数据库系统的E-R图,如图3-7所示:图3-7 数据库系统E-R图四、逻辑结构4.1 逻辑转换根据3.2节中的E-R图可以将系统中的概念模型转换为具体的表(即关系)结构,共分为7个关系,详细信息如下所示:学生(学号、专业号码、姓名、性别、生日、密码)教师(教师工号、系号码、姓名、性别、生日、密码、职称)管理员(管理员工号、姓名、性别、生日、密码、权限标志)专业(专业号码、系号码、专业名、辅导员、联系方式、专业介绍)院系(系号码、系名称、系主任、联系方式、系介绍)课程(课程号码、学时、学分、课程介绍)选课信息(学号、课程号码、教师工号、成绩)4.2 细化表结构为方便,根据上述文字描述,用英文简写为表和列取名,确定列的数据类型及必要的约束规则,给出如下所示数据库表的基本结构及说明:(1)学生信息表1.CREATE TABLE tb_dept(2. DeptNum char(10) NOT NULL PRIMARY KEY,3. DeptName varchar(20) NOT NULL,4. DeptChairman varchar(10) NOT NULL,5. DeptTel varchar(15) NOT NULL,DeptDesc text NOT NULL(2)tb_major专业信息表1.CREATE TABLE tb_major(2. MajorNum char(10) NOT NULL PRIMARY KEY,3. DeptNum char(10) NOT NULL,4. MajorName varchar(20) NOT NULL,5. MajorAssistant varchar(10) NOT NULL,6. MajorTel varchar(15) NOT NULL,7.FOREIGN KEY (DeptNum) REFERENCES tb_dept(DeptNum)8.)(3)tb_student学生信息表1.CREATE TABLE tb_student(2. StudentNum char(10) NOT NULL PRIMARY KEY,3. MajorNum char(10) NOT NULL,4. StudentName varchar(10) NULL,5. StudentSex char(2) NOT NULL,6. StudentBirthday datetime NOT NULL,7. StudentPassword varchar(20) NOT NULL,8.FOREIGN KEY (MajorNum) REFERENCES tb_major(MajorNum)9.)(4)tb_teacher教师信息表1.CREATE TABLE tb_teacher(2. TeacherNum char(10) NOT NULL PRIMARY KEY,3. DeptNum char(10) NOT NULL,4. TeacherName varchar(10) NOT NULL,5. TeacherSex char(2) NOT NULL,6. TeacherBirthday datetime NOT NULL,7. TeacherTitle varchar(20) NULL,8.FOREIGN KEY (DeptNum) REFERENCES tb_dept(DeptNum)9.)(5)tb_manager管理员信息表1.CREATE TABLE tb_manager(2.ManagerNum char(10) NOT NULL PRIMARY KEY,3.ManagerName varchar(10) NOT NULL,4.ManagerSex char(2) NOT NULL,5.ManagerBirthdate datetime NOT NULL,6.ManagerRights int NOT NULL7. )(6)tb_course课程信息表1.CREATE TABLE tb_course(2. CourseNum varchar(10) NOT NULL PRIMARY KEY,3. CourseName varchar(20) NOT NULL,4. CourseCredit float NOT NULL,5. CourseClass smallint NOT NULL,6. CourseDesc text NOT NULL,7.)(7)tb_stucourse学生选课信息表1.CREATE TABLE tb_stucourse(2. StudentNum char(10) NOT NULL,3. CourseNum char(10) NOT NULL,4. TeacherNum char(10) NOT NULL,5. Grade smallint NULL,6.FOREIGN KEY (StudentNum) REFERENCES tb_student(StudentNum),7.FOREIGN KEY (CourseNum) REFERENCES tb_Course(CourseNum),8.FOREIGN KEY (TeacherNum) REFERENCES tb_teacher(TeacherNum),9.)(8)tb_control控制设置表1.CREATE TABLE tb_control(2. IfTakeCourse char(1) NOT NULL check(IfTakeCourse in ( '0', '1')),3. IfInputGrade char(1) NOT NULL check(IfInputGrade in ( '0', '1')),4.)5.2 创建必要视图(1)建立学生成绩视图vi_grade,从学生、老师、选课表中选择Grade不为空的记录,其关键代码如下所示:1.CREATE VIEW vi_grade2.AS3.SELECT tb_stucourse.StudentNum,StudentName,CourseName4. ,CourseCredit,TeacherName,Grade5.FROM tb_stucourse,tb_student,tb_course,tb_teacher6.where tb_stucourse.StudentNum=tb_student.StudentNum and7. tb_stucourse.TeacherNum=tb_teacher.TeacherNum and8. tb_stucourse.CourseNum=tb_course.CourseNum and9. Grade is not null(2)建立专业学生信息视图vi_major,从学生、专业表中选择学生中的专业号码与专业表中专业号码相等的记录,其关键代码如下所示:1.CREATE VIEW vi_major2.AS3.SELECT tb_major.MajorName,StudentNum,StudentName,StudentSex,StudentBirthday4.FROM tb_major,tb_student5.WHERE tb_major.MajorNum=tb_student.MajorNum5.3 创建必要触发器(1)建立学生添加院系触发器tri_adddept,当该表中已存在所对应院系号码的院系时,系统给与错误提示并回滚,其关键代码如下所示:1.CREATE TRIGGER tri_adddept ON tb_dept2.FOR INSERT,UPDATE3.AS4.IF5. (SELECT COUNT(*) FROM tb_dept,inserted6.WHERE tb_dept.DeptNum=inserted.DeptNum)>07.BEGIN8. PRINT '院系号码产生冲突,请核对后重试!'9.ROLLBACK10.END(2)建立学生添加专业触发器tb_major,当专业信息中的院系号不对或者该表中已存在所对应专业号码的专业时,系统给与错误提示并回滚,其关键代码如下所示:1.CREATE TRIGGER tri_addmajor ON tb_major2.FOR INSERT,UPDATE3.AS4. IF(SELECT COUNT(*) FROM tb_dept,inserted5.WHERE tb_dept.DeptNum=inserted.DeptNum)=06.BEGIN7. PRINT '未找到该专业的院系信息,请添加相应院系后重试!'8.ROLLBACK9.END10.ELSE IF11. (SELECT COUNT(*) FROM tb_major,inserted12.WHERE tb_major.MajorNum=inserted.MajorNum)>013.BEGIN14. PRINT '院系号码产生冲突,请核对后重试!'15.ROLLBACK16.END(3)建立添加学生触发器tri_addstudent,当学生信息中的专业号不对或者系统中已存在所对应学号的学生时,系统给与错误提示并回滚,其关键代码如下所示:1.CREATE TRIGGER tri_addstudent ON tb_student2.FOR INSERT,UPDATE3.AS4. IF(SELECT COUNT(*) FROM tb_major,inserted5.WHERE tb_major.MajorNum=inserted.MajorNum)=06.BEGIN7. PRINT '未找到该学生的专业信息,请添加相应专业后重试!'8.ROLLBACK9.END10.ELSE IF11. (SELECT COUNT(*) FROM tb_student,inserted12.WHERE tb_student.StudentNum=inserted.StudentNum)>013.BEGIN14. PRINT '学号产生冲突,请核对后重试!'15.ROLLBACK16.END(4)建立学生选课触发器tri_takecourse,课程选课人数超过40个或者对应学生选课门数超过5门或者当前时间不是选课时间段时,系统给与错误提示并回滚,其关键代码如下所示:1.CREATE TRIGGER tri_takecourse ON tb_stucourse2.FOR INSERT,UPDATE3.AS4. IF(SELECT COUNT(*) FROM tb_stucourse,inserted5.WHERE tb_stucourse.CourseNum=inserted.CourseNum)>406.BEGIN7. PRINT '所对应课程选课人数不能超过40个!'8.ROLLBACK9.END10.ELSE IF11. (SELECT COUNT(*) FROM tb_student,inserted12.WHERE tb_student.StudentNum=inserted.StudentNum)>513.BEGIN14. PRINT '对应学生的选课不能超过5门!'15.ROLLBACK16.END17.ELSE IF18. (SELECT IfTakeCourse FROM tb_control)='0'19.BEGIN20. PRINT '当前不是选课时间段!'21.ROLLBACK22.END5.4 创建必要存储过程(1)建立学生选课存储过程tri_takecourse,其作用为查询所有学生的选课记录,其关键代码如下所示:1.CREATE PROC proc_getcourse2.@StudentNum char(10) OUT,3.@StudentName char(10) OUT,4.@CourseName varchar(20) OUT,5.@CourseCredit float OUT,6.@TeacherName char(10) OUT7.AS8.SELECT @StudentNum=tb_student.StudentNum9. ,@StudentName=tb_student.StudentName10. , @CourseName=tb_course.CourseName11. ,@CourseCredit=tb_course.CourseCredit12. , @TeacherName=tb_teacher.TeacherName13.FROM tb_stucourse,tb_course,tb_student,tb_teacher14.WHERE tb_stucourse.StudentNum=tb_student.StudentNum AND15. tb_stucourse.CourseNum=tb_course.CourseNum AND16. tb_stucourse.TeacherNum=tb_teacher.TeacherNum(2)建立查询教师课程存储过程proc_teachercourse,其作用为查询指定教师所有课程的选课记录,其关键代码如下所示:1.CREATE PROC proc_teachercourse2.@TeacherNum char(10),3.@StudentNum char(10) OUT,4.@StudentName char(10) OUT,5.@CourseName varchar(20) OUT,6.@CourseCredit float OUT,7.@TeacherName char(10) OUT8.AS9.SELECT @StudentNum=tb_student.StudentNum10. ,@StudentName=tb_student.StudentName11. , @CourseName=tb_course.CourseName12. ,@CourseCredit=tb_course.CourseCredit13. , @TeacherName=tb_teacher.TeacherName14.FROM tb_stucourse,tb_course,tb_student,tb_teacher15.WHERE tb_stucourse.StudentNum=tb_student.StudentNum AND16. tb_stucourse.CourseNum=tb_course.CourseNum AND17. tb_stucourse.TeacherNum=tb_teacher.TeacherNum and18. tb_teacher.TeacherNum=@TeacherNum(3)建立查询学生课程存储过程proc_studentcourse,其作用为查询指定学生所有课程的选课记录,其关键代码如下所示:1.CREATE PROC proc_studentcourse2.@StudentNum char(10),3.@StudentName char(10) OUT,4.@CourseName varchar(20) OUT,5.@CourseCredit float OUT,6.@TeacherName char(10) OUT7.AS8.SELECT @StudentNum=tb_student.StudentNum9. ,@StudentName=tb_student.StudentName10. , @CourseName=tb_course.CourseName11. ,@CourseCredit=tb_course.CourseCredit12. , @TeacherName=tb_teacher.TeacherName13.FROM tb_stucourse,tb_course,tb_student,tb_teacher14.WHERE tb_stucourse.StudentNum=tb_student.StudentNum AND15. tb_stucourse.CourseNum=tb_course.CourseNum AND16. tb_stucourse.Tea。