毕业设计(论文)管理系统_第1页
毕业设计(论文)管理系统_第2页
毕业设计(论文)管理系统_第3页
毕业设计(论文)管理系统_第4页
毕业设计(论文)管理系统_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学 号: 202140410109 数据库系统开发与维护题 目毕业设计(论文)管理系统教 学 院计算机学院专 业计算机科学与技术班 级08计科(1)班姓 名 指导教师 2021年12月28日 目录1 序言11.1 课题的来源与意义11.1.1 课题的来源11.1.2 课题的意义11.2 课题研究的主要内容12 开发技术与工具22.1 Microsoft.NET 技术22.2 ASP.NET 简介22.3 Visual Studio 202133 需求分析43.1 需求分析43.1.1 功能需求43.1.2 角色和工作流程53.2 系统要实现的目标64 总体设计84.1 三层结构概述84.1.1

2、 三层结构的概念84.1.2 三层结构的优点84.1.3 三层结构的缺点94.2 系统的分层设计94.3 数据库设计114.3.1 数据表设计114.3.2 存储过程设计154.4 公共层165 详细设计175.1 管理员模块的实现175.2 教师模块的实现175.3 学生模块的实现21附 录22致 谢30参考文献315数据库系统开发与维护1 序言1.1 课题的来源与意义1.1.1 课题的来源本课题是“黄石理工学院计算机学院”立项项目,立项时间为 2021 年 9 月。1.1.2 课题的意义高校毕业论文是高校本科人才培养方案的一个重要组成部分,也是学生毕业与学位资格认证的重要依据。2021 年

3、教育部办公厅下发的关于加强普通高等学校毕业设计(论文)工作的通知指出:要充分认识毕业设计(论文)环节的重要意义1,加强毕业论文的管理工作,保障和不断提高毕业论文的质量。整个本科毕业论文的工作过程持续时间长,涉及人数多(学生,指导教师和教学管理人员),并且随着高校扩招,学生人数的不断增长,毕业论文工作过程中的工作量越来越大,使用传统的管理方式也变得越来越困难,在这样的背景下如何加强毕业论文的管理工作,是一个亟待探讨和研究的问题。目前,许多高校的本科毕业论文管理工作相对滞后,基本采用多年来一贯的操作模式:教师命题、学生选题,经过开题、论文撰写和论文答辩确定成绩,最后由教学管理人员将论文归档保存,整

4、个过程基本靠人工来完成。1.2 课题研究的主要内容高校本科毕业论文管理系统除对论文本身进行管理外,还应考虑如何提供对毕业论文全过程的管理问题。如何实现一个高校毕业设计(论文)管理系统,是本课题的主要研究问题。该系统如何与现有的教务管理系统整合,是本课题研究的重点问题。实现对外数据查询接口,提供对外论文查询服务是本课题的一个尝试。2 开发技术与工具2.1 Microsoft.NET 技术.NET 框架包括用于创建和操作新一代服务的.NET 基础结构和工具,用于建立新一代高度分布式的数以百万计的.NET 组件服务,以及启用新一代智能互联网设备的.NET 设备软件12。其完整的结构如图 2-1 所示

5、:图 2- 1 Microsoft.NET 框架2.2 ASP.NET 简介ASP. NET 提供了一个 Web 应用程序模型,该模型由一组控件和一个基本结构组成。有了它,Web 应用程序的构建变得非常容易。开发人员可以直接使用 ASP.NET 控件集(诸如数据源控件、数据显示控件等),这些控件运行在 Web 服务器上,它们将用户界面转换成 HTML 格式后再发送给浏览器。在服务器上,控件负责将面向对象的编程模型呈现给 Web 开发人员,这种编程模型能提供面向对象的编程技术拥有的丰富功能。ASP. NET 还提供一些基本结构服务(诸如会话状态管理和进程循环),这些服务进一步减少了开发人员要编写

6、的代码量,并使应用程序的可靠性得到了大幅度提高。ASP. NET 还允许开发人员将软件作为一项服务进行传送。通过使用 ASP. NET Web 服务功能,ASP. NET 开发人员只需进行简单的业务逻辑编程,而由 ASP. NET 基本结构负责通过 SOAP 传送服务15。.NET 开发平台为开发 WEB 应用程序提供了强大的技术支持,使开发变得非常便捷,高效。ASP.NET 通过服务器控件解决了上述问题。服务器端控件会生成发送给浏览器的 HTML 代码,还能生成隐藏的 HTML 元素来存储它们当前的状态。在提交页面时,这些信息就会传送回服务器,控件将自动处理这些信息,改变 HTML 并显示控

