C#毕业设计——基于C#+asp.net+SQL Server的网上选课系统设计与实现(毕业论文+程序源码)——网上选课系统

基于C#+asp.net+SQL Server的网上选课系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于C#+asp.net+SQL Server的网上选课系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. 本文设计是根据部分学校的实际情况,在Visual Studio 2005环境中,利用ASP.NET、SQL Server数据库等技术开发了基于B/S模式的网上在线选课系统。在设计中完成了院系、专业、课程、教师、学生信息的管理功能及在线选课、查看选课学生、权限限制等功能。经测试,此系统满足教务系统用户需求,能够促进当前高校教务工作的管理水平,有一定的实际应用价值。

2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:9524个字28页
包含内容:整套源码+完整毕业论文


3、关键词:

选课;SQL Server;ASP.NET;教务管理

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

1 引言
“选课”是现在高校行政管理工作中一项很重要的课题。而且是每个学期都必须要面对的问题。选课工作做不好,学生不知道自己将要学习的课程,老师也不知道自己将要讲授的课程,教务处的排课计划、教室安排等其他调度工作也无从做起。因此,如何解决高校教务管理中的选课工作便成为了如今各大高校面临的很实际的问题。

本文是在Microsoft.NET框架的集成环境中使用Windows.NET平台,C#语言,SQL Server数据库进行开发的。完成了对选课相关信息的计算机管理,以及对信息的添加,修改,删除等计算机管理工作。在文中对相关的技术进行了描述,对系统的各个子系统的功能,设计思路及设计方法都作了详细的描述。

1.1 课题背景
随着进几年高校的持续扩招,学生人数逐年增加。为了满足广大学生的求学需要,各个高校的师资力量、硬件配置也随之增强。这样一来,日常行政部门的工作也就越来越繁重,这一点在选课这块显得尤为突出。而传统的手工操作,即费时又费力,而且容易出错,工作效率较低。因此,拥有一套实用、高效、完善的在线选课系统就显得尤为重要了,它可以提升高校的教育质量和教学管理质量,提高工作效率,降低行政成本。

1.2 课题目标
设计并实现一套完整统一、技术先进、高效稳定、安全可靠的基于B/S架构的网上选课系统。

1.3 课题意义
通过网上在线选课系统的实现,不仅可以提高自己的开发经验,也解决了实际的问题,提高了学校的办公管理的效率,减少了工作出错的几率,节约了资金成本。

2 开发平台、相关技术的介绍
2.1 ASP.NET
ASP.NET 是建立在公共语言运行库上的编程框架,可用于在服务器上生成功能强大的 Web 应用程序。与以前的 Web 开发模型相比,ASP.NET 提供了数个重要的优点:

 增强的性能。
ASP.NET 是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,ASP.NET 可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前便显著提高了性能。
 世界级的工具支持。
ASP.NET 框架补充了 Visual Studio 集成开发环境中的大量工具箱和设计器。WYSIWYG 编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。
 威力和灵活性。
由于 ASP.NET 基于公共语言运行库,因此 Web 应用程序开发人员可以利用整个平台的威力和灵活性。.NET 框架类库、消息处理和数据访问解决方案都可从 Web 无缝访问。ASP.NET 也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到 ASP.NET 时保留基于 COM 的开发中的现有投资。
 简易性。
ASP.NET 使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。例如,ASP.NET 页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似 Visual Basic 的简单窗体处理模型中处理事件。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。
 可管理性。
ASP.NET 采用基于文本的分层配置系统,简化了将设置应用于服务器环境和 Web 应用程序。由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。此“零本地管理”哲学也扩展到了 ASP.NET 框架应用程序的部署。只需将必要的文件复制到服务器,即可将 ASP.NET 框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。
 可缩放性和可用性。
ASP.NET 在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到 ASP.NET 运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。
 自定义性和扩展性。
ASP.NET 随附了一个设计周到的结构,它使开发人员可以在适当的级别“插入”代码。实际上,可以用自己编写的自定义组件扩展或替换 ASP.NET 运行库的任何子组件。实现自定义身份验证或状态服务一直没有变得更容易。
 安全性。
借助内置的 Windows 身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。

