《软件开发与项目管理-学生考评系统(共17页).doc》由会员分享,可在线阅读,更多相关《软件开发与项目管理-学生考评系统(共17页).doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上软件开发与项目管理课程案例学生考评系统一、项目简介(一)项目背景二 十一世纪以来,在国家新的科教兴国战略指引下,我国高等教育进入大众化的新时期,国内高校走上了跨越式发展的新道路。然而持续的高校扩招凸显了有限的教育资源的瓶颈,于是提出了对人才培养规模与质量协调发展的新要求。尽管近年来政府加大了对高等教育的投入,基础设施建设得到长足的发展,一定程度上缓解了制约高校发展的“硬环境”问题。然而,传统落后的教育管理模式仍然在很大程度上制约着教育大众化和现代化的发展,成为更深层次的“软环境”的问题。因此,不少高校开始适应信息化、网络化的时代特点,通过管理信息化建设,使有限的教育资
2、源得到有效挖掘和利用,从而促进高等教育的可持续发展。开发本项目,旨在探索解决高校学生工作在大众化教育背景下的“软环境”问题,使有限的思想教育和管理人员通过现代化的校园网络平台,实现真正意义上的学生工作信息化,推进教育管理现代化,提高工作效率。(二)项目功能当前,国内基于校园网的高校信息化管理系统建设尚处于发展阶段。由于缺乏必要的统一领导、系统规划和部门与教师之间的协调,再加上缺乏科学的软件工程理论的指导,往往造成信息管理系统的重复建设和资源的隔阂,造成不必要的资源浪费。很多部门下级工作人员往往充当了资料录入员和单向汇报者的角色,造成某种程度的人力和信息浪费,给本已高强度运作的一线学生教育管理部
3、门增加工作压力。很多传统的高校学生考评系统没有得到有效建设或依旧停留在单机操作或C/S架构。而教师和部门对学生的作业管理、考勤及考评等日常需要频繁进行的活动也没有一个完善的系统予以支持,使得最终的奖学金、助学金的评定也没有一个全面、科学和量化的标准提供参考,使本已庞杂的学生工作变得更加繁重和难以有效控制。高校“学生考评系统”旨在加强教师和学生、教师和部门以及学生与学生之间的互动,增强系统的参与性、易用性和自动性,使学生工作变得富有效率和科学性,节省人力成本和时间成本。系统形成的一组全面、有效、具有较强参考价值和复用价值的数据,为学生工作的决策提供了有效的技术支持和信息服务。二、相关技术(一).
4、NET Framework.NET Framework 是支持生成和运行下一代应用程序和 XML Web Services 的内部 Windows 组件。.NET Framework 具有两个主要组件:公共语言运行库和 .NET Framework 类库。公共语言运行库是 .NET Framework 的基础。您可以将运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.N
5、ET Framework 的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序,也包括基于 ASP.NET 所提供的最新创新的应用程序(如 Web 窗体和 XML Web Services)。下图1显示了公共语言运行库和类库与应用程序之间以及与整个系统之间的关系,还显示托管代码如何在更大的结构内运行。图1 .NET Framework 环境(二)LINQ与LINQ to SQL语言集成查询 (LINQ) 是 Visual Studio 2008 中引入的一组功能,可为 C# 和 Visu
6、al Basic 语言语法提供强大的查询功能。 LINQ 引入了标准、易学的数据查询和更新模式,该技术可以扩展为几乎支持任何类型的数据存储。Visual Studio 包含 LINQ 提供程序的程序集,借助这些程序集,就能将 LINQ 用于 .NET Framework 集合、SQL Server 数据库、ADO.NET 数据集和 XML 文档。 LINQ to SQL 是 .NET Framework 3.5 版的一个组件,提供了用于将关系数据作为对象管理的运行时基础结构。在 LINQ to SQL 中,关系数据库的数据模型映射到用开发人员所用的编程语言表示的对象模型。 当应用程序运行时,L
7、INQ to SQL 会将对象模型中的语言集成查询转换为 SQL,然后将它们发送到数据库进行执行。当数据库返回结果时,LINQ to SQL 会将它们转换回您可以用您自己的编程语言处理的对象。 (三) Visual Studio 2008简介Visual Studio 是一套完整的开发工具集,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成开发环境 (IDE),利用此 IDE 可以共享工具且有助于创建混合语言解决方案。另外,这些语
8、言利用了 .NET Framework 的功能,通过此框架可使用简化 ASP Web 应用程序和 XML Web Services 开发的关键技术。Visual Studio 2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时Visual Studio 2008支持项目模板、调试器和部署程序。Visual Studio 2008可以高效开发Web应用,集成了AJAX 1.0,包含AJAX项目模板,它还可以高效开发Of
9、fice应用和Mobile应用。三、需求分析(一)不同角色对功能的规定学生考评系统的权限应根据用户的角色严格区分,功能应和权限相统一,界面应和角色相统一,努力避免权限的漏洞。否则重要数据会存在被非法查看、窃取、篡改甚至丢失的风险。下图2说明了系统三大角色的功能图:图2 考评系统角色功能图 从上图可以看出,只有共享功能对三角色均公开,而系统中三大角色的各自的功能是相互屏蔽的。这里的共享功能仅包括校园通知查看、个人信息管理、密码修改等。(二) 教务人员功能需求教务人员在整个系统中扮演着主体角色,系统前期的数据录入、中期的数据管理以及后期的数据提取,都需要教务人员的全力配合,所以系统赋予教务考评人员
10、最丰富、最高级的功能。可以说只有教务考评管理员的正确操作和合法管理才能使整个考评系统正确稳定地运作。然而,从另一方面讲,也正因为教务考评管理员的高层次权限,使考评系统的运作存在风险。因为考评管理员无意或有意的操作非法,可能导致系统中数据的错误,甚至造成无法挽回的数据丢失乃至系统崩溃。这样,有效地监督教务人员的操作显得分外重要。系统中应对教务管理过程教务考评管理员的数据管理操作形成详细的只读的系统日志存放于数据库(如图3),在系统出现问题时,方便追踪问题及责任人。另外,数据库管理员应定期备份数据库,防止出现意外情况。图3教务人员用例图 上图中,其中人员数据管理(包括学生数据管理、教务人员数据管理
11、、教师数据管理)、科目数据管理、班级数据管理、课程数据管理、学院数据管理、系部数据管理和校园通知管理均属于数据管理功能域,包括增加、查看、更新和删除;开课管理是为班级进行选课处理;学院投票功能是可选的,针对各学校对学生的具体考评标准,如最终的奖学金或助学金评定时,学校对条件不分伯仲的学生进行投票,最终通过投票来决定奖学金或助学金的确认人选;学生总评是教务考评人员的核心功能模块,在这个功能模块中,可根据学生平时表现和考试表现最终生成学生的最终考评分,形成学校决策的科学依据。图4 数据管理系统日志生成图(三) 教师功能需求教师模块是互动性最强的模块,也是用户频繁操作的模块,如其中的作业管理、在线点
12、名是教师最常用的功能。图5 教师功能用例图(四) 学生功能需求学生登陆后的功能包括查看作业题目、提交作业、查看个人评测结果、投票等;当学生是班长时,还将具有维护班级数据(为了减轻教务人员的工作量,权限可控制)、发起班级投票的功能。图6学生功能用例图四、系统设计(一)数据库表设计下表中的评分与计数字段是根据对教务部门的调研而设计,学生表的计分设计应和具体学院的实际情况相一致。表1 学生表Student字段名称数据类型大小主键可空说明StuNumbernvarchar50是否用户名/学号Passwordnvarchar255否否密码Namenvarchar255否否姓名Gendernvarchar
13、50否否性别BirthdayDateN/A否是出生日期ClassNamenvarchar64否否班级名称Emailnvarchar255否是邮箱Telephonenvarchar50否是电话StudentUnionCadrefloatN/A否是因在学生会得分ClassMonitorfloatN/A否是因当班长得分LeagueBranchSecretaryfloatN/A否是因当团支书得分YouthVolunteerfloatN/A否是因青年志愿者得分 CriticizefloatN/A否是因受批评扣分CETfloatN/A否是因四级六级得分ComputerLevelfloatN/A否是因计算机
14、等级得分SkillContestfloatN/A否是因技能竞赛得分ArticlesfloatN/A否是因发表文章得分AcademicThesisfloatN/A否是因学术论文得分ResearchProjectfloatN/A否是因科研项目得分ClassAbsentfloatN/A否是因旷课扣分LatefloatN/A否是因迟到扣分EarlyLeavefloatN/A否是因早退扣分NoWorkSubmitfloatN/A否是因未交作业扣分TeachPracticefloatN/A否是因不参加教学实践扣分CheatExamfloatN/A否是因作弊扣分ParticipateShowfloatN/A
15、否是因参加演出得分SchoolShowContestfloatN/A否是因文艺演出竞赛得分AcademyShowContestfloatN/A否是因学院演出竞赛得分SportTeamfloatN/A否是因参加运动队得分CutualTrainfloatN/A否是因文工团训练得分OtherScorefloatN/A否是其他得分OtherScoreReasonnvarcharMax否是其他得分的原因StudyFinalScorefloatN/A否是学习最终得分GeneralScorefloatN/A否是考评最终得分Historynvarchar Max否是只读数据管理日志表2 教师表Teacher字
16、段名称数据类型大小主键可空说明TeacherNumbernvarchar64是否用户名/教工编号Passwordnvarchar255否否密码Namenvarchar255否否姓名Gendernvarchar50否否性别FromAcademynvarchar255否否所属学院Emailnvarchar255否是邮箱Telephonenvarchar50否是电话表3 教务考评管理员表Admin字段名称数据类型大小主键可空说明LoginNamenvarchar255是否管理员用户名Passwordnvarchar255否否密码DisplayNamenvarchar50否否显示姓名表4权限表Auth
17、ority字段名称数据类型大小主键可空说明AuthorityIdintN/A是否权限IDNamenvarchar255否否权限名称EnabledbitN/A否否权限是否允许表5校园通知表Bulletin字段名称数据类型大小主键可空说明BulletinIdintN/A是否通知编号Titlenvarchar255否否通知标题MainBodynvarcharMAX否否通知内容Authornvarchar255否否发布人DateTimedatetim27否否发布时间EndDatedateN/A否否有效截止日期表6班级表Class字段名称数据类型大小主键可空说明ClassNamenvarchar64是否
18、班级名称DepartmentNamenvarchar255否否 所属系部HeadTeachernvarchar64否是班主任ClassMonitorNumnvarchar50否否班长学号表7课程表Course字段名称数据类型大小主键可空说明CourseIdintN/A是否课程编号CourseNamenvarchar50否否 课程名称TeacherNumbernvarchar64否否开课教师编号AcademicYearnvarchar50否否学年AcademicTermnvarchar50否否学期CreditfloatN/A否否学分Typenvarchar255否否课程类型表8 班级选课表(班级
19、表和课程表的关系表)ClassCourseShip字段名称数据类型大小主键可空说明ClassNamenvarchar64是否班级名称CourseIdintN/A是否课程编号RollCallCountintN/A否是点名次数PubWorkCountintN/A否是发布作业次数ToalLessons intN/A否否课时总数表9 系部表Department字段名称数据类型大小主键可空说明DepartmentNamenvarchar255是否系部名称DepartmentHeadnvarchar255否是系主任RemarknvarcharMAX否是备注AcademyNamenvarchar255否否所
20、属学院表10 消息表Message字段名称数据类型大小主键可空说明IdintN/A是否消息编号BodynvarcharMAX否否消息内容DateTimedatetimeN/A否否发送时间FromPersonnvarchar64否否发送人ToClassnvarchar64否否目标发送班级表11 计票表PollCount字段名称数据类型大小主键可空说明CandidateNumbernvarchar255是否候选人名称PubPollIdintN/A是否投票编号CandidateNamenvarchar255否否候选人姓名PollCountintN/A否是票数IntroductionnvarcharM
21、AX否否介绍表12 发布作业表PubWork字段名称数据类型大小主键可空说明PubWorkIdintN/A是否发布作业编号Titlenvarchar255是否作业名称MainBodynvarcharMAX否是作业内容AttachmentPathnvarchar300否是附件路径DateTimedatetimeN/A否否作业发布时间TeacherNumbernvarchar64否否 发布教师编号CourseIdintN/A否否 课程编号DeadlinedatetimeN/A否否 提交截止日期表13 读消息表 ReadMessage字段名称数据类型大小主键可空说明IdintN/A是否自增IdStu
22、Numbernvarchar50否否学生编号MessageIdintN/A否否消息编号ReadDatetimedatetimeN/A否否阅读时间下面的学生班级关系表的设计主要是为了当存在选修课时,学生可以会属于一个临时班级。表14 学生班级关系表 StudentClassShip字段名称数据类型大小主键可空说明IdintN/A是否自增IdStuNumbernvarchar50否否学生编号ClassNamenvarchar64否否班级名称下表课程计分和计数字段是针对某学生的某个课程而言的,它主要用于教师的自主评分。而学生表的评分及计数是统计各个课程后的最终记录。表15 学生课程关系表 Stude
23、ntCourseShip字段名称数据类型大小主键可空说明StuNumbernvarchar50是否学生编号CourseIdintN/A是否课程编号LateCountintN/A否是迟到次数AbsentCountintN/A否是旷课次数SubmitWorkCountintN/A否是提交作业次数EarlyLeaveCountintN/A否是早退次数NormalTimeScorefloatN/A否是该课程平时分StudyScorefloatN/A否是该课程学习得分FinalScorefloatN/A否是该课程最终得分OtherGetfloatN/A否是该课程其他得分下面的科目表的设计主要是为了对应课
24、程表Course的CourseName字段,因为实际情况中科目名称往往作为课程名称。这样做有利于统一格式,并可以增强系统使用的友好性。如在输入课程名称时,用户只需要在下拉列表中选择即可,而这个下拉列表中的课程名称是从数据库动态生成的。这种做法在本系统中多次使用。表16 科目表 StudentClassShip字段名称数据类型大小主键可空说明IdintN/A是否自增IdStuNumbernvarchar50否否学生编号MessageIdintN/A否否消息编号ReadDatetimedatetimeN/A否否阅读时间表17投票表 SubmitPoll字段名称数据类型大小主键可空说明StuNumn
25、varchar50是否学生编号PubPollIdintN/A 是否投票项目编号CandidateNumbernvarchar255否否候选人编号表18作业提交表 SubmitWork字段名称数据类型大小主键可空说明StuNumnvarchar50是否学生编号PubWorkIdintN/A 是否投票项目编号Titlenvarchar255 否否提交作业名称MainBodynvarcharMAX 否是作业内容AttachmentPathnvarchar255否是附件路径DateTimedatetimeN/A否否提交时间ScorefloatN/A否否得分isFinishbitN/A否是标记为已完成(
26、二) 数据库关系设计图7数据库关系图1图8 数据库关系图2(二)界面结构设计方案1.总体页面结构分析本系统角色的权限分明,功能不一。出于同一系统,界面应风格一致。本系统采用.Net中的Web.sitemap站点地图结合Menu控件对主导航菜单进行统一组织,并在Web.config中system.web结点下启用角色管理功能:以后在站点地图XML文件中对各结点添加相应的角色验证,如:本系统的登陆验证采用.Net下的Forms验证,而弃用Session验证。这样在各角色登陆系统时主导航菜单自动显示为该角色量身定制的选单。整个系统的界面风格也可以轻而易举地统一协调。 系统的三大角色统一使用一个登陆页
27、面,登陆管理活动视图如下:图9 登陆管理活动视图2 教务端子系统及页面结构设计图10 教务端子系统页面结构上图的主导航选菜单是采用CSSFriendlyAdapters.browser重写Menu控件后从以Web.sitemap站点地图作为数据源而得到的效果。以下教师端和学生端的界面类似。3教师端子系统及页面结构设计图11 教师端子系统页面结构4 学生端子系统及页面结构设计图12 学生端子系统页面结构五、系统实现(1) 主要类及其关联关系本系统采用LINQ技术,它可以让我们以一致的方式对结果进行组织,LINQ to SQL实体类之间的关联类似于数据库中表之间的关系。图13 LINQ to SQ
28、L实体类及其关联关系图(二) 核心功能实现1.点名功能实现系统为教师提供了点名功能,包括高概率点名、随机点名和顺序点名。后台只负责一次性取数据,前台Jquery控制点名,减少了网络负载。以随机点名为例,本系统弃用.Net自带的Random函数,因为随机函数在LINQ调用数据时只会调用一次随机,可能和LINQ的延迟执行有关。最终本系统巧妙地为LINQ设计器添加了生成不同GUID的函数实现了随机功能,核心代码如下:private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSou
29、rce(); Function(Name = NEWID, IsComposable = true) public Guid NEWID() return (Guid)(this.ExecuteMethodCall(this,(MethodInfo)(MethodInfo.GetCurrentMethod().ReturnValue); 2.发布作业功能的实现 当教务处考评管理员为班级选课之后,教师发布作业应只发布给选修该课程的班级。系统在加载发布作业页面时应通过当前登陆的教师编号定位该教师发布的课程并且该课程已经被上个下拉列表选择的班级选修。这是作业发布必须要做的前提工作。实现的核心代码如下
30、: protected void DropDownList2_Load(object sender, EventArgs e) if (!IsPostBack) DataClasses1DataContext dcdc = new DataClasses1DataContext(); /通过下面的LINQ语句锁定该教师发布给指定班级的所有课程 var data = from d in dcdc.Course join ccs in dcdc.ClassCourseShip on d.CourseId equals ccs.CourseId into fina from pro in fina.
31、DefaultIfEmpty() where d.TeacherNumber = User.Identity.Name & pro.ClassName = DropDownList1.Text select new d.CourseId, d.CourseName ; DropDownList ddlCourse = (DropDownList)sender; ddlCourse.DataSource = data; ddlCourse.DataTextField = CourseName; ddlCourse.DataValueField = CourseId; ddlCourse.Data
32、Bind(); 发布作业在附件的上传应注意路径问题,应当把相对路径转换为服务器端的绝对路径,否则会导致上传失败或意外“上传”到本地。而且应为每个老师以用户名命名的文件夹,教师发布的作业存放在各自相应的文件夹中,便于管理和系统定位,在学生的上传作业页面也是同理。核心代码如下:if (FileUpload1.HasFile) /以当前时间和生成一个随机数命重命名文件 StringBuilder strBuilder = new StringBuilder(); string fullName = FileUpload1.PostedFile.FileName; string upFileName
33、= fullName.Substring(fullName.LastIndexOf(); string fileType = upFileName.Substring(upFileName.LastIndexOf(.) + 1); DateTime currentTime = new DateTime(); currentTime = DateTime.Now; strBuilder.Append(currentTime); Random r = new Random(); strBuilder.Append(r.Next(1, 200); upFileName = strBuilder.To
34、String().ToLower().Replace( , ). Replace(:, ).Replace(-, ) + . + fileType; fileType = fileType.ToLower(); /把Web.config文件中指定的相对路径转换为绝对路径 string teacherPath = System.Configuration.ConfigurationManager.AppSettingsTeacherFilePath.ToString();/为教师创建相应的文件夹 DirectoryInfo dir = new DirectoryInfo(Server.MapPa
35、th(teacherPath).Replace(, /);dir.CreateSubdirectory(User.Identity.Name);string fullPathAndFileName = Server.MapPath(teacherPath + User.Identity.Name + /).Replace(, /) + upFileName;FileUpload1.SaveAs(fullPathAndFileName); pubWork.AttachmentPath = teacherPath + User.Identity.Name + / + upFileName;(3)考评功能的实现本系统严格学校规定而设定评分规则,一些评分细项可以从各任课教师日常操作(如在线点名、布置作业、课程评分等)得到的数据而让系统自动生成。但大多数评分细项是无法让系统自动生成。可以手工添加,也可以在添加学生时直接录入,这样须增强规则验证机制,杜绝对学生错误的评分。 如在学生添加页面的评分,加强了JavaScript的验证,并添加了相应的Button,只需要点击相应评分,尽量减少手动输入。如果评分操作违反了规定,会报错并更改失败。专心-专注-专业