学生选课系统

合集下载

学生选课系统实验报告

学生选课系统实验报告

一、实验目的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. 退课功能:如果学生对已选的课程不满意或者出现了
其他问题,可以通过系统进行退课操作。

退课操作可以在一定的时间范围内进行,系统会自动计算退课后的学分和学费的调整。

4. 课程评价功能:学生可以通过系统对已选过的课程进
行评价,包括对课程内容、教师授课水平、课程难度和课程实用性等方面进行评价。

这些评价可以帮助学生了解课程的真实情况,为其他学生选择课程提供参考。

5. 选课结果查询功能:学生可以通过系统查询自己已选
的课程,并查看课程的详细信息和学分情况。

系统会提供相应的界面和查看方式,方便学生随时查看自己的选课情况。

以上是学生选课系统的基本功能说明,通过这样一个系统,学生可以更加便捷地选择自己的课程,并及时了解课程的相关信息。

该系统对于学校管理和学生学习来说,都有很大的帮助和促进作用。

它可以提高学生选课的效率,减轻学校管理的负担,同时也能够让学生更好地规划自己的学习计划,提高学习的积极性和效果。

学生选课管理系统设计

学生选课管理系统设计

学生选课管理系统设计一、引言学生选课管理系统是一种用于高校学生选课和管理选课信息的系统。

随着教育信息化的发展,学生选课管理系统的设计和应用对于提高教育质量、优化教学流程具有重要意义。

本文将围绕学生选课管理系统的设计展开讨论,包括系统的功能需求、数据库设计、系统架构等方面。

二、系统功能需求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+数据库简介学生选课管理系统是一个基于Java编程语言和数据库开发的系统,旨在提供学生选课的便捷和教务管理的智能化。

该系统具有课程管理、学生管理、教师管理、选课关联等功能模块,可以实现学生选课、教师管理课程、生成选课报表等操作。

功能模块1. 课程管理•提供课程信息录入和编辑功能,包括课程号、课程名称、授课教师等信息。

2. 学生管理•支持学生信息的录入、查询、修改和删除,学生信息包括学号、姓名、性别、年级等。

3. 教师管理•实现对教师信息的管理,可以录入教师信息、查询教师信息、修改和删除教师信息。

4. 选课关联•学生可以根据课程列表进行选课操作,系统会检查选课的合法性,避免时间冲突等问题。

数据库设计系统采用关系型数据库存储数据,设计了以下表结构: 1. 课程表:存储课程的信息,包括课程号、课程名称、授课教师等字段。

2. 学生表:存储学生的信息,包括学号、姓名、性别、年级等字段。

3. 教师表:存储教师的信息,包括教师号、姓名、职称等字段。

4. 选课表:记录学生选课的信息,包括学号、课程号、选课状态等字段。

技术实现系统使用Java语言开发,结合数据库技术进行数据存储和查询。

通过编写DAO(Data Access Object)层实现数据访问,实现了数据的持久化和业务逻辑的分离。

在用户界面方面,可以使用Swing或JavaFX等技术实现交互界面,使用户可以方便地操作系统功能。

总结学生选课管理系统是一个方便学生选课和教务管理的工具,通过Java编程语言和数据库技术的结合,实现了课程管理、学生管理、教师管理和选课关联等功能。

系统设计合理,可以提高选课效率,降低管理成本,是教育管理的重要辅助工具。

以上是对学生选课管理系统的介绍,希望能够为你对这一类型系统的理解提供帮助。

学生选课系统

学生选课系统

一、问题定义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. 提交选课学生完成课程选择后,需要点击提交选课按钮,系统会对学生的选课信息进行验证,确保选课符合规定的要求。

如果选课信息无误,系统会将选课结果保存到数据库中,并生成选课成功的提示信息。

以下是提交选课的数据流图:[提交选课数据流图]四、总结本文根据学生选课系统的功能需求,设计了包含学生登录、查看课程、选择课程和提交选课四个主要功能的数据流图。

通过这些数据流图,我们可以清晰地看到学生选课系统中数据的流动和处理过程,从而更好地理解系统的工作原理。

数据流图的设计有助于系统开辟人员进行系统设计和编码工作,同时也方便用户理解系统的功能和操作流程。

学生网上选课管理系统(uml)