2.2 SQL Server
随着计算机技术的不断发展,信息化管理成都的不断提高,数据库技术在信息管理中的作用日益重要。Microsoft SQL Server是目前使用最广泛的数据库之一,它与Windows网络操作系统的无缝集成,智能化的内容管理,强大的功能,使它得到大量用户的喜爱。

数据库是数据管理的最新技术,是计算机科学的重要分支。多年来,数据库管理系统已从专用的应用程序包发展成为通用系统软件。由于数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。

在SQL Server中,使用的是T-SQL语言,T-SQL是ANSI SQL的加强版语言,它提供了标准的SQL 命令,由于SQL语言功能丰富、语言简洁,使用方法灵活,倍受用户和计算机业界的青睐,被众多的计算机公司和软件公司采用。经过多年的发展,SQL语言已成为关系数据库的标准语言。

SQL语言主要有数据定义语言、数据操纵语言、数据控制语言和其他类语言要素组成。T-SQL的分类也有类似于SQL语言的分类,不过做了许多扩充。T-SQL语言的分类如下:变量说明语句、数据定义语言(用来建立数据库、数据库对象和定义其列,大部分是以CREATE 开头的命令)、数据操纵语言(用来操纵数据库中的数据的命令,如:SELECT、INSERT、DELETE等)、数据控制语言(用来控制数据库组件的存取许可、存取权限等的命令,如:GRANT 等)、流程控制语言(用于设计应用程序的语句 ,如:If …While和Case等)、内嵌函数(说明变量的命令)、其他命令(嵌于命令中使用的标准函数)。

在数据库中,数据查询是通过SELECT语句来完成的。SELECT语句可以从数据库中按用户要求检索数据,并将查询结果以表格的形式返回。当然用户在查询数据库时往往并不需要了解全部信息,而只需要其中一部分满足某些条件的信息。在这种情况下就需要在SELECT语句中加入条件以选择数据行,这时,就用到WHERE子句 。WHERE 子句中的条件是由表达式以及逻辑联结词AND、OR和NOT等组成。用户在进行查询时,会出现重复结果,这时就需要使用DISTINCT关键字来取消重复部分。在WHERE子句中,可以使用谓词LIKE来进行字符串的匹配检查。当用户要对查询结果进行排序时,就需要在SELECT语句中加入ORDER BY子句。在ORDER BY子句中,可以使用一个或多个排序,要求其优先级次序从左到右。

一个数据库能否保持信息的正确性、及时性、很大程度上依赖数据库的更新功能的强弱与数据库的实时更新能力,这些操作包括插入、删除、修改,也成为更新3种操作。

SQL Server是Microsoft公司推出的SQL Server数据库管理系统,它使得用户能够更方便,更快捷地管理数据库和进行系统开发。基于要求数据库的吞吐量和稳定性较高,在线选课管理系统的开发选择了该数据库。

2.3 C#简介
C# 是由Microsoft开发的一种新型编程语言,由于它是从C和C++ 中派生出来的,因此具有C++的功能。同时,由于是Microsoft公司的产品,它又同 VB一样简单。对于web开发而言,C#像 Java,同时具有Delphi的一些优点。C#具有以下的优点:
A.简单
1.C#中指针已经消失。
2.不安全的操作,比方说直接内存操作不被允许了。
3.C#中"::“或”->“操作符是没用的。
4.因为它是基于.NET平台的,它继承了自动内存管理和垃圾回收的特点。
5.原始数据类型可变的数据范围像Integer, Floats等。
6.整形数值0和1不再作为布尔值出现.C#中的布尔值是纯粹的true和false值而且没有更多的”=“操作符和”“操作符错误.”“被用于进行比较操作而”="被用做赋值操作。

B.现代
1.C#建立在当前的潮流上,对于创建相互兼容的,可伸缩的,健壮的应用程序来说是非常强大和简单的。
2.C#拥有内建的支持来将任何组件转换成一个web service,运行在任何平台上的任何应用程序都可以通过互联网来使用这个服务。

C.面向对象的
1.C#支持数据封装,继承,多态和对象界面(即java中的interface关键字)。
2.(Integer,Float, Double)在java中都不是对象,但是C#引入和结构体(struts)来使原始数据类型变成对象int i=1;String a=i Tostring();//转换(或者)Boxing。