7、件。2.3 Visual Studio 2021Visual Studio2021 是微软提供的集成开发环境,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序。在 Visual Studio2021中 Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成开发环境(IDE),该环境允许它们共享工具,并有助于创建混合语言解决方案30。另外,这些语言充分利用了.NET Framework 的功能,提供了对简化 ASP.NET Web 应用程序开发和 XML Web Service 开发的关

8、键技术支持。Visual Studio 集成开发环境中为开发人员提供了大量的实用工具以提高工作效率。这些工具包括了自动编译、项目创建向导、创建部署工程等等。3 需求分析3.1 需求分析3.1.1 功能需求通过与教务处负责全校毕业论文管理工作的老师充分沟通,结合自己作为系一级毕业论文工作的管理者对毕业论文工作过程的了解,并在与部分教师和学生反复交流的基础上,得出高校毕业设计(论文)管理系统的主要需求如下:1 在每次论文工作开始时,系统应提供教师、学生名单,以便系一级毕业论文管理者给学生安排指导教师。系统应提供交互界界面,满足给学生安排指导教师的要求。2 系一级毕业论文管理者给学生安排指导教师后,

9、学生应能在系统中看到自己指导教师和同组同学信息(同一指导教师指导的全部学生为一组),教师也应能在系统中看到自己指导各学生的信息,特别应能看到是联系方式,以便学生和教师相互联系。3 学生和指导教师相互联系,根据实际情况拟定论文题目,指导教师可通过系统在网上提交拟定的题目,等待教研室主任审核。在审核之前这些题目只是本次待选题目(简称选题),只有通过审核的选题才能最终确定为学生的正式题目。教师和学生还应能通过系统看到历届选题信息。4 教研室主任可以在网上审核本教研室教师提交的选题,若审核未通过,可以输入简单未通过审核的原因,教师可以看到审核结果。5 选题经审核后,教师通过系统可以正式指派给学生。若审

10、核未通过,教师需和学生重新讨论确定选题,提交、等待审核直至通过。在实际工作中,在系统中完成以上操作后,每个指导教师指导哪些学生确定了,每个学生的论文题目也确定了,此时用户在系统可以看到本届论文选题的全部结果。此后将进入论文撰写阶段。6 在论文撰写阶段,系统应提供交流平台,以便学生和教师交流,并允许通过系统上传下载文件。7 在论文撰写阶段,学生可以随时在系统中查询和下载往届学生毕业论文,了解论文内容、要求,格式等信息。8 系一级管理员要求系统能够根据指定条件生成答辩安排表,教师、学生可以看到答辩安排。9 答辩结束后,学生要通过系统提交论文(包括论文相关信息和电子文档)。10 学生提交论文后,指导

11、教师进入系统,对学生提交的论文进行审核,审核合格者,教师提交该学生的论文成绩,否则该学生需重新提交,直至审核通过。期间学生可以在系统中查看审核结果和评分结果。11 上述工作完成后,系管理员可以通过系统打印报表(如:选题结果一览表、成绩汇总表、成绩分析表等)。12 在整个论文工作过程中,系管理员可以在系统中看到本系各指导教师工作进度,校管理员可以在系统中看到各系工作进度。13 在整个论文工作过程中,系管理员和校管理员可以在系统中发布公告,管理自己发布的公告,教师,学生可以查看公告。14 用户可以维护个人信息,包括修改 ,Email 等。3.1.2 角色和工作流程经过以上功能需求分析,可以得出论文

12、管理系统的用户有:学生、教师、系管理员,不同用户在系统中担任不同角色,具有不同权限,要完成不同操作。不同用户的操作又有着相互依赖关系。有些操作是公共的,如查看公告、密码修改,有些操作是特定角色才能进行的,如课题申报。按毕业论文工作的时间顺序,及其不同角色在不同时间阶段要参与的活动综合分析后,得出毕业论文工作过程流程图,如图 3-1 所示: 图 3- 1 系统工作流程从上图可以看出,不同阶段,有的用户需要完成某项工作,而有的用户处在等待状态,等其他用户工作完成前面才能开始自己下面的工作。3.2 系统要实现的目标根据上面需求分析,最终确定系统要实现如图 3-2 所示功能模块,由于模块划分是从用户角