学生网上选课管理系统(uml)

《学生网上选课管理系统(UML)》一、系统概述学生网上选课管理系统是基于UML(统一建模语言)进行设计的,旨在为学生提供一个便捷、高效的选课平台。

本系统通过对选课流程的规范化管理,提高了选课效率,降低了教务管理人员的工作负担,同时保证了选课过程的公平、公正。

二、系统功能模块1. 用户登录模块用户登录模块包括学生登录和教务管理员登录两个部分。

学生通过学号和密码登录系统,进行选课操作;教务管理员则负责维护课程信息、监控选课过程及处理异常情况。

2. 课程浏览模块课程浏览模块为学生提供了丰富的课程信息,包括课程名称、课程编号、上课时间、上课地点、授课教师等。

学生可根据个人兴趣和需求筛选课程,为选课做好充分准备。

3. 选课操作模块选课操作模块是系统的核心部分,学生可以在该模块进行课程选择、退选、查看已选课程等操作。

系统会实时更新选课结果,确保学生选课的实时性和准确性。

4. 课程管理模块课程管理模块供教务管理员使用,主要包括课程信息维护、选课人数限制、选课时间设置等功能。

教务管理员可根据实际情况调整课程安排,确保选课工作的顺利进行。

5. 数据统计与分析模块数据统计与分析模块负责收集、整理选课数据,为教务管理员提供决策依据。

通过分析选课结果,教务管理员可以了解学生选课偏好,优化课程设置,提高教学质量。

三、系统特点1. 操作简便:系统界面设计简洁,操作流程清晰,便于学生快速上手。

2. 高效性:采用UML建模,系统结构合理,数据处理速度快,提高了选课效率。

3. 安全性:系统采用加密技术,保障用户数据安全,防止信息泄露。

4. 可扩展性:系统设计充分考虑未来发展需求,便于功能扩展和升级。

5. 易维护性:模块化设计,便于后期维护和故障排查。

《学生网上选课管理系统(UML)》四、系统角色与权限划分1. 学生角色查询和浏览课程信息;进行选课、退课操作;查看个人选课记录和课程表;接收选课通知和系统消息。

2. 教务管理员角色发布和更新课程信息;设置选课时间、人数限制等参数;监控选课过程,处理选课异常情况;管理学生账户信息,包括权限分配和密码重置;查询和导出选课数据,进行统计分析。

数据库学生选课管理系统

数据库学生选课管理系统

数据库学生选课管理系统一、引言数据库学生选课管理系统是一种用于高校教务管理的工具,旨在帮助学校管理学生选课、课程信息以及学生成绩等数据。

通过该系统,学生可以方便地进行选课、退课操作,教师可以查看学生成绩并进行评价,学校管理人员可以实时掌握学生选课情况,从而更好地安排教学计划和资源。

二、系统功能1. 学生端功能•学生登录:学生通过账号和密码登录系统;•查看可选课程:学生可以浏览当前学期开设的课程,了解课程内容和开课时间;•选课:学生在规定时间内进行选课操作,选择感兴趣的课程并提交选课申请;•退课:学生在选课期间可以自主进行退课操作,取消已选的课程;•查看成绩:学生可以查询已修课程的成绩和评价。

2. 教师端功能•教师登录:教师通过账号和密码登录系统;•查看所教课程:教师可以查看自己当前任教的课程列表和学生名单;•录入成绩:教师可以录入学生成绩,并进行评价;•查询学生成绩:教师可以查询所教课程学生的成绩。

3. 管理员端功能•管理员登录:管理员通过账号和密码登录系统;•管理学生信息:管理员可以添加、修改、删除学生信息,包括个人信息和选课情况;•管理教师信息:管理员可以添加、修改、删除教师信息,包括个人信息和任教课程。

三、系统实现1. 数据库设计系统数据库包含以下表格:•学生表(Student):用于存储学生基本信息,如学号、姓名、性别等;•课程表(Course):用于存储课程信息,如课程编号、课程名称、学分等;•选课表(Enrollment):用于存储学生选课信息,关联学生和课程;•成绩表(Grade):用于存储学生成绩信息,包括学生、课程和成绩。

2. 系统架构系统采用B/S架构,前端使用HTML、CSS、JavaScript实现页面交互,后端使用Java语言编写业务逻辑,数据库采用MySQL实现数据存储。