D.类型安全
1.在C#中我们不能进行不安全的类型转换像将double转换成Boolean.。
2.值类型(常量类型)被初始化为零值而引用类型(对象和类被编译器自动初始化为零值.。

3 需求分析
3.1 应解决的问题
实现教务处、教师及学生对选课工作的需求
提高对系统开发的认识与经验
将一些新的技术应用带到系统中来
保证系统的可维护性与可扩展性

3.2 系统架构
系统在选用结构的时候,有B/S、C/S、Smart Client(智能客户端)三种可能的方案。它们各有各的优缺点。
 B/S架构
B/S架构的优点在于客户端和服务器通过Intranet进行数据交换,客户端基于统一的WEB浏览器,减少了投资,解决了系统维护升级的问题,另外只有极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,这也就充分保护了数据的安全。虽然如此,B/S结构还是有很多的不足,其中最大的缺点是在界面操作上具有很大局限性,用起来很难,开发起来也很费钱。

 C/S架构
采用C/S结构可以减轻服务器运行数据负荷,数据的储存管理也较为透明,最重要的是开发较为迅速。而它的缺点也是不少,它会造成高昂的维护成本,且投资大,维护不方便。在实际开发中,部署不如B/S方便。但由于它能快速开发出较为使用的用户界面,而且可以将部分运算转移到客户端来,所以是一个值得考虑的方案。

 Smart Client
Smart Client是下一代客户端软件的代表,它可以充分利用终端设备的优势(Full PC、PDA、Phone)、能够调用Web Service、支持在线和离线两种状态、能够如同Web应用程序一般简单方便的部署。由于这套系统的目标客户是教务处负责排课的老师,因此它不会涉及到对终端设备的支持,但是方便部署这一点确实需要的,因为这正是C/S的缺点。

通过上边对三种结构的简单介绍,并考虑到本系统面向的对象主要是广大的在校学生,采用B/S模式可以最方便的实现系统的部署,而系统并不涉及大量的运算,无需考虑服务端会超负荷,因此本系统最终决定采用B/S的方案。

3.3 设计原则
3.3.1 实用性原则
要力求最大限度地满足实际工作的需要,充分考虑各业务层次、各管理环节数据处理的实用性,把满足客户生产和管理业务作为第一要素进行考虑。

3.3.2 可扩展性与可维护性原则
为适应将来的发展,系统应该具有良好的可扩展性和可维护性。系统设计尽可能模块化、组件化,使应用系统可灵活配置,适应不同的情况。系统的可扩展性应包括能接纳已有的系统和在今后系统软硬件扩展时,能有效地保护已有的投资。特别是在应用需求变化时(应用与系统的需求往往提不全或者经常会变化),有一个较好的应用平台,能容易地加以调整。系统易于扩充升级,既能满足当前业务的需求,又为今后的扩充留有空间。

3.3.3 安全可靠性原则
网站系统与数据库系统的设计要做到安全可靠,防止非法用户的入侵。数据库的备份策略恰当,以防灾难性事故发生。

3.3.4 用户界面设计原则
图形化原则:用户界面的设计应做到美观大方。系统的设计需要考虑用户的计算机水平,用户界面应直观、明了、条理清晰,做到简单易用,没有计算机专业背景的用户也可以轻松的使用本系统完成选课及其他管理工作,实现“傻瓜型”管理——易学、易用、易管理。

3.3.5 数据库设计原则
对数据库的设计因该体现一致性、完整性、安全性、可伸缩性和规范化

3.4 中间件引用
在系统设计中,为了方便对数据库的操作,系统引用了一个微软的开源中间件Microsoft.ApplicationBloks.Data.dll,这个中间件封装了几乎所有的数据库操作以及对数据库异常的处理,使项目在开发的时候省下了不少时间。

4 系统设计与实现
4.1 数据库设计
为充分保护数据的一致性,数据库中各表都规范化设计,下图是系统数据库中使用的表以及各表之间的关系:
在这里插入图片描述

图4-1 数据库关系图
下面就各个表分别给出说明:
(1)课程基本信息(CourseInfo)表,保存课程的基本信息:
在这里插入图片描述

图4-2 课程基本信息表(CourseInfo)
○1CourseID:课程ID,自动编号;
○2CourseName:课程名称;
○3TeacherID:教师ID,对应TeacherInfo表的TeacherID;
○4CourseDes:课程描述;
○5IsDeleted:是否删除,为保证数据安全,删除时并不物理删除,只将此字段置1;
○6MajorID:专业ID,此课程对应的专业,与MajorInfo表的MajorID对应;
(2)专业基本信息(MajorInfo)表,保存各院系的专业基本信息:
在这里插入图片描述

图4-3 专业基本信息表(MajorInfo)
○1MajorID:专业ID,自动编号;
○2MajorName:专业名称;
○3DeptID:院系ID,对应DeptInfo表的DeptID;
○4IsDeleted:是否删除,为保证数据安全,删除时并不物理删除,只将此字段置1;
(3)学生选课信息(StuCourse)表,保存学生的选课信息:
在这里插入图片描述

图4-4 学生选课信息表(StuCourse)
○1StuCourseID:选课ID,自动编号;
○2StudentID:学生ID,对应StudentInfo表的StudentID字段;
○3CourseID:课程ID,对应CourseInfo表的CourseID字段;
此表中的每一条记录表示了某一个学生选择了某一门课程。

(4)院系基本信息(DeptInfo)表,保存学校的院系信息:
在这里插入图片描述

图4-5 院系基本信息表(DeptInfo)
○1DeptID:院系ID,自动编号;
○2DeptName:院系名称;
○3IsDeleted:是否删除,为保证数据安全,删除时并不物理删除,只将此字段置1;
(5)教师基本信息(TeacherInfo)表,保存学校教师的基本信息:

在这里插入图片描述

图4-6 教师基本信息表(TeacherInfo)
○1TeacherID:教师ID,自动编号;
○2TeacherName:教师姓名;
○3TeacherNumber:教师工号;
○4DeptID:教师所属专业ID,对应DeptInfo表的DeptId字段;
○5IsDeleted:是否删除,为保证数据安全,删除时并不物理删除,只将此字段置1;
(6)学生基本信息(TeacherInfo)表,保存学校学生的基本信息:

在这里插入图片描述

图4-7 学生基本信息表(StudentInfo)
○1StudentID:学生ID,自动编号;
○2StudentName:学生姓名;
○3StudentNumber:学生学号;
○4StudentGender:学生性别;
○5DeptID:学生所属专业ID,对应DeptInfo表的DeptId字段;
○6MajorID:学生所属院系ID;
○7IsDeleted:是否删除,为保证数据安全,删除时并不物理删除,只将此字段置1;
(7)登录信息(Users)表,保存登录账号信息:
在这里插入图片描述

图4-8 用户登录表(Users)
○1UserID:账号ID,自动编号;
○2Name:登录名称;
○3Pass:登录密码;
○4Type:账号类型,1为管理员,2为教师,3为学生;
○5ID:登录者身份ID,如为管理员,则此字段表示管理员ID,如为教师,则此字段表示教师ID。

4.2 模块设计
4.2.1 登录模块设计
登录页面为系统的起始页面,登录界面设计如下图所示:

在这里插入图片描述

图4-9 登录界面截图

登录模块的功能是判断登录用户的权限以及将用户导航到不同的页面,管理员、教师和学生登录后的页面都是不相同的。在这个模块使用到了Auth这个类来完成主要的登录操作。
主要代码如下:

/// <summary>
/// 判断用户名和密码是否正确
/// </summary>
public bool Login(string name, string pass)
{
	string sqlString  = "select count(*) from Users where name='"+name+"' and pass='"+pass+"'";
	object obj = SqlHelper.ExecuteScalar(SqlString,CommandType.Text, sqlString);
	if(obj!=null && obj.ToString()!="0")
		return true;
	else
		return false;
}

/// <summary>
/// 判断登录类型,1为学生,2为老师,3为管理员
/// </summary>
public int LoginType(string name)
{
	string sqlString  = "select type from Users where name='"+name+"'";
	object obj = SqlHelper.ExecuteScalar(SqlString,CommandType.Text, sqlString);
	if(obj!=null && obj.ToString()!="0")
		return int.Parse(obj.ToString());
	else
		return -1;
}

登录时调用此函数,传入参数分别为用户名和密码,函数中对传入的用户名和密码与数据库中的查询结果比较,如果正确,返回true,否则返回false,完成登录账号判断。

4.2.2 院系管理模块设计
院系管理为在线选课系统提供院系信息管理功能,用户可通过它来对学校的院系信息进行添加、修改、删除操作。

表4-1 院系管理涉及数据列表
在这里插入图片描述

院系管理截图如下:

在这里插入图片描述

图4-10 院系管理界面截图
主要代码如下:

if(txtName.Text=="")
				Response.Write("<script defer>alert('名称不允许未空');</script>");
			else if(txtName.Text.Length>20)
			{
				Response.Write("<script defer>alert('最多20个字符');</script>");
			}
			else
			{
				CourseBiz.Dept dept = new CourseBiz.Dept();
				if(Request["Action"]=="add")//插入院系信息
					dept.InsertDeptInfo(txtName.Text.Trim());
				else//更新专业信息
					dept.UpdateDeptInfo(txtName.Text.Trim(), int.Parse(txtNumber.Text));

				string str = "<script language=javascript>window.dialogArguments.document.location.href='Dept.aspx';window.close();</script>"; 
				Response.Write(str);
			}

4.2.3 专业管理模块设计
专业管理为在线选课系统提供专业信息管理功能,用户可通过它来对学校的专业信息进行添加、修改、删除操作。

表4-2 专业管理涉及数据列表
在这里插入图片描述

主要代码与院系管理模块代码类似。

4.2.4 课程管理模块设计
课程管理为在线选课系统提供课程管理功能,用户通过课程管理可对学校的课程进行添加、修改、删除操作。在课程管理中,可以为课程设置授课教师、以及授课专业等信息。

表4-3 课程管理涉及数据列表
在这里插入图片描述

4.2.5 学生管理模块设计
学生管理为在线选课系统提供学生信息管理功能,用户通过学生管理可以对学生的基本信息进行添加、修改、删除等操作,同时提供对学生所选课程的列表查看。

表4-4 学生管理涉及数据列表
在这里插入图片描述

主要代码如与院系管理模块代码类似。
4.2.6 教师管理模块设计
教师管理为在线选课系统提供教师基本信息管理功能,用户通过教师管理可以对教师的基本信息进行添加、修改、删除等操作。

表4-5 教师管理涉及数据列表
在这里插入图片描述

4.2.7 学生个人信息维护模块设计
学生基本信息维护功为学生登录系统后提供基本信息管理,学生通过基本信息维护功能可以对自己基本信息和登录密码进行修改。
表4-6 学生管理涉及数据列表
在这里插入图片描述

学生个人信息维护模块截图:
在这里插入图片描述

图4-11 学生个人信息维护界面截图
主要代码如下:

//判断条件,名称不允许未空,名称长度不超过个字符
if(txtName.Text=="")
				Response.Write("<script defer>alert('名称不允许未空');</script>");
			else if(txtName.Text.Length>20)
			{
				Response.Write("<script defer>alert('最多个字符');</script>");
			}
			else
			{
				//修改学生基本信息
				CourseBiz.StudentEntity stuentity = new CourseBiz.StudentEntity();
				string sTemp = rboGender.SelectedValue;
				stuentity.DeptID = int.Parse(ddlDept.SelectedValue);
				stuentity.MajorID = int.Parse(ddlMajor.SelectedValue);
				stuentity.StudentGender = int.Parse(sTemp);
				stuentity.StudentName = txtName.Text.Trim();
				stuentity.StudentNumber = txtCode.Text.Trim();
				
				CourseBiz.Student stu = new CourseBiz.Student();
				stuentity.StudentID = int.Parse(Session["ID"].ToString());
				stu.UpdateStudentInfo(stuentity);
				
				//修改学生密码
				if(txtPass.Text.Trim()!="")
				{
					CourseBiz.Auth auth = new CourseBiz.Auth();
					int type = auth.LoginType(Context.User.Identity.Name);
					stu.UpdateStudentPass(txtPass.Text, int.Parse(Session["ID"].ToString()),type);
				}

				string str = "<script language=javascript>alert('成功');</script>"; 
				Response.Write(str);
			}

4.2.8 选课模块设计
选课功能是在线选课系统的核心,通过选课功能,学生登录后可以选择、修改自己喜欢的课程,也可以删除已选课程,查看所选课程。
选课功能截图:

在这里插入图片描述

图4-12 选课界面截图
主要代码如下:

//循环插入学生选的课程
foreach(DataGridItem item in dgBulletin.Items)
			{
				if(item.ItemType==ListItemType.Item || item.ItemType==ListItemType.AlternatingItem)
				{
					CheckBox chkID = (CheckBox)item.FindControl("chkID");
					if(chkID.Checked==true)
					{
						int CourseID = int.Parse(item.Cells[1].Text);
						int StuID = int.Parse(Session["ID"].ToString());
						CourseBiz.Student stu = new CourseBiz.Student();
						stu.InsertStudentCourse(StuID, CourseID);

					}
				}
			}
			Response.Redirect("StuAddCourse.aspx");
		}