13、度出发,而不是从功能角度考虑,所有一个功能模块会涉及到多个用户。图 3- 2 系统功能模块图下面对各模块作简要说明:1. 学生模块基本功能:课题选择、我的课题、我的任务书、开题材料、论文提交、通知公告、网上答疑、下载专区、个人信息维护、密码修改。2. 教师模块基本功能:课题申报、全院课题、选题管理、发布任务书、开题报告、通知公告、网上答疑、论文接收、归档材料、下载专区、本组学生信息、个人信息管理、密码修改。3. 管理模块基本功能:基础数据维护、教师信息导入、学生信息导入、教师信息管理、学生信息管理、教师申报课题管理、选题管理、账户管理、通知公告、归档材料、下载专区、数据库维护、个人信息管理、密

14、码修改。4 总体设计4.1 三层结构概述4.1.1 三层结构的概念三层结构是一种成熟、简单并得到普遍应用的应用程序架构,它将应用程序结构划分为三个逻辑层:户表示层、业务逻辑层和数据访问层。其中将实现人机交互界面的所有表单和组件放在表示层,将所有业务规则和逻辑的实现封装在负责业务逻辑组件中,将所有和数据库的交互封装在数据访问组件中33。其结构如图 4-1 所示。图 4- 1 三层结构示意图三层结构十分有利于系统的开发,维护、部署和扩展。使用三层结构的目的,是为了实现“高内聚、低耦合”,采用“分而治之”的思想,把问题划分开来各个解决,易于控制,易于延展,易于分配资源。三层结构是一种严格分层方法,即

15、数据访问层只能被业务逻辑层访问,业务逻辑层只能被表示层访问,用户通过表示层将请求传送给业务逻辑层,业务逻辑层完成相关业务规则和逻辑,并通过数据访问层访问数据库获得数据,然后按照相反的顺序依次返回将数据显示在表示层。4.1.2 三层结构的优点1 从开发角度和应用角度来看,三层架构比双层或单层结构都有更大的优势三层结构适合群体开发,每人可以有不同的分工,协同工作使效率倍增。开发双层或单层应用时,每个开发人员都应对系统有较深的理解,能力要求很高,开发三层应用时,则可以结合多方面的人才,只需少数人对系统全面了解,从一定程度上降低了开发的难度。2 三层架构可以更好地支持分布式计算环境逻辑层的应用程序可以

16、放在多个机器上运行,充分利用网络的分布式特性。分布式计算的潜力巨大,远比升级 CPU 有效。美国人曾利用分式计算解密,几个月就破解了据称永远都破不了的密码。3 可适应不断的变化和新的业务需求对软件进行分层可以达到结构清晰、易于重用的目的。任何应用系统实施的重点不在于需求确定以后能否实现这些需求,而是在系统实施后如何适应变化的需求。三层结构由于对系统分层设计,一旦日后需求发生变化,只需修改相应层的部分代码,对其他层没有影响或影响很小。4 能有效提高系统安全性多层体系结构将数据与程序、数据控制与应用逻辑分层独立管理,能更严格地控制信息访问。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险

17、的系统功能都屏蔽了。4.1.3 三层结构的缺点1 “三层结构”开发模式一个非常明显的缺点就是其执行速度不够快。当然这个“执行速度”是相对于非分层的应用程序来说的34。2 “三层结构”开发模式,入门难度够高,难于理解和学习。以这种模式开发出来的软件,代码量通常要稍稍多一些。4.2 系统的分层设计上一节讨论的三层结构是一个总体的三层结构模型,实际开发应用系统时,每一层还可划分成多个子层,层与层之间还可引入接口层,并且一般还加入业务实体层,以便各层简传递业务数据,加入公共层,用来封装公用方法。本系统根据实际情况采用的分层结构如图 4-2 所示。图 4- 2 系统的分层结构分层的思路和各层作用如下:公

