版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
[摘要]目前通过计算机网络学习各方面知识已经成为一种很重要的趋势。该系统就是为学习特定专业知识的人提供一个网络平台,在该平台上用户可以得到最大限度的帮助,能比较直接的获得需要的资料,更重要的是该系统具有良好的交互性,在该平台上用户可以提出问题,会有人给出具体回答。该系统采用ASP.NET技术,利用C#语言在visualstudio2008平台上借助sqlserver2005进行开发,该系统使得用户可以查看课程介绍、学习教程、下载资源、网上答疑,方便用户学习和交流专业知识。[关键词]课程;数据库;网站
Abstract:Nowlearningofvariousaspectsofknowledgethroughthecomputernetworkhasbecomeanimportanttrend.Thissystemprovidesaplatformforlearners.Thenetworkplatformprovidesuserscompleteknowledgeforlearningacertainlanguageorotherspecializedknowledge.Muchmoreimportentitcanallowuserstointeractwithothers.ThissystemusesASP.nettechnology,andusesc#andvisualstudio2008asdevelopingplatform.ItusesSQLserver2005asdatabase.Thissystemallowstheusertolearnonline,atthesametimetheycandownloadlearningresourseontheplatform.Itisconvenientforuserstoexchangeandstudyspecializedknowledge.Keywords:coursewebsite;ASP.NET;sqlserver2005;visualstudio2008目录1绪论 11.1本课题的研究意义及必要性 11.2国内外发展状况 21.3开发工具与开发语言简介 2简介 21.3.2C#简介 2visualstudio2008简介 32可行性研究 4现行教学系统的调查与分析 42.2需求调查与分析 42.3精品课程网站方案介绍 5拟建目标 52.3.2系统规划及初步方案 52.3.3系统的实施方案 5环境条件可行性 5技术可行性 63系统分析 7概述 7系统分析的原则 7系统分析的方法 7精品课程网站逻辑设计 83.2.1系统目标 83.2.2流程设计 84系统设计 11概述 11系统设计目标 11系统设计的原则 11系统设计的方法 11数据库设计 12数据表的结构 12数据库选择及理由 155系统实现 16程序设计的原则 165.2核心模块实现 166综合测试 21简单功能实现 21软件测试 23日常运行和维护 24结束语 25致谢 26参考文献 27附录部分代码 281绪论1.1本课题的研究意义及必要性在人才培养中,课程具有无可替代的重要性和基础性。课程是一种文化传递,它是人类智慧的结晶,是科学、技术、经济、文化发展历史的总结,又是现代发展前沿的反映。因此,课程是学生知识、能力、素质培养的重要载体。一所学校,不能认为只要能开出课,就是在办学。学校要根据自己的目标定位和发展方向来确定要开设的课程。在一所学校里,有计划、有目标地建设成一批辐射性强、影响力大的精品课程,可以大范围地推进全校的课程建设,可以营造一种良好的学习氛围,形成良好的校园文化。开发教学网站,是推进教育更新、实现教学管理创新的主要方面。
何为精品课程,精品课程是指具有特色和一流教学水平的课程。而精品课程网站是借助网络这个平台运用其灵活的特点调动用户学习的积极性,使得用户能够得到想要学习的知识,利用精品课程网站实现交互性,使用户轻松愉快地获得专业知识,专业疑难问题得到解答。如何利用网上的资源,构建基于网络的教学模式是一个迫切需要研究的问题,因此精品课程网站应运而生。精品课程网站是一种很好的学习、交流平台,它在继承了搜索引擎的资源共享的优点的同时克服了搜索引擎盲目、费时的缺点。精品课程网站为用户提供了一个十分人性化的平台,在这个平台上用户可以足不出户而浏览某一专业知识的比较完整的架构。而使用搜索引擎就不会有这些优点,比如使用百度搜索引擎,只要输入大家想要了解知识点的相关词汇就一定能找到相关的资料。只是这种搜索资料的方法有一定的盲目性,仍如上面所说,在百度里确实能找到任何你感兴趣的相关资料,但这只是相关而已,比如说你在百度中输入关键字“”然后搜索,结果是会有76页的搜索结果,每页又有十个相关链接,也就是说要在760条相关链接中找到想要的资料,这种盲目性使得我们搜索到满意的答案费时又费力。精品课程网站是一种很好的课堂教学的辅助工具。在一个用户开始学习一种新的计算机语言时,课堂上的学习是必不可少的。于此同时注册该语言的精品课程网站用户是学好一门语言不可或缺的平台。在精品课程网站这个网络平台上可以看到相关课程的详尽信息。在课程介绍中,用户可以轻松找到要学课程的简单概述,能为用户对相关知识的学习指明方向,突出重、难点。而这些有可能会被老师忽略,或者老师讲过而你没有听清楚的情况下就会对你总体把握学习很有益处。在教师队伍中你可以比较详细的了解讲师或课程负责人的信息,在你学习中遇到难题时可以向这些老师请教。每个人的思考方式不同,你的任课老师的讲解重点的思路你可能理解不了,有可能换个老师以另外的思路讲解有可能就符合你的思维方式,也更易于理解。在教学大纲中向用户展示某一课程总体结构框架,列出课程的主要的知识点,有利于用户总体把握课程。从学习教程中,用户可以浏览专业相关知识,扩展知识面。资源下载为用户提供了很好的教学资源,供用户学习。而网上答疑更是体现了精品课程网站交互性的特点,在该项中用户可以就自己学习中遇到的问题提出来供其他用户共同思考解答,这是精品课程网站的一个十分优秀的特点,可以让用户之间相互探讨,共同进步。1.2国内外发展状况在精品课网站建设方面,国内的各大高校已经建设了很多结构新颖,界面美观的课程教学网站,其中比较突出的是清华大学的管理信息系统教学网站和南京师范大学的地理信息系统教学网站。这些网站系统的功能主要包括学习资源管理、学习交流平台(论坛、在线测试、在线答疑等)、精品课程申报材料三个主要部分。在本系统的分析与设计过程中,主要参考国内的相关网站。开发工具与开发语言简介该系统实现部分采用了ASP.NET动态网页制作技术,以visualstudio2008作为开发平台,使用C#作为开发语言,采用sqlserver2005作为数据库支持。1.3.1简介ASP.NET不是编程语言,而是一种网站开发技术。ASP.NET是使用.NET框架提供的类库构建而成的,它提供了一个WEB应用程序模型,该模型有一组控件和一个基本结构构成。有了它,WEB应用程序的构建变得非常容易。开发人员可以直接使用ASP.NET+控件集,该控件集封装了公共的、用于超文本标记语言(HTML)用户界面的各种小组件(如文本框、下拉菜单等)【1】【2】。1.3.2C#简介C#是一种开发语言,基本语法与C++类似,C#语言被称为是C++和VB的完美结合,它既具备C++语言的强大功能,又具备VB语言的快速开发特性。C#支持面向对象开发,并有.NET底层类库的支持,可以轻松创建对象。C#的开发工具visualstudio2005或visualstudio2008支持拖放式添加控件,开发人员可以轻松完成桌面布局。C#通过内置的服务,使组件可以转化为XML网络服务,这样就可以被其他程序调用,也可以被网络上其他机器的其他程序调用。实现了一次创造,重复利用的高效开发模式。C#具有自动的资源回收功能,不用再像C++一样,为程序运行中的内存管理伤脑筋[3]。1.3.3visualstudio2008简介MicrosoftVisualStudio2008专业版是一个功能强大的开发环境。它主要面向独立的专业开发人员和小型的开发团队,使他们能够开发出高性能的、丰富用户体验的分布式系统。VisualStudio2008专业版可以用来开发Web(包括ASP.NETAJAX),WindowsVista,WindowsServer2008,Office2007,SQLServer2008和WindowsMobile应用程序。开发人员能够通过可拖拽的设计器构建Windows,Web,Office,.NetFramework,SQLServer和WindowsMobile应用程序。能够在RibbonDesigner中设计OfficeRibbon,并提供Ribbon的控件。MicrosoftOfficeOutlook创建的区域够通过被引入到VisualStudio中。构建SQLServer的应用程序,可以使用MicrosoftVisualBasic或MicrosoftVisualC直接对数据库进行开发。在移动设备与应用开发中,提供了丰富的设计界面来进行MicrosoftSQLServerCompact3.5的开发。
2可行性研究可行性分析是指在当前组织内部的具体环境和现有条件下,分析精品课网站系统的研制工作是否具备必要的资源及其他条件的工作。可行性分析的目的在于用最小的代价在尽可能短的时间内确定问题是否能够解决,是否值得解决,确定用户提出建立的计算机系统的要求是否合理,是否可行。现行教学系统的调查与分析虽然计算机课程组已经准备了大量的教学文件,但是并没有形成一个真正意义上的网上教学系统,所以存在以下几个问题急需解决:1.计算机资源不能有效的对外开放由于现行的教学材料以书面文档的形式保存,他们中的大多数被束之高阁,没有充分发挥其在教学中的作用。上级教育机构或学生一般需要通过借阅、复印等方式获得精品课材料,不仅很效率低,而且也会导致材料的丢失损坏。2.计算机资源不能得到有效使用目前的计算机资源主要是为了参加上级教育机构的精品课评审活动而准备的,用户范围较小。再加上普通学生很难获取这些资源,它们可能在活动结束后就被弃置,十分可惜。除此以外,校外的相关组织(比如用人单位)和个人(比如想报考该专业的学生)也很少能了解到学校计算机专业教学上的成果和师生的研究成果。3.教师与学生间没有有效的交流工具当前的计算机专业系统的设计完全没有考虑到建立师生间交流平台的任务。学生如果遇到了疑问只能依靠和电子邮件向教师请教。但是,学生的问题往往具有共性,而教师又常常需要向每个学生发布内容相同的信息,这种一对一的交流方式在这种情况下显然没有什么效率。不仅如此,这个缺陷还使教师难以了解学生的进度,在制定教学计划时容易忽略学生的接受情况。4.学生在系统中处于被动地位只有在教师从资源库中取出信息之后,学生才能使用所需的资源。而且,学生的作品和论文只能存入不能取出,他们因为看不到反馈信息而学习热情下降。需求调查与分析该系统是集课程介绍、教师介绍、教学大纲、教学资料、资料下载、网上答疑为一体的精品课网站教学系统。根据对目前系统硬件配置情况调查,系统虽然无法满足用户的全部需求,但大部分功能是可以实现的。2.3精品课程网站方案介绍拟建目标简要描述:精品课程网站是以浏览器/服务器(B/S)为架构,为学生、教师提供计算机专业相关知识技能的网站。它将使用数据库技术与网络技术,使计算机资源的使用效率得到很大提高,并为师生提供交流平台。精品课程网站优越性:在以上叙述中可以看出精品课程网站性能与功能上的优势,首先,精品课程网站利用了计算机网络和数据库两项先进技术,比原先完全依靠课堂教学更有效率。其次,精品课程网站提供了一系列诸如资源下载、网上答疑此类的新功能,学生和教师可以通过访问网站来进行交流。2.3.2系统规划及初步方案该系统总体由七个子系统组成:用户管理子系统;课程介绍子系统;学习资料浏览子系统;课程教案子系统;答疑子系统;资源下载子系统;网站配置子系统。系统中的资料组织将参照用户的需求设计。2.3.3系统的实施方案根据用户的需要,精品课网站系统的实施是分两阶段实现的:在第一阶段利用结构化生命周期法建立一个满足近期目标的静态精品课网站,主要用于提供精品课课程介绍、教学大纲等精品课程资料,为下一阶段系统的开发做好准备工作。在第二阶段建立一个精品课网站管理系统,主要实现三个目标:(1)提供一个支持学习交流论坛、在线答疑等的师生互动平台;(2)提供课本、讲义等学习资料的下载和在线阅读功能。(3)建立网站后台管理系统,以便管理员及时、方便的更新网站资源。网站主要使用C#为开发语言,SQLSERVER2005为数据库管理系统。该系统开发的软件为精品课程网站的服务器端软件,由于学生与教师十分需要一个网络化的交流平台,该软件设计完成后可用于展示该专业的教学成果和提供互动教学服务。目前我国政府对高等教育的质量十分重视,外加教育机构间的生源竞争日趋激烈,许多高等院校都引入了类似的教学网站,利用网络与多媒体开展远程培训。但本系统完全独立开发,力求使系统功能简洁明了,齐全且易于操作。各个高校对开发精品课网站系统非常重视,为该系统的开发提供了前提条件。目前,学校的专用机房,微机设备数量质量都达到能实现信息化管理的要求,拥有系统运行的硬件环境。导师非常支持该精品课程网站的开发,这为开发工作的顺利进行提供了必要的保障。技术可行性目前信息技术和计算机软硬件发展已经完全可以满足本系统的技术要求,开发和维护工作由专业维护人员承担。就目前使用的开发技术来说,采用十分流行的面向对象程序设计语言C#开发,使用sqlserver2005作为数据库的支持,应用visualstudio2008作为开发平台,使用ASP.NET技术设计网站,这些技术都以十分成熟,而且相对来说简单易懂,可以边学边做。因此,从技术上来说该精品课程网站开发方案是可行的。
3系统分析概述本文的系统分析模块从系统分析的原则和系统分析的方法两个方面描述。系统分析的原则是指系统分析过程中的指导思想,系统分析的方法是指系统分析过程中所采用的方法。在对精品课网站管理信息系统进行系统分析的过程中,我始终坚持以这样几条原则为指导思想。1.逻辑设计与物理设计分开的原则逻辑设计与物理设计分开是结构化方法的特点之一,在系统分析阶段集中力量于逻辑设计,保证了系统的合理性和最佳性。2.面向用户的原则在结构化方法中强调用户至上的原则,用户是精品课程网站开发的起源和最终归宿。新系统的逻辑模型是否满足用户的需求是系统开发所面临的重要问题。因此,我始终坚持在系统分析阶段用户和开发人员的沟通质量,不断争求用户意见,并把共同的理解明确表达出来[4]。3.结构化分析的原则结构化分析与设计方法的基本思想是用系统的思想,系统工程的方法,按结构化,模块化,自顶向下的对精品课程网站系统进行分析与设计,以抽象和分解为手段,对系统进行自顶向下的逐层分解,逐步细分,逐步求精,从而达到易于理解的目的。在分析过程中首先站在整体的角度,将各项业务放到整体去考察,保证全局的正确性,然后再逐层向下深入研究。系统分析的方法首先,以自顶向下的系统分析思想对整个系统的业务流程进行详细的分析。在总体规划时所做的初步调查只是为了总体规划和进行可行性分析的需要,相对来说是比较粗糙的。现在,则应在初步调查的基础上,进一步收集和了解、分析用户需求,并用业务流程图表达出来。第二,抽取数据流程,建立新系统的逻辑模型。逻辑模型是指仅在逻辑上确定的目标系统模型,而不涉及具体的物理实现,也就是要解决系统“干什么”,而不是“如何干”。逻辑模型由数据流程图表示。用户通过逻辑模型了解未来目标系统,通过调查用户满意程度修改系统[5]。第三,利用数据字典对新系统的各个成分进行补充说明,数据立即存取分析图描述用户对新系统的各项数据请求。本文中对精品课程网站的逻辑设计包括系统目标和流程设计两个方面。3.2.1系统目标新的精品课网站系统是一个为使用户更全面学习专业知识而开发的网站。该网站有两种角色普通用户和管理员,用户登录网站后可以浏览课程介绍、教学大纲、教师队伍、效果评价等学习资料,用户还可以根据自己的需要下载学习资源,此外网站很重要的一个功能是可以实现网上答疑,可以促进用户之间的交流。作为网站的管理员承担着管理网站后台的职责,管理员有管理用户信息、课程介绍、教学大纲、学习资源、效果评价、资源下载、网站配置七项管理权限。流程设计通过对精品课程网站业务需求的详细调查,该系统的主要业务按照所涉及的数据存储或存档可以分为教师记录管理、答疑记录管理、下载资源管理、系统用户管理四大类,而按照功能可以分为用户信息服务、管理员信息管理、资源管理三个子系统。为了更清晰的描述该系统的业务流程,本文选择以子系统为单元由上至下的进行业务分析。精品课网站系统的三个子系统之间的业务关系如下图3.1所示:1.用户信息服务子系统处理用户的个人信息,并向用户提供学习资料。2.管理员信息管理子系统为管理员专用,主要用于管理用户记录、教师记录以及学习答疑等网站后台提交的记录。3.资源管理子系统是管理员专用,主要作用是管理讲义等学习资源。用户信息服务子系统的详细业务流程如图所示描述了用户登录、用户寻找遗忘密码、浏览教学资源、资源下载、网上答疑、查看回复六个业务功能。其中资源下载、提问问题、查看回复都需要用户先登录。管理员信息管理子系统是精品课网站后台的一部分,如图所示:这个子系统包括八个业务处理。其中,用户管理是用户信息管理业务的基础,因为系统的用户记录是精品课程网站的主体。网上答疑管理业务指的是管理员查看和整理网站上的发言以及添加回复,或整理系统保存的答疑记录。资源管理主要包括一压缩包的形式添加课程资源。网站配置主要包括修改网站姓名、网站顶部图像以及该网站的超链接。另外包括课程介绍、课程大纲、课程评价、学习资料业务分别实现对课程介绍、课程大纲、课程评价、学习资料的管理。用户用户输入用户信息名、名、是用户?否是从新登陆是管理员?是管理后台资源注销否查看资料注销图3.1精品课程网站顶层业务流程图普通用户普通用户登录修改密码输入新密码修改完成是否浏览或下载资源注销管理员管理员登录信息验证否是管理后台各种资源注销
4系统设计概述经过需求分析阶段的工作,精品课网站系统需要“做什么”已经清楚了,本文中将具体介绍系统的实施办法,解决“怎么做”的问题。主要内容包括:系统设计的原则与目标、系统总体结构设计、数据库设计、用户界面设计和系统安全保密设计。系统设计目标精品课网站系统的设计目标包括:理清精品课网站的功能和工作流程,确定用户对开发的软件系统的功能需求和性能需求,并将这些需求用规范化的语言和规范化的结构表达清楚,以此统一软件开发者和用户对精品课网站系统的理解和认识。从用户的观点看,本系统设计旨在达到以下目标:1.及时地处理信息。如:能在规定的时间范围内保存、增加、修改一些数据。2.能准确地提供信息。如:查询时,要提供比手工查询更准确、详实的信息。3.能高效率地处理传递信息。如:能快速处理信息并将其传递给需要的用户。4.能实现数据共享,保证信息透明度。从设计人员的技术观点看,本系统设计旨在达到以下目标:安全性。系统应具备安全保护措施。2.具有较高的可靠性。系统应具备备份和恢复功能。3.有较高的运行效率。要比人工系统管理高出很多。系统设计的原则在系统设计中我主要使用了模块间的耦合原则和模块内聚性原则。首先,坚持耦合原则。在设计中模块耦合程度越低,模块之间的联系就越少,在对一个模块进行修改和维护时,对其他模块的影响程度就越少,系统可修改性就越高。所以,我在系统设计的过程中将模块之间的耦合程度减少到最低的程度,使用简单耦合和数据耦合。其次,保证模块内的内聚性强度。内聚性是度量模块功能强度的一个相对指标,主要表现在模块内部各组成部分为了执行处理功能而组合在一起的相关程度,即组合强度。在系统设计的过程中,确保每个模块的组合强度为功能组合或顺序组合。系统设计的方法本系统的结构是自顶向下扩展的,层次化暗盒模块结构。对高层模块,采用以事务为中心的设计策略,将一个大的复杂的系统逐步分解为小的相对简单的暗盒模块;对低层模块,采用以变换为中心的策略。此外,为了提高模块的内聚性,降低模块间的耦合度,把数据库设计作为模块间的通信管道,从而既实现了数据共享又提高了模块的独立性,使系统具有很高的可修改性[4]。数据库设计数据表的结构由于表是关系数据库中数据管理的基础,对表的设计是本系统数据库设计的重要组成部分。为了保证资料的合理性和高效性,始终坚持以下原则:1.把所有数据元素组织到表中。2.为表中的记录设计关键词。[6]。(1)用户信息表表名:Member表4.1用户信息表字段名称数据类型字段长度备注MemberIdint4用户号Numbervarchar80登录号PassWordvarchar80登录密码Namevarchar80登用户名Picturevarchar80用户头像BornDatevarchar20用户生日Sexvarchar2用户性别Emailverchar80邮箱Phoneverchar30号码Addressverchar255住址CreateDateverchar20注册日期LastDateverchar20上次登录日期Levelint4级别(2)学习资料表表名:Article,在该表中保存了学习资料信息,数据表结构如所示表学习资料表字段名称数据类型字段长度备注ArticleIdint4文章编号TypeIdint4文章类型Titleverchar80文章标题Contenttext16文章内容CreateDateverchar20发表日期Hitsint4浏览次数(3)文章类型表表名:ArticleType,在该表中保存了学习资料类型信息,数据表结构如4.3所示表文章类型表字段名称数据类型字段长度备注TypeIdint4文章类型号Nameverchar80文章类型名Descntext16文章类型描述(4)网站配置表表名:Config,在该表中保存了网站配置信息,数据表结构如4.4所示表网站配置表字段名称数据类型字段长度备注ConfigIdint4配置编码Logoverchar255网站图像Titleverchar80网站标题CopeRriteverchar255网站版权(5)效果评价表表名:Evaluate,在该表中保存了效果评价信息,数据表结构如4.5所示表4.5效果评价表字段名称数据类型字段长度备注EvaluateIdint4评价号码TypeIdint4评价类型Titleverchar80评价标题Contenttext16评价内容(6)效果评价类型表表名:EvaluateType,在该表中保存了效果评价类型信息,数据表结构如4.6所示表4.6效果评价类型表字段名称数据类型字段长度备注TypeIdint4评价类型号Nameverchar80评价类型名Descntext16评价类型描述(7)答疑信息表表名:Faq,在该表中保存了网上答疑信息,数据表结构如4.7所示表4.7答疑信息表字段名称数据类型字段长度备注FaqIdint4答疑编号MemberIdint4答疑类型Titleverchar80答疑标题Contenttext16答疑内容CreateDateverchar20发表答疑日期(8)答疑回复表表名:FaqReply,在该表中保存了网上答疑回复信息,数据表结构如4.8所示表4.8答疑回复表字段名称数据类型字段长度备注TypeIdint4回复号Nameverchar80答疑名Descntext16答疑内容(9)网站链接表表名:Link,在该表中保存了网站链接信息,数据表结构如4.9所示图4.9网站连接表字段名称数据类型字段长度备注LingkIdint4链接号Nameverchar80链接名Pathverchar255链接路径(10)网站资源表表名:Resource,在该表中保存了网站可下载资源信息,数据表结构如4.10所示图网站资源表字段名称数据类型字段长度备注ResourceIdint4资源号TypeIdint4资源类型号Titleverchar80资源标题Icoverchar255资源小图标Pictureverchar255资源大图标Sizeverchar255资源大小Pathverchar255上传路径Descntext16资源描述CreateDateverchar20上传日期Counterint4下载次数(11)教师信息表表名:Teacher,在该表中保存了教师队伍信息,数据表结构如4.11所示图4.11教师信息表字段名称数据类型字段长度备注TeacherIdint4教师号Nameverchar80姓名Pictureverchar80头像BornDateverchar20生日Sexverchar2性别Degreeverchar80学位Titleverchar80职称Postverchar80职务Emailverchar80邮箱地址Phoneverchar30号码Addressverchar255家庭住址Researchverchar255研究方向Descntext16教师描述Levelint4教师级别数据库选择及理由目前常用的数据库分为超大型、中型和小型数据库三类。其中SQLServer2005属于超大型的数据库,它能够为超大型系统所需的数据库提供服务。并且它的安全性能很强,当大型服务器上同时有成千上万的用户连接到SQLServer2005实例时,SQLServer2005可以为这些环境提供保护,它具有自己的安全保护措施。除此之外,SQLServer2005还具有使用方便、可伸缩性好与相关软件集成度高等优点[4]。
5系统实现程序设计的原则1.程序设计中的一致性本系统的程序变量和程序对象以及数据库表等在各个模块中具有一致的命名规则。程序中变量命名时做到见名知意,大小写混用。比如说变量教师号在各文件中统一命名为teacherId.这就为系统的快速开发及以后的维护都带来方便。2.程序设计中的可重用性一个程序设计中的可重用性可大大提高程序开发维护的效率。通过对控件和函数的调用,对象的继承封装,减少了代码的重复书写,并减少了数据冗余。3.程序设计中的可维护性在程序设计中,考虑到程序的修改及以后的维护,尽量在代码中使用了注释,对部分程序尽量使用函数和控件,这样就维护很少的代码且具简单性,可提高维护效率。5.2核心模块实现(1)上传主要代码介绍protectedResourceInfoGetInfo(){ResourceInforesourceInfo=newResourceInfo();//定义ResourceInfo类的一个对象resourceInforesourceInfo.TypeId=int.Parse(TypeList.SelectedValue);//读取添加资源页面的资源类型,并强制转化为int类型,//赋给resourceInfo的TypeId属性resourceInfo.Title=TitleText.Text.Trim();//读取添加资源页面的资源标题,赋给resourceInfo的Title属性resourceInfo.Descn=Descn.Value;//读取添加资源页面的资源描述,赋给resourceInfo对象的Descn属性resourceInfo.CreateDate=DateTime.Now.ToString("yyyy-MM-ddh:m:s");//获取当前时间,赋给resourceInfo对象的CreateDate属性,//作为资源的上传时间resourceInfo.Counter=0;//资源下载次数stringvisualIcoPath="~/Resource/Ico/default.gif";//资源小图标的默认路径stringvisualPicturePath="~/Resource/Picture/default.gif";//资源大图标的默认路径if(IcoUpload.PostedFile.ContentLength>0){visualIcoPath="~/Resource/Ico/"+DateTime.Now.ToString("yyyyMMddhms")+"."+IcoUpload.FileName.Split('.').Last();//获取资源小图标的虚拟路径IcoUpload.PostedFile.SaveAs(Server.MapPath(visualIcoPath));//保存资源小图标}if(PictureUpload.PostedFile.ContentLength>0){visualPicturePath="~/Resource/Picture/"+DateTime.Now.ToString("yyyyMMddhms")+"."+PictureUpload.FileName.Split('.').Last();//获取资源大图标的虚拟路径PictureUpload.PostedFile.SaveAs(Server.MapPath(visualPicturePath));//保存资源大图标}if(FileUpload.PostedFile.ContentLength>0){String("yyyyMMddhms")+"."+FileUpload.FileName.Split('.').Last();//获取资源虚拟路径resourceInfo.Path=visualFilePath;//将资源虚拟路径visualFilePath赋给resourceInfo对象的Path属性resourceInfo.Size=FileUpload.PostedFile.ContentLength.ToString();//获取资源内容的大小,赋给resourceInfo对象的Size属性FileUpload.PostedFile.SaveAs(Server.MapPath(visualFilePath));//保存资源}resourceInfo.Ico=visualIcoPath;//修改资源小图标虚拟路径,否则为默认路径resourceInfo.Picture=visualPicturePath;//修改资源大图标虚拟路径,否则为默认路径returnresourceInfo;//返回resourceInfo对象}protectedvoidAddData_Click(objectsender,EventArgse)//添加资源按钮的Click事件{if(FileUpload.PostedFile.ContentLength>0){stringtype=FileUpload.FileName.Split('.').Last();if(type!="rar"&&type!="zip"){Page.ClientScript.RegisterStartupScript(Page.GetType(),"Fail","alert('请将文件压缩后再上传!');",true);}else{Resource.InsertRecord(GetInfo());//将函数GetInfo()的返回值resourceInfo对象//作为一条记录插入数据库Response.Redirect("~/Admin/Admin_Resource.aspx");}}(2)下载主要代码介绍privatevoidFileDownload(stringfName,stringpath){longlngFileSize;byte[]bytBuffer;intiReading;stringsFileName=Server.MapPath(path+fName);//将资源的虚拟路径映射到资源的物理路径StreamoutStream=Response.OutputStream;//获取将响应OutputStream的对象outStreamResponse.ContentType="application/octet-stream";//定义MIME协议ContentType类的标头为application/octet-streamResponse.AppendHeader("Connection","keep-alive");//要追加值为keep-alive的HTTP的标头名称为ConnectionResponse.AppendHeader("Content-Disposition","attachment;filename="+fName);//要追加值为fName的HTTP的标头名称为Content-DispositionFileStreamfStream=newFileStream(sFileName,FileMode.OpenOrCreate,FileAccess.Read);//定义一个新的名为fStream的文件流对象,该对象的相对//路径为sFileName,如果文件存在的话直接将文件打开执//行读操作,如果文件不存在,则创建该文件lngFileSize=fStream.Length;//读取文件长度属性bytBuffer=newbyte[(int)lngFileSize];//将文件长度转化为字节while((iReading=fStream.Read(bytBuffer,0,(int)lngFileSize))>0)//判断从当前文件流中读取到bytBuffer中的lngFileSize大小的字节流非空{outStream.Write(bytBuffer,0,iReading);//在outStream流的尾部写入iReading字节数的bytBuffer内容}fStream.Close();//操作完成,关闭文件流outStream.Close();//操作完成,关闭输出流}protectedvoidImageButton1_Click(objectsender,ImageClickEventArgse){if(!String.IsNullOrEmpty(Request.QueryString["resourceId"])&&Session["Number"]!=null)//判断资源是否存在,以及判断用户是否登录{intresourceId=int.Parse(Request.QueryString["resourceId"].ToString());//获取资源类型号stringpath=Resource.SelectRecordByID(resourceId).Path;//获取文件路径Resource.UpdateCounter(resourceId);//更新下载次数Response.Redirect(path);//根据资源路径进入下载页面}elsePage.ClientScript.RegisterStartupScript(Page.GetType(),"Fail","alert('请先登录!');",true);//提醒用户登录}
6综合测试简单功能实现(1)网站首页用户首先进入的是网站首页,用户登录之后,可以查看课程介绍、教师队伍、教学大纲、学习资料、效果评价,可以下载网站上的资源,还可以通过网上答疑发出提问。网站首页界面如图6.1所示。图网站首页(2)后台登录界面精品课程网站的后台管理是网站管理员的职责,管理员要管理网站首先要登录网站的后台,网站后台登录页面如图6.2所示。后台登录界面(3)后台首页管理员登录后台之后,网页自动跳转到精品课程后台管理首页,在后台首页管理员可以实现首页所示的对用户管理、课程介绍、课程大纲、效果评价、学习资料、资源管理、答疑管理、网站配置八项的管理,另外还有操作分类一栏,实现对操作的分类,后台管理的所有操作可以分为三类:添加操作、分类管理操作、编辑操作。管理员可以直接通过进入操作分类选择要进行的操作,比通过各项管理进行操作方便快捷。后台首页如图6.3所示。后台首页(4)用户管理界面由管理员负责用户管理功能,用户管理操作包括添加用户、批量添加用户、添加教师、编辑教师四项功能。添加用户实现添加单个用户,批量添加用户实现多个用户同时添加,而添加信息要放在EXCEL表格中。添加教师功能同添加用户功能类似,教师分两个级别:讲师和课程负责人。编辑教师实现对教师信息的修改。用户管理界面如图6.4所示。图用户管理软件测试在这个阶段,主要检查模块接口、数据结构、重要执行回路和边界条件五项内容,共发现如下几处错误和不够完善的地方:1.在添加评价操作中,选择评价分类时可选项是ASP.NET大纲和C语言大纲,此处发生错误,因为可选项应该是评价的分类,而不是大纲分类。经过查看程序发现添加评价文件里的下拉列表框TypeList控件的数据源应该是EvaluateType.SelectRecordAll(),而文件里错写成了PlanType.SelectAll()。2.在打开网站首页时,首页上的课程介绍显示了第一篇课程介绍的全部内容,使得页面外观杂乱无章,特别是当第一篇介绍很长时,首页就变成了畸形页,这是一处不太完善大地方,查看首页程序发现这一部分的课程介绍是一个HyperLink控件,该控件的text值是Intro.SelectRecordAll().First().content,即第一篇介绍的全部内容。把此处的text设为空,同时添加一个LinkButton同样可以实现跳转到课程介绍的功能,同时又兼顾了页面的美观。3.在下载资源时发现,用户不登陆的情况下同样可以下载,这是不符合正规网站的运行规则的。在下载按钮的单击事件中加了一条语句判定当前的session对象中的用户号是否为空,为空说明用户还没登陆,此时禁止下载继续,提醒用户登录。日常运行和维护日常运行中,应做好数据的录入和备份。此外,还要注意机房设备、文档资料及各种规章制度的建立完善。具体地说,系统维护包括了硬件设备的维护、应用软件的维护和数据的维护。
结束语精品课程网站设计结束,现对网站做一下简单概括。该网站名为精品课程网站,网站里有两种角色:管理员和用户。管理员负责网站后台管理,用户登录网站后可以分享网站上的各种资源,具体的前面已介绍,此处不再赘述。尽管本系统存在着很多不足,但该网站能够实现精品课程网站应有的基本功能、界面友好易于用户操作、网站角色分的清晰明了。如果用户的硬件与软件配置日后能有所提高,系统的功能可以得到进一步扩充。通过对精品课网站开发工作的全程参与,全面了解了系统分析设计的流程,深刻感受到了分析设计质量对系统实施阶段工作效率的重要影响。除此以外,学会了如何在系统建设的不同阶段用不同的方式与用户沟通,发现系统存在的问题与潜藏的用户需求。从计算机技能的角度来看,这次系统开发的经历不仅学会了一门新的语言,还体会到了网络与数据库对信息系统发展的重大意义。设计即将结束,有很多感想在此做一下总结,首先这是毕业设计,它标志着大学生活接近尾声。同时它也是第一次接触到的完整的软件设计。在这个过程中学到了很多专业知识,比如说第一次接触ASP.NET网站设计技术,加深了对以前学习的C#编程语言的理解和应用。此外还亲身体验到了软件设计过程中需求分析和可行性分析的重要性。对于这次设计来说还得到了一些与专业知识无关但又很重要的东西,那就是通过这次设计发现在大学生活里的学习有很多不足和缺陷,面对这些不足和缺陷需要好好思考自己以后的学习生涯,现在的社会是一个知识更新很快的社会。需要不断的学习才能不被社会淘汰,现在应该好好思考一下给自己确定一个计算机应用方面学习的方向。不能像现在一样什么课都上没一门学的都很肤浅,不能像现在一样漫无目的的学习。总之,通过此次的设计收获很多。
致谢四年的大学学习生活结束了,感谢烟台大学文经学院给了我们理论学习和提高的机会,感谢所有教过我的老师们,正是各位老师的孜孜不倦的教诲让我不仅学到了计算机的专业知识,还让我学到了很多做人的道理,这些让我终身受益。从开题到论文即将定稿,这其中有许多苦苦探索的艰辛,也有许多豁然开朗的喜悦。论文能在较短的时间内顺利完成,除了自己的努力外,更重要的是得到了导师的悉心指导和朋友、同学的热心帮助。感谢我的导师王创存老师,从毕业设计开始到现在王老师给过我很多指导,王老师尽最大努力帮助我们让我们很感动,借此机会向王老师说一声:老师,您辛苦了,谢谢您,能跟您做毕业设计是我的荣幸。同时,王老师学识渊博、治学严谨、仁爱谦和的作风也给人留下了深刻记忆。在文章的写作过程中,感谢王老师给予的指点和帮助,在此再次向王老师表示衷心的感谢。感谢设计过程中所有帮助过我的同学,谢谢你们。
参考文献[1]ChrisHart,入门经典北京:清华大学出版社2006,8[2]陈冠军,.精通ASP.NET2.0典型模块设计与实现.北京:人民邮电出版社,2007.[3]王永皎.VisualC#2005+SQLServer2005数据库开发与实例.北京:清华大学出版社,2008.[4]史济民,顾春华,李昌武,苑荣,软件工程-原理、方法与应用.高等教育出版社,2002[5]马军,.精通ASP.NET2.0网络应用系统开发.北京:人民邮电出版社,2007.[6]陈伟编著《SQLServer2005数据库应用与开发教程》北京:清华大学出版社,2007
附录部分代码定义公共接口ITeacherpublicinterfaceITeacher{IEnumerable<TeacherInfo>SelectRecordAll();//定义查询数据表中所有记录的空函数TeacherInfoSelectRecordByID(intteacherId);//定义按教师号查询教师信息的空函数TeacherInfoSelectRecordByName(stringName);//定义按教师名字查询教师信息的空函数voidInsertRecord(TeacherInfoteacherInfo);//定义将一条教师记录插入表的空函数voidUpdateRecord(TeacherInfoteacherInfo);//定义更新教师记录的空函数voidDeleteRecord(intteacherId);//定义删除教师记录的空函数}2.定义命名空间DAL,定义Teacher类,该类继承自ITeacher接口{publicclassTeacher:ITeacher{PrivateDBLinqDataContextobjDataContext=newDBLinqDataContext();//创建DBLinqDataContext的私有对象objDataContext用于运行数据库的//存储过程或函数publicIEnumerable<TeacherInfo>SelectRecordAll()//具体定义查询数据库中所有教师信息记录的函数{try{orderbyc.TeacherIddescendingselectc;//返回所有教师记录,并以教师号递减的形式返回}catch(Exceptionex){throwex;}}publicTeacherInfoSelectRecordByID(intteacherId)//具体定义按教师号查询教师记录的函数{try{wherec.TeacherId==teacherIdselectc).SingleOrDefault<TeacherInfo>();}catch(Exceptionex){throwex;}}publicTeacherInfoSelectRecordByName(stringName)//具体定义按教师名查询教师记录的函数{try{wherec.Name==Nameselectc).SingleOrDefault<TeacherInfo>();}catch(Exceptionex){throwex;}}publicvoidInsertRecord(TeacherInfoteacherInfo)//具体定义将一条教师记录插入教师表中的函数{try{objDataContext.TeacherInfo.InsertOnSubmit(teacherInfo);objDataContext.SubmitChanges();}catch(Exceptionex){throwex;}}publicvoidUpdateRecord(TeacherInfoteacherInfo)//具体定义更新教师记录的函数{try{selectc).SingleOrDefault<TeacherInfo>();//定义变量querySql为教师表中教师号为TeacherId的教师记录querySql.Name=teacherInfo.Name;//用新的教师名覆盖数据库中原来教师名querySql.Address=teacherInfo.Address;//用新的住址覆盖数据库中原来住址querySql.BornDate=teacherInfo.BornDate;//用新的生日覆盖数据库中原来生日querySql.Degree=teacherInfo.Degree;//用新的学历覆盖数据库中原来学历querySql.Descn=teacherInfo.Descn;//用新的描述覆盖数据库中原来描述querySql.Email=teacherInfo.Email;//用新的邮箱地址覆盖数据库中原来邮箱地址querySql.Level=teacherInfo.Level;//用新的级别覆盖原来级别querySql.Phone=teacherInfo.Phone;//用新的号覆盖原来号querySql.Picture=teacherInfo.Picture;//用新的图片覆盖原来图片querySql.Post=teacherInfo.Post;//用新的职务覆盖原来职务querySql.Research=teacherInfo.Research;//用新的研究方向覆盖数据库中原来研究方向querySql.Sex=teacherInfo.Sex;//用新的性别覆盖数据库中原来性别querySql.Title=teacherInfo.Title;//用新的职称覆盖数据库中原来职称objDataContext.SubmitChanges();//提交更改后教师信息}catch(Exceptionex){throwex;}}3.定义Teacher类,该类使用上面定义的命名空间DALpublicclassTeacher{privatestaticreadonlyITeacherdal=DataAccess.CreateTeacher();//定义dal为Teacher表的一个对象publicstaticIEnumerable<TeacherInfo>SelectRecordAll(){returndal.SelectRecordAll();//返回表中所有记录}publicstaticIEnumerable<TeacherInfo>SelectRecordByID(intteacherId){varrecordAll=dal.SelectRecordAll();returnfromcinrecordAllwherec.TeacherId==teacherIdselectc;//返回dal表中教师号为teacherId的教师记录}publicstaticIEnumerable<TeacherInfo>SelectRecordByLevel(intlevel){varrecordAll=dal.SelectRecordAll();returnfromcinrecordAllwherec.Level==levelselectc;//返回dal表中级别为level的教师记录}publicstaticIEnumerable<TeacherInfo>SelectRecordByName(stringName){varrecordAll=dal.SelectRecordAll();returnfromcinrecordAllwherec.Name==Nameselectc;//返回dal表中名字为Name的教师记录}publicstaticvoidInsertRecord(TeacherInfoteacherInfo){dal.InsertRecord(teacherInfo);//将一条教师信息记录teacherInfo插入到dal表中}publicstaticvoidUpdateRecord(TeacherInfoteacherInfo){dal.UpdateRecord(teacherInfo);//实现一条教师信息记录teacherInfo的修改}publicstaticvoidDeleteRecord(intteacherId){dal.DeleteRecord(teacherId);//删除教师号为teacherId的教师信息}}4.网站前台教师队伍中用于显示教师信息的文件{protectedvoidPage_Load(objectsender,EventArgse){if(!Page.IsPostBack){BindTeacher();//不是为响应客户端回发而加载该页的情况下运行函数//BindTeacher()}}protectedvoidBindTeacher(){TeacherShow.DataSource=Teacher.SelectRecordByLevel(0);//TeacherShow为Repeater控件,该控件的数据源是教师表中//级别为0的记录TeacherShow.DataBind();//执行控件的绑定if(!String.IsNullOrEmpty(Request.QueryString["teacherId"])){IntteacherId=int.Parse(Request.QueryString["teacherId"].ToString());//将数据库中的teacherId强制类型转换为整形,//并赋给整形变量teacherIdTeacherShow.DataSource=Teacher.SelectRecordByID(teacherI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 16281:2025 EN Rolling bearings - Methods for calculating the modified reference rating life for universally loaded rolling bearings
- 箱子材料成型课程设计
- 生物数字化课程设计
- 公司薪酬福利管理制度
- 发展集团财务管理管控规章制度汇编
- 研究生幼儿游戏课程设计
- 继电器电路控制课程设计
- 住院部护理工作总结
- 泰拳系统课程设计案例
- 2025年高考历史一轮复习之经济发展与社会进步
- 委托招生协议书范本2025年
- 2024-2025学年上学期深圳初中地理七年级期末模拟卷3
- 中国当代文学专题-003-国开机考复习资料
- 期末测试卷-2024-2025学年外研版(一起)英语六年级上册(含答案含听力原文无音频)
- 上海市浦东新区2023-2024学年一年级上学期期末考试数学试题
- 中国马克思主义与当代思考题(附答案)
- 教师教学质量评估表(学生用)
- 2022年自考4月英语真题带解析
- 京东价值链分析PPT课件
- 客情关系的建立与维护
- 化工原理课程设计-精馏塔
评论
0/150
提交评论