4.2.9 担任课程查看模块设计
当教师用户登录系统后可通过查看担任课程情况功能来查看有哪些课程的授课教师是自己,这项功能仅提供给教师用户。

查看担任课程功能模块截图:
在这里插入图片描述

图4-13 教师查看担任课程界面截图
主要代码如下:

/// <summary>
/// 初始化DataGrid,如果查询的数据为,DataGrid控件隐藏,提示没有符合条件的数据
		/// </summary>
		public void DgBind()
		{
			CourseBiz.Teacher teacher = new CourseBiz.Teacher();
			DataTable ds = teacher.GetTeacherCourse(int.Parse(Session["ID"].ToString()));
			if(ds!=null && ds.Rows.Count>0)
			{
				dgBulletin.DataSource = ds;
				dgBulletin.DataBind();
			}
			else
			{
				lblNo.Visible = true;
				dgBulletin.Visible = false;
			}
		}

4.2.10 选课学生信息查看模块设计
选课学生信息查看功能提供给再选选课系统的教师用户,教师用户可以通过这个功能来查看有哪些学生选择了自己担任的课程。

在这里插入图片描述

图4-14 教师查看选课学生截图
主要代码如下:

/// <summary>
/// 初始化DataGrid,如果查询的数据为,DataGrid控件隐藏,提示没有符合条件的数据
		/// </summary>
		public void DgBind()
		{
			CourseBiz.Teacher teacher = new CourseBiz.Teacher();
			DataSet ds = teacher.GetStuInfoByTID(int.Parse(Session["ID"].ToString()));
			if(ds!=null && ds.Tables.Count>0 && ds.Tables[0].Rows.Count>0)
			{
				dgBulletin.DataSource = ds;
				dgBulletin.DataBind();
			}
			else
			{
				lblNo.Visible = true;
				dgBulletin.Visible = false;
			}
		}