18、共层(Common Layer):本层包括自定义实体类型和自定义实体类型集合,还封装一些常用的公共方法,供表示层、业务逻辑层和数据访问层调用。用于各层次之间数据交互的载体。表示层(Presentation Layer,简称 PL):提供交互界面,供用户操作。可采用 WinForm 方式,也可采用 Web 方式,本系统选择的是 Web 方式。本层负责传递用户的输入给业务逻辑层,并把业务逻辑层的处理结果展示给用户。业务逻辑层(Business Logic Layer,简称 BLL):主要是针对具体业务处理的操作,如对数据进行有效性验证,操作约束判断等。业务逻辑层接收表示层传来的数据(简单变量、业务

19、实体类型对象或业务实体集合类型对象),然后根据具体的业务逻辑调用数据访问层的一个或多个方法进行处理,最后返回处理结果给表示层。数据访问层(Data Access Layer,简称 DAL):封装对数据库的访问操作。是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库。这里封装所有访问数据库的相关代码,包括 SQL 语句,存储过程等。本层接收业务逻辑层传来的数据(简单变量、业务实体类型对象或业务实体集合类型对象),执行不同 SQL 语句或存储过程,并把执行结果返回给业务逻辑层。4.3 数据库设计4.3.1 数据表设计本系统后台使用

20、SQL 2021 数据库, GDS 数据库是本系统的数据库,它用于存放权限表、专业表、选题表、基础数据表、管理员表、学生表、教师表、下载信息表、邮件信息表、通知公告表和课题信息表。GDS 数据库包括11张表,各表名称与表之间关系如图 4-3 所示。图 4- 3 实体关系图上述11张表中,权限表(Authority 表)、专业表(Profession 表)和选题表(ChosenSubject 表)结构比较简单,分别用来存储各类用户权限、专业名称和选题信息,其它各表如下。1. 基础数据表基础数据表(BaseSystemData表)用来存放基础数据配置信息,其结构如表4-1所示。列名数据类型长度说明

21、AcademyNamevarchar20学院名称SubjectTimechar4毕业设计年份SubjectBegindatetime申报课题开始时间SubjectEnddatetime申报课题结束时间ChooseBegindatetime选题开始时间ChooseEnddatetime选题结束时间表 4- 1 BaseSystemData表2. 管理员表、学生表和教师表管理员表(Admins表)、学生表(Student 表)和教师表(Teacher 表)分别用来存放内置的管理员基本信息、学生和教师的基本信息,其结构如表4-2 、表 4-3 和表 4-4所示。列名数据类型长度说明AdminIDva

22、rchar15管理员编号(主键)AdminPWDvarchar20管理员密码AdminNamevarchar15管理员姓名Sexchar2性别Phonechar15 Telephonechar15 Emailvarchar50邮箱表 4- 2 Admins 表列名数据类型长度说明StudentIDchar13学生编号(主键)StudentPWDvarchar20学生密码StudentNamevarchar15学生姓名StudentLevelchar6学生层次ProfessionNamevarchar30专业名称Classvarchar30班级SubjectTimechar4毕业选题年份Sexc

23、har2性别Phonechar15 Telephonechar15 Emailvarchar50邮箱IsAcceptbit1选题资格表 4- 3 Student 表列名数据类型长度说明TeacherIDchar7教师编号(主键)TeacherPWDvarchar20教师密码TeacherNamevarchar15教师姓名Postchar10职称Sexchar2性别Phonechar15 Telephonechar15 Emailvarchar50邮箱表 4- 4 Teacher 表3 下载信息表、邮件信息表和通知公告表下载信息表(DownloadZone表)、邮件信息表(MailInfo表)和

24、通知公告表(PublicNotice 表)分别用来存放供下载的文件相关信息、邮件信息和通知公告信息。表结构如表 4-5、表 4-6和表 4-7 所示。列名数据类型长度说明DataNoint文件编号(主键)Titlevarchar50文件名Describetext文件描述UploadTimedatetime10上传时间FilePathvarchar100文件路径表 4- 5 DownloadZone表列名数据类型长度说明MailNoint邮件编号(主键)SenderNovarchar15发送者编号ReceiverNovarchar15接收者编号SenderTimedatetime发送时间Them

