我的实验教学管理系统毕业设计模板_第1页
我的实验教学管理系统毕业设计模板_第2页
我的实验教学管理系统毕业设计模板_第3页
我的实验教学管理系统毕业设计模板_第4页
我的实验教学管理系统毕业设计模板_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

年4月19日我的实验教学管理系统毕业设计文档仅供参考湖南工学院专科毕业论文()题目基于ASP.NET的教学管理系统的设计与实现学院湖南工学院专业计算机科学与技术班级计应0702学号学生姓名许静指导教师刘君完成日期6月诚信承诺我谨在此承诺:本人所写的毕业论文《基于ASP.NET的教学管理系统的设计与实现》均系本人独立完成,没有抄袭行为,凡涉及其它作者的观点和材料,均作了注释,若有不实,后果由本人承担。承诺人(签名):许静6月14日

摘要随着信息技术在管理上越来越广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的系统,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。本文介绍了在ASP.NET环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。经过分析某一学校教学管理的不足,创立了一套行之有效的计算机管理学生的方案。文章介绍了教学管理信息系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统的功能分为:系统管理模块、班级管理模块、学生资料管理模块、作业管理模块;系统实现部分说明了几个主要模块的算法。本系统界面友好,操作简单,比较实用。关键字:管理信息系统;教学管理;ASP.NET应用

ABSTRACTWithmoreandmorewidespreadandprofoundapplicationofinformationtechnologyinmanagement,theimplementofmanagementinformationsystemhasbecomematureintechnologystepbystep.Managinginformationsystemisanewsubject.Enterpriseneedsexistenceanddevelopment,soenterpriseactivitiesshouldbeorganizedefficientlyandorganically,whichmeanstighteninguptheenterprisemanagementandstrengtheningeffectivemanagementofanyresourceinternaltheenterprise,andalsoestablishingamanagementinformationsystemfittinginwithitsowncharacteristics.Thisarticleintroducesthedetailedprocessofexploringamanagementinformationsystemundertheenvironmentofvisual,utilizing“Top-Bottom”overallplanandastrategyaccordingto“Bottom-Top”applicationandexploitation.Thatistoestablishasetofeffectiveschemeforstudentmanagementbycomputer,throughanalyzingdisadvantagesofstudentmanagementbyhumanresources.Thisarticleemphasizesonthreesections.Thesystemanalysissectionofstudentmanagementinformationincludesfeasibleanalysis,managementfunction.Thesystemdesignsectionmainlyfocusesonsystemfunctiondesignanddatabasedesignanddatanumberdesign.Andthesystemrealizationsectionhasprovidedseveralmajorfunctions,togetherwiththemainwindowsandprograms.ThefunctionoftheSystem:SystemManagementModuleandclassManagementModuleandStudentfilesManagementModuleandExerciseManagementModule.Thiseconomicalandpragmaticsystemhasexplicitinterface,withsimpleoperation.Keywords:MIS;studentmanagement;ASP.NETapplication目录1引言 12技术简介 22.1HTML语言 22.2IIS 22.3Session对象 42.4ASP.NET的控件和窗体 52.4.1Activex控件 62.4.2Toolbar工具条控件 72.4.3协调菜单和工具栏的外观 82.4.4窗体设置 82.5CSS样式表 92.5.1层叠样式表的特点 92.5.2添加层叠样式表的方法 102.5.3层叠样式表的格式 112.5.4层叠样式表的分类 122.5.5层叠样式表的伪类 123系统概述 133.1系统及需求分析 133.1.1系统需求 133.1.2可行性分析 133.2系统的功能简介 153.2.1系统管理模块 153.2.2班级管理模块 153.2.3学生资料管理模块 153.2.4作业管理模块 153.3系统开发的目标 154系统流程分析 164.1业务流程分析 164.2数据流程分析 174.2.1数据流程图 174.3数据存储分析实体联系图 175系统设计 195.1软件模块结构设计 195.1.1系统方案确定 195.1.2软件结构设计 195.2数据库设计 196系统功能的实现 236.1系统登录 236.2学生注册 256.3学生用户 286.4教师用户 306.5班级管理 326.6学生资料管理 336.7作业管理 347总结 37致谢 38参考文献 391引言随着计算机网络技术的高速发展,传统的桌面系统、C/S架构系统已经不能满足社会的需要。当今社会是一个网络社会,电子商务系统、企业信息系统已经走进了网络应用系统阶段。如何快速开发出适应社会各个行业发展的网络应用系统是摆在人们前面的一个难题。选择什么样的开发平台、开发工具、开发语言、开发技术直接影响行业的信息化建设。.NET的问世给开发人员带来了一种全新的开发框架,它已经成为一种令人激动的、具有革命性和发展性的新技术。.NET为行业的信息化提出了彻底解决方案,不论Web开发者、组件开发者、数据开发者、VBGUI开发者,还是任何基于Windows平台的开发者,.NET都以一种全新的开发模式使开发人员更好、更快速的完成工作。本课题重点以.NET和为开发平台,综合利用ASP.NET的WEB开发技术和XML跨平台技术,经过开发一个通用网站,真正体验.NET新一代软件开发全新模式,实现网站快速开发和部署。

