学生选课系统.docx
《学生选课系统.docx》由会员分享,可在线阅读,更多相关《学生选课系统.docx(23页珍藏版)》请在冰豆网上搜索。
学生选课系统
简单学生选课帮助系统
院系
计算机学院
专业
计算机科学与技术
班级
学号
姓名
指导教师
负责教师
沈阳航空航天大学
2013年1月
摘要
如今高校的课程建设正在向着多样化,人性化发展,为了使课程以人为本,为了最大程度的调动学生的积极性,使学生可以学到自己最渴望的知识,选课成了最关键的步骤。
本论文先研究了选课系统的开发背景,分析了选课系统的可行性,介绍了系统设计所用到的相关技术。
通过使用C#,SQLSERVER数据库等技术,实现了学生选课,录入课程信息,录入学生信息等功能;后台管理方面实现了管理员对学生信息和课程信息的录入功能,为学生选课做准备。
关键词:
学生选课,录入课程信息,录入学生信息。
目录
1绪论1
1.1题目背景1
1.2题目意义1
1.3题目内容1
1.4相关技术及系统开发工具2
1.4.1C/S结构2
1.4.2C#3
1.4.3MicrosoftSQLServer20053
1.4.4MicrosoftVisualStudio20054
2需求分析及可行性分析5
2.1需求分析5
2.1.1功能需求5
2.1.2开发环境需求6
2.2可行性分析6
2.2.1技术可行性分析6
2.2.2系统设计目标7
2.2.3经济可行性分析7
3概要设计8
3.1总体设计方案8
3.2功能模块图及分析8
3.3E-R图及其分析10
4详细设计12
4.1数据库设计12
4.1.1学生信息表的设计12
4.1.2课程信息表的设计12
4.1.3学生选课表的设计13
4.2功能模块详细设计13
4.2.1录入学生信息模块的具体功能13
4.2.2录入课程信息模块的具体功能14
4.2.3学生选课模块的具体功能15
5系统的测试17
5.1.1测试方法17
5.1.2测试过程17
5.1.3测试结果20
参考文献21
致谢22
1绪论
1.1题目背景
如今高校课程建设越来越丰富,越来越人性化。
不仅在学生的专业课程上,可供学生进行选择,还设置了很多其他的课程可以根据学生自己的兴趣爱好,对自己人生的规划,工作学习需要等进行自由选择。
选课工作是教学管理工作的重要环节,工作量大、时间要求紧、对本科教学质量影响大、灵活性强。
特别是近年来,高校扩招进一步深入,每年入学人数不断增加,另外高校扩建带来的新的专业、新课程等,使得学生选课的管理工作难度越来越大。
随着教学改革的不断深入,如何有效的增强管理水平,充分调动学生的学习积极性,做好学生选课工作是高校教学管理工作的重点之一。
针对学生选课管理中,新课程的加入与新的学生信息的录入的手工操作方式,采用C#语言平台的VisualStudio构建一个基于C/S模式结构的客户端应用程序,数据库采用SQLSERVER2005作为后台服务。
实现课程信息录入,学生信息录入,学生选课等功能,从而提高学生选课等工作的可操作性,提学生选课的整体质量。
1.2题目意义
本学生选课系统不仅仅节省了人力资源,还减少物质资源使用。
传统的纸张记录,保存繁琐,查找困难,不能重复利用,有很大的局限性。
本系统有效的解决了此类问题,只需开发一次,可以重复使用。
硬件条件日趋成熟,可以存储大量的学生信息和课程信息,可重复利用,长久保存,查找方便,使用C#制作的用户界面,使本系统的使用十分的简单。
1.3题目内容
随着计算机技术的发展及计算机的日益普及,使用基于C/S结构的学生选课系统已经成为高校的首选。
基于C/S结构的学生选课系统越来越成为学校的好帮手,它的优势不但体现在人力上也体现在物力上,基于C/S结构的选课系统将有效地避免资源的浪费,减少人员,提高效率。
基于此背景开发的学生选课系统功能如下:
1、录入基本信息,包括课程名称,课时,学分,教师,预选人数,实选人数,教师的职称,学生可查询教师的基本信息;
2、要求学生所列的课程清单中选择7门课,要求上课时间教室没有冲突,并且教师预选人数必修大于实选人数;
3、能在屏幕上输出学生的选课结果,包括课程名,学分,教师,总的学分;
4、人机交互界面采用可视化界面;
5、按要求写成课程设计报告。
1.4相关技术及系统开发工具
本系统开发过程采C#开发工具进行前台开发,使用SQLSERVER2005数据库系统作为后台支持。
1.4.1C/S结构
在该系统中应用了MVC模式C/S结构,即大家熟知的客户机和服务器结构。
它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。
这也就是目前应用系统的发展方向。
C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。
对应的优点就是客户端响应速度快。
缺点主要有以下几个:
而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。
这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。
客户端需要安装专用的客户端软件。
首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。
特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。
还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。
对客户端的操作系统一般也会有限制。
可能适应于Win98,但不能用于win2000或WindowsXP。
或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。
1.4.2C#
C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。
并定于在微软职业开发者论坛(PDC)上登台亮相。
C#是微软公司研究员AndersHejlsberg的最新成果。
C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。
但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角。
C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。
它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。
C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
C#是面向对象的编程语言。
它使得程序员可以快速地编写各种基于MICROSOFT.NET平台的应用程序,MICROSOFT.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
C#使得C++程序员可以高效的开发程序,且因可调用由C/C++编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。
因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
1.4.3MicrosoftSQLServer2005
SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。
MicrosoftSQLServer2005数据引擎是该企业数据管理解决方案的核心。
此外MicrosoftSQLServer2005结合了分析、报表、集成和通知功能。
这使您的企业可以构建和部署经济有效的BI解决方案,帮助您的团队通过记分卡、Dashboard、Webservices和移动设备将数据应用推向业务的各个领域。
与MicrosoftVisualStudio、MicrosoftOfficeSystem以及新的开发工具包(包括BusinessIntelligenceDevelopmentStudio)的紧密集成使MicrosoftSQLServer2005与众不同。
无论您是开发人员、数据库管理员、信息工作者还是决策者,MicrosoftSQLServer2005都可以为您提供创新的解决方案,帮助您从数据中更多地获益。
1.4.4MicrosoftVisualStudio2005
VisualStudio是微软公司推出的开发环境,VisualStudio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。
您可以使用灵活敏捷的规划工具(如容量规划、任务板和积压工作管理)来按照您自己的进度实现增量开发技术和敏捷方法。
使用高级建模、发现和体系结构工具可描述您的系统并帮助确保实现您的体系结构构想。
VisualStudio2012是一个综合性产品系列,适用于每一位希望升级或创建精彩应用程序的组织、团体和个人开发人员。
VS2012通过整合先前单个产品中的功能并为每个版本加入新的强大功能,简化了产品系列,并且,它更加适合用于开发Windows8专用程序。
2需求分析及可行性分析
软件需求分析也称为需求分析工程,是软件生命期中重要的一步,也是决定性的一步。
在可行性分析阶段,对开发新系统的基本思想和过程进行了初步分析和论证,对系统的基本功能、性能及开发时间的限制、人员安排、投资情况做出了客观的分析。
2.1需求分析
根据软件工程学开发软件的要求,分析时采用结构化的分析方法,自顶向下、逐层分解问题并对问题进行逐步求精。
下面就此管理系统进行需求分析,以确定该软件的规模、应具有的功能、提出的各项要求及所需要的硬件环境和软件支持,根据所需处理的数据情况确定软件对操作的要求,以及待开发软件总体上的约束和限制。
2.1.1功能需求
管理员对学生信息的录入功能;
这是学生选课所需的必须的信息,凭借系统管理员为学生分配的学生信息进行选课。
为每一个学生分配唯一的学号,在进行选课的时候进行区分学生。
同时保存了学生的基本信息。
管理员对课程信息的录入功能;
通过此模块,管理员能向课程信息表添加新的课程信息,供学生选课时使用;同时学生可通过课程信息表查看每个课程信息按照自己的需要进行选择。
学生选课功能;
要求学生所列的课程清单中选择7门课,要求上课时间教室没有冲突,并且教师预选人数必修大于实选人数。
计算出学生已选课程的总学分,查看已选的课程信息。
2.1.2开发环境需求
本次系统开发环境采用VisualStudio2005,而数据库方面则选用了SQLSERVER2005,其都是微软的软件。
C#使得C++程序员可以高效的开发程序,且因可调用由C/C++编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。
同时在制作人机交互界面方面C#功能强大,完全能满足本系统的设计需要。
SQLSERVER2005是一个全面的数据库平台,使用集成的商业智能(BI) 工具提供了企业级的数据管理。
MicrosoftSQLServer2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
为了增加页面的美观和操作的方便性,用户和管理员的操作界面均采用了简单的人际交互界面,即使没有计算机方面知识的用户也能十分方便的使用系统的所有功能。
2.2可行性分析
为了使系统的开发能够顺利进行,现就技术可行性、经济可行性几个方面对其进行分析,做好开发的前期准备工作。
2.2.1技术可行性分析
鉴于本系统是学生选课系统,与我们的学习生活非常贴近,所以开发难度适中。
通过对各种开发工具和数据库之间进行比较及指导老师的建议,最终确定工具采用SQLSERVER2005和MicrosoftVisualStudio2005,使用C#语言进行开发。
本系统操作简单、易懂,不需要具有非常高的计算机专业知识,面向人群广泛。
管理员和用户只要使用鼠标键盘进行简单的操作,就可对本轻松使用本系统。
本系统的开发环境是使用现在非常流行的开发工具MicrosoftVisualStudio2005和SQLSERVER2005数据库。
使用的灵活、以及他们当前的广泛应用,充分说明本系统在技术方面可行。
C#使得C++程序员可以高效的开发程序,且因可调用由C/C++编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。
2.2.2系统设计目标
(1)功能选择界面的功能如下:
●功能选择页面
●各种功能的操作界面
(2)录入学生信息界面主要实现功能要求
●录入学生的学号,姓名
●将用户输入的信息保存到数据库中的学生信息表
●查询数据库中已经录入的学生信息
(3)学生选课界面主要功能要求
●显示所有课程信息,供学生选课时进行参考
●将根据输入的学生的学号,可课程编号进行选课,同时保证每个学生所选课程的上课时间不能冲突
●根据输入的学生学号计算学生已选课程的总学分
●查看选课信息
2.2.3经济可行性分析
在线考试系统只需一台存储容量较大的普通计算机就可以实现其所有的功能。
目前的计算机硬件市场竞争比较激烈,在价格上都出现了从没有过低廉;而所需要的各种软件,在相关产品的官方网站上都可以下载,而且还不断的有增加了最新功能的升级版的出现。
因此,整个开发成本可以说是比较低的,这也为我进一步完善本系统供了更大的方便。
在使用成本上,用户只需要拥有一台能够普通的个人计算机,通过实现本系统的所以功能。
而且对计算机的硬件的需求也不是很高,软件方面也没有特殊的需求,极大了方便了广大用户的访问与使用。
再者,本系统的信息保存在数据库中,易于保存,可以重用,占用资源少。
因此,从经济可行性分析来看,这系统体现了经济实惠,并且功能强大的特点。
3概要设计
概要设计的工作是为系统建立基本框架,创建系统的功能模块图和用来反映数据关系的E-R图表示。
3.1总体设计方案
本系统采用C/S模式结构,用户使用功能选择界面进入三个主要能,进入相应功能界面后可十分简单的完成各种任务。
结构概要图如图3.1所示:
图3.1C/S结构概要图
整个系统分成三个主要模块:
录入学生信息模块,录入课程信息模块,学生选课模块。
录入课程信息模块中包括录入学生信息,查询学生信息等子模块;录入课程信息模块中包括录入课程信息模块,查询课程信息等子模块;学生选课模块包括学生选课,查询选课结果,计算总学分等子模块。
3.2功能模块图及分析
本系统按照角色不同,分成了三个主要的功能模块:
录入学生信息模块,录入课程信息模块,学生选课模块。
他们有着不同的权限和不同的功能。
系统的主功能模块图如图3.2所示:
图3.1系统主功能模块图
录入学生信息模块中包括录入学生信息,查看学生信息等子模块。
各个模块划分的子模块如图3.3所示:
图3.2录入学生信息模块
录入课程信息模块中包括录入课程信息,查看课程信息等子模块。
各个模块划分的子模块如图3.4所示:
图3.3录入课程信息模块
学生选课模块中包括学生选课,查询选课信息,查询总学分等子模块。
各个模块划分的子模块如图3.5所示:
图3.4学生选课模块
3.3E-R图及其分析
建立系统数据模型的主要工具是实体-关联图,即E-R图。
本系统中各实体关系的E-R图如图3.6所示:
图3.1考试系统模型中实体关系的E-R图
上图体现了数据库中各表中,过属性之间的关系。
在选课表中,学生的学号和课程编号作为联合主码。
各实体及其属性如表3.1所示:
表3.2各实体及其属性表
实体名称
属性
学生信息表
学号,学生姓名
课程信息表
课程编号,课程名称,课时,学分,预选人数,实选人数,教师姓名,教师职称,上课时间,上课地点
学生选课信息表
学号,课程编号
4详细设计
详细设计是软件设计的关键部分。
这部分主要包括数据库设计和功能模块的详细设计。
通过详细设计步骤,创建系统所需要的数据和功能。
4.1数据库设计
数据库设计是系统的后台设计部分,为前台系统提供数据信息以供用户使用。
数据库设计的主要目的是将系统各功能模块的基本信息和权限关系集合保存到数据库的表中。
4.1.1学生信息表的设计
学生信息表的设计如表4.1所示。
其中学号是主键,是判定用户的唯一标识。
用户名为50个字符,如果长度不正确或数据库中已有该用户,则系统会返回录入学生信息失败的提示。
用户信息表的设计如表4.1所示。
表4.1学生信息表的设计
列名
数据类型
长度
不允许空
说明
学号
VARCHAR(50)
√
主键
学生姓名
VARCHAR(50)
√
4.1.2课程信息表的设计
课程信息表的设计如表4.2所示。
课程编号是课程的唯一标识,课程信息包括:
课程编号,课程名称,课时,学分,预选人数,实选人数,教师姓名,教师职称,上课时间,上课地点。
课程信息表的设计如表4.2所示:
表4.1课程信息表的设计
列名
数据类型
长度
不允许空
说明
课程编号
VARCHAR(50)
50
√
主键
课程名称
VARCHAR(50)
50
√
课时
INT
√
学分
INT
√
预选人数
INT
√
实选人数
INT
√
教师姓名
VARCHAR(50)
50
√
教师职称
VARCHAR(50)
50
√
上课时间
CHAR(10)
10
上课地点
CHAR(10)
10
4.1.3学生选课表的设计
课程信息表中学生的学号和课程的课程编号作为联合主码,区分每一条选课信息,学生选课标的设计如表4.3所示:
表4.1试卷表的设计
列名
数据类型
长度
不允许空
说明
学号
VARCHAR(50)
50
√
与课程编号做主码
课程编号
VARCHAR(50)
50
√
与学号做主码
4.2功能模块详细设计
系统大致可以分为三大主要模块,即录入学生信息模块,录入课程信息模块和学生选课模块。
这三个模块中分别有若干功能子模块,在以下内容中会用流程图配合进行详细介绍。
4.2.1录入学生信息模块的具体功能
该模块中对学生信息进行录入,以及查询已经录入的学生信息。
录入学生信息时,为每一位学生输入唯一的学号,防止了主键重复冲突。
为了避免试题冗余和空间浪费,系统会判断录入的学生信息是否重复,如果重复,给出提示,不允许插入学生信息。
点击查询学生信息按钮时,系统会自动弹出已经录入的学生信息,以表格的形式显示出来,简单明了,一目了然。
添加试题的流程图如图4.1所示:
图4.1录入学生信息模块流程图
4.2.2录入课程信息模块的具体功能
这一模块的主要功能是录入课程的基本信息,同时也能够查询已经录入的课程信息。
录入课程信息时,需要输入课程编号作为每一条课程信息的主码与其他课程进行区分,即使是同样的科目,也会因上课时间,上课地点,以及上课教师的不同而成为不同的课程信息。
同时上课时间能保证学生在选课时,不会选择到两个上课时间冲突的课程。
点击查看所有课程信息按钮时,会以表格形式显示当前已经录入的所有课程信息。
录入课程信息模块的具体功能如图4.2所示:
图4.1录入课程信息模块流程图
4.2.3学生选课模块的具体功能
该模块中学生可以进行选课操作,以及查询已经选课的信息和计算已选课程的总学分。
学生进行选课时,查询学生选课表,查看学生是否已经选课,如果学生没有选课,则录入这条选课信息。
如果学生已经选课,查看学生已选课程的上课时间是否与要选课程的上课时间冲突,如果没有冲突则添加这条选课信息;如果学生已选课程的上课时间与要选课程的上课时间冲突,则提示课程上课时间冲突,不将这条选课信息录入数据库中。
学生选课流程图如图4.3所示:
图4.1学生选课流程图
本系统实现了简单的学生选课系统的设计与实现,录入简单的学生信息,以学号作为唯一表示区分每一名学生;录入课程的基本信息,以课程编号区分每一门课程;学生选课系统使学生查看所有的课程信息,自行选课,如果有课程时间冲突,则无法选择。
同时还实现了查看学生信息,查看课程信息,查看选课信息等功能。
5系统的测试
系统测试是系统编码完成之后所进行的最后步骤,通过测试可以检测出系统功能是否完善,系统的运行是否稳定,运行过程中是否出现异常状况。
测试工作没有做好将会给系统的后期的维护带来不便。
5.1.1测试方法
本课题涉及到的检测主要以数据库校验和界面校验为主。
首先对系统进行人工查测,再以“白盒法”为主。
主要方法是给定数据,执行系统程序,查看运行结果是否为预想结果。
如果是,则再用多组有代表性的数据继续测试,都正确无误时,程序基本正确;若不是预想结果,则用开发工具仔细调试,找出逻辑有误之处,加以修改,直到运行无误为止。
5.1.2测试过程
1.测试功能选择界面的功能
当用户按自己的需要选择功能时,当用户点击相应功能的按钮,弹出相应的功能界面。
点击窗口的关闭按钮,将退出本选课系统。
从其他功能界面返回时,显示此界面,再次供用户选择功能。
结束工作后点击窗口关闭按钮退出。
功能选择界面如图5.1所示:
图5.1功能选择界面
2.测试录入学生信息的功能
首先在学号和学生姓名后面的输入框里输入学生的学号与姓名,点击录入按钮,录入学生信息。
如果录入信息无误,且数据库中无重复的数据则提示录入成功,否则提示录入失败。
点击查看所有学生信息按钮,则以表格形式显示出所有学生的信息。
录入学生信息界面如图5.2所示:
图5.2录入学生信息界面
3.测试录入课程信息的功能
分别在课程编号,课程名称,课时,学分,预选人数,实选人数,教师姓名,教师职称,上课时间和上课地点后面的输入框中输入相应的信息,点击录入按钮。
如果输入信息无误,且数据库中没有此条课程信息,则将次信息写入数据库,返回录入成功的提示;否则返回录入失败的提示。
点击查看所有课程信息按钮后,以表格形式显示出所有的课程信息。
录入课程信息界面如图5.3所示:
图5.3录入课程信息界面
4.测试学生选课的功能
用户输入要选则课程的课程编号以及选课学生的学号,点击录入按钮。
如果输入信息无误,且数据库中没有此条课程信息,则检查学生已选课程的上课时间是否与要选课程的上课时间冲突,如果不冲突则将次信息写入数据库,返回选课成