3. 用户角色权限系统根据用户角色划分权限,学生可以进行选课、退课和查看成绩操作;教师可以录入成绩和查询学生成绩;管理员可以管理学生和教师信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要:本系统实现学生选课的基本功能,包括学生退选课,查看自己的选课信息;教师查看选课学生的信息,提交成绩;管理员添加学生、管理学生、管理成绩、添加教师、管理教师和管理课程等。

系统利用.Net平台技术进行开发,实现学生选课的动态管理,使得对信息的管理更加及时、高效,提高了效率。

同时还对系统的开发原理、功能特点和设计方案进行了介绍。

关键词:学生选课数据库管理 一、课程设计的目的与要求通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。

具体如下:1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;2.熟悉自动化的软件开发工具Rational Rose 2003,并将其运用于软件开发的全过程;3.进一步加强和提高软件工程文档的编写能力;4.培养协作能力和团队精神。

二、设计正文1.概述1.1课题题目:学生选课系统1.2系统的主要目标:本系统目标是实现选课系统所需的各种基本功能,包括学生选课、退课功能和教师查看选修课程、提交课程成绩功能以及管理员添加学生、维护学生信息、成绩管理、添加教师、维护教师信息、维护选修课程,还有公用的修改密码等功能。

1.3 系统的开发环境及运行环境:操作系统:Windows XP Pro SP2建模工具:Rational Rose 2003数据库系统:SQL Server2000开发工具:Visual Studio 2005Web服务器:IIS+ 2.0平台2.系统需求分析学生选课系统主要满足来自三方面的需求,这三个方面分别是学生用户、教师用户和管理员用户,也即是三类用户角色。

(1)学生用户是主要的需求者,主要需求功能是查询可选课程、查看自己选课情况及进行选课、退课操作等;(2)教师用户主要需求功能是查看自己所教授的课程、课程有哪些学生选修、以及利用本系统提交学生的成绩;(3)管理员用户的功能需求较为复杂,包括对学生信息、教师信息、课程信息进行管理。

在学生信息管理子模块中,实现对学生信息的添加、修改、删除操作,还可以输入查询条件进行查询操作。

在教师管理子模块中,实现对教师信息的添加、修改、删除、查询等操作。

在课程管理子模块中,实现对课程信息的添加,添加时为其分配任课教师、上课时间和地点,实现对课程的修改、删除、查看某个课程的详细信息等。

本系统将管理员用户、教师用户、学生用户的身份及权限进行严格的划分,让管理员拥有最高权限,可以查看、维护系统中的所有信息,如添加学生,添加课程,修改课程信息等;让教师拥有查看自己开设的课程的信息,以及提交所开设课程成绩的权限;让学生拥有选课和退选的权限;而修改密码模块的权限每个用户都可拥有,用以修改自己的密码信息。

通过进行严格的权限划分,可以更好地进行管理,也可更好地保护用户信息安全。

2.1用例图图2-1 学生选课系统用例图用例图说明:(1)系统的外部角色有:学生用户、教师用户和管理员。

(2)系统主要用例的文档描述:①学生管理用例:学生用户可见的功能,包含了选课、退课和查看选课三个用例功能。

②教师管理用例:教师用户可见的功能,包含了查看学生选课和提交成绩两个用例功能。

③信息管理用例:管理员可见的功能,这个用例进一步分为三个用例:学生信息管理用例、教师信息管理用例和课程信息管理用例。

④学生信息管理用例:信息管理用例可见的功能,实现学生信息的管理功能,包含了添加学生、修改学生信息和删除学生三个用例。

⑤教师信息管理用例:信息管理用例可见的功能,实现教师信息的管理功能,包含了添加教师、修改教师信息和删除教师三个用例。

⑥课程信息管理用例:信息管理用例可见的功能,实现课程信息的管理功能,包含了添加课程、修改课程信息和删除课程三个用例。

⑦修改密码用例:所有用户都可见的功能,用于修改用户的密码信息。

(3)系统用例之间的关系:①学生管理用例与选课、查看选课、退课三用例之间是包含关系。

②教师管理用例与查看学生选课、提交成绩两用例之间是包含关系。

③信息管理用例与学生信息管理用例、教师信息管理用例和课程信息管理用例之间是包含关系。