4.2.11 数据库链接设计
考虑系统的可维护性,系统的数据库链接信息保存在配置文件中,当系统的数据库需要更换的时候,只需要更改配置文件中的数据链接信息就可以将系统切换到新的环境中去。下面是配置文件中的数据库链接信息:

<appSettings>
<!--数据库链接字符串-->
<add	key="ConnString"	value="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\WebCourse_Data.MDF;Integrated Security=True;User Instance=True"/>
</appSettings>

5 部署与测试
5.1 部署图
在这里插入图片描述

图5-1 系统部署图

5.2 模块测试
在登录系统后,当登录者的身份不同的时候,系统将会把用户导航到不同的页面,在测试中,可以看到使用管理员身份、教师身份和学生身份登录系统后界面与功能的不同,如下图所示:
在这里插入图片描述

图5-2 管理员登录截图
在这里插入图片描述

图5-3 教师登录截图
在这里插入图片描述

图5-4 学生登录截图
通过测试可以看到系统很好的完成了这个功能。
在系统完成以后,对系统的各个管理模块进行了添加、删除和修改操作,并且对选课流程进行了一次测试,系统都能很稳定的工作。

结果测试,在线选课系统基本完成了预定的任务。

结论
我这次毕业设计的目标是建立一个在线选课系统,它用到的开发工具是Visual Studio.NET 中的ASP.NET、Visual C#语言以及SQL Server数据库。最终结果表明,网上选课系统符合预定要求。