25、evarchar50主题Contentstext内容IsReadBit1是否已读MailTypechar15邮件类型AccessoryPathvarchar100附件路径表 4- 6 MailInfo表列名数据类型长度说明NoticeNoint通知公告编号(主键)Titlevarchar100主题SenderNamevarchar15发送者姓名Contentstext内容SenderTimedatetime发送时间SubjectTimechar4毕业设计年份表 4- 7 PublicNotice 表4 课题信息表课题信息表(Subjects 表)用于记录教师申报的课题的详细信息,结构如表 4-

26、8 所示。列名数据类型长度说明SubjectIDint课题编号(主键)SubjectNamevarchar100课题名称SuitProfessionvarchar100适用专业SuitLevelchar6适用层次SubjectTypevarchar20课题类型SubjectOriginvarchar30课题来源SubjectNewOldvarchar30课题新旧SubjectWorkloadbit1课题工作量是否适中SubjectRequirebit1课题是否合要求TeacherID1char7主指导教师编号TeacherID2char7次指导教师编号Memotext内容简介MaxPeople

27、int最大选题人数NowPeopleint已选题人数SuitYearchar4适用毕业设计年份IsCheckbit1是否通过审核表 4- 8 Subjects 表4.3.2 存储过程设计本系统所有的数据库操作都使用存储过程,使用存储过程主要是为了便于对SQL 语句进行集中管理。由于存储过程是在服务器上编译执行的,在一定程度上也有利于提高系统性能。另外使用存储过程对防止 SQL 注入攻击也有一定作用。不使用存储过程,SQL 语句将会出现在数据访问层的各个方法中,将来修改时,需要打开多个文件查找修改,没有放在数据库存储过程中方便。由于存储过程较多,为了方便,截图如下图 4- 4。图 4- 4 储存

28、过程概况4.4 公共层为方便各层间传递数据,一般应用程序中都把数据表影射成实体类(Entity Class)和实体集合类,本系统也采用这样的方法。还有部分方法,各层都会调用或与三层中的哪一层都没有直接联系问题,根据实体类、实体集合类和上述方法的性质,把他们封装到一起,形成一个公共层,也即系统的公共层包括以下两方面的内容:1.实体类和实体集合类2.公用方法和独立方法实体类中只有私有字段和公有的属性,不存在对数据的操作,实体的定义有以单表定义的,还有部分以业务逻辑来定义。实体集合类可以从 DataSet 类派生,对于只读数据集合,也可使用泛型。本系统中部分方法,没有使用实体(集合)类进行传递,主要

29、是部分操作灵活多变,用实体(集合)类去传递结果,显得有些困难。而且结果集本身就是依靠多个实体及实体间关系得出,也没办法用一个实体去传递。即使对于所有业务逻辑都全部建立实体,日后的改动也是很大的问题。对于上述情形,为方便期间,本系统直接使用了系统的数据库相关集合类 DataSet 和 SqlDataReader。实际上使用三层结构开发时,对于复杂程序, 经常存在要么为性能牺牲架构, 要么为架构牺牲性能的问题。图 4-5给出了公共层中的主要类。表 4- 5 公共层主要类5 详细设计本系统分为三大模块:管理员模块、教师模块、学生模块,由三个人独立进行开发最终集成而来,以下是各模块的运行效果:5.1

30、管理员模块的实现毕业设施(论文)管理系统开始启用时,必须先由管理员对系统进行初始配置,具体包括以下内容:1基础数据维护以管理员身份登录(系统预先内置了校管理员账号,登录后可修改),分别进行学院(系)设置,专业设置,时间设置,如下图5 - 1、图5 -2、图5 - 3、图5 -4 所示。图5-1 主界面图5-2 学院设置图5-3 专业设置图5-4 时间设置2 .导入学生、教师基本信息下载指定模板,按固定格式文件导入学生和教师信息(主要是学号教师编号、姓名等)。使学生和教师的账户和密码都初始化为各自编号,如下图5 - 5、图5 -6 所示。图5-5 学生信息导入图5-6 教师信息导入3 .下载专区