④学生信息管理用例与添加学生、修改学生信息和删除学生三个用例之间是包含关系。

⑤教师信息管理用例与添加教师、修改教师信息和删除教师三个用例之间是包含关系。

⑥课程信息管理用例与添加课程、修改课程信息和删除课程三个用例之间是包含关系。

(4)系统关键用例的正常事件流图和异常事件流图表2-1 修改密码用例的正常事件流图和异常事件流图表2-2 提交成绩用例的正常事件流图和异常事件流图用例名称提交成绩用例参与者教师用户描述提交选自己开设课程的学生的成绩启动进入提交成绩界面前置条件用户成功登录后置条件尚未提交过成绩主事件流用户系统1.单击提交成绩2.系统提交成绩页面3.填写学生成绩,单击提交成绩5.更新学生成绩,提示提交成功异常流异常流用户已经提交过该门课程成绩系统提示该课程成绩已提交,不能再次提交2.2类图图2-2 学生选课系统类图类图说明:(1)BaseUser类是一个系统角色用户的基类,主要方法有两个:modifyPWD() 用于修改用户的密码;loginCheck() 用于用户登录验证。

(2)Admin类继承自BaseUser类。

(3)Student类继承自BaseUser类,主要方法有:studentAdd() 用于添加学生;studentDel() 用于删除学生;studentUpdate() 用于更新学生信息;getStudents() 用于获取学生列表。

(4)Teacher类继承自BaseUser类,主要方法有:teacherAdd() 用于添加教师;teacherDel() 用于删除教师;teacherUpdate() 用于更新教师信息;getTeachers() 用于获取教师列表。

(5)Course类是一个课程类,主要方法有:courseAdd() 用于添加课程;courseDel() 用于删除课程;courseUpdate() 用于修改课程信息;getCourses() 用于获取课程列表。

(6)Elect类是一个选课表类,主要方法有:elect() 选修课程;electDel() 退选课程;getElectInfo() 获取选课信息;haveSubmit() 检测是否已提交过成绩;submitScore() 提交成绩。

2.3顺序图(1) 管理员修改课程信息顺序图(2) 学生用户退选课的顺序图图2-4 学生用户退选课的顺序图(3) 教师提交成绩顺序图图2-5 教师提交成绩顺序图2.4 协作图(可选): 教师用户(1) 学生用户选课协作图图2-6 学生用户选课协作图(2) 教师提交成绩协作图图2-7 教师提交成绩协作图3.系统总体设计3.1 设计问题域子系统学生选课系统是实现学生选课退课、教师提交成绩以及学校教务管理员维护信息的一个平台,整个学生选课系统有前台和后台两部分,共分为4个模块:管理员模块,教师模块,学生模块和公有模块,分别用于完成各自的功能。

以下为学生选课系统总体设计图和各功能模块说明:(1)总体设计图(2)各模块功能表3-1 学生选课系统功能模块表3.2 设计数据管理子系统(1)数据库表表3-2 数据库表序号数据库表数据表存储的内容1 Student 存储学生的信息2 Teacher 存储教师的信息3 Users 存储管理员的信息4 Elect 存储选课的信息5 Cource 存储课程的信息6 Depart 存储学校系院信息(2)数据表之间的关系图3-2 数据表之间的关系图(3)数据库表结构①学生表Student的详细数据字段:②教师表Teacher的详细数据字段:③课程表Course的详细数据字段:④选课表Elect的详细数据字段:⑤系统管理员表Users的详细数据字段:⑥系院表Depart的详细数据字段:3.3 设计人机交互子系统(1)用户分类本系统的用户可分为三类:①管理员用户;②教师用户;③学生用户。

(2)用户描述①管理员用户的描述:管理员用户在整个选课系统中起到管理和维护的作用,对学生和教师的信息进行管理和维护以及开设课设等职责。

②教师用户的描述:教师用户在本系统中具有管理选修了自己开设的课程的学生的权限,查看选修了自己开设课程的学生信息有及提交学生成绩。

③学生用户的描述:选课系统主要是针对管理学生的,学生在本系统中具有修改自己的信息,以及选课和退选的功能。