省略

参考文献
[1] 郭文夷,戴芳胜.C#.NET可视化程序设计[M].上海:华东理工大学出版社,2005。
[2] Mark Schmidt,Simon Robinson.Microsoft Visual C#.NET2003开发技巧大全[M].北京:中国水利水电出版社,2005。
[3] 闪四清.SQL Server实用简明教程[M].北京:清华大学出版社,2003。
[4] 刘友话..Net环境下数据库应用系统开发技术[M].北京:科学出版社,2004。
[5] Ian Somerville,Software Engeering[M].北京:机械工业出版社,2003。
[6] Jeffrey Richter.Microsoft .NET框架程序设计[M].北京:机械工业出版社,2003。
[7] James W.Cooper.C# Design Patterns[M].北京:电子工业出版社,2004。
[8] Richard Blum.C# Network Programming[M].北京:电子工业出版社,2003。

致谢
省略


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于C#+asp.net+SQL Server的网上选课系统设计与实现(源码+文档)_C#_asp.net_网上选课系统.zip
  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
系统分析 在本系统中,有三类用户:系统管理员,教师和学生。三种不同的用户所具有的操作权限以及操作内容均不一样。 本选课系统给予教师很大的自主权,系统管理员只负责向系统中添加学生和教师的个人信息以及教学楼教室信息。系统管理员不参与开设课程、选择课程等,一切均由教师、学生等录网站自行完成。系统管理员设置一个选课时间段,在到达时间段以前,教师可以开设课程;到达时间段以后,学生可以登陆网站选择课程。 教师用户登陆网站后可以开设课程,为自己的课程编辑上课时间和地点,当系统中出现时间地点冲突的时候,系统向教师用户报告并推荐一个时间地点。每门课程可以是必修或则选修,教师为每门课程设置一个学分,并可以在课程结束后给予分数,如果学生及格,学生将获得该课程的学分。 对于学生用户,每个学生除了必须选择必修课程外,至少还要选择两门选修课程,学生可以对自己选课信息锁定,以免不小心被修改。当时候超过选课时段后,系统自动锁定学生的选课课程。系统可以根据学生的选课信息,生成一份学生自己的课表。课程结束后学生可登录网站查询成绩与学分。 根据上面的要求,从操作功能上可以分为两个类:一个是通用操作,主要实现用户的登录注销和修改密码等;另一种是为不同用户定制不同操作。 1。通用操作 (1)登录与注销 每个用户都可以用自己的帐号登录系统。用户操作完成后推出系统,注销后可以重新登录系统。 (2)修改密码 每个用户第一次登录都用默认密码(教师和学生与帐号一样)。 2。用户所具有功能 (1)系统管理员 设置选课时间段:系统管理员通过此项功能设置选课时段,只有在选课时间段里,学生才可以选择课程,超过次时间段,学生选课信息被自动所定,不得修改。 录入学生与教师个人信息:通过此项功能可以实现对教师和学生的个人信息添加删除。 录入教学楼教室信息:通过此项功能可以把学校里所有的教学楼教室的信息录入到系统中,以便教师在开设课程时候设置上课的教室。 (2)教师用户 显示和修改个人信息:教师用户登录系统后,可以查看和修改教师的个人信息,如姓名,电话,E-mail地址等。 开设课程:教师用户登录系统后,可以开设课程,可以设置该课程为必修课程或则选修课程,可以设置该课程的最大人数。教师还可以为该课程设置一个前导课程,若学生没有学习或则选择前导课程则不能选择该课程。 编辑课程上课时间:教师在开设了课程后,可以灵活地设置上课时间和地点。 给学生分数:课程结束后,教师用户登录系统,可以为学过课程的学生给予相应的成绩,若 及格,给予学生学分。 (3)学生用户 显示和修改个人信息:学生登录系统后,可以查看和修改学生的个人信息,如姓名,性别,电话等。 查看必修课程:学生登录后,可以查看所有的必修课程。查看该课程的信息,上课时间地点,开课教师信息等。 选择选修课程:学生登录系统后,在所有选修课程中可以选择至少两门选修课程。同时可以查看相关信息。 锁定选课信息:学生登录系统,确定了所选课程后,可以锁定自己的选课信息,以防被别人或则自己不小心修改。 查看最终选课信息:学生登录系统后,可列出已选择的课程,若选课信息未被锁定,则可以退选,若所选课程少于两门,系统会提示选择的课程少于两门。 查看学分和成绩 课程结束后,学生登录系统可查看自己学习课程的成绩和已获的学分。 首页login.aspx DB_51aspx下为Sql数据库,附加即可 学生、教师和管理员的默认帐号分别为:011、006、admin,密码均为51aspx 论文文档文件夹下为毕业论坛、开题报告、系统分析及演示PPT等

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值