31、用来上传、管理、下载毕业设计的相关文件材料,如下图5 - 7所示。图5-7 下载专区4 .教师、学生管理用来管理使用本系统的相关教师和学生信息及其资格进行审核,如下图5 - 8、图5 -9 所示。图5-8 教师管理图5-9 学生管理5 .申报课题管理用来管理教师申报的课题信息及对其进行审核,如下图5 - 10所示。图5-10 课题管理6 .选题管理用来对课题的选择状况,学生的选题情况进行监测和管理(可针对专业),并能实现对监测结果进行导出,如下图5 - 11所示。图5-11 选题管理7 .数据库维护用来实现对数据库进行备份及还原操作,保障系统的安全性,如下图5 - 12所示。图5-12 数据库

32、维护5.2 教师模块的实现1 .登录及密码修改用来实现不同用户的登录,根据用户类型不同获得不同权限,同时共用密码修改功能。2 .课题申报用来实现申报课题信息,并对自己申报的课题进行管理和维护。3 .全院课题查看用来查看全院的课题申报情况并能浏览课题详细信息。4 .选题管理用来查看自己的被选课题和未选课题情况,对被选课题可以查看选课的学生情况,并能对学生进行退选。5 .发布任务书用来给选择了我的课题的学生发送相应任务书,并接收学生提交的任务书,6 .网上答疑用来对选择了我的课题的学生进行网上答疑。7 .本组学生信息用来查看所有选择了我的课题的学生信息。5.3 学生模块的实现1. 课题选择查看所有

33、自己可以选择的课题并选择一个课题。2. 我的课题显示自己选择的课题的基本信息,在时间允许范围内可以退定所选课题。3. 我的任务书接收并回发我的任务书。4. 提交开题材料选择要提交的开题资料及接收教师并上传开题资料至教师端。5. 提交论文选择要提交的正式论文及接收教师并上传论文至教师端。6. 通知公告查看管理员发布的通知公告。7. 下载专区下载毕业设计相关材料。附 录专业设置后台代码public partial class Admin_InitMajor : System.Web.UI.Page protected void Page_Load(object sender, EventArgs

34、e) if (!IsPostBack) /获取所有专业信息 GetMajor(); /获取所有专业信息 private void GetMajor() Fannie.InitSystem init = new Fannie.InitSystem(); DataSet ds = init.GetMajor(); gvMajor.DataKeyNames = new string "ProfessionID" ; DataColumn dc = new DataColumn(); dc.ColumnName = "AutoId" ds.Tables0.Col

35、umns.Add(dc); for (int i = 0; i < ds.Tables0.Rows.Count; i+) ds.Tables0.Rowsi"AutoId"=i+1; gvMajor.DataSource = ds; gvMajor.DataBind(); /删除某些专业后绑定所有专业信息 protected void gvMajor_RowDeleting(object sender, GridViewDeleteEventArgs e) int id = Convert.ToInt32(gvMajor.DataKeyse.RowIndex.Value

36、.ToString(); Fannie.InitSystem init = new Fannie.InitSystem(); if (init.DeleteMajor(id)> 0) GetMajor(); Response.Write("<script>alert('删除成功')</script>"); /删除专业信息 protected void gvMajor_RowDataBound(object sender, GridViewRowEventArgs e) if (e.Row.RowIndex >= 0) e.

37、Row.Cells4.Attributes.Add("onclick","return confirm('确定要删除该行吗?')"); /调整为编辑专业信息状态 protected void gvMajor_RowEditing(object sender, GridViewEditEventArgs e) gvMajor.EditIndex = e.NewEditIndex; GetMajor(); (TextBox)(gvMajor.Rowse.NewEditIndex.Cells1.Controls0).ReadOnly = tru

38、e; (TextBox)(gvMajor.Rowse.NewEditIndex.Cells2.Controls0).ReadOnly = false; /编辑专业信息 protected void btEdit_Click(object sender, EventArgs e) int j = 0; for (int i = 0; i < gvMajor.Rows.Count; i+) if (CheckBox)(gvMajor.Rowsi.Cells0.Controls0).Checked) (TextBox)gvMajor.Rowsi.FindControl("tbMajo

39、r").ReadOnly = false; gvMajor.Rowsi.Cells3.Controls0.Visible = false; gvMajor.Rowsi.Cells4.Controls0.Visible = false; else j+; if (j=gvMajor.Rows.Count) Response.Write("<script>alert('请选择需要编辑的记录')</script>"); else btnDelete.Enabled = false; btnNew.Enabled = false;

40、/修改专业信息 protected void gvMajor_RowUpdating(object sender, GridViewUpdateEventArgs e) int id = Convert.ToInt32(gvMajor.DataKeyse.RowIndex.Value.ToString(); string name = (TextBox)(gvMajor.Rowse.RowIndex.Cells2.Controls0).Text; Fannie.InitSystem init = new Fannie.InitSystem(); if (init.ModifyMajor(id,

41、 name) > 0) gvMajor.EditIndex = -1; GetMajor(); Response.Write("<script>alert('修改成功')</script>"); /取消编辑专业信息 protected void gvMajor_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) gvMajor.EditIndex = -1; GetMajor(); /新增专业信息 protected void btnNew_Click(o

42、bject sender, EventArgs e) bool isnull = true; for (int i = 0; i < gvMajor.Rows.Count;i+ ) if (TextBox)gvMajor.Rowsi.FindControl("tbMajor").Text = tbNewMajor.Text) isnull = false; break; if (isnull) Fannie.InitSystem init = new Fannie.InitSystem(); init.InsetMajor(tbNewMajor.Text); GetM

