学生选课系统项目设计方案
- 格式:doc
- 大小:204.00 KB
- 文档页数:24
学生选课系统策划方案一、引言随着高等教育的普及和发展,学生选课系统成为大学教务管理的重要组成部分。
一个高效、便捷、透明的学生选课系统可以为学生提供更好的学习体验,提高学校教务管理的效率和质量。
本文将介绍一个学生选课系统的策划方案,旨在满足学生选课的需求,同时提供了一些关键功能和实施要点。
二、系统概述学生选课系统是一个基于互联网平台的应用系统,主要为学生提供选课、退课、调课等服务。
系统的核心理念是方便学生选择和管理自己的课程,同时为教务管理部门提供数据支持,帮助其进行课程安排和资源调配。
三、系统功能1. 学生登录与个人信息管理- 学生通过个人账号登录系统,管理个人信息,包括姓名、学号、专业、年级等。
2. 课程查询与浏览- 学生可以通过系统查询所有可选课程的相关信息,包括课程名称、授课教师、上课时间等。
3. 选课与退课- 学生可以根据个人兴趣和学业要求,在规定时间段内进行选课和退课。
4. 课程冲突检测- 系统能够自动检测学生已选课程和待选课程之间的时间冲突,并提醒学生及时调整选课计划。
5. 选课结果查询- 学生可以随时查询已选课程的详细信息,包括上课地点、授课教师、学分等。
6. 教师评价- 学生可以对已修完的课程进行评价,为其他学生提供参考意见,并促使教师不断改进教学质量。
7. 数据报表与分析- 系统能够生成学生选课情况的报表,并进行数据分析,为教务部门提供决策支持。
四、系统实施要点1. 技术框架选择- 鉴于学生选课系统的复杂性和用户规模,建议采用成熟的Web 开发框架,如Java Spring、Python Django等,以保证系统的稳定性和扩展性。
2. 数据库设计与优化- 需要设计合理的数据库结构,将学生信息、课程信息等进行合理分表,同时采用索引等优化技术提高系统的查询效率。
3. 安全与权限管理- 系统需要对用户数据进行加密存储,确保用户信息的安全性。
同时,为不同角色的用户设置不同的权限,保障数据的准确性和可信度。
学校教务系统设计方案学校教务系统是一个用于管理学校教务相关信息的软件系统。
下面是一个详细精确的学校教务系统设计方案:1. 系统架构:- 前端:使用Web技术开发,包括HTML、CSS和JavaScript。
- 后端:使用Java或Python等编程语言开发,采用MVC(模型-视图-控制器)架构。
- 数据库:使用关系型数据库,如MySQL或Oracle。
2. 功能模块:- 学生管理:包括学生信息录入、学生档案管理、学生选课等功能。
- 教师管理:包括教师信息录入、教师档案管理、教师课程管理等功能。
- 课程管理:包括课程信息录入、课程表管理、课程成绩管理等功能。
- 成绩管理:包括成绩录入、成绩查询、成绩统计等功能。
- 课程表管理:包括学生课程表查询、教师课程表查询等功能。
- 考试管理:包括考试安排、考试成绩录入、考试成绩查询等功能。
- 班级管理:包括班级信息录入、班级学生管理、班级课程管理等功能。
- 系统管理:包括用户权限管理、系统设置等功能。
3. 用户角色:- 学生:可以查询个人信息、选课、查看成绩、查询课程表等。
- 教师:可以录入成绩、查看学生信息、管理课程等。
- 管理员:可以管理用户权限、配置系统设置等。
4. 系统流程:- 学生注册登录:学生通过注册账号并登录系统。
- 学生选课:学生在规定时间内选择课程,并提交选课申请。
- 教师审核选课:教师审核学生选课申请,并进行课程安排。
- 学生查询成绩:学生可以随时查询自己的成绩。
- 教师录入成绩:教师按照考试结果录入学生成绩。
- 管理员管理系统:管理员可以管理用户权限、配置系统设置等。
5. 数据库设计:- 学生表:包括学生ID、姓名、性别、年级、班级等字段。
- 教师表:包括教师ID、姓名、性别、职称等字段。
- 课程表:包括课程ID、课程名称、学分、教师ID等字段。
- 成绩表:包括学生ID、课程ID、考试成绩等字段。
- 班级表:包括班级ID、班级名称、年级等字段。
选课系统开发计划为了更好地满足学生选课需求,提高选课效率和管理水平,学校计划开发一套全新的选课系统。
本文将从需求分析、系统设计、开发计划等方面进行详细阐述。
一、引言选课系统是现代高等教育管理的重要组成部分,通过电子化平台实现选课全程的自动化和网络化。
新的选课系统可以更好地满足学生的选课需求,提高选课的效率和公平性。
二、需求分析1. 学生需求考虑到学生的个性化需求,选课系统应该具备以下特点:(1)支持在线选课和退课功能,方便学生随时调整自己的学习计划。
(2)提供详细的课程信息,包括开课时间、地点、教师信息等,方便学生做出选择。
(3)提供选课预测和评价功能,帮助学生选择适合自己的课程。
(4)支持选课冲突检测,及时提示学生避免时间和课程的冲突。
2. 教师需求教师也是选课系统的使用者,他们需要以下功能:(1)发布课程信息和课程相关资源,方便学生查询和下载。
(2)设置选课限制和开放课程名额,保证课程资源的均衡利用。
(3)生成选课数据统计报表,为教学工作提供参考。
3. 管理员需求(1)管理选课系统的用户信息和权限设置,确保系统的安全性和稳定性。
(2)处理选课冲突和矛盾,做出公正的调度决策。
(3)维护系统的正常运行和优化,及时解决用户反馈的问题。
三、系统架构设计选课系统的架构设计应该符合以下原则:1. 分层设计:将系统拆分为前端展示、业务逻辑和数据处理三个层次,实现松耦合和高内聚。
2. 模块化设计:将系统功能划分为多个模块,每个模块负责特定的功能需求,方便拓展和维护。
3. 分布式架构:采用分布式系统架构,提高系统的可靠性和可扩展性。
4. 安全设计:引入身份验证和权限管理机制,保障系统数据的安全性和隐私性。
四、系统开发计划基于以上需求和架构设计,选课系统的开发计划如下:1. 需求收集和分析阶段:与学生、教师和管理员进行深入交流,明确系统的功能和性能需求。
2. 概要设计阶段:完成选课系统的整体框架设计和数据库设计,明确各个模块的功能和接口。
学生选课系统设计方案一、引言在现代教育中,学生选课是一项重要的任务,它涉及到学生的学习规划和学校资源的合理分配。
为了提高选课的效率和准确性,设计并实施一个优秀的学生选课系统至关重要。
本文将介绍一个学生选课系统的设计方案,旨在提供一个高效、便捷、智能化的选课平台。
二、系统需求分析1. 学生需求分析:学生希望能够根据自己的兴趣和能力自由选择课程,同时希望系统能够提供相关课程的详细信息,如教师、时间和地点等。
2. 教师需求分析:教师希望能够清晰了解学生的选课情况,及时调整教学计划,并能够根据选课情况灵活安排上课时间。
3. 管理员需求分析:管理员需要能够高效管理课程信息、学生选课信息以及教师信息,能够生成各类统计报告和课程表等。
三、系统设计方案基于以上需求分析,我们设计了以下学生选课系统的功能模块和技术实现方案。
学生模块是学生选课系统的核心部分,其功能包括:- 学生登录:学生通过用户名和密码登录系统,确保账号的安全性;- 课程浏览:学生可查看所有开设的课程,并查看详细信息,如授课教师、上课时间和地点等;- 选课功能:学生根据自己的兴趣和学习计划,选择合适的课程进行学习;- 退课功能:学生可根据个人情况,随时退选已选的课程;- 成绩查询:学生可以查询已修课程的成绩,并及时了解自己的学业进展;- 个人信息管理:学生可以对个人信息进行修改和维护。
2. 教师模块:教师模块为教师提供以下功能:- 教师登录:教师通过用户名和密码登录系统,确保账号的安全性;- 课程管理:教师可以添加、修改、删除并发布自己的课程信息;- 学生信息查询:教师可以查询选修自己课程的学生名单及相关信息;- 成绩录入:教师可以录入学生的成绩,并及时反馈给学生。
管理员模块是系统的管理者,提供以下功能:- 管理员登录:管理员通过用户名和密码登录系统,确保账号的安全性;- 课程管理:管理员可以添加、修改、删除课程信息,并对课程进行分类和排序;- 学生管理:管理员可以管理学生的基本信息,包括新增、修改和删除学生账号;- 教师管理:管理员可以管理教师的基本信息,包括新增、修改和删除教师账号;- 统计报表:管理员可以生成各类课程、学生和教师的统计报表,并进行数据分析。
管理信息系统课程设计--以学生选课系统为例(共26页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--目录1、前言 (3)、系统简介、开发目的、可行性研究、使用环境与开发工具2、系统分析 (4)、系统基本功能描述、系统需求分析 6、组织机构6、管理职能分析 6、业务流程分析 6、数据流程分析 6、数据字典 6现行系统评价 63、新系统设计 (4)1、系统目标设计 52、新系统功能(模块)结构图 63、新系统计算机信息系统流程设计 64、代码设计 65、系统物理配置方案设计 66、数据库设计 67、输出/输入设计 68、程序模块设计说明 6四、设计小结 (1)1、小组总结 22、个人总结 3五、参考文献 (1)六、分工说明 (1)说明:我们小组研究的课题是:学生选修课信息管理系统。
在研究过程中,我们使用的开发工具主要是Windows2003和Visual 。
我们把研究的重点放在在系统分析、系统设计实现过程、方法及内容等方面。
1.前言系统简介管理信息系统是一个以人为主导,利用计算机硬件、软件、网络通信设备以及其他办公设备,进行信息的收集、传输、加工、储存、更新和维护,以企业战略竞优、提高效益和效率为目的,支持企业的高层决策、中层控制、基层运作的集成化的人机系统。
其主要任务是最大限度的利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。
随着Internet的飞速发展深刻地影响了人们的日常生活和商业运作方式。
社会的方方面面渗透着互连网的应用,使得一向烦琐的手工程序变得方便,快捷。
学校网上选课系统正是基于这一思想发展起来的。
学生网上选课系统已经在很多高校得到广泛的应用,而且深得广大师生的称赞。
学生选课管理系统JavaWeb课程设计一、概述学生选课管理系统是一种用于管理学生选课信息的系统,能够实现学生注册、登录、选课、退选等功能。
本文将介绍基于JavaWeb技术设计学生选课管理系统的实现方案。
二、系统设计1. 系统结构学生选课管理系统主要包括学生管理模块、课程管理模块和选课管理模块。
2. 数据库设计系统数据库主要包括学生信息表、课程信息表、选课信息表等。
各表之间通过外键进行关联。
三、功能模块设计1. 学生管理模块•学生注册:学生可以通过系统注册账号。
•学生登录:学生可以使用注册账号登录系统。
•学生信息查看:学生可以查看个人信息。
2. 课程管理模块•课程信息查看:学生可以查看系统中所有课程信息。
•课程详情查看:学生可以查看课程的详细信息。
3. 选课管理模块•选课:学生可以选择感兴趣的课程进行选课。
•退选:学生可以退选已经选修的课程。
四、功能实现系统采用JavaWeb技术实现,包括前端页面的设计和后端逻辑的实现。
1. 前端设计系统前端页面采用HTML、CSS和JavaScript进行设计,主要包括学生登录页面、学生信息页面、课程信息页面等。
2. 后端实现系统后端采用Java语言开发,使用Servlet实现业务逻辑。
通过数据库连接池实现与数据库的交互,实现学生信息的增删改查,课程信息的查询和选课功能。
五、系统展望未来可以进一步完善系统功能,添加成绩管理模块、教师管理模块等,提升系统的全面性和实用性。
六、总结学生选课管理系统是一种重要的教务管理系统,本文设计了基于JavaWeb技术的学生选课管理系统方案,通过前后端的设计和实现,实现了学生信息管理、课程管理和选课功能。
希望该系统能够为学生选课提供便利,为教务管理提供支持。
软件工程课程设计学生选课系统一、介绍随着信息技术的不断发展,各行各业都离不开计算机的帮助。
学校也不例外。
学校的学科设置繁琐多样,如何让学生更快速、更准确地选到自己感兴趣的课程,是每一所学校都需要考虑的问题。
而软件工程作为一门较为实用的学科,应用在学生选课系统中,能够提高学生选课的效率,减少繁琐的流程、缩短时间,同时也能提高课程安排的科学性和精确度。
二、需求分析1、学生需求:能够根据自己的兴趣、时间等因素进行筛选,以快速查找自己需要的课程;同时也需要在选课过程中能够及时了解有无课程时间冲突,并进行相应的调整。
2、教师需求:能够快速、高效地了解学生的选课情况,以便于更好地进行教学计划安排、资源调配以及课程评估等。
3、管理需求:能够更好地监管选课流程,防止出现不当行为,确保选课过程的公开透明及合规性。
三、系统设计方案1、需求规定1.1 系统管理员可以对选课系统的相关参数进行设定,包括课程的基本信息数据、学生课程清单、选课时间和规则等。
1.2 学生登陆后可以查看课程、进行筛选,以及进行课程信息的查看、查询、课程化选。
1.3 教师可以查看选课情况以及管理自己的教学班级,包括布置作业、成绩录入等。
1.4 学生选课的时间节点可以在选课处理中获取,只有在设定时间内才可以进行选课。
2、数据库设计2.1 学生课程清单表:表中存储每个学生的已选课程信息。
2.2 学生信息表:存储所有注册学生的个人信息,为学生选课提供账号管理和基础信息库。
2.3 课程信息表:其中存储课程的全部信息,用于学生、教师查看、筛选和选课。
2.4 教师信息表:教师信息表中包含教师姓名、工号、授课班级信息以及相关授课要求等信息。
2.5 选课流水表:记录学生选课及其它可以影响选课结果的流水明细。
3、功能模块设计3.1 系统登录模块:设计系统的登录模块,分别支持学生、教师、管理员等三种用户类型。
3.2 课程分析模块:根据学生的兴趣和要求对课程进行筛选,以便于更快地找到符合自己要求的课程。
学生选课系统项目设计方案一、设计的目的与要求通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
具体如下:1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;2.熟悉自动化的软件开发工具Rational Rose 2003,并将其运用于软件开发的全过程;3.进一步加强和提高软件工程文档的编写能力;4.培养协作能力和团队精神。
二、设计正文<一>概述1.1课题题目:学生选课系统1.2系统的主要目标:本系统目标是实现选课系统所需的各种基本功能,包括学生选课、退课功能和教师查看选修课程、提交课程成绩功能以及管理员添加学生、维护学生信息、成绩管理、添加教师、维护教师信息、维护选修课程,还有公用的修改密码等功能。
1.3 系统的开发环境及运行环境:操作系统: Windows XP Pro SP2建模工具: Rational Rose 2003数据库系统:SQL Server2000开发工具: Visual Studio 2005Web服务器:IIS+ 2.0平台〔二系统需求分析学生选课系统主要满足来自三方面的需求,这三个方面分别是学生用户、教师用户和管理员用户,也即是三类用户角色。
〔1学生用户是主要的需求者,主要需求功能是查询可选课程、查看自己选课情况及进行选课、退课操作等;〔2教师用户主要需求功能是查看自己所教授的课程、课程有哪些学生选修、以及利用本系统提交学生的成绩;〔3管理员用户的功能需求较为复杂,包括对学生信息、教师信息、课程信息进行管理。
在学生信息管理子模块中,实现对学生信息的添加、修改、删除操作,还可以输入查询条件进行查询操作。
在教师管理子模块中,实现对教师信息的添加、修改、删除、查询等操作。
在课程管理子模块中,实现对课程信息的添加,添加时为其分配任课教师、上课时间和地点,实现对课程的修改、删除、查看某个课程的详细信息等。
选课系统体系结构设计一、引言选课系统是现代高等教育中必不可少的重要组成部分,它为学生提供了方便、快捷的课程选择途径,同时也为学校和教职工提供了管理和分配资源的手段。
本文将针对选课系统的体系结构进行设计,旨在提供一个高效、稳定和可扩展的系统架构。
二、系统需求分析1. 用户需求选课系统的用户主要包括学生、教职工和管理员。
学生希望能够方便地查看和选择自己的课程,教职工需要能够发布和管理课程信息,管理员则需要具备对整个系统进行维护和管理的权限。
2. 功能需求选课系统应该具备以下功能:- 学生能够浏览、搜索和筛选课程信息;- 学生能够选择和退选课程;- 教职工能够发布和管理课程信息;- 系统能够自动进行选课结果的计算和统计;- 系统能够处理选课冲突和资源分配问题;- 管理员能够管理用户、课程和系统设置;- 系统能够提供数据备份和恢复功能。
3. 性能需求选课系统需要具备以下性能要求:- 快速响应:系统对于用户的请求需要有较快的响应速度,尽量减少等待时间;- 稳定可靠:系统应当具备高可用性和容错机制,确保系统能够持续稳定地运行;- 可扩展性:系统应能够根据需求的增加灵活地进行扩展,保证系统的性能和效率。
三、系统架构设计基于对选课系统需求的分析,我们提出了以下的系统架构设计方案:1. 前端设计前端是用户与系统进行交互的界面,对于选课系统而言,前端应具备良好的用户体验和友好的界面设计。
我们可以采用现代前端框架进行开发,如React、Angular等,以实现前后端分离和页面的动态渲染。
2. 后端设计后端负责处理前端的请求,并与数据库进行交互。
我们可以采用分布式架构,将后端拆分为多个服务,提高系统的性能和并发处理能力。
常用的后端开发框架有Spring Boot、Django等,可以根据具体需求进行选择。
3. 数据库设计选课系统的数据库设计对于系统的稳定性和数据一致性至关重要。
我们可以使用关系型数据库如MySQL或非关系型数据库如MongoDB,以满足系统的需要。
学生选课实施方案随着教育教学改革的不断深入,学生选课制度也逐渐成为教育管理的重要组成部分。
学生选课实施方案的设计和执行,直接关系到学生的学习质量和学校的教学管理水平。
因此,本文将针对学生选课实施方案进行详细的分析和说明,以期为广大教育工作者提供一些有益的参考。
首先,学生选课实施方案的制定应充分考虑学校的教学资源和学生的学习需求。
学校可以根据学科特色和师资力量,合理安排课程设置,确保学生可以选择到符合自身兴趣和发展方向的课程。
同时,学校还应该根据学生的学习情况和学科发展趋势,及时更新和调整选课方案,以适应教育教学的发展需求。
其次,学生选课实施方案需要注重学生的个性化需求和发展规划。
学校可以通过开设选修课程、项目学习、实践活动等形式,为学生提供更多的选择空间,满足他们的多样化学习需求。
同时,学校还可以通过导师制度、学业指导等方式,帮助学生进行学习规划和职业规划,引导他们根据自身兴趣和特长选择适合的课程和学习方向。
此外,学生选课实施方案的执行需要建立科学的评价体系和监督机制。
学校可以通过学生评教、教师评教、课程评估等方式,及时了解学生对课程的反馈和评价,为调整和改进选课方案提供依据。
同时,学校还应该建立健全的教学管理体系,加强对选课方案执行情况的监督和检查,确保选课方案的贯彻执行和效果评估。
最后,学生选课实施方案的成功执行离不开全校师生的共同努力和支持。
学校可以通过开展选课政策宣传、举办选课指导活动等方式,增强师生对选课方案的理解和认同,形成全校上下一心、共同推进的良好氛围。
总之,学生选课实施方案的设计和执行是一项复杂而又重要的工作。
学校需要充分重视选课方案的制定和执行,不断完善和改进选课管理体系,为学生提供更加优质的教育教学资源,促进学校教育教学水平的全面提升。
希望本文所述内容对学校的选课工作能够有所帮助,为学生的学习发展和学校的教学管理做出贡献。
学生选课系统项目设计方案一、设计的目的与要求通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
具体如下:1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;2.熟悉自动化的软件开发工具Rational Rose 2003,并将其运用于软件开发的全过程;3.进一步加强和提高软件工程文档的编写能力;4.培养协作能力和团队精神。
二、设计正文<一>概述1.1课题题目:学生选课系统1.2系统的主要目标:本系统目标是实现选课系统所需的各种基本功能,包括学生选课、退课功能和教师查看选修课程、提交课程成绩功能以及管理员添加学生、维护学生信息、成绩管理、添加教师、维护教师信息、维护选修课程,还有公用的修改密码等功能。
1.3 系统的开发环境及运行环境:操作系统: Windows XP Pro SP2建模工具: Rational Rose 2003数据库系统:SQL Server2000开发工具: Visual Studio 2005Web服务器:IIS+ 2.0平台〔二系统需求分析学生选课系统主要满足来自三方面的需求,这三个方面分别是学生用户、教师用户和管理员用户,也即是三类用户角色。
〔1学生用户是主要的需求者,主要需求功能是查询可选课程、查看自己选课情况及进行选课、退课操作等;〔2教师用户主要需求功能是查看自己所教授的课程、课程有哪些学生选修、以及利用本系统提交学生的成绩;〔3管理员用户的功能需求较为复杂,包括对学生信息、教师信息、课程信息进行管理。
在学生信息管理子模块中,实现对学生信息的添加、修改、删除操作,还可以输入查询条件进行查询操作。
在教师管理子模块中,实现对教师信息的添加、修改、删除、查询等操作。
在课程管理子模块中,实现对课程信息的添加,添加时为其分配任课教师、上课时间和地点,实现对课程的修改、删除、查看某个课程的详细信息等。
本系统将管理员用户、教师用户、学生用户的身份及权限进行严格的划分,让管理员拥有最高权限,可以查看、维护系统中的所有信息,如添加学生,添加课程,修改课程信息等;让教师拥有查看自己开设的课程的信息,以及提交所开设课程成绩的权限;让学生拥有选课和退选的权限;而修改密码模块的权限每个用户都可拥有,用以修改自己的密码信息。
通过进行严格的权限划分,可以更好地进行管理,也可更好地保护用户信息安全。
2.1用例图图2-1 学生选课系统用例图用例图说明:〔1系统的外部角色有:学生用户、教师用户和管理员。
〔2系统主要用例的文档描述:①学生管理用例:学生用户可见的功能,包含了选课、退课和查看选课三个用例功能。
②教师管理用例:教师用户可见的功能,包含了查看学生选课和提交成绩两个用例功能。
③信息管理用例:管理员可见的功能,这个用例进一步分为三个用例:学生信息管理用例、教师信息管理用例和课程信息管理用例。
④学生信息管理用例:信息管理用例可见的功能,实现学生信息的管理功能,包含了添加学生、修改学生信息和删除学生三个用例。
⑤教师信息管理用例:信息管理用例可见的功能,实现教师信息的管理功能,包含了添加教师、修改教师信息和删除教师三个用例。
⑥课程信息管理用例:信息管理用例可见的功能,实现课程信息的管理功能,包含了添加课程、修改课程信息和删除课程三个用例。
⑦修改密码用例:所有用户都可见的功能,用于修改用户的密码信息。
〔3系统用例之间的关系:①学生管理用例与选课、查看选课、退课三用例之间是包含关系。
②教师管理用例与查看学生选课、提交成绩两用例之间是包含关系。
③信息管理用例与学生信息管理用例、教师信息管理用例和课程信息管理用例之间是包含关系。
④学生信息管理用例与添加学生、修改学生信息和删除学生三个用例之间是包含关系。
⑤教师信息管理用例与添加教师、修改教师信息和删除教师三个用例之间是包含关系。
⑥课程信息管理用例与添加课程、修改课程信息和删除课程三个用例之间是包含关系。
〔4系统关键用例的正常事件流图和异常事件流图表2-1 修改密码用例的正常事件流图和异常事件流图表2-2 提交成绩用例的正常事件流图和异常事件流图2.2类图图2-2 学生选课系统类图类图说明:〔1Base User 类是一个系统角色用户的基类,主要方法有两个: modify<> 用于修改用户的密码; login Check<> 用于用户登录验证。
〔2Admin 类继承自Base User 类。
〔3Student 类继承自Base User 类,主要方法有: student Add<> 用于添加学生; student Del<> 用于删除学生;student Update<> 用于更新学生信息; get Students<> 用于获取学生列表。
〔4Teacher 类继承自Base User 类,主要方法有: TeacherAdd<> 用于添加教师; Teacher Del<> 用于删除教师;Teacher Update<> 用于更新教师信息; Get Teachers<> 用于获取教师列表。
〔5Course 类是一个课程类,主要方法有: Course Add<> 用于添加课程; Course Del<> 用于删除课程;Course Update<> 用于修改课程信息; Get Courses<> 用于获取课程列表。
〔6Elect 类是一个选课表类,主要方法有: elect<> 选修课程; elect Del<> 退选课程;get Elect Info<> 获取选课信息;have Submit<> 检测是否已提交过成绩; submit Score<> 提交成绩。
顺序图<1> 管理员修改课程信息顺序图图2-3 管理员修改课程信息顺序图<2> 学生用户退选课的顺序图图2-4 学生用户退选课的顺序图<3> 教师提交成绩顺序图2.3<1> <2>〔三系统总体设计3.1 设计问题域子系统学生选课系统是实现学生选课退课、教师提交成绩以及学校教务管理员维护信息的一个平台,整个学生选课系统有前台和后台两部分,共分为4个模块:管理员模块,教师模块,学生模块和公有模块,分别用于完成各自的功能。
以下为学生选课系统总体设计图和各功能模块说明:〔1总体设计图〔1数据库表表3-2 数据库表〔2数据表之间的关系图3-2 数据表之间的关系图①学生表Student的详细数据字段:②教师表Teacher的详细数据字段:③课程表Course的详细数据字段:④选课表Elect的详细数据字段:⑤系统管理员表Users的详细数据字段:⑥系院表Depart的详细数据字段:3.3 设计人机交互子系统〔1用户分类本系统的用户可分为三类:①管理员用户;②教师用户;③学生用户。
〔2用户描述①管理员用户的描述:管理员用户在整个选课系统中起到管理和维护的作用,对学生和教师的信息进行管理和维护以及开设课设等职责。
②教师用户的描述:教师用户在本系统中具有管理选修了自己开设的课程的学生的权限,查看选修了自己开设课程的学生信息有及提交学生成绩。
③学生用户的描述:选课系统主要是针对管理学生的,学生在本系统中具有修改自己的信息,以及选课和退选的功能。
〔3设计命令层次①系统的人机交互子系统的容和准则:本学生选课系统的人机交互子系统在根据不同的用户身份登陆到不同的页面,然后按,整图4-1 系统用户登录流程图4.2 用户密码修改流程图图4-2 用户密码修改流程图4.3教师提交成绩流程图图4-3教师提交成绩流程图图4-4 管理员添加课程流程图图4-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">密 码:</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">课程名称: </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> <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"> 的详细信息</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 管理员添加课程界面〔六系统测试在系统测试中,我们首先对各个子模块进行单元测试,即把每一个模块作为一个单独的实体来测试,保证每个模块作为一个单元能正确运行。