2技术简介2.1HTML语言超文本语言HTML(HyperTextMarkupLanguage)是当前创立Web页面最流行的语言。HTML语言的流行是因为一个HTML文件不论在任何操作系统的浏览器上面得到的结果应该是相同的。HTML语言是一种处理文字的语言,它包含的指令(标记)能够插入到未定个是的文件里,用来控制浏览器显示的网页或者打印出来的外观。HTML语言不区分大小写,它有以下特点:它有特定的逻辑结构,分成不同的逻辑但元,是一种结构化文本文档。它能够提供图像、动画以及其它多媒体等信息的链接。创立过程非常简单。HTML语言版本开发采取向后兼容的方式,使它容易维护。另外,HTML作为WEB上通用的描述语言,为各种计算机平台提供了一个公开的标准接口,于平台无关。2.2IISIIS是InternetInformationServer的缩写,它是微软公司主推的服务器,最新的版本是Windows里面包含的IIS6,IIS与WindowsNTServer完全集成在一起,因而用户能够利用WindowsNTServer和NTFS(NTFileSystem,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。

IIS支持HTTP(HypertextTransferProtocol,超文本传输协议),FTP(FileTransferProtocol,文件传输协议)以及SMTP协议,经过使用CGI和ISAPI,IIS能够得到高度的扩展IIS支持与语言无关的脚本编写和组件,经过IIS,开发人员就能够开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持Vbscript,Javascript开发软件以及Java,它也支持CGI和WinCGI,以及ISAPI扩展和过滤器。IIS支持服务器应用的MicrosoftBackOffice系列,MicrosoftBackOffice系列包括以下内容:(1)MicrosoftExchangeServer客户/服务器通讯和群组软件;(2)MicrosoftProxyServer代理服务器;(3)用于连接IBM企业网络的MicrosoftSNAServer;(4)用于集中管理分布式系统的MicrosoftSystemsManagementServer;(5)MicrosoftCommercialInternetSystem(MCIS)。IIS的设计目的是建立一套集成的服务器服务,用以支持HTTP,FTP和SMTP,它能够提供快速且集成了现有产品,同时可扩展的Internet服务器。IIS相应性极高,同时系统资源的消耗也是最少,IIS的安装,管理和配置都相当简单,这是因为IIS与WindowsNTServer网络操作系统紧密的集成在一起,另外,IIS还使用与WindowsNTServer相同的SAM(SecurityAccountsManager,安全性账号管理器),对于管理员来说,IIS使用诸如PerformanceMonitor和SNMP(SimpleNetworkManagementProtocol,简单网络管理协议)之类的NT已有管理工具。IIS支持ISAPI,使用ISAPI能够扩展服务器功能,而使用ISAPI过滤器能够预先处理和事后处理储存在IIS上的数据。用于32位Windows应用程序的Internet扩展能够把FTP,SMTP和HTTP协议置于容易使用的任务集中的界面中,这些界面将Internet应用程序的使用大大简化,IIS也支持MIME(MultipurposeInternetMailExtensions,多用于Internet邮件扩展),它能够为Internet应用程序的访问提供一个简单的注册项。IIS的一个重要特性是支持ASP。IIS3.0版本以后引入了ASP,能够很容易的张贴动态内容和开发基于Web的应用程序。对于诸如Vbscript,Javascript开发软件,或者由VisualBasic,Java,VisualC++开发系统,以及现有的CGI和WinCGI脚本开发的应用程序,IIS都提供强大的本地支持。ASP.NET是M的一部分,作为战略产品,不但仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。能够经过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,能够用任何与.NET兼容的语言(包括VisualBasic.NET、C#和Javascript.NET.)创作应用程序。另外,任何ASP.NET应用程序都能够使用整个.NETFramework。开发人员能够方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。ASP.NET能够无缝地与WYSIWYGHTML编辑器和其它编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不但使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员能够用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.NET设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。ASP.NET提供了稳定的性能、优秀的升级性、更快速的开发、更简便的管理、全新的语言以及网络服务。贯穿整个ASP.NET的主题就是系统帮用户做了大部分不重要的琐碎的工作。

新的ASP.NET引入受管代码(ManagedCode)这样一个全新概念,横贯整个视窗开发平台。受管代码在NGWSRuntime下运行,而NGWSRuntime是一个时间运行环境,它管理代码的执行,使程序设计更为简便。(1)高效率对于一个程序,速度是一件非常令人渴望的东西。一旦代码开始工作,接下来你就得尽可能地让它运作得快些。在ASP中你只有尽可能精简你的代码,以至于不得不将它们移植到一个仅有很少一点性能的部件中。而现在,ASP.NET会妥善地解决这一问题。(2)易控制在ASP.NET里,你将会拥有一个“Data-Bounds”(数据约束),这意味着它会与数据源连接,并会自动装入数据,使控制工作简单易行。(3)语言支持ASP.NET支持多种语言,支持编译类语言,支持比如VB、VC++、C#等,它比这些编译类语言运行速度快,更适合编写大型应用

(4)更好的升级能力快速发展的分布式应用也需要更快速、更模块化、更易操作、更多平台支持和重复利用性更强的开发,需要一种新的技术来适应不同的系统,网络应用和网站需要提供一种更加强大的可升级的服务。ASP.NET能够适应上面的要求。对于今天的Web程序员来说,最大的挑战就是不断变化的浏览器兼容性以及它们不断升级的复杂性。在保证页面能在所有浏览器下工作的同时,又得尽量使用每个浏览器的最新属性来建立更具交互性的页面,这简直不可想象。更加可怕的是,需要对不同的用户设备建立不同的网页。最简单的解决办法就是动态地对不同的用户生成不同的输出,或者就是对不同的用户写多个页面。大多数开发者都会选择第一种方法。可是,这就意味着用户的每次点击都会让服务器判断应该向用户显示什么。而经过ASP.NET,我们能够看到一个新的服务控制的概念,它封装了一些普通的任务,提供了一种清晰的编程模块,有助于管理和处理不同的用户类型。简单地说,ASP.NET把这些过程自动化了。2.3Session对象Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。每一访问者都会单独获得一个Session。在Web应用程序中,当一个用户访问该应用时,Session类型的变量能够供这个用户在该Web应用的所有页面中共享数据;如果另一个用户也同时访问该Web应用,她也拥有自己的Session变量,但两个用户之间无法经过Session变量共享信息,而Application类型的变更则能够实现站点多个用户之间在所有页面中共享信息。(1)SessionID属性该属性返回当前会话的唯一标志,为每一个Session分配不同的编号。我曾在开发过程中就遇到对用户的控制问题。它要实现的功能就是,针对某个网站的一个模块,当一个会员登录后正在看此模块时,另一个人用同样的会员名登录,就不能浏览这个模块。也就是说一个会员名同时只能一个人浏览此模块。我经过用会员名(假设为UserID,唯一)和SessionID来实现了控制。当会员登录时,给这个会员一个Session记录登录状态如:Session("Status")="Logged",同时把这个会员的Session.SessionID写入数据库。当她要浏览此模块时,先判断其是否登录,若已经登录再判断它的SessionID是否与数据库记录的相同,如果不同则不能访问。这样,当另一个用户用相同的会员名登录时,那么数据库中记录的就是新的SessionID,前者访问此模块时就不能经过检查。这就实现了一个会员名同时只能一个人浏览某个模块。这个功能在一些收费网站有很有特别作用,它防止了一个会员名给多个人浏览的问题,为公司保障了利益。(2)TimeOut属性该属性用来定义用户Session对象的时限。如果用户在规定的时间内没有刷新网页,则Session对象就会终止。一般默认为20分钟。(3)Abandon方法该方法是Session对象的唯一方法,能够清除Session对象,用来消除用户的Session对象并释放其所占的资源。如:<%Session.Abandon%>(4)Session_OnStart和Session_OnEnd事件和Application一样,当对象的例程每一次启动时触发Session_OnStart事件,然后运行Session_Onstart事件的处理过程。也就是说,当服务器接收到应用程序中的URL的HTTP请求时,触发此事件,并建立一个Session对象。同理,这个事件也必须定在Global.asa文件中。当调用Session.Abandon方法时或者在TimeOut的时间内没有刷新,这会触发Session_OnEnd事件,然后执行里面的脚本。Session变量与特定的用户相联系,针对某一个用户赋值的Session变量是和其它用户的Session变量完全独立的,不会存在相互影响。2.4ASP.NET的控件和窗体菜单是程序中提供的一种方便给命令分组的方法,目的是使用户容易访问这些命令。它是程序最重要的特性之一,大多数程序都依赖一个良好的定义使程序易于使用和维护,在一个大型应用程序的界面中如果没有菜单和工具栏,用户将很难进行操作。这是一种流行趋势,因为并不是所有用户都能够清晰地了解各种应用软件,因此对于她们来讲,必须含带菜单和工具栏来使用应用程序。ASP.NET也提供了强大的创立菜单功能来使程序更加标准,我们能够使用ASP.NET的applicationwizard,也能够使用ASP.NET的菜单编辑器建立或者修改已经存在的菜单。在ASP.NET中,设计和运行时都能够创立和修改菜单。在菜单创立时,还能够定义菜单的访问键,使习惯了dos操作的用户也能方便地进行操作。在菜单中还能够创立分隔符,但要注意的是,如果菜单控件是一个菜单标题,带有子菜单项,被复选或无效,或者有一个快捷键,那么它就不能作为分隔符条,分隔符条是不能响应click事件,而且也不能被选取的。在所有的菜单功能项中,能够使菜单项命令有效或无效,所有的菜单控件都具有enable属性,当这个属性值为false时,菜单命令无效,它不响应任何动作。此时,快捷键的访问也无效,一个无效的菜单项控件会变暗。所有未变暗的菜单项控件都是有效的,能够响应其所定义的任何动作。工具栏已经成为许多基本windows应用程序的标准功能,使用它能够进一步增强应用程序的菜单界面。工具栏含有工具栏按钮,提供了对应用程序最常见的命令的快速访问。如果使用的是ASP.NET的专业版或企业版,则用户能够直接使用其中的Activex控件——toolbar来创立工具栏。2.4.1Activex控件ASP.NET提供了大量的控件,在应用程序中使用各种控件是ASP.NET的特色。控件用来获取用户的输入信息和显示输出信息。应用程序中可用的控件可包括文本框、命令应用程序就仿佛是代码的一部分。每个控件都有一组属性、方法和事件。其次,在ASP.NET中还提供了Activex控件,以前被称作ole控件,是一个标准的用户接口元素,能够快速地把窗体和对话框组装起来。在应用程序中使用各种控件经常被看作是ASP.NET的特色。设计一个Activex控件就像设计一个ASP.NET窗体那样容易,用户能够使用所熟悉的ASP.NET图形命令来绘制控件,或者使用已有的控件来创立一个控件组。Activex控件能够在运行中调试,因此能够直接从高度窗体的跳跃到Activex控件工程的代码中。另外,能够使用ASP.NET的data控件或ado控件在ASP.NET的Activex控件上增加数据绑定,这样使用者就很容易地把控件中的各个字段绑定到数据库中适当的字段上。Activex控件文件的扩展名为.ocx,将Activex控件和其它可加入的对象加到工具箱中,即可在工程中使用它们。在工程的工具箱中加控件:(1)“工程”菜单中,单击“部件”,显示“部件”对话框。(2)在该对话框中将列出所有已经注册的可加入的对象、设计者和Activex控件。(3)要在工具箱中加入Activex控件,选定控件名称左边的复选框。(4)单击“确定”按钮,关闭“部件”对话框。所有选定的Activex控件将出现在工具箱中。要将Activex控件加入“部件”对话框,单击“浏览”按钮,并找到扩展名.ocx的文件。在将Activex控件加入可用控件列表中时,ASP.NET自动在“部件”对话框中选定它的复选框。2.4.2Toolbar工具条控件Toolbar工具条控件,包含用来创立工具栏的button对象的集合,是实现工具条的主体。其中的按钮能够显示图像的标题,并按功能分组或加入分隔符,还能够对其设置鼠标停留在其上显示的提示字符。Toolbar也是一个控件容器且具有style属性,并能够为其增加下拉按钮和平滑按钮等。一般情况下,工具栏中的按钮与应用菜单中的菜单项相对应,能够用它们来访问应用程序最常见的功能和命令。其中,Toolbar控件也能够包含其它控件,如:combobox控件或textbox控件。要创立工具栏,必须先将button对象加入button集合,每个button对象能够拥有可选的文本,或者拥有相关联的imagelist控件提供的图像。能够用caption属性为每一个button对象设置文本,用image属性设置图像。在设计时,能够用add和remove的方法将按钮加入或删除button集合。在设计时若添加其它控件,只须将需要的控件拖入工具栏中即可。另外,还能够创立placeholder样式的button对象,并在resize事件中将需要的控件盖在该按钮上。在运行时,双击工具栏将弹出“自定义工具栏”对话框,以便用户隐藏、显示或重新安排工具栏的按钮。能够用allowcustomize属性选用或禁止用该对话框。还能够用customize方法弹出“自定义工具栏”对话框。如果需要保存或恢复工具允许最终用户这样做,可使用savetoolbar和restoretoolbar方法。使用toolbar控件,主要是为了体现以下几个方面:(1)用一致的工具栏为不同应用程序提供统一的界面。(2)为常见功能例如文件操作等提供简便的访问方法。(3)为应用程序提供图形化的直观界面。选择“工程”下拉菜单中的“部件”选项,显示“部件”对话框。在“控件”选项卡列表中选择“microsoftwindowscommoncontrols6.0”(1)Lign属性定义工具条在窗体中的位置。(2)Tooltiptext属性是字符串类型,定义控件的提示字符。(3)Style属性定义按钮外观。(4)Imagelist属性设置一个imagelist控件名,该控件定义工具按钮显示的图像。(5)Hotmangelist属性设置一个imagelist控件名,该控件定义按钮获得热点时显示图像。(6)Disabledimagelist属性定义工具条按钮无效时显示的图像。(7)创立工具条,包括imagelist和toolbar控件。imagelist用于为其它控件提供图像库,将imagelist控件加入到工具箱的操作于前述toolbar控件相同。2.4.3协调菜单和工具栏的外观当由其它应用程序提供的对象在窗体中被激活时,有许多的方法让对象的菜单与工具栏出现在容器窗体内。然而,需要规定它们将如何显示。这一过程叫做用户界面协调。经过设置窗体的Negotiatemenus属性能够决定一个链接或嵌入的对象的菜单是否出现在容器窗体中,如果子窗体的Negotiatemenus属性默认为true,而且容器有一个定义的菜单栏,或者Negotiatemenus属性被设置为

false,那么,当这个对象激活时对象的菜单将不出现。注意,Negotiatemenus属性不适用于MDI窗体。MDI窗体的Negotiatetoolbars属性决定了链接或嵌入对象的工具栏是不固定的调色板还是被放置在父窗体上。如果设为true,则对象的工具栏出现在MDI窗体上;如果设置为false,则对象的工具栏就为不固定的调色板。如果MDI窗体上包含工具栏,它一般被包含在父窗体的Picturebox控件中。图片框的Negotiate属性决定了被激活时容器的工具栏是继续显示还是被对象的工具栏所代替。如果设为true,则除了容器的工具栏外还显示对象的工具栏;如果为false,则对象的工具栏代替容器的工具栏。执行菜单与工具栏的协调:(1) MDI窗体中添加工具栏(2)在子窗体上旋转一个可插入的对象(3)设置Negotiatemenus、Negotiatetoolars、Negotiate属性(4)运行此应用程序,然后双击该对象2.4.4窗体设置窗体是一种对象,由属性定义其外观,由方法定义其行为,由事件定义其与用户的交互。经过窗体属性并编写响应事件的ASP.NET代码,就能定义出满足应用程序需要的对象。控件是包括在窗体对象内的对象。每种类型的控件都有自己的一套属性、方法和事件,以适用于特定的目的。一些控件最适合在应用程序中输入或显示文本;另一些控件能够访问其它的应用程序和处理数据,就像这些远程应用程序是用户自己的代码一样。窗体对象是ASP.NET应用程序的基本构造模块,是运行应用程序时与用户交互操作的实际窗口中,窗体有自己的属性、事件、方法、控件窗体的外观和行为。设计窗体的第一步是设置它的属性。这能够在设计时的“属性”窗口中完成,或者运行由代码来实现。注意:在设计时,即在ASP.NET环境中创立应用程序是地,能够操作所需要的控件,设置它们的属性,并对它们的事件进行编程。运行时,则实际是运行的应用程序,让用户与应用程序进行交互。2.5CSS样式表CSS(CascadingStylesheets,层叠样式表)是一种制作网页的新技术,现在已经为大多数的浏览器所支持,成为网页设计必不可少的工具之一。使用CSS能够简化网页的格式代码,加快下载显示的速度,也减少了需要上传的代码数量,大大减少了重复劳动的工作量。CSS(CascadingStylesheets,层叠样式表)是一种制作网页的新技术,现在已经为大多数的浏览器所支持,成为网页设计必不可少的工具之一。W3C(TheWorldWideWebConsortium)把动态HTML(DynamicHTML)分为三个部分来实现:脚本语言(包括Javascript、Vbscript等)、支持动态效果的浏览器(包括InternetExplorer、NetscapeNavigator等)和CSS样式表。2.5.1层叠样式表的特点且不说过去的网页缺少动感,就是在网页内容的排版布局上也有很多困难,如果不是专业人员或特别有耐心的人,很难让网页按自己的构思和创意来显示信息。即便是掌握了HTML语言精髓的人也要经过多次地测试,才能驾驭好这些信息的排版,过程十分漫长和痛苦。为了Internet的发展,让更多人早日踏足这个多姿多彩的世界,新的HTML辅助工具呼之欲出。样式表就是在这种需求下诞生的,它首先要做的是为网页上的元素精确地定位,能够让网页设计者像导演一样,轻易地控制由文字、图片组成的演员们,在网页这个舞台上按剧本要求好好地表演。其次,它把网页上的内容结构和格式控制相分离。浏览者想要看的是网页上的内容结构,而为了让浏览者更好地看到这些信息,就要经过格式控制来帮忙了。以前两者在网页上的分布是交错结合的,查看修改很不方便,而现在把两者分开就会大大方便网页的设计者。内容结构和格式控制相分离,使得网页能够光由内容构成,而将所有网页的格式控制指向某个CSS样式表文件。这样一来的好出表现在两个方面:(1)简化了网页的格式代码,外部的样式表还会被浏览器保存在缓存里,加快了下载显示的速度,也减少了需要上传的代码数量(因为重复设置的格式将被只保存一次)。(2)只要修改保存着网站格式的CSS样式表文件就能够改变整个站点的风格特色,在修改页面数量庞大的站点时,显得格外有用。避免了一个一个网页的修改,大大减少了重复劳动的工作量。2.5.2添加层叠样式表的方法我们为网页添加样式表的方法有四种。(1)最简单的方法是直接添加在HTML的标识符(tag)里:<Tagstyle=”properties”>网页内容</tag>举个例子:<pstyle=”color:blue;font-size:10pt”>CSS实例</p>代码说明:用蓝色显示字体大小为10pt的“CSS实例”。尽管使用简单、显示直观,可是这种方法不怎么常见,因为这样添加无法完全发挥样式表的优势“内容结构和格式控制分别保存”。(2)添加在HTML的头信息标识符<head>里:以下是引用片段:<

head><

style

type=”text/css”><

!—样式表的具体内容--><

/style><

/head>type=”text/css”表示样式表采用MIME类型,帮助不支持CSS的浏览器过滤掉CSS代码,避免在浏览器面前直接以源代码的方式显示我们设置的样式表。但为了保证上述情况一定不要发生,还是有必要在样式表里加上注释标识符“<!--注释内容-->”。(3)链接样式表同样是添加在HTML的头信息标识符<head>里:以下是引用片段:<

head><

link

rel=”stylesheet”

href=”*.css”

type=”text/css”

media=”screen”><

/head>*.css是单独保存的样式表文件,其中不能包含<style>标识符,而且只能以css为后缀。Media是可选的属性,表示使用样式表的网页将用什么媒体输出。取值范围:·Screen(默认):输出到电脑屏幕·Print:输出到打印机·TV:输出到电视机·Projection:输出到投影仪·Aural:输出到扬声器·Braille:输出到凸字触觉感知设备·Tty:输出到电传打字机·All:输出到以上所有设备如果要输出到多种媒体,能够用逗号分隔取值表。Rel属性表示样式表将以何种方式与HTML文档结合。取值范围:·Stylesheet:指定一个外部的样式表·Alternatestylesheet:指定使用一个交互样式表(4)联合使用样式表同样是添加在HTML的头信息标识符<head>里:以下是引用片段:<

head><

style

type=”text/css”><

!—@import

“*.css”其它样式表的声明--><

/style><

/head>以@import开头的联合样式表输入方法和链接样式表的方法很相似,但联合样式表输入方式更有优势。因为联合法能够在链接外部样式表的同时,针对该网页的具体情况,做出别的网页不需要的样式规则。需要注意的是:联合法输入样式表必须以@import开头。如果同时输入多个样式表有冲突的时候,将按照第一个输入的样式表对网页排版。如果输入的样式表和网页里的样式规则冲突时,使用外部的样式表。2.5.3层叠样式表的格式一般来说,样式表的声明分为选择符(selector)和块{}(block),块里包含属性(properties)和属性的取值(value),基本格式如下:选择符其它格式1:选择符1,选择符2,选择符3有时候多个选择符将使用相同的设置,为了简化代码,我们能够一次性为它们设置样式,并在多个选择符之间加上“,”来分隔它们。当有多个属性的时候,必须在两个属性之间用“;”来分隔。其它格式2:选择符1选择符2和格式1非常相似,只是在选择符之间少加了“,”,但作用却大不相同。表示如果选择符2包括的内容同时包括在选择符1里的时候,所设置的样式规则才起作用。2.5.4层叠样式表的分类为了使网页的格式不过分的单调,必须得让相同的选择符也能分类,并能按照不同的类别来进行不同的样式设计。基本格式如下:选择符.类别名类别名将能够在HTML的标识符里引用:<标识符class=类别名>网页内容2.5.5层叠样式表的伪类除了上述的分类方式外,为了使分类的使用更灵活多样,又产生了伪类的概念。类和伪类有什么样的区别呢?一般地说,选择符能够和多个类采用捆绑的形式来设定,这样虽然能够为同一个选择符创立多种不同的样式,但捆绑的形式同时也限制了设定的类为其它的选择符所使用。伪类的产生就是为了解决这个问题,每个预声明的伪类都能够被所有的HTML标识符引用,当然有些块级内容的设置除外。基本格式如下:.伪类名伪类能够被任何标识符在HTML里引用。<标识符class=伪类名>网页内容

3系统概述教学管理系统集成了学生学籍管理系统、学生作业管理系统、学生档案管理系统、等多种功能,因而具有较强的实用性和先进性。3.1系统及需求分析3.1.1系统需求经过调查,要求系统需要有以下功能:(1)由于操作人员的计算机知识普遍较差,要求有良好的人机界面;(2)由于该系统的使用对象多,要求有较好的权限管理;(3)原始数据修改简单方便,支持多条件修改(4)方便的数据查询,支持多条件查询;(5)在相应的权限下,删除数据方便简单,数据稳定性好;(6)数据计算自动完成,尽量减少人工干预;3.1.2可行性分析由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于教学管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全能够实现。本系统的设计是在WindowsXP中文版操作系统环境下,使用ASP.NET开发成功的。数据库是管理信息系统(MIS)中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,当前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言介绍如下:数据库平台选择:所谓数据库,我们能够把它形象地说成是存储数据的“仓库”。数据库是为了满足某一部门中多个用户的多种应用需要,按照一定的数据模型在计算机系统中组织、存储和使用的互相联系的数据集合。数据库系统是管理大量的、持久的、可靠的、共享的数据的工具。就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系开数据库管理系统的标准语言。SQL语句能够用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。当前,绝大多数的关系开数据库管理系统,如Oracle、Sybase、MicrosoftSQLServer、Informix、IBMDB2等都采用了SQL语言标准。显然很多数据库产品都对SQL语句进行了再开发和扩展,可是包括Select、Insert、Update、Create以及Drop在内的标准的SQL命令依然能够被用来完成几乎所有的数据库操作。SQL是英文StructureQueryLanguage的缩写,意思为结构化查询语言。数据库是教学管理系统的核心组成部分,所有信息处理子系统都将基于某种数据库平台,以便将其处理的信息资源完整、安全地保存起来,而且对其进行各种管理和利用。选择一个发的数据库平台是非常重要的。根据教学管理系统应用的实际需要,在选择数据库平台时,应考虑下列因素:(1)性能:数据库的数据处理能力。(2)开放性:数据库是否能在多种操作系统下使用。(3)安全性:数据库是否具有高度的安全性。(4)可靠性:数据库是否具有高度的可靠性。(5)并行性:数据库是否并行运行在多节点上。(6)可操作性:数据库在使用前是否需要复杂的培训。数据库平台选用的是MicroSoft公司的SQLServer,SQLServer是SQLServer的最新版本,比以前版本提高了性能、可靠性、质量和易用性。MicrosoftSQLServer增加了几种新的功能,由此成为大规模联机事务处理(OLTP)、数据仓库和电子商务应用程序的优秀数据库平台。SQLServer拥有大型数据库系统基本特征,但保持了windows环境下界面友好,操作简单的优点,成为windows环境下开发中、小型C/S系统较流行的数据库系统。与传统的桌面数据库系统相比SQLServer有以下区别:(1)面向集合与面向记录。面向集合与面向记录应该是C/S系统与桌面数据库系统的最本质的区别。在桌面数据库系统中,它得到的是整个数据表,面向的是整个数据表的所有记录,因此,在桌面数据库系统中,第一条;上一条、下一条、最后一条等概念是非常普遍的,而在C/S系统中没有这些概念,因为客户程序在向服务器发送服务请求时,得到的数据能够由一个或多个数据表的多个字段构成,是服务器上所有数据的一个子集,它的请求是经过SQL语句来实现的,因此在C/S系统中,它面向的是整个数据库的一个子集合。(2)数据安全管理。SQL数据库在数据安全性管理方面比桌面数据库系统要强得多,它不但对数据库的访问进行口令验证,而且它还能够对特定的数据库对象进行限制,包括视图、数据表的存储过程,更重要的是它能够设置用户权限,经过Grant和Revoke命令向一个用户或一组用户授权或收权。(3)数据完整性管理。对于SQL数据库而言,它允许在服务器端定义一些业务规则用于验证数据的完整性,强制所有的客户端程序都必须接受相同的业务规则约束,这样有利于集中维护这些规则。虽然桌面数据库系统也能进行数据完整性管理,可是它只能在应用程序中定义这些验证规则,所有需要验证的地方都必须写入相同或相似的代码,这样不利于维护这样规则。另外,SQL数据库在完整性约束上,一般在创立数据表时就定义好的,它既能够定义为数据表的一部分,也能够经过存储过程或触发器等形式从数据表中独立出来。(4)数据库的并发访问管理。SQL数据库采用优化锁定策略,允许多个用户能够同时访问服务器而不互相干扰。这种技术并不限制客户访问当前正在被其它用户访问的数据表,能够照常对它进行编辑(增、删、改),并请求服务器保存修改的数据。桌面数据库系统则明确地或完全地锁定策略,也就是说那些当前正在被其它用户使用的数据无法访问,更无法编辑,如果试图访问或修改这些数据,系统产生错误的提示信息。(5)事务控制。用于在系统发生错误时保持数据库的一致性和完整性。每个更新SQLServer数据库内数据的应用程序都使用事务完成这个任务。事务是由一系列语句(选择、插入、更新或删除)构成的逻辑工作单元。如果在事务执行过程中没有遇到错误,则事务中的所有修改成为数据库的永久部分。如果遇到错误,则不对数据库做任何修改。桌面数据库系统一般不提供事务控制功能。3.2系统的功能简介本系统主要能够实现以下的管理功能:班级管理、学生档案管理、学生交费管理、班级管理、作业管理等等。教学管理系统是一个典型的数据库应用程序,由班级管理、学生档案管理、学生交费管理、班级管理、作业管理等模块组成。3.2.1系统管理模块该模块的主要任务是维护系统的正常运行和安全性设置,包括添加用户、修改密码、重新登录等等。3.2.2班级管理模块该模块的功能是实现对全校班级的管理工作,包括:班级游览、班级添加、班级查询等,这三个功能模块各自独立,完成班级的管理。3.2.3学生资料管理模块该模块的主要功能是实现对学生的个人信息的管理工作,包括资料添加、资料浏览等功能,从而方便学校管理部门对学校的基本情况的快速查询和了解。3.2.4作业管理模块该模块对各个班级的学生作业进行布置,布置作业而且能够查询已有的作业情况等功能。3.3系统开发的目标出于本系统是学校教学管理的一个综合性的系统,本系统的设计目标将最终定位于完成以上所述的系统主要业务的基本模型上。

4系统流程分析4.1业务流程分析图4-1班级管理业务流程图图4-2档案管理业务流程图图4-3作业管理业务流程图

4.2数据流程分析4.2.1数据流程图由于本系统的数据模块较多,下面仅以学生作业管理模块为例来进行编制。图4-4教学作业管理系统0层数据流程图图4-5学生作业管理系统1层数据流程图4.3数据存储分析实体联系图(1)数据模型设计。首先来做出学生作业管理系统的E-R图,分析这个问题的实体,从系统分析能够知道,学生的作业是由任课教师按照班级给出的,学生、班级、教师组成了这个系统的三个实体。(2)再分析三个实体之间的联系。首先,这三个实体不是一个统一体,学生作业与教师没有内在联系,教师必须经过班级实体才能与学生建立联系,因而先不考虑。班级与学生这两个实体是多对多联系;一位学生要学习多门班级,一门班级有多位学生共同学习。而学习作业是这两个实体“学生”和“作业”共有的属性,应填在二者的联系“学习”边。这个E-R图可画成下图。图4-6作业管理系统中学生与班级的E-R图教师与班级这两个实体之间,是一对多联系;一位教师能够都多个班级,而一门班级对于学生作业来说只能有一位教师(英语、高等数学有多位教师教,但对某个固定的学生来说只能有一位教师)。其E-R图,如下所示。图4-7教师与班级的E-R图教师与班级的E-R图组合到一起,得到最后的E-R图,有了E-R图,就能够设计数据库。下图为数据模型图。图4-8数据模型图

5系统设计5.1软件模块结构设计5.1.1系统方案确定经过对系统的调研与分析,系统主要应完成的功能有:班级管理、学生作业管理、系统管理等功能。5.1.2软件结构设计本系统在执行时,先根据不同的操作人员的需要来进行相应的模块,然后能够输入数据或者进行其它的查询或浏览等操作;总体来说,本系统属于一个事务型管理系统。图5-1结构设计图5.2数据库设计数据库采用了Microsoft推出的SQL数据库,这是微软集成到Office中的一个桌面数据库,能够快速方便的和Office的其它套件综合使用。由于SQL具有显著的简易性和有效性,大量的桌面数据库系统都采用SQL作为后台数据库。使用SQL的好处还在于,如果你的系统扩展到Client/Server模式的时候,能够使用Microsoft的数据库服务器软件SQLServer,此时,程序只需要简单的修改一下链接(ADO的数据源)就能够,这样,为程序的平滑扩展提供了非常有力的条件。基本数据表设计以及权限设置如下:图5-2Class_student关联学生和班级的,学生的学号作为本表的主键。图5-3Exercise_infor存放作业基本信息的表,练习号作为主键。图5-4Exercise_update作业基本信息的更新表,学生的学号作为主键。图5-5Notice_infor通知信息表,通知号作为主键。图5-6Student_infor学生信息表,学生的学号作为主键。图5-7Student_login学生注册信息表,学生的学号作为主键。图5-8teacher_login教师登录信息表,教师号作为主键。数据表selectInsertupdatedeleteStudent_infor√√Student_login√√√Class_student√√√√Notice_infor√Exercise_update√√√√Student_mark√Lab_infor√Exercise_infor√图5-9学生权限表数据表selectInsertupdatedeleteStudent_infor√√√√Student_login√√√√Class_student√√√√Notice_infor√√√√Exercise_update√√√√Student_mark√√√√Mark_rate√√√√Teacher_login√√√√Lab_infor√√√√Exercise_infor√√√√图5-10教师权限表

6系统功能的实现6.1系统登录图6-1系统登录界面本系统登录身份有两种:学生和教师。在下拉框中能够选择教师登录。SelectCasestrTableName//根据选择的用户不同,用case来选择用户Case"student_login"conn.ConnectionString=ConfigurationSettings.AppSettings("DSN_student")//设置数据库连接字符串strID="s_id"str_PW="sl_pwd"strPath="../network_course/student/index.aspx"strUserIdent="同学"Case"teacher_login"conn.ConnectionString=ConfigurationSettings.AppSettings("DSN_teacher")//设置数据库连接字符串strID="T_id"str_PW="TL_pwd"strPath="../network_course/teacher/index.aspx"strUserIdent="老师"EndSelect以上代码是处理下拉菜单选择学生或老师的问题,以及设置字段名和页面跳转字符串。cmd.CommandText="select*from"+strTableName+"where"+strID+"='"&TextBox1.Text&"'"'查询语句Tryconn.Open() //打开数据库连接DimreaderAsIDataReaderreader=cmd.ExecuteReader()strpassword=TextBox2.TextIfreader.ReadThenstrRealPw=reader.Item(str_PW)IfTrim(strpassword)=Trim(strRealPw)Then//比较密码和输入bool1=falseElseLabel4.Text="密码错误!"bool1=FalseEndIfElseLabel4.Text="用户名输入错误"bool1=trueEndIfreader.Close() CatchLabel4.Text="数据库操作失败,可能是服务器出现错误,请稍后再试!"Finallyconn.Close()strpassword=""strRealPw=""EndTry以上代码是验证用户ID和密码。两个对象主体使用同一个验证,代码简便易懂。6.2学生注册图6-2学生注册界面DimdsnAsString=ConfigurationSettings.AppSettings("DSN_student")//设置数据库连接字符串DimconnAsNewSqlClient.SqlConnectionconn.ConnectionString=dsnDimcmdAsIDbCommand=conn.CreateCommand()IfPage.IsValidThen//页面验证成功 cmd.CommandText="select*fromstudent_inforwheres_id='"+number.Text+"'"Tryconn.Open()DimreaderAsIDataReaderreader=cmd.ExecuteReader()Ifreader.ReadThen'如果有此账号//比较填写的真实姓名一栏的值和数据库表项中的s_name内容IfTrim(realname.Text)=Trim(reader.Item("s_name"))ThenIfreader.Item("s_iflogin")=TrueThen's_iflogin//字段表示学生是否已经注册Label1.Text="该用户已经注册"Elsebool1=TrueLabel1.Text=""EndIfElseLabel1.Text="您所输入的号码和姓名不匹配,请重新填写"EndIfElseLabel1.Text="你所输入的学号,请重新填写"EndIfreader.Close()CatchLabel1.Text="数据库操作失败,可能是服务器出现错误,请稍后再试!"Finallyconn.Close()EndTryElseLabel1.Text="页面有错误"EndIf//sql2表示插入语句中values中的值Dimsql2AsString="'"+number.Text+"','"+realname.Text+"','"+username.Text+"','"+password1.Text+"','"+DateTime.Now.Date+"','"+email.Text+"','"+phone.Text+"','"+memo.Text+"'"Ifbool1Then'如果此用户账号存在、而且未注册bool1=False//插入注册信息cmd.CommandText="insertintostudent_login(S_ID,SL_RNAME,SL_NAME,SL_Pwd,SL_Date,SL_email,SL_phone,SL_memo)values("+sql2+")"Tryconn.Open()cmd.ExecuteReader()bool2=TrueCatchLabel1.Text="数据库操作失败,可能是服务器出现错误,请稍后再试!"bool2=FalseFinallyconn.Close()EndTryIfbool2Then'判断在注册是是否出现意外情况,//将student_infor的对应项的s_iflogin置为,表示已经注册过了cmd.CommandText="UPDATEstudent_inforSETs_iflogin='1'WHERE(s_id='"+number.Text+"')"Tryconn.Open()cmd.ExecuteReader()CatchLabel1.Text="数据库操作失败,可能是服务器出现错误,请稍后再试!"Finallyconn.Close()EndTry//显示注册成功信息Panel1.Visible=FalsePanel2.Visible=TrueEndIfEndIf

6.3学生用户图6-3学生用户界面Dimstudent_idAsString=Request.Cookies("userInf").Values("userID")IfDateTime.Now.Hour>=6AndDateTime.Now.Hour<12ThenspWelMessage.InnerHtml="早上好,"&Request.Cookies("userInf").Values("userID")&Request.Cookies("userInf").Values("userIdent")ElseIfDateTime.Now.Hour>=12AndDateTime.Now.Hour<18ThenspWelMessage.InnerHtml="下午好,"&Request.Cookies("userInf").Values("userID")&Request.Cookies("userInf").Values("userIdent")ElsespWelMessage.InnerHtml="晚上好,"&Request.Cookies("userInf").Values("userID")&Request.Cookies("userInf").Values("userIdent")EndIfDimdsnAsString=ConfigurationSettings.AppSettings("DSN_student")DimconnAsNewSqlClient.SqlConnectionconn.ConnectionString=dsnDimcmdAsNewSqlClient.SqlCommandcmd.Connection=connDimds1AsDataSet=NewDataSetDimmydap1AsNewSqlClient.SqlDataAdaptercmd.CommandText="selecttop10*fromnotice_infororderbynu_datedesc"mydap1.SelectCommand=cmdTryconn.Open()mydap1.Fill(ds1,"teachingnotice_top10")myDataList.DataSource=ds1.Tables("teachingnotice_top10")myDataList.DataBind()CatchexAsExceptionFinallyconn.Close()EndTry//绑定个人基本信息的学号、姓名两项cmd.CommandText="SELECT*FROMstudent_inforWHEREs_id='"+student_id+"'"Tryconn.Open()mydap1.SelectCommand=cmdmydap1.Fill(ds1,"student_infor")Dimmytable1AsNewDataTablemytable1=ds1.Tables("student_infor")Ifmytable1.Rows.Count=0ThenTextBox1.Text="无!"TextBox2.Text="无!"ElseTextBox1.Text=mytable1.Rows(0)("s_id")TextBox2.Text=mytable1.Rows(0)("s_name")EndIfCatchexAsExceptionFinallyconn.Close()EndTry//绑定个人基本信息的班号、座号两项cmd.CommandText="SELECT*FROMclass_studentWHEREs_id='"+student_id+"'"Tryconn.Open()mydap1.SelectCommand=cmdmydap1.Fill(ds1,"class_student")Dimmytable2AsNewDataTablemytable2=ds1.Tables("class_student")Ifmytable2.Rows.Count=0ThenTextBox3.Text="无!"TextBox4.Text="无!"ElseTextBox3.Text=mytable2.Rows(0)("class_id")TextBox4.Text=Trim(mytable2.Rows(0)("group_id"))+Trim(mytable2.Rows(0)("seat_id"))EndIfCatchexAsExceptionFinallyconn.Close()EndTry该段代码实现了学生用户页面初始化功能。6.4教师用户图6-4教师用户界面Dimteacher_idAsString=Request.Cookies("userInf").Values("userID")IfDateTime.Now.Hour>=6AndDateTime.Now.Hour<12ThenspWelMessage.InnerHtml="早上好,"&Request.Cookies("userInf").Values("userID")&Request.Cookies("userInf").Values("userIdent")ElseIfDateTime.Now.Hour>=12AndDateTime.Now.Hour<18ThenspWelMessage.InnerHtml="下午好,"&Request.Cookies("userInf").Values("userID")&Request.Cookies("userInf").Values("userIdent")ElsespWelMessage.InnerHtml="晚上好,"&Request.Cookies("userInf").Values("userID")&Request.Cookies("userInf").Values("userIdent")EndIfDimdsnAsString=ConfigurationSettings.AppSettings("DSN_teacher")DimconnAsNewSqlClient.SqlConnectionconn.ConnectionString=dsnDimcmdAsNewSqlClient.SqlCommandcmd.Connection=connDimds1AsDataSet=NewDataSetDimmydap1AsNewSqlClient.SqlDataAdaptercmd.CommandText="selecttop10*fromnotice_infororderbynu_datedesc"mydap1.SelectCommand=cmdTryconn.Open()mydap1.Fill(ds1,"teachingnotice_top10")myDataList.DataSource=ds1.Tables("teachingnotice_top10")myDataList.DataBind()CatchFinallyconn.Close()EndTry该段代码实现了教师用户页面初始化功能。6.5班级管理图6-5班级管理界面cmd.CommandText="selectstudent_infor.s_id,student_infor.s_name,group_id,seat_idfromstudent_infor,class_studentwherestudent_infor.s_id=class_student.s_idandclass_id='"+DropDownList1.SelectedItem.Value+"'orderbyseat_idasc"Tryconn.Open()mydap1.Fill(ds1,"student_class_infor")DataGrid1.DataSource=ds1.Tables("student_class_infor")DataGrid1.DataBind()CatchLabel2.Text="读取数据库失败,可能是服务器出现错误,请稍后再试!"Finallyconn.Close()EndTry//计算该班的人数cmd.CommandText="select*fromclass_studentwhereclass_id='"+DropDownList1.SelectedItem.Value+"'"Tryconn.Open()mydap1.Fill(ds1,"class_student_count")Label1.Text=ds1.Tables("class_student_count").Rows.CountCatchLabel2.Text="读取班级学生表失败,可能是服务器出现错误,请稍后再试!"Finallyconn.Close(

温馨提示

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

评论

0/150

提交评论