您的当前位置:首页正文

基于MVC框架的毕业设计管理系统的设计与实现

2021-12-28 来源:易榕旅网
2014年第3期 文章编号:1006-2475(2014)03-0065-04 计算机与现代化 JISUANJI YU XIANDAIHUA 总第223期 基于MVC框架的毕业设计管理系统的设计与实现 丁勇,储久良,张飞 (南京理工大学泰州科技学院计算机科学与技术系,江苏泰州225300) 摘要:毕业设计过程涉及选题、开题、过程管理、答辩等多个环节,依赖人工管理存在工作量大和工作程序繁琐等问题。 本文基于ASP.NET平台,采用最新的MVC4(Mode1.View—Contro1)框架,实现了三层架构的毕业设计管理系统。系统表示 层采用JQuery、Ajax等技术实现页面显示,业务层采用BLL模板类实现对业务逻辑的封装,数据层采用LINQ to SQL实现 与关系数据库的0/RM(Object/Relation Mapping)。系统架构灵活,具有较好的可扩展性,并在南京理工大学泰州科技学 院得到应用.提高了学院毕业设计管理的质量和效率。 关键词:毕业设计;ASP.NET;MVC4;JQuery;Ajax;LINQ to SQL 中图分类号:TP3l1.131 文献标识码:A doi:10.3969/j.issn.1006-2475.2014.03.016 Design and Implementation of Graduation Design Management System Based on MVC Framework DING Yong,CHU Jiu—liang,ZHANG Fei (Department of Computer Science and Technology,Taizhou Institute of Science and Technology, Nanjing University of Science and Technology,Taizhou 225300,China) Abstract:Graduation design process involves topics selection,open discussion,process management,and other aspects of the respondent.There is reliance on manual workload management and WOrk procedures cumbersome and other issues.Based on the ASP.NET platform,using MVC4(Model—View—Contro1)framework,this paper achieves a three—tier architecture graduation de- sin gmanagement system.System representation layer uses JQuery,Ajax nd aother technologies to achieve page display,business layer uses a template class that implements the business logic of the package,data layer uses LINQ to SQL nd arelational databas— es to achieve 0/RM(Objec/Reltation Mapping).Flexible system architecture is of good sealability,the system is applied in Nanjing university of science and technology,and improves the quality and efficiency of graduation management. Key words:graduation design;ASP.NET;MVC4;JQuery;Ajax;LINQ to SQL 0 引 言 毕业设计(论文)是培养学生知识应用能力、实 践能力和创新能力的关键环节。近年来,随着毕业生 理系统基于ASP技术开发,由于ASP页面是由脚本 语言混合HTML而成,所以代码逻辑混乱、难以维护 数量的不断增加,学生毕业设计期间面临就业等情 况,导师指导毕业设计的时间和精力得不到充分保 证,缺乏对毕业设计过程的跟踪、检查、指导,毕业设 计质量有所下降 J。毕业设计过程包括多个环节, 每个环节需要提交的文档种类繁多,依赖人工进行管 理存在工作量大、工作程序繁琐等问题。 南京理工大学泰州科技学院原有的毕业设计管 收稿日期:2013-11—14 和升级。2012年学院申报“江苏省大学生创新计划” 项目(编号2012JSSPITP3017),组织教师和学生基于 ASP.NET MVC4框架重新开发了一套毕业设计管理 系统 。MVC4是微软的Visual Studio 2012平台最 新推出的MVC框架,该框架很好地实现了MVC设计 模式,有效地将业务逻辑和显示逻辑分离,控制逻辑 和业务逻辑分离,克服了传统的Web Form编程技术 存在的代码混乱、过分依赖服务器控件等问题,提高 了系统的可伸缩性 。 基金项目:江苏省大学生创新计划项目(2012JSSPITP3017) 作者简介:丁勇(1980一),男,江苏泰州人,南京理工大学泰州科技学院计算机科学与技术系讲师,硕士,研究方向:数据库,数据 挖掘;储久良(1965-),男,江苏泰州人,副教授,本科,研究方向:数据库,计算机网络;张飞(1990一),男,江苏淮安人,本科生。 计算机与现代化 2014年第3期 1 系统需求 毕业设计过程主要包括选题、开题、过程管理、答 辩等环节。系统角色分为学生、指导教师、管理员 (教务人员、专业负责人、院系负责人)。 (1)选题过程:由教务处发布毕业设计工作通 知,教师准备课题提交院系审核,专业负责人审核通 过后由管理员发布给学生选题。学生选题实行师生 互选,最终保证每个学生一个课题。 (2)开题过程:学生选题后由教师发放选题表及 任务书,学生根据任务书的要求查阅相关文献并撰写 开题报告,指导教师就开题报告的研究内容和技术手 段进行可行性论证,提交专业负责人二级审核,审核 通过后同意开题。 (3)过程管理:学生前期需完成技术准备工作, 然后按照课题要求进行系统的设计和实现,期间需提 交的材料包括中期检查表、每周完成情况记录、撰写 的论文及研究成果。同时,导师对学生的完成情况进 行实时跟踪。 (4)答辩过程:学生提交毕业设计论文,指导教 师进行论文互评,通过后可参加答辩,并由答辩小组 评定成绩,由指导教师提交综合成绩,教务人员录入 成绩。 2 系统设计 2.1系统架构设计 系统采用三层架构,表示层、业务层和数据层,架 构如图1所示。 图I系统架构图 (1)表示层Web:用户的接口层,实现和用户的 交互,接受用户请求并返回用户请求的数据结果,利 用View显示相应的显示页面。 (2)业务层BLL:业务逻辑的封装层,当接收用 户请求后,从后台数据库获取相应数据信息并进行处 理,将处理数据结果交付给表示层显示。 (3)数据层DAL:负责实现与数据库的交互和访 问,从数据库获取数据或向数据库中写人数据,或调 用存储过程等。 2.2 系统功能模块设计 系统分为学生模块、教师模块、管理员模块。学 生模块包括学生基本信息维护、学生选题、上传文档、 提交进度、讨论区留言等功能;教师模块包括教师基 本信息维护、上报课题、查看学生进度、管理成绩等; 管理员模块包括发布公告、审核课题、上报成绩、设置 权限、文档归档等,功能模块结构如图2所示。 图2系统功能模块结构图 2.3数据库设计 2.3.1概念结构设计 概念结构设计是整个数据库设计的关键,任务是 在需求分析的基础上,按照特定的方法把它们抽象为 一个概念模型。通常用E.R图(实体一联系图)来描 述,系统概念模型如图3所示。 图3系统ER图 2.3.2逻辑结构设计 逻辑结构设计是将概念结构模型转换为数据库 管理系统所支持的数据模型,并对其进行优化,主要 的描述方法是关系模式或二维表。以下为主要的关 系模式,其中主关键字用下划线标识。 (1)学生(学生编码、姓名、密码、院系、专业、角 色、邮箱、…)。 2014年第3期 丁勇等:基于MVC框架的毕业设计管理系统的设计与实现 67 (2)教师(教师编码、姓名、密码、院系、专业、角 色、研究方法、…)。 (3)课题(课题编码、课题名称、类型、来源、简 介、要求、学生编码、教师编码、…)。 (4)选题(学生编码、课题编码、选题时间、审核 状态、…)。 (5)文档(文档编码、文档名称、路径、类 型、…)。 (6)进度(堡釜绳 堂生缠 缠 、完成 时间、任务状态、任务进度、审核意见、…)。 (7)留言板(留言编码、发言者、回复者、公告内 容、留言时间、…)。 (8)公告(公告编号、公告题目、公告内容、发布 时间、发布者、…)。 3关键模块的实现 3.1公共模块的实现 定义WebHelp类,将页面经常用到的一些方法 封装成类,方便各个页面的调用,主要包括弹出对话 框提示、页面刷新、显示系统当前用户、清空缓存、 Session失效等。 定义BussinessHelper类,用于重复利用业务类, 减少业务类实例化过程中的资源消耗和时间消耗。 实现的方法是:对于每个业务类,定义一个私有和一 个公有的业务对象属性,在获取公有属性时,先检查 私有属性的业务对象是否为空,如果为空则实例化, 否则直接返回该私有的业务对象。 定义DBHelper类,该类通过调用微软的企业库 (Enterprise Library)的Data Access Application Block (DAAB)模块实现,封装了对数据库的基本操作: //对数据库的增删改操作 public static void ExecuteUpdate(string sq1) {Database db=DatabaseFactory.CreateDatabase(); DbCommand cmd=db.GetSqlStringCommand(sq1); db.ExecuteNonQuery(); } //对数据库的查询操作 public static DataSet ExecuteSql(string sq1) {Datbaase db=DatabaseFactory.CreateDatabase(); DbCommand cmd=db.GetSqlStringCommand(sq1): return db.ExecuteDataSet(cmd); } 3.2视图(View)的实现 视图负责表示层界面的显示,系统为了降低界面 和显示逻辑的耦合度,不再采用ASP.NET服务器端 控件 J。而是通过Razor视图引擎及JQuery客户端 框架实现 引。系统封装了面板、选项卡、弹出窗口、 提示窗口、表格容器、树形菜单、滑动菜单、编辑器、日 期控件等客户端组件,提供了母版布局、站点导航、多 主题显示等功能。通过Ajax技术在不刷新页面的情 况下与服务器进行数据交换 1。。,交换的数据格式包 括HTML、JSON、XML等¨ 。如下代码通过JQuery 实现对课题信息的异步请求,返回JSON数据格式。 ¥.ajax({ type:”post”, url:”./getProjectList”, data:{|'type=”+x+”}.', contentType:”application/json; charset:uff-8”, dataType:”json”, success:function(){...}, }); 3.3控制器的实现 控制器(Controller)主要负责响应用户的请求,在 MVC4框架中,控制器定义为继承自Controller基类的 类,一个控制器类可以包含多个Action,每个Action对 应一个方法。当用户发送一个URL请求时,ASP.NET MVC引擎会分析这个URL,并将其映射到Controller 对应的Action中 引。路由规则定义为{controller}/ {action}。本系统从默认的MVC控制器基类派生两个 类,一个是不需要验证的控制器LoginController,另一 个是必须验证登录的BaseController基类控制器,定义 BussinessController<B,T>业务控制器基类,把能通过 抽象封装的CRUD方法都放到其中,再根据泛型类型, 定义常用操作的具体实现,如图4所示。 图4系统控制器 3.4业务逻辑层(BLL)的实现 系统定义业务对象基类BussinessBase,所有的业 务逻辑对象都从BussinessBase基类派生,这个类是 一个具有序列化功能的泛型基类,封装了业务对象验 证、业务逻辑操作等功能。 业务对象验证功能:每个业务对象类都可能包含 一个或多个验证规则,如对于课题对象来说,要求标 题、内容、性质等不能为空。BussinessBase基类提供 了一系列的方法和属性来实现对文本、数字、日期等 计算机与现代化 2014年第3期 不同类型数据格式的验证功能。 业务逻辑操作功能:BussinessBase类为业务对象 的增、删、改、查操作提供了相应的实现,为客户端提 供了抽象的方法来实现具体的操作代码,而Bussi. nessBase类对于这些操作封装了通用的功能,比如: 对属性的验证、变更、属性当前的状态等,同时在操作 过程中会触发相应的事件,允许业务对象在操作前或 操作后添加自定义的代码。对于业务实体派生类,只 需要实现几个抽象方法来实现具体的增、删、改、查操 作,抽象方法的定义如下代码: Protect abstract void Add();//添加业务实体 Protect abstract void Delete();//删除业务实体 Protect abstract void Update();//更新业务实体 Protect abstract T Select(TKey id);//查询业务实体 3.5数据访问层(DAL)的实现 通常采用工厂模式,严格遵循依赖倒置原则 (DIP)实现,高层模块不依赖于底层,抽象不依赖于 细节,只提供数据访问接口供外部调用。首先,定义 数据访问接口: public interface IDAL {bool Exists(stirng ID)//是否存在该对象 b00l Add(Model mode1)//增加一条数据 bool Update(Model mode1)//更新数据 bool Delete(stirng ID)//删除一条数据 Model<T>GetModel(stirng ID)//得到对象 //获得数据列表 DataSet GetList(stirng strWhere) //获得前几行数据 DataSet GetList(int Top,string strWhere,stirng filedOrder) //根据分页获得数据列表 DataSet GetList(int PageSize,int PageIndex,stirng str— Where) } 然后,通过LINQ to SQL O/R mapping方式实现 DAL类,利用DataContent(数据上下文)作为数据模 型和对象之间的桥梁,映射数据库中表的字段,把查 询语法转化为SQL语句 。。 。以下映射类映射了 Student表和Studeilt类之间的关系。 //映射类 [Table(Name=”Student”)] public Class Student {[Column(IsPrimaryKey=true)]//数据库字段 public stirng Mode1.StuNo{get;set;}//模型的属性 [Column(Name=”StuName”)]//数据库字段 public stirng Mode1.StuName{get;set}//模型的属性 } //通过LINQ to SQL实现对学生信息的查询 Table<Student>stulist:db.getTable<Student>(); vat student=from S in stulist where S.Class= XXX order by S.StuNo select S; 3.6选题模块的实现 选题模块是课题的核心模块,影响选题的因素包 括课题的性质、难易程度、来源、指导教师的研究方向 及学生的兴趣爱好等。系统实行师生双选,首先由指 导教师发布课题,然后由学生查看课题信息及导师信 息,并根据个人兴趣爱好选择导师和课题,每个学生 最多可选I1个课题,形成志愿等级,如第一志愿、第二 志愿等。同时,导师也可以选学生,由导师确定是否 同意学生志愿,最终保证每人一课题。 算法:Choose—Project 输入:m名学生,11名指导教师,M1指导人数上 限,M2学生志愿上限 输出:选题序列 (1)对任意1个第i名指导教师(1≤i≤11) (2)计算该教师指导人数的上限(M1)与已选学 生人数之间的差Y=M1.X (3)IF Y>0 goto(4) else goto(9) (4)在学生志愿表中,统计所有选择该教师,但 尚未被分配的学生人数,记为L; (5)IF Y<L goto(6) else goto(8) (6)对这L个学生,按照从志愿1到志愿M2的 顺序排序,S1.choice≤s2.choise≤…≤SL.choise (7)将前Y个学生分配给该教师 goto(9) (8)将这L个学生分配给该教师 (9)继续处理下一名教师 4结束语 本文基于B/S架构、ASP.NET MVC模式实现一 个毕业设计管理系统,系统前端采用Visual Studio 2012.NET 4.5平台开发,后台采用SQL Server 2005 数据库,中间层采用IIS 6.0Web服务器实现。系统 具有学生信息管理、教师信息管理、课题信息管理、选 题管理、过程跟踪、文档管理、角色管理等功能。在南 京理工大学泰州科技学院得到应用,为广大师生提供 了毕业设计交流和管理的平台,规范了毕业设计管理 的流程,减少了繁琐的工作量,提高了毕业设计的效 率和质量。 (下转第72页) 72 计算机与现代化 2014年第3期 首先查询所有姓名为李四的人,然后将他们的姓 大学,2009. 名改为王五,同样地,要调用SubmitChanges方法后修 改才会真正生效。 3.7删除人员信息数据 [3] [美]Rattz J C.LINQ技术详解c#2008版[M].程胜, 朱新宁,杨萍译.北京:人民邮电出版社,2009. [4]侯利军.精通LINQ数据访问技术[M].北京:人民邮 电出版社,2008. 删除数据库类中的人员类对象实例。 PersonData pd=new PersonData(@”persons.mdf”);  ̄ar deletePer: from perin pd.Person [5] [法]Fabriee Marguerie,[美]Steve Eiehen,[美]Jim Wooley.LINQ实战[M].陈黎夫译.北京:人民邮电出 版社,2009. [6] [美]Paul KimmeI.LINQ程技术内幕[M].唐学韬译. 北京:机械工业出版社,2009. where per.Name==“赵明” select per; [7] [美]Roger Jennings.ADO.NET 3.5高级编程一应用 LINQ&Entity Framework[M].孟兆炜译.北京:清华大 学出版社,2010. if(deletePer.Count()>0) { pd.Person.DeleteOnSuhmit(deletePer.First()); pd.SubmitChanges(); [8] 丁虹.LINQ与Silverlight技术在weh开发中的应用 [D].武汉:湖北大学,2010. [9] 李萌.基于LINQ技术的丝业论文管理系统的设计与实 } 查询所有姓名为赵明的人,如果存在,将其从数 据库中删除。 现[D].哈尔滨:黑龙江大学,2010. [1O]赵王兵.LINQ数据访问技术的研究及其在电机设计系 统中的应用[D].广州:中山大学,2009. 4 结束语 使用.NET Framework 3.5中的LINQ查询技术 开发人事档案管理系统,可以实现c#程序语句直接 对数据库进行查询、新增、修改、删除操作。 参考文献: [11]乔建惠,陈燕平.电子档案管理系统的设计和开发[J]. 计算机辅助工程,2005,14(1):35—39. [12]李永锋,章美仁.面向服务的高校人事档案管理系统的 应用研究[J].计算机技术与发展,2012,22(6):221. 224. [13]吴焕,王晓箴,潘林,等.基于LINQ的多源异构数据查 询中间件[J].计算机工程,2011,37(2):1-3. [14]舒国军,黄刚.LINQ to SQL技术在Web开发中的应用 [1]吴志峰.企业人事管理系统的设计与实现[D].南昌: 南昌大学,2009. [J].遵义师范学院学报,2012,14(1):87-89. [2] 窦少刚.人事管理系统的设计与研究[D].南昌:南昌 (上接第68页) 参考文献: 程技巧与维护,2011(14):77_78. [8]赵志刚.ASP.NET中基于LINQ的数据访问[J].沈阳 师范大学学报:自然科学版,2009,27(2):198-201. [1]李天平..NET深人体验与实战精要[M].北京:电子 工业出版社,2009. [9] 杨旭士.基于JQuery框架的研 查询视图设计与实现 [J].计算机与现代化,2010(8):128-129,138. [10]周玲余.基于JQue ̄框架的页面前端特效的设计与实 现[J].计算机与现代化,2013(1):61_63. [2] 江红.c#.NET程序设计教程[M].北京:清华大学出 版社.2010. [3] 丁士锋.ASP.NET项目开发案例导航[M].北京:电子 工业出版社,2012. [11]仰燕兰,金晓雪,叶桦.ASP.NET AJAX框架研究及其 在Web开发中的应用[J].计算机应用与软件,2011, 28(6):195—198. [4] 吴胜,刘建波,刘士彬.ASP.NET MVC框架下内容管理 系统的探索与实现[J].微计算机信息,2010,26(36): 3O一32. [12]罗乐霞.基于ASP.NET MVC人事信息管理系统设计 [J].电脑编程技巧与维护,2012(24):52—53. [13]张栗,张凤元,危胜军.基于DWR框架的Web应用的设 计与实现[J].计算机技术与发展,2008,18(8):84—87. [14]王小花,李红霞,袁媛.基于LINQ to SQL的实验室网上 [5]李志,贾克斌,李真真,等.基于.NET MVC架构的网上 珠宝销售系统的设计与实现[J].计算机应用与软件, 2013,30(3):186—189,192. [6] 郭秀娟,王春光.基于B/S模式的毕业设计管理系统开 发与实现[J].计算机技术与发展,2010,20(3):239 242. 预约系统的设计与实现[J].计算机与现代化,2012 (11):81—84. [7]吴亚军.试析ASP.NET的MVC开发模式[J].电脑编 

因篇幅问题不能全部显示,请点此查看更多更全内容