43、ajor(); tbNewMajor.Text = "" else tbNewMajor.Text = "" Response.Write("<script>alert('该专业已经存在,请重新输入专业名称')</script>"); /实现全选操作 protected void cb2_CheckedChanged(object sender, EventArgs e) bool IsSelect = cb2.Checked; for (int i = 0; i < gvMajor.Ro

44、ws.Count; i+) (CheckBox)(gvMajor.Rowsi.FindControl("cbSelect").Checked = IsSelect; gvMajor.Rowsi.Cells3.Controls0.Visible =!IsSelect; gvMajor.Rowsi.Cells4.Controls0.Visible = !IsSelect; if (!IsSelect) GetMajor(); btnDelete.Enabled = !IsSelect; btnNew.Enabled = !IsSelect; btnUpdate.Enabled

45、= !IsSelect; /实现批量删除 protected void btnDelete_Click(object sender, EventArgs e) int m = 0; Fannie.InitSystem init = new Fannie.InitSystem(); for (int i = 0; i < gvMajor.Rows.Count; i+) if (CheckBox)(gvMajor.Rowsi.FindControl("cbSelect").Checked) int id = Convert.ToInt32(gvMajor.DataKeys

46、i.Value.ToString(); init.DeleteMajor(id); else m+; if (m=gvMajor.Rows.Count) Response.Write("<script>alert('请先选择需要删除的记录')</script>"); else GetMajor(); /更新专业信息后绑定 protected void btnUpdate_Click(object sender, EventArgs e) Fannie.InitSystem init = new Fannie.InitSystem();

47、 int id; string name; for (int i = 0; i < gvMajor.Rows.Count; i+) if (CheckBox)(gvMajor.Rowsi.Cells0.Controls0).Checked) id = Convert.ToInt32(gvMajor.DataKeysi.Value.ToString(); name = (TextBox)gvMajor.Rowsi.FindControl("tbMajor").Text; init.ModifyMajor(id, name); GetMajor(); btnDelete.

48、Enabled = true; btnNew.Enabled = true; /取消并绑定专业信息 protected void btnCancle_Click(object sender, EventArgs e) btnDelete.Enabled = true; btnNew.Enabled = true; btnUpdate.Enabled = true; btEdit.Enabled = true; GetMajor(); 致 谢本系统是在我系张国军副教授的精心指导及开发小组成员密切协作下完成的。首先,要感谢张国军副教授在我本科求学期间对我的帮助和指点,张老师渊博的专业知识,严谨的治学态度使我受益匪浅,没有张老师严格的要求,耐心细致的指导,本系统是不会如此顺利完成的。还要感谢教务处缪贤浩老师参与了需求分析,并给了我们一些其它方面的帮助和指点,祝存曾同学和卢璟祥同学分别完成了教师模块和学生模块的开发,还有很多参与了系统测试的同学,在这里对他们表示我诚挚的谢意!参考文献1 教育部办公厅关于加强普通高等学校毕业设计(论文)工作的通知.教高厅2021 14 号.2 樊崇艺,罗四维.毕业设计(论文)在线管理系统的设计与实现J.教育技术导刊,2021 ,(4)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论