(3)设计命令层次①系统的人机交互子系统的内容和准则:本学生选课系统的人机交互子系统在根据不同的用户身份登陆到不同的页面,然后按②通过采用树形结构,细化命令的组织方式,如下:4.详细设计学生选课系统是实现学生网上选课、教师提交成绩以及学校教务管理员维护信息的一个平台,整个学生选课系统共分为4个大模块:管理员模块,教师模块,学生模块和公有模块,其中复杂的方法和模块的详细设计流程图如下。

4.1系统用户登录流程图4.2 用户密码修改流程图图4-1 系统用户登录流程图图4-2 用户密码修改流程图4.3教师提交成绩流程图图4-3教师提交成绩流程图4.4管理员添加课程流程图图4-4 管理员添加课程流程图4.5学生选修课程流程图图4-5 学生选修课程流程图5.系统实现本系统采用了三层架构来实现,即分为用户界面层(UI)、业务逻辑层(BLL)和数据访问层(DAL),用户界面层是展示给用户的界面,方便用户与系统进行交互;业务逻辑层是对系统业务实体的封装,完成系统业务功能;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。

5.1 Database类主要是与数据库连接,提供数据库操作功能,代码如下:namespace MyElectCourse.DAL{public class Database{protected string connectionString;protected SqlConnection connection = null;public Database(){connectionString =ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();}~Database(){if (connection != null){connection = null;}}protected void Open(){if (connection == null){connection = new SqlConnection(connectionString);}if (connection.State.Equals(ConnectionState.Closed)){connection.Open();}}protected void Close(){if (connection != null){connection.Close();}}public int ExecuteSQL(string sqlstr){int count = -1;this.Open();SqlCommand cmd = new SqlCommand(sqlstr, connection);count = cmd.ExecuteNonQuery();this.Close();return count;}public DataSet GetDataSet(string sqlstr){this.Open();DataSet ds = new DataSet();SqlDataAdapter adapter = new SqlDataAdapter(sqlstr,connection);adapter.Fill(ds);this.Close();return ds;}public DataTable GetDataTable(string sqlstr){DataSet ds = this.GetDataSet(sqlstr);DataTable dt = new DataTable();if (ds.Tables.Count > 0){dt = ds.Tables[0];}return dt;}public SqlDataReader GetDataReader(string sqlstr){this.Open();SqlCommand cmd = new SqlCommand(sqlstr, connection);SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);//this.Close();return sdr;}}}5.2 UserBase类是所有系统角色用户的基类,完成用户登录验证与修改密码的功能,代码如下:namespace MyElectCourse.BLL{public class UserBase{private string userID;public string UserID{get { return userID; }set { userID = value; }}private string userPSW;public string UserPSW{get { return userPSW; }set { userPSW = value; }}public string loginCheck(string uid, string upwd, string urole){String selectStr = String.Empty;switch (urole){case"0": //身份为教师时selectStr = "Select * from Teacher where teaID = '" + uid + "'";break;case"1": //身份为学生时selectStr = "Select * from Student where stuID = '" + uid + "'";break;case"2": //身份为管理员时selectStr = "Select * from Users where adminName = '" + uid + "'";break;default:return null;}Database db = new Database();DataTable dt = db.GetDataTable(selectStr);if (dt.Rows.Count > 0) //如果该用户存在{if (dt.Rows[0][1].ToString().Equals(upwd)) //密码正确{switch (urole){case"0": //身份为教师时return"0";case"1": //身份为学生时return"1";case"2": //身份为管理员时return"2";default:return null;}}else//密码错误,给出提示信息!{return"-1";}}else//用户不存在或用户名输入错误{return"-2";}}public string modifyPWD(String urole, String uid, String oldPwd, String newPwd){String updateStr = String.Empty;switch (urole){case"0": //身份为教师时updateStr = "update Teacher set teaPwd='" + newPwd + "' where teaID='" + uid + "'";break;case"1": //身份为学生时updateStr = "update Student set stuPwd='" + newPwd + "' where stuID='" + uid + "'";break;case"2": //身份为管理员时updateStr = "update Users set adminPwd='" + newPwd + "' where adminName='"break;}string ucheck = this.loginCheck(uid, oldPwd, urole);if (ucheck.Equals("0") || ucheck.Equals("1") || ucheck.Equals("2")){int t = new Database().ExecuteSQL(updateStr); //根据修改后返回的结果给出提示if (t > 0){return"1";}else{return"0";}}else{return"-1";} } }}5.3 系统登录页面,代码及运行效果如下:<head runat="server"><title>登录页面</title></head><body onload="document.all.txtUserName.focus()"leftmargin="0"rightmargin="0"><form id="form1"runat="server"><div><table align="center"style="font-size: 12px; font-family: Tahoma; border-collapse: collapse"<tr><td colspan="2"style="text-align: center"><span style="font-size: 24pt; font-family: 隶书">学生选课系统</span></td></tr><tr><td><div align="right"><span style="font-family: 宋体">用户名</span>:</div></td><td style="width: 242px"><asp:TextBox ID="txtUserName"runat="server"Width="150px"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1"runat="server" ErrorMessage="不能为空!"></asp:RequiredFieldValidator></td></tr><tr><td style="height: 32px"><div align="right">密&nbsp;&nbsp;&nbsp;码:</div></td><td style="height: 32px; width: 242px;"><asp:TextBox ID="txtPwd"runat="server"TextMode="Password"<asp:RequiredFieldValidator ID="RequiredFieldValidator2"runat="server"ErrorMessage="不能为空!"></asp:RequiredFieldValidator></td></tr><tr><td colspan="2"align="center"style="height: 46px"><asp:RadioButtonList ID="rblClass"runat="server"RepeatDirection="Horizontal"><asp:ListItem Value="0">教师</asp:ListItem><asp:ListItem Selected="True"Value="1">学生</asp:ListItem><asp:ListItem Value="2">管理员</asp:ListItem></asp:RadioButtonList><asp:Label ID="lblMessage"runat="server"ForeColor="Red"></asp:Label></td></tr><tr><td align="center"colspan="2"><asp:ImageButton ID="imgbtnLogin"runat="server"ImageUrl="~/Images/Login.GIF"<asp:ImageButton ID="imgbtnClose"runat="server"ImageUrl="~/Images/Close.GIF"</td></tr></table></div></form></body></html>图5-1系统登录页面5.4 学生用户选课界面代码及运行效果图如下:<html xmlns="/1999/xhtml"><head runat="server"><title>学生选课</title></head><body leftmargin="0"rightmargin="0"topmargin="0"><form id="form1"runat="server"><div><table width="100%"bgcolor="#ccccff"><tr><td><uc1:top ID="Top1"runat="server"/></td></tr></table><table id="table1"width="80%"border="0"align="center"><tr><td align="center"><span style="font-size: 16pt;">可选修课程</span></td></tr><tr><td><asp:GridView ID="GridView1"runat="server"AutoGenerateColumns="False" BackColor="White"Width="100%"BorderColor="#999999"BorderStyle="None"BorderWidth="1px" CellPadding="3"DataSourceID="SqlDataSource1"GridLines="Vertical"OnRowCommand="GridView1_RowCommand"Font-Size="10pt"DataKeyNames="courceID,teaID"><FooterStyle BackColor="#CCCCCC"ForeColor="Black"/><RowStyle BackColor="#EEEEEE"ForeColor="Black"Font-Size="10pt"/><SelectedRowStyle BackColor="#008A8C"Font-Bold="True"ForeColor="White"/><PagerStyle BackColor="#999999"ForeColor="Black"HorizontalAlign="Center" /><HeaderStyle BackColor="Blue"Font-Bold="True"ForeColor="White"Font-Size="10pt"/><AlternatingRowStyle BackColor="Gainsboro"/><Columns><asp:BoundField DataField="courceID"HeaderText="courceID"ReadOnly="True"Visible="False"SortExpression="courceID"/><asp:BoundField DataField="teaID"Visible="False"HeaderText="teaID" ReadOnly="True"SortExpression="teaID"/><asp:BoundField DataField="courceName"HeaderText="课程名称" SortExpression="courceName"></asp:BoundField><asp:BoundField DataField="teaName"HeaderText="教师姓名" SortExpression="teaName"></asp:BoundField><asp:BoundField DataField="courceTime"HeaderText="上课时间" SortExpression="courceTime"></asp:BoundField><asp:BoundField DataField="courceAddress"HeaderText="上课地点" SortExpression="courceAddress"></asp:BoundField><asp:HyperLinkField DataNavigateUrlFields="courceID,teaID" DataNavigateUrlFormatString="courseDetail.aspx?courceID={0}&teaID={1}"HeaderText="详细..."Text="详细..."/><asp:ButtonField HeaderText="选修"CommandName="select"Text="选修"></asp:ButtonField></Columns></asp:GridView><asp:SqlDataSource ID="SqlDataSource1"runat="server"ConnectionString="<%$ ConnectionStrings:ConnectionString %>"SelectCommand="SELECT Cource.courceID, Cource.teaID, Cource.courceName, Teacher.teaName, Cource.courceTime, Cource.courceAddress FROM Cource INNER JOIN Teacher ON Cource.teaID = Teacher.teaID WHERE NOT EXISTS (SELECT * FROM Elect WHERE (courceID=Cource.courceID and teaID=Cource.teaID and stuID = @stuID))"><SelectParameters><asp:SessionParameter Name="stuID"SessionField="userID"/></SelectParameters></asp:SqlDataSource></td></tr><tr><td><asp:Label runat="server"ID="errormess"ForeColor="Red"Font-Size="Smaller"></asp:Label></td></tr><tr><td style="height: 24px; text-align: center"><span style="font-size: 16pt;">您已经选修的课程</span></td></tr><tr><td><asp:GridView ID="GridView2"runat="server"AutoGenerateColumns="False" BackColor="White"Width="100%"BorderColor="#999999"BorderStyle="None"BorderWidth="1px" CellPadding="3"DataSourceID="SqlDataSource2"GridLines="Vertical"OnRowCommand="GridView2_RowCommand"DataKeyNames="stuID,courceID,teaID"><FooterStyle BackColor="#CCCCCC"ForeColor="Black"/><RowStyle BackColor="#EEEEEE"ForeColor="Black"Font-Size="10pt"/><SelectedRowStyle BackColor="#008A8C"Font-Bold="True"ForeColor="White"/><PagerStyle BackColor="#999999"ForeColor="Black"HorizontalAlign="Center" /><HeaderStyle BackColor="Blue"Font-Bold="True"ForeColor="White"Font-Size="10pt"/><AlternatingRowStyle BackColor="Gainsboro"/><Columns><asp:BoundField DataField="stuID"HeaderText="stuID"ReadOnly="True" SortExpression="stuID"Visible="False"/><asp:BoundField DataField="courceID"HeaderText="courceID"ReadOnly="True"SortExpression="courceID"Visible="False"/><asp:BoundField DataField="teaID"HeaderText="teaID"ReadOnly="True"SortExpression="teaID"Visible="False"/><asp:BoundField DataField="courceName"HeaderText="课程名称"SortExpression="courceName"><asp:BoundField DataField="teaName"HeaderText="教师姓名"SortExpression="teaName"></asp:BoundField> <asp:BoundField DataField="courceTime"HeaderText="上课时间"SortExpression="courceTime"><asp:BoundField DataField="courceAddress"HeaderText="上课地点"SortExpression="courceAddress"> <asp:ButtonField HeaderText="退选"CommandName="shanchu"Text="退选</Columns></asp:GridView><asp:SqlDataSource ID="SqlDataSource2"runat="server"ConnectionString="<%$ ConnectionStrings:ConnectionString %>"SelectCommand="SELECT Elect.stuID,Elect.courceID, Elect.teaID,<SelectParameters><asp:SessionParameter Name="stuID"SessionField="userID"/></SelectParameters></asp:SqlDataSource><td style="height: 21px"align="center"><asp:HyperLink ID="HyperLink1"runat="server"NavigateUrl="~/ModifyPwd.aspx"Font-Size="10pt">修改密码</asp:HyperLink><asp:HyperLink ID="HyperLink2"runat="server"Font-Size="10pt"NavigateUrl="javascript:window.close()">退出系统</asp:HyperLink></td></tr></table></div></form></body></html>图5-2 学生选课界面5.5 教师用户提交成绩界面代码及运行效果如下:<head runat="server"><title>提交成绩</title></head><body leftmargin="0"rightmargin="0"topmargin="0"><form id="form1"runat="server"><div><table width="100%"bgcolor="#ccccff"><tr><td><uc1:top ID="Top1"runat="server"/></td></table><table id="table1"width="400"border="0"runat="server"align="center"><tr valign="top"><td align="left"><asp:Label ID="lblmessage"Font-Size="10pt"runat="server">课程名称:&nbsp;&nbsp;</asp:Label><asp:TextBox runat="server"ID="cname"></asp:TextBox></td></tr><tr><td align="center"><asp:GridView ID="GridView1"runat="server"AutoGenerateColumns="False" BackColor="White"BorderColor="#999999"BorderStyle="None"BorderWidth="1px"CellPadding="3" Font-Size="10pt"GridLines="Vertical"Width="100%"><FooterStyle BackColor="#CCCCCC"ForeColor="Black"/><Columns><asp:BoundField DataField="stuID"HeaderText="学号"/><asp:BoundField DataField="stuName"HeaderText="姓名"/><asp:BoundField DataField="stuGrade"HeaderText="年级"/><asp:BoundField DataField="stuClass"HeaderText="班级"/><asp:TemplateField HeaderText="成绩"><ItemTemplate><asp:TextBox ID="txtScore"Width="30"runat="server"></asp:TextBox></ItemTemplate></asp:TemplateField></Columns><RowStyle BackColor="#EEEEEE"Font-Size="10pt"ForeColor="Black"/><SelectedRowStyle BackColor="#008A8C"Font-Bold="True"ForeColor="White"/><PagerStyle BackColor="#999999"ForeColor="Black"HorizontalAlign="Center" /><HeaderStyle BackColor="Blue"Font-Bold="True"ForeColor="White"/><AlternatingRowStyle BackColor="Gainsboro"/></asp:GridView></td></tr><tr><td align="center"><asp:ImageButton ID="imgBtnSubmitScore"runat="server" ImageUrl="~/Images/SubmitScore.GIF"OnClick="imgBtnSubmitScore_Click"/></td></tr><tr><td><asp:Label runat="server"ID="mess"Font-Size="Smaller" ForeColor="Red"></asp:Label></td></tr><tr><td align="center"><asp:HyperLink ID="HyperLink1"runat="server"Font-Size="10pt" NavigateUrl="teacherQueryElect.aspx">查看选课</asp:HyperLink>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<asp:HyperLink ID="HyperLink2"runat="server"Font-Size="10pt" NavigateUrl="~/ModifyPwd.aspx">修改密码</asp:HyperLink></td></tr></table></div><br/></form></body></html>图5-3 教师用户提交成绩界面5.6 管理员用户添加课程代码及运行效果如下:<html xmlns="/1999/xhtml"><head runat="server"><title>课程详细信息</title></head><body leftmargin="0"rightmargin="0"><form id="form1"runat="server"><div align="center"><table style="font-size: 12px; font-family: Tahoma; border-collapse: collapse"id="table"width="450"border="0"runat="server"><tr><td align="center"><asp:Label ID="courceName"runat="server"Font-Size="16"ForeColor="red"></asp:Label><font size="4">&nbsp;&nbsp;的详细信息</font><br/><asp:Label ID="lblMessage"runat="server"ForeColor="Red"></asp:Label></td></tr><tr height="25"align="left"><td style="height: 25px"><br><b>课程名称:<asp:TextBox ID="txtName"runat="server"></asp:TextBox></b></td></tr><tr height="25"align="left"><td><b>教师姓名:<asp:TextBox ID="teaName"runat="server"></asp:TextBox></b></td></tr><tr height="25"align="left"><td style="height: 25px"><b>上课时间:<asp:TextBox ID="txtTime"runat="server"></asp:TextBox></b></td></tr><tr height="25"align="left"><td><b>上课地点:<asp:TextBox ID="txtAddress"runat="server"></asp:TextBox></b></td></tr><tr height="10"><td><hr size="1"></td></tr><tr><td align="left"><b>课程简介:</b><br/><asp:TextBox ID="txtDetails"runat="server"Height="100px"Width="100%" TextMode="MultiLine"BorderColor="Transparent"BorderStyle="Groove"BorderWidth="1px"Font-Size="9pt"></asp:TextBox></td></tr></table></div><br/></form></body></html>图5-4 管理员添加课程界面6.系统测试在系统测试中,我们首先对各个子模块进行单元测试,即把每一个模块作为一个单独的实体来测试,保证每个模块作为一个单元能正确运行。

相关文档
最新文档