基于ASP.NET的驾校管理系统设计与实现
摘 要
伴随国民经济的飞速发展和人民生活水平的不断提高,家用汽车在我国逐渐普及。面对不断增长的庞大的用户群,随之产生的驾驶培训行业,规模不断扩大。近年来,随着Internet的迅速发展以及网页制作技术的日臻完善,驾校管理系统的设计也日趋简单化和规范化。
本论文主要论述了采用ASP并结合ACCESS 2000数据库开发一个基于WEB的驾校管理系统的基本过程和方法。文章首先介绍了对系统的需求分析;然后介绍了系统的设计思想以及开发工具的选择;接着介绍了系统的总体结构设计以及后台数据库的设计;最后详尽的阐述了系统各功能模块的具体实现方法。
文中介绍的系统具备学车常识、名师介绍、在线考试、网上报名以及后台数据库操作与维护等功能。本系统具有实用和适时的特点,是一个比较实用、规范的驾校管理系统。
关键词:驾校管理; ASP; 数据库; ACCESS
ABSTRACT
With the rapid development of the national economy and people's living standards continued to improve the domestic auto increasing popularity in China. Faced with the huge growth of user groups, with the attendant driving training industry, continues to expand the scale. In recent years, with the rapid development of Internet and web technology is improving daily, Driving School Management System is also designed to simplify and standardize growing.
This paper mainly discusses the use of ASP and Access 2000 database with the development of a Web-based drive school management system, the basic processes and methods. The article first introduced the system needs analysis; Then the system design and development tools of choice; then introduced the system's overall design and structure of the background database design; Finally a detailed statement of system modules specific method.
This paper introduces the learner system with common sense, teachers, the online examinations, online applications And background operation and maintenance of database functions. With practical and timely features, is a more practical, standardized driving school management System.
Key Words:Management in driving school; ASP; Database; ACCESS
目 录
摘 要
ABSTRACT
目 录
绪 论
第1章 系统可行性分析
1.1 系统的开发目的
1.2 系统开发的前提
1.3 系统可行性分析
1.3.1 系统的现状分析
1.3.2 系统的优势与劣势分析
第2章 开发工具综述
2.1 ASP概述
2.1.1 ASP内部6大特点
2.1.2 Global文件
2.1.3 ASP与CGI的比较
2.1.4 ASP的优点
2.2 IIS与ASP的结合
2.3 ADO概述
2.4 Dreamweaver MX 2004概述
第3章 系统功能模块分析与设计
3.1 系统设计思想
3.2 系统页面设计
3.3 系统模块设计
第4章 系统数据库设计
4.1 数据库简介
4.2 ODBC与DSN
4.3 数据库的建立与连接
4.3.1 数据来源
4.3.2 数据库中表的建立
4.3.3 建立与数据库的连接
第5章 系统功能模块的具体实现
5.1 学车常识模块
5.2 名师简介模块
5.3 在线考试模块
5.4 网上报名模块
5.5 留言本
5.6 后台管理模块
5.6.1 网站管理
5.6.2 常识管理
5.6.3 老师管理
5.6.4 考卷管理
5.6.5 学生管理
结 论
致 谢
参 考 文 献
绪 论
当前企业信息化的重要性已经不是一个认识问题,当企业发展到一定的阶段,常规的管理显然已不能满足现实发展的需要,所以如何实现规范化、标准化的管理来提高企业经营效益,就成为一个新的议题。企业一直要面临来自各方的挑战,包括市场需求、销售渠道、人才流动,资金周转等等方面。今天IT技术的发展能够帮助企业积极应对这些挑战,提高企业竞争力,并为企业带来更多更稳定的新业务。随着业务的快速成长,信息化建设也越来越受到企业的重视。企业如果不建立与之相适应的管理信息系统,就很难在这个竞争日趋激烈的时代获胜。
宏观上来看企业信息化是一个趋势,计算机早已取代算盘并取代一部分传统的信息记录方式 ,由于工作的环境,所以我们经常用到扫描设施和文字识别软件,这样大大提高了我们工作的效率,让最新的资料在第一时间展现在读者面前。我们进入了新数字办公的时代。而电脑技术以及网络技术的创新,以及增强性技术的进一步应用,有助于增强我们公司数字办公应用的协作性、移动性、安全性和可管理性.快速 高效 富有现代化;短期看 企业的信息化需要一定的投入。但是长远看来 ,一个成熟的企业信息化体系对企业的成长和管理有着非常的好处和利益。
随着世界企业信息化的飞速发展,企业网站将是国内企业信息化的一个主要方面,一个设计得当的企业网站,将能给予使用者需求,甚至达到双向的沟通,这是一般传统媒体所做不到的。它的容量不受限制,产品资讯、图片等任何您想要提供给客户的资料皆可输入。它的时间不受限制,一天24小时,一星期七天,一年365天不停的运作,随时提供服务。它的地点不受限制,目前全球绝大多数的国家都已经将发展INTERNET为首要政策目标之一,上网将如同打开家里的电视机一样简单。
建立企业网站有利于提升企业形象,一般来说,企业网站的作用更类似于企业在报纸 和电视上所做的宣传公司本身及品牌的广告。不同之处在于企业网站容量更大,企业几乎可以把任何想让客户及公众知道的内容放入网站。此外,相对来说,建立企业网站的费用也比其它广告方式要低的多。企业网站一年的费用仅为3~4万,如企业在报纸上做广告,半个版面,几天时间就要花掉几十万。当然,网站和广告是两种不同的宣传方式,各有不同的作用,它们之间更多的是互相补充,而不是互相排斥。企业如拥有自己的网址,应在各种广告中尽量地推介该网址,并把具体性的内容放入网址中。
网站使公司具有网络沟通能力,在中国,人们对互联网络往往有所误解,以为电子信箱就是互联网络。我们见过不少公司,将电子邮件地址当成网址,并印在名片上。实际上,电子邮件只是互联网络中一个最常用,最简单的功能之一。互联网络真正的内涵在于其内容的丰富性,几乎无所不包。对于一个企业来说,其具有网络沟通能力的标志是公司拥有自己的独立网站,而非电子信箱。
网站可以全面详细地介绍公司及公司业务,公司网址的一个最基本的功能,就是能够全面、详细地介绍公司及公司产品。事实上,公司可以把任何想让人们知道的东西放入网址,如公司简介、公司的厂房、生产设施、研究机构、产品的外观、功能及其使用方法等,都可以展示于网上。
网站可以利用网站及时得到客户的反馈信息,客户一般是不会积极主动地向公司反馈信息的。如公司在设计网站时,加入专门用于客户与公司联系的电子邮件和电子表格,由于使用极其方便,相对来说,一般客户还是比较乐于使用这种方式与公司进行联系。因此,公司可以得到大量的客户意见和建议。
本文所要解决与实现的问题就是采用ASP并结合ACCESS2003的一个基于WEB的驾校管理系统,通过这个系统可以为给驾校和学员带来方便。
该设计虽然看似简单,但实现起来却遇到了很多难题,因此对整个设计过程都是很认真的对待。
第1章 系统可行性分析
1.1 系统的开发目的
本次驾校系统的设计目的在于研究基于ASP+ACCESS网上新闻动态、报名动态网站方案设计,主要对动态网站进行研究,以便更好的设计一个驾校管理系统动态网站。驾校管理系统的设计主要意义是可以通过Internet为学校和学员提供双向互动式的信息交流,开辟新的交流平台,为学员提供了一种新的学习、报名、选择老师的方式。这些方式可以使学员学习、报名等时间随意化,学生可以打破地区、国界的限制,实现学习驾驶和报名的异地化;使管理过程便利、快捷,大大缩短了过程处理的时间;可以为学员提供充分的最新学车信息、老师介绍、收费标准等,从而扩大了选择的余地。通过本系统,人们可以方便的查找想要选择的老师资料,并切还可以在线报名和给喜欢的老师投票,给人们带来很多的便利。
1.2 系统开发的前提
在对驾校管理系统进行开发之前,必须首先对系统进行整体规划和设计,否则就会导致开发工作量大,系统不符合要求。更为糟糕的是,还可能会导致系统不完善或整个系统根本无法运行。因此,系统的总体规划与设计是驾校管理管理系统必备且首要的步骤。具体到本系统而言,就是根据驾校管理系统的目标、内容、规模、性质、现有的配置等具体情况,进行系统可行性分析,明确系统开发目标,整体规划网站的物理结构。
1.3 系统可行性分析
1.3.1 系统的现状分析
对系统进行可行性分析是系统规划的关键步骤,必须在可行性报告通过后,才可以进入实质性的驾校信息管理系统应用分析阶段。
国际上驾校信息管理系统前景看好,而在国内,网上搜索驾校管理系统的网站,数量上虽然也有了新的增长。但还是少之又少,目前提倡的企业的信息化就是用计算机手段去实现企业的管理运作,其业务流程、实现方法和原来都有变化,所以信息化的企业管理和非信息化的企业管理是不一样的。企业信息化不是模拟现有管理方式,而是对现有管理模式进行结合和变革。现在国家正在积极建设网络基础设施,网络对人们生活的影响将越来越大,人们对网上查询资料和报名的认同度也越来越高。这些情况表明,目前开展网上驾校管理系统业务具有非常大的市场空间。
1.3.2 系统的优势与劣势分析
网上驾校管理系统之所以成为热点,跟WEB技术的不断成熟与网络带宽的不断增加分不开的.基于浏览器/服务器(Browse/Server)网络结构建立的网上驾校管理系统采用胖服务器,瘦客户端的运行模式,主要的命令执行,数据计算都在服务器完成,应用程序在服务器安装,客户机不用安装应用程序,直接浏览网页的形式,简单便捷。所有的驾校日常管理事务都通过免费的浏览器来完成,采用这种B/S结构的信息管理系统大大减轻了系统管理员的工作量,更重要的是,这种方式对前端的用户数(即读者)没有限制,任何驾校信息,即使是异地的用户也可以通过浏览器进行浏览和查询。在与传统的电子书籍相比,网上信息管理系统的管理模式突破了地理位置,管理时间的局限,是一种全新的管理模式,其优势是显而易见的,比如虚拟世界可以容纳巨大的信息;内容传播和交流沟通的无障碍与低成本;时空概念上相对的自由度;增加商品品种易如反掌,它能给读者海量的选择;建立仓储的费用相对低廉;新一代网民迅速增加,目前已超过8000万,而使用在线进行学车常识信息阅读和查询的网民也迅速增加(尤其是在高校);同时,国家对信息产业大力支持。目前,国内网络的覆盖面及其7*24小时全天候服务,充分满足了读者的需求。另外,网上驾校管理系统的管理成本远低于传统模式,在节约资料的同时管理水平与管理效率得到了提高。因此,无论是从管理员的角度而言,还是对于读者或是学生的角度而言,网上驾校管理都具有较强的优势和良好的发展前景。
经过以上可行性分析,本系统的建立是可以有效的节省人力资源提高管理效率的投资,其设计理念很简单,变人工管理考试和报名信息为计算机自动化进行网上信息处理的管理理念,既省时间又提高效率。因此在系统构建时,只要我们本着丰富网上驾校管理的信息资源,为读者和管理员提供最为方便的快捷的信息阅览途径和管理手段,去吸引读者,那么本系统是完全可行的。
第2章 开发工具综述
整个系统主要是用Dreamweaver MX 2004,ASP等工具实现交互式驾校管理及其相关操作。Access2003用于对服务器数据库的维护,完成以上各角色的功能,实际上是处理一系列的数据库,在后台对数据库进行操作,以实现系统的正常运行。
2.1 ASP概述
2.1.1 ASP内部6大特点
ASP提供了6个功能强大的内部对象,每个对象具有各自的属性(Property)、方法(Method),有的还拥有数据集合(Collection)与事件(Event),它们共同完成Web中的一些重要工作。这6个对象及其功能描述如表1所示:
表1 ASP 内部6大对象及其功能
对象名称 | 功能描述 |
Request | 从客户端取得信息 |
Response | 将信息送给客户端 |
Server | 提供一些Web服务器工具 |
Session | 储存在一个Session内用户信息,该信息仅可被该用户访问 |
Application | 在一个ASP-Application中让不同的客户端共享信息 |
ObjectContext | 配合Microsoft Transaction服务器进行分布式事务处理 |
合理地运用这些对象可以使原本复杂,烦琐的工作变得简捷而条理清晰。我们可以用以下的语法直接使用这些对象:对象/属性/方法/数据集合。
2.1.2 Global文件
每一个以Active Server Pages为基础的应用程序都拥有一个Global.asa文件(ASA后缀名其实是Active Server Application的缩写),它位于每一个应用程序的基点目录之下。当Active Server Pages做下面两个动作时,Server便会去读Global.asa文件:
(1)Web Server启动之后,一个应用程序目录中任一个ASP文件被提出第一个HTTP请求(Request)时。
(2)不具有任何Session的客户端向Server请求一个ASP文件时。
前面已经提到Application和Session这两个ASP的内部对象。Application对象内的信息供所有正在执行该应用程序的用户分享,它创建于Web Server启动后一个应用程序中任一ASP文件被提出第一个HTTP请求时,结束于Server端停止运行。而Session对象仅属于一位用户,维持一个用户端的信息,其他用户无法访问,它创建于一个不具有Session的用户向Server请求一个ASP文件时,结束于该Session到期(即用户端超过某时间段没有向Server提出要求或刷新Web页面)或Abandon语句的调用。可见,Global.asa文件的调用与Application与Session这两个对象密切相关。事实上我们通常在Global。asa文件中写入以下内容:
(1)Application或Session的开始事件(Start-event)。
(2)Application或Session的结束事件 (End-event)。
这样,在一个Application或Session对象被创建或结束时,系统会自动完成Global.asa文件中写入的相应事件。值得注意的是,如果一个Application与一个Session同时开始,Active Server Pages会先处理Application的开始事件,而如果一个Application与一个Session同时结束,Active Server Pages则会先处理Session的结束事件。
2.1.3 ASP与CGI的比较
CGI(Common Gateway Interface,通用网关接口)也是Internet上一种功能强大的Web页面技术,其工作方式有别于ASP。我们现对二者进行比较。
Active Server Pages开发Web应用程序的特点:
完全嵌入HTML,与HTML、Script语言完美结合;无须手动编译和链接程序;面向对象,并可扩展ActiveX Server组件功能;使用脚本语言(JavaScript、VBScript或PERL)编写;存取数据库轻松容易(使用ADO组件);可使用任何语言编写自己的ActiveX Server组件;无浏览器兼容问题;程序代码隐藏,客户端仅能看到ASP输出的HTML文件;缩短Web开发时间。
相比之下,使用CGI开发Web应用程序具有以下缺点:
不易与HTML文件集成;须使用其他较复杂的语言来开发CGI程序;程序开发时间较长;存取数据库不容易;每个CGI程序被不同用户执行时都得重新执行一次,并占去Server的一个端口(Port),降低Server效率。
可见,ASP在数据库访问、与HTML的集成、提高服务器的效率等诸多方面都优于CGI,更适应Web应用程序开发的需要,因此本文选择了ASP作为个性化页面生成器的开发工具。
2.1.4 ASP的优点
程序设计采用Microsoft ASP实现,ASP是基于Microsoft IIS的开放式脚本开发环境,它可以很好的把HTML和脚本开发结合在一起,提高了编程的灵活性,降低了开发难度。ASP在性能方面的优势主要体现在以下几个方面:
(1)无需编译
ASP脚本集成于HTML中,容易生成,不需要编译或者链接即可直接由服务器执行,可快速修改程序。
(2)比CGI和ISAPI具有更多的优点
CGI程序不能为多个客户共享,对于新的请求必须启动新的进程,随着客户请求的增加,并行的进程也将增加,这对系统资源来说是一种极大的浪费,同时也加重了服务器的负担,降低了性能。
ISAPI比CGI有更好的性能,因为ISAPI应用以动态链接库存在,在其启动时加入内存,并且和Web服务器进程处于同一个系统空间,占用系统资源比较少。效率虽然提高了,但也带来了更大的风险,ISAPI进程和服务器进程处于统一系统进程空间,因此,一个违规操作就有可能导致Web服务器的崩溃。另外,无论时CGI程序还是ISAPI程序,基本上是独立于HTML之外的,完全用另一种语言开发,工作量大,与HTML结合得不够紧密。
ASP成功的改变了这些状况,ASP经过最佳化的多线程环境,不会单独成为一个Process,而是存在于这个Process中,可以同时服务多个浏览者,这样系统的性能就大大的提高了,系统的响应速度也大大的改观。
(3)面向对象
在ASP脚本中,可以很方便的引用系统组件和ASP内置组件,还能够通过定制的Active X服务器组件(ActiveX Server Component)来扩充功能。
(4)独立于浏览器,因此可跨平台执行
ASP脚本是在Web站点服务器端执行的,因此客户端的浏览器不需要支持它。用户端只需要使用普通的可以解释常规HTML代码的浏览器,即可浏览ASP所设计的主页内容。网上购物系统需要面对的是众多使用不同平台的用户,他们所使用的浏览器可以是IE,也可以是Netscape,还可以是其它类型。
(5)源代码的保密性
ASP程序在服务器端执行,在客户端浏览的内容只是ASP程序执行的结果所生成的常规HTML代码,因此这样就可以保证ASP程序不会被泄漏。对于一个网上购物而言,源代码的保密性是至关重要的。因为它直接关系到该站点的安全性。确保用户的所有信息不被第三方截获或破译是进行网上购物运转的必要前提,而ASP程序的保密性恰好符合了这一点。
(6)与任何ActiveX Scripting语言兼容
除了可以使用VB Script或者Jscript脚本语言进行设计外,还可以通过插件的方式,使用由第三方所提供的其它脚本语言,例如:PerlScript。本系统使用VB Script和Java Scirpt想结合的方式编程,这样既可以提高服务器的响应速度,又可以与客户端使用的大多数浏览器兼容。
2.2 IIS与ASP的结合
在过去,客户机/服务器结构的设计与Web的相关技术几乎处于平行线上,两者相互独立并无法做出集成性的设计。现在我们利用IIS+ASP构成三层式Web结构(如图1所示)的中间一层,将客户机/服务器结构与Web密切结合,完成前后端两者的集成输出功能,使得Web站点的开发更方便,实现的功能更强大。
利用IIS+ASP技术来集成Web前后端所带来的强大效益可归结为以下几个方面:
减少构建和维护成本;加快联机过程;应用软件集中在服务器端开发管理;前端可使用任何浏览器(IE、Netscape…..);后端可存取任何数据库 (SQL、Access…..);可使用任何脚本语言开发 (VBScript、JavaScript、PERL…..);
图2-1 IIS+ASP构成三层式Web结构
2.3 ADO概述
ADO(ActiveX Data Objects)是一种操作Microsoft所支持的数据库的新技术。在ASP中,ADO可以看作是一个服务器组件(Server Component),更简单点说,是一系列的对象,应用这些功能强大的对象,即可轻松完成对数据库复杂的操作。本文中个性化页面的实现便大量地用到了ADO技术。具体的操作步骤可以归纳为以下几步:创建数据库源名(DSN);创建数据库链接(Connection);创建数据对象;操作数据库;关闭数据对象和链接。
1.创建数据源名
DSN(Date Source Name)即数据源名称。我们知道,ODBC是一种访问数据库的方法,只要系统中有相应的ODBC驱动程序,任何程序就可以通过ODBC操纵驱动程序的数据库。比如我们系统中有Access的ODBC驱动程序,那么即使我们没有Access软件,也可以在我们的程序中对一个Access的MDB数据库加、删、改记录。而且我们根本不用知道这个数据库是放在哪里的。我们只要写出SQL语句,ODBC驱动程序就会帮我们做一切事情。我们在给ODBC驱动程序传SQL指令时,即是用DSN来告诉它到底操作的是哪一个数据库。如果数据库的平台变了,比如我们改用了SQL Server的数据库,只要其中表的结构没变,我们就不用改写我们的程序,只要重新在系统中配置DSN就行了。由此可见,DSN是应用程序和数据库之间的桥梁。
2.创建数据库链接
链接用以保持一些关于正在访问的数据的一些状态信息,以及链接者信息。ASP文件中如果要访问数据,必须首先创建与数据库的链接,其语法如下:
set Conn=Server.createObject(“ADOBD.CONNECTION”)
这条语句创建了链接对象Conn,接下来:
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data.Source="&Server.MapPath(""&db&"")
conn.Open connstr
这条语句打开链接,用到了DSN,本例为“connstr”。
以上两个步骤缺一不可,因为链接对象的创建与打开是两回事,只有打开了才真正可以使用。
3.创建数据对象
ADO中的数据对象通常保存的是查询结果。Record Set是ADO中最复杂的对象,有许多属性和方法。Record Set保存的是一行行的记录,并标有一个当前记录。以下是创建方法:
Set Record Set=Conn.Execute(sqtStr)
这条语句创建并打开了对象Record Set,其中Con是先前创建的链接对象,rs是一个字串,代表一条标准的SQL语句。例如:
rs=“SELECT * FROM shop_books”
Set Record Set=mConn.Execute(rs)
这条语句执行后,对象Record Set中就保存了表tab1中的所有记录。
4.操作数据库
我们通过调用链接对象的Execute方法来将查询结果返回给一个数据对象或进行插入、删除等操作。例如:
rs=“INSERT INTO tab1 VALUES(1,2)”
5.关闭数据对象和链接对象
在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。通过调用方法close实现关闭,然后再释放它。
Record Set.close
Set Record Set=Nothing
/关闭创建的数据对象
mConn.close
Set mConn=Nothing
/关闭创建的链接对象。
2.4 Dreamweaver MX 2004概述
Dreamweaver MX 2004是较好的网页制作工具,基本上实现了所见即所得的工作方式,即使你不懂HTML语言,也能制作出专业效果的网页。如果你是高手,也可以在代码编辑窗口里直接写入代码,再切换到设计编辑窗口看效果。更为重要的是,可以在Dreamweaver MX 2004里直接编写ASP代码。
Dreamweaver MX 2004提供了许多先进技术,如站点管理,插件,css样式,动态HTML,框架,ActiveX,Java applet等。编辑时有三种窗口:设计、代码、设计与代码,最后用internet explorer来预览网页。Dreamweaver MX 2004可以打开的文件有*.htm, *.tml, *.rtf,*.asp, *.htt等等,也可以导入*.doc, *.xls, *.xlm, *.wpd等,
Dreamweaver MX 2004本身带有多种模式,可以根据需要加以选择,同时它与操作系统的集成性非常好,所以在站点管理等方面具有其它网页编辑软件所无法比拟的优势。因此在Web页面进行规划的过程中,本人选用Dreamweaver MX 2004作为主要设计工具。在网页制作过程中,其他的辅助工具起很重要的作用,因为Dreamweaver MX 2004只能将很多元素编辑,而很多元素需要用Photoshop,Fireworks,Flash等其他软件加工。
第3章 系统功能模块分析与设计
前面介绍了构建驾校管理系统必备的技术与知识,并且对系统可行性进行了分析,在此基础上,我们把理论和实际结合起来,看看如何运用这些技术和知识来开发本系统。
3.1 系统设计思想
本系统的设计是面向抚州市计时学车培训中心,系统以基本功能的实现和操作的简单为设计目标。力求使系统具有充分的可操作性,界面友好,功能完善,并且无须对用户的进行特别的要求和培训。
3.2 系统页面设计
本系统依照真实的驾驶学校报名和考试等流程进行程序设计,主要完成学车常识、名师简介、在线考试、在线报名、留言本等页面的设计与制作。在进行页面设计过程中,主要应注意以下几个方面:
1.页面风格的确定
页面的风格至关重要,它要符合页面的内容所要表达的主题。驾校管理页面不要做得太花俏,因为驾校管理的主题定位于为学员与其他用户进行交互的平台,向用户实时提供有关驾校最新的各种动态信息,因此应以朴实为主,这样就可使页面庄重大方,符合驾校管理作为文化传媒的主题。另外,为了保持整个站点风格一致,各分支页面的背景和图片也应保持朴实简洁。
2.Web页面的设计与制作
页面的设计应具体考虑三个方面,即页面的主题,结构,外观设计,下面分别从这三个方面介绍一下在制作Web页面时,应考虑的一些因素和采用的方法。
(1)页面主题设计
首先要制定目标。驾校管理系统是为了向用户提供一个方便、快捷的了解驾校和与驾校交互的平台,因此主页中必须包含驾校简介、驾校联系方式、收费标准、最新学车常识、老师介绍、考试处理、报名管理等信息。其次,制定设计方法。采取自顶向下的方法,设计浏览路径,这是将网络层次化的过程。最后选择表达方式,所选的表达方式和设计风格要与目标一致。
(2)页面结构设计
页面的组织也很重要,必须将信息在逻辑上组织得井然有序,为用户创造一种有趣和能够理解的资源。结构分布是否合理将决定浏览者对站点第一印象的好坏,如果结构设计合理美观,浏览者将产生浓厚的兴趣浏览整个网站。反之,如果在设计中,对如何连接页面中的各个部分只有一个模糊的概念,没有一种宏观和清晰的组织结构,那么用户在不久就会离你而去,转而去寻求组织得更好的信息。大多数页面的信息结构,可以采用四种类型:序列结构,分栏结构,网状结构和层次结构。其中按层次划分信息,是组织复杂信息的较好方式之一,并且含有层次组织的结构特别适合于作驾校管理。原因是整个驾校管理站点是被组织得由一个单一的主页向下延伸,大多数用户都熟悉这种等级的图形结构,都会觉得这些结构能帮助他们一步步深入。另外,层次结构为人们所熟悉,使用户很容易建立一种进入站点的认知感觉。但层次不宜过多,太多往往令人厌烦。
(3)页面外观设计
内容和组织结构确定好后,还应该考虑整个页面的外观。好的页面外观应有很好的一致性,也就是说相同的页面安排、背景图像、颜色组合、栏目条等。整个站点的页面在外观上风格应该保持一致。背景是整个页面的基调,同时也是给浏览者的第一印象,因此背景的选择也很重要。在设计本系统Web页面时,考虑到网上购物作为知识传播的媒体,在外观上不能象娱乐站点那样花哨,而更应突出其文化氛围,尽量以简洁,素雅为主基调。
主页的制作大致分三个阶段:前期制作,中期制作和后期制作。前期包括整理资料,制作主题,构造结构;中期包括制作网页,测试修改;后期为发布,更新。前期的工作是制作网上购物的主要阶段,但中期的测试是必不可少的环节,这符合软件工程原理。本驾校管理系统制作完成后,已经过IIS测试,运行良好。
3.设计使用的主要技术及元素
(1)网页元素的定位
页面元素的定位有两种方式,一种使用图层,一种使用表格。用图层页面比较小,但是用太多的图层会导致站点在网上运行不太稳定,还是用表格定位比较精确。但是产生的文件较大,由于主页元素不多,所以采用了表格定位,整体看来,主页布局较为合理,给人耳目一新的感觉。
(2)框架结构的选择
框架是网页结构中常用的一种浏览形式,特别是用在主页面所连接的各个分页上,为一个页面定义导航区与内容区。它将一个网页分割为若干区域,一个区域就是一个框架,以便使同一个页面的不同区域可以装载不同的文件。在本系统的各个分页面中,为了使学员能够自由的穿梭于看常识,选老师,在线报名、在线考试、留言等环节中,应用了主和侧结构的框架结构,这样学员可以在左边通过点击相应的链接,在右边了解到其中的内容。在浏览内容的同时,若想切换到其他任意的栏目,只需点击超链接即可,方便了浏览。
3.3 系统模块设计
在对驾校管理系统进行开发之前,必须首先对系统进行整体规划和设计,否则就会导致开发工作量大,系统不符合要求。更为糟糕的是,还可能会导致系统不完善或整个系统根本无法运行。因此,系统的总体规划与设计是驾校管理系统必备且首要的步骤。具体到本系统而言,就是根据开发网上驾校管理系统的目标、内容、规模、性质、现有的配置等具体情况,进行系统可行性分析,明确系统开发目标,整体规划网站
的物理结构。图3-1为网站主要模块结构图:
图3-1 系统主要功能结构图
第4章 系统数据库设计
4.1 数据库简介
在20世纪60年代末,数据库技术才开始发展。数据库系统的概念形成至今不到40年。而如今,数据库技术已经发展成为一个大家族,数据模型、新兴技术层出不穷,不断扩展的应用领域使数据库朝着多维度、多方面迅速发展。数据库技术在各行各业已经得到了广泛的应用,成为存储、使用和更新信息资源的主要手段,产生了巨大的经济和社会效益。因此,学习和研究数据库,不断的推广数据库,不断地利用现有数据库技术和开发数据库新技术为社会和经济发展服务,是每个计算机工作者必须要做的工作。
驾校管理系统需要处理大量的数据,而数据库系统是管理大量信息的仓库和引擎。Microsoft Office Access 2003所具有的良好性能、可伸缩性,以及它与Windows 2003的紧密集成,使得它非常适合充当网上购物系统的发动机。因此在构建后台数据库时,采用了Microsoft 最新的Access 2003数据库系统软件,用以支持海量的数据存储以及多功能的数据查询。将后台数据和HTML以及XML格式的数据结合在一起,从而大大提高了从服务器到最终用户的信息流速度。
4.2 ODBC与DSN
1.ODBC概念
ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。本文中个性化页面的实现便大量地用到了ODBC技术。
2.DSN概念
DSN(Date Source Name)即数据源名称。表示将应用程序和其个数据库建立连接的信息集合。ODBC数据源管理器就是利用该信息来创建管理指向的数据库连接。DSN可以保存在文件或注册表中。建立ODBC连接,实际就是创建同数据源的连接,也就是创建DSN。一旦建立了一个数据库的ODBC连接,那么同该数据库的连接信息将被保存的DSN中,程序的运行必须通过DSN来进行。
4.3 数据库的设计
4.3.1 数据来源
本系统的数据来源主要有两个方面,一是系统管理员初始化的基础数据,主要有学车常识、老师的基本信息和学员对老师的投票,学生报名、考试,还有该系统运行所需要的一些基本参数;二是在系统的应用中,由工作人员所提交的业务方面的数据(如学员的报名信息、考试信息等),这是数据的主要来源。
数据库中数据主要是驾校简介信息、服务承诺、联系方式、收费标准、教师基本信息等,在系统的长期应用过程中基本保持不变,只占本系统数据存储量的很少一部分。
动态数据主要是员工在使用过程中录入的,用以推动业务流程正确运作而产生的数据,如学员的报名信息、考试信息、学车常识的更新和留言的查看与编辑、学员对教练员的认识以及投票和报名时选择教练员信息等,是整个系统中数据存储量的最主要部分。对该部分数据的存储和处理速度之间影响着整个系统的性能。
4.3.2 数据库中表的建立
本网站采用的是Microsoft Office 2003 Access数据库。主要分为学车常识(main)、在线考试(kaoshi)、在线报名(signup)、名师简介(teacher)等数据库中的表单,下面将具体介绍各表的内容。
表4-1 学车常识表main
字段名 | 字段类型 | 是否为主键 | 是否允许为空 | 说明 |
id | 自动编号 | 是 | 否 | 常识编号 |
titletype | 文本 | 否 | 是 | 标题类型 |
user | 文本 | 否 | 是 | 文章来源 |
title | 文本 | 否 | 是 | 标题名称 |
writer | 文本 | 否 | 是 | 作者 |
cnwords | 备注 | 否 | 是 | 正文 |
date | 日期/时间 | 否 | 是 | 日期 |
| 文本 | 否 | 是 | 邮件地址 |
上表主要是用来完成学车常识模块功能,通过调用表中的各字段内容,在页面中显示常识的内容,作者,日期,来源等相关的信息。
表4-2 在线考试表kaoshi
字段名 | 字段类型 | 是否为主键 | 是否允许为空 | 说明 |
id | 自动编号 | 是 | 否 | 题号 |
quest | 文本 | 否 | 是 | 题目 |
A | 文本 | 否 | 是 | 答案A |
B | 文本 | 否 | 是 | 答案B |
C | 文本 | 否 | 是 | 答案C |
D | 文本 | 否 | 是 | 答案D |
right | 文本 | 否 | 是 | 正确答案 |
上表主要是用来完成在线考试模块功能,通过调用表中的各字段内容,在页面中显示试卷的内容,选项,正确答案等相关的信息,并在考生提交后给出分数。
表4-3 在线报名表signup
字段名 | 字段类型 | 是否为主键 | 是否允许为空 | 说明 |
id | 自动编号 | 是 | 否 | 报名编号 |
name | 文本 | 否 | 否 | 姓名 |
sex | 文本 | 否 | 是 | 性别 |
age | 数字 | 否 | 是 | 年龄 |
card | 数字 | 否 | 否 | 身份证号 |
tel | 数字 | 否 | 否 | 联系方式 |
address | 文本 | 否 | 否 | 地址 |
type | 文本 | 否 | 否 | 学车类型 |
| 文本 | 否 | 是 | 邮件地址 |
job | 文本 | 否 | 是 | 工作单位 |
ask | 文本 | 否 | 是 | 备注 |
teacher | 文本 | 否 | 否 | 选择老师 |
上表主要是用来完成在线报名模块功能,通过调用表中的各字段内容,在页面中显示报名学生的姓名、性别、年龄、身份证号、联系方式、地址、选择要学的车类型、邮件、工作单位、备注、选择的老师等相关的信息,并在学生把必填内容都填正确提交后显示报名成功。
表4-4 名师简介表teacher
字段名 | 字段类型 | 是否为主键 | 是否允许为空 | 说明 |
id | 文本 | 是 | 否 | 老师编号 |
name | 文本 | 否 | 是 | 姓名 |
age | 数字 | 否 | 是 | 年龄 |
zhichen | 文本 | 否 | 是 | 职称 |
mark | 数字 | 否 | 是 | 票数/分数 |
photo | 文本 | 否 | 是 | 照片 |
jianjie | 文本 | 否 | 是 | 简介 |
xxqk | 文本 | 否 | 是 | 详细情况 |
上表主要是用来完成名师简介模块功能,通过调用表中的各字段内容,在页面中显示老师的姓名、年龄、职称、票数、照片、详细情况等相关的信息,可以让学生更好的了解老师。
4.3.3 建立与数据库的连接
在服务器上,进入Windows操作系统的控制面板,在“数据源(ODBC)图标上双击,版本不同图标可能不一样。不同操作系统的启动方法有所不同。双击“ODBC数据源管理器”对话框,会出现ODBC源管理器对话框(ODBC Data Sources Administrator Dialog box)。
单击驱动程序标签,可以看到你的电脑上已经安装的ODBC数据库驱动程序。在下拉列表中寻找Microsoft Access Driver(*.mdb)项。
第5章 系统功能模块的具体实现
根据第3章和第4章中描述的本驾校管理系统的设计方案、功能模块的设计,本章主要介绍了本系统各功能模块的具体描述与实现,其中包括界面和主要实现代码。
接下来详细说明了本系统的学车常识、名师简介、在线考试、网上报名、留言模块以及后台管理的具体实现。
5.1 学车常识模块
本功能模块是用来上传一些学车常识,并通过更新来达到让学员能浏览到最新的的学车常识。其主界面如下图5-1所示:
图5-1 学车常识模块界面
这个子模块的功能就是用来给用户浏览本系统所更新的最新学车知识,其主要是通过读取数据库中字段内容显示在页面上。实现思路将数据库中内容读出来,读者通过点击文章标题可以进入正文,并通过上一篇,下一篇进行翻页。
主要实现代码如下:
首先建立一个connaozhou.asp文件,其中代码用来创建数据库对象,后面其他的功能模块都可以直接调用它。
<%
set connaozhou=server.CreateObject("adodb.connection")
DBPath = Server.MapPath("jxdb.mdb")
connaozhou.open "provider=microsoft.jet.oledb.4.0;data source="&DBpath
function CloseDB
Connaozhou.Close
set Connaozhou=Nothing
End Function
%>
在这个功能模块中,首先调用connaozhou.asp文件中包含的功能代码,创建一个数据库记录集,并查询其中main表中的titletype字段。
<!-- #include file="connaozhou.asp" -->
<% set rs=server.CreateObject("adodb.recordset")
sql="select top 8 * from main where titletype=1 order by id desc"
rs.open sql,connaozhou,1,1
i=1%>
接下来这段代码是用来实现读出数据库中的id、title、writer、date字段,并将详细内容显示到show1.asp页面上去。
<tr>
<td width="51%">
<a href="show1.asp?id=<%=Rs("id")%>">('将id号的内容链接到show.asp页面')
<%=Rs("title")%></font></a></td>('读title字段记录')
<td width="20%"><font <%=Rs("writer")%></font></td>
<td width="29%"><font <%=Rs("date")%></font></td>
<% if i mod 1=0 then %>
</tr>
<% end if rs.movenext
i=i+1
loop
rs.close
set rs=nothing%>
在进入学车常识页面后,学员可以通过点击图5-1所示的常识信息列表就可以进入具体学车常识信息阅读界面。其主界面如图5-2所示:
图5-2 学车常识具体信息模块界面
学员可以通过前面的信息列表页面的链接进入上图所示页面,在页面内能阅读到详细的学车信息,并可以通过点击页面下方的上一篇、下一篇进行信息之间的切换。
具体实现代码如下:
<td height="16" align="center" valign="middle" bgcolor="#8CCEF3">发表人:<%=Rs("user")%> 来源:<%=Rs("writer")%> </td>
</tr>
<tr>
<td align="left" valign="top" bgcolor="#D4EBFB">文章内容:
<br><br>
<%=Rs("cnwords")%>
<br>
<br></td>
</tr>
<tr>
<td height="20" align="left" valign="top" bgcolor="#8CCEF3">
<div align="center"></div>
<div align="center"> <%=Rs("date")%> <== 本文完 ==> <br>
<a href="show1.asp?id=<%=rs("id")+1%>">上一篇</a> <a href="show1.asp?id=<%=rs("id")-1%>">下一篇</a>
5.2 名师简介模块
本功能模块是用来介绍一些经验丰富,极具教学心得的名师给学员,学员可通过此功能模块来熟悉老师情况并可以给老师投票,在后面的在线报名模块中也可以选择你喜欢的老师。其主界面如图5-3所示:
接下来这段代码是用来实现读出数据库中的老师照片、老师编号、老师姓名、老师年龄等字段,并将详细内容显示到页面上。
主要实现代码如下:
<img src="icon/<%=(Recordset1.Fields.Item("老师照片").Value)%>.jpg" width="100" height="90" align="top" /></td>
<td width="16%">老师编号:</td>
<td width="65%"><%=(Recordset1.Fields.Item("老师编号").Value)%></td>
</tr>
<tr>
<td>老师姓名:</td>
<td><%=(Recordset1.Fields.Item("老师姓名").Value)%></td>
</tr>
<tr>
<td>老师年龄:</td>
<td><%=(Recordset1.Fields.Item("老师年龄").Value)%></td>
</tr>
<tr>
<td>老师职称:</td>
<td><%=(Recordset1.Fields.Item("老师职称").Value)%></td>
</tr>
<tr>
<td >老师简介:</td>
<td><%=(Recordset1.Fields.Item("老师简介").Value)%></td>
</tr>
图5-3 名师介绍模块界面
在上图所示的页面中,学员可以查看老师的详细情况,也可以给这位老师投票。
点击详细情况按钮进入查看老师详细情况页面。
点击给老师投票按钮可以进入给老师投票的界面,学员可以在此页面给自己喜欢的老师投票,投票提交后将票数统计出来然后在名师详细情况页面中显示出来,其主要界面如图5-4所示:
图5-4 给老师投票模块界面
上述基本功能是在表单中实现的,在表单中包含了读取数据库中相应字段的内容
并通过表单提交得出结果。算出老师的得票数,其主要代码实现为:
<form id="form1" name="form1" method="post" action="">
<td height="30">老师得票:</td>
<td><%=(Recordset1.Fields.Item("老师得分").Value)%></td>
</form>
5.3 在线考试模块
本功能模块是用来在线测试学员在一段时间的理论知识学习后的效果,学员可通过此功能模块在规定时间内答题并交卷,在页面上有时间提醒,交卷后即可给出正确答案和所的的分数。其主界面如图5-5所示:
图5-5 在线考试模块界面
接下来这段代码就是用来实现上图所显示的功能。主要实现代码如下:
页面中显示时间的代码为:
<script language=javascript>
varsec=0;varmin=0;var hou=0;flag=0;idt=window.setTimeout("update();",1000);
function update(){sec++;if(sec==60){sec=0;min+=1;}if(min==60){min=0;hou+=1;}
if((min>0)&&(flag==0)){flag=1;}
document.forms.timea.value=hou+""+min+""+sec+"";
idt=window.setTimeout("update();",1000);}
</script>
页面中交卷和重置功能实现代码为:
<input id=submit1 name=submit1 type=submit value="交卷">
<input id=reset1 name=reset1 type=reset value="重填">
在考生考试完后,考生提交试卷,在提交过程中会遇到以下几种情况:
1.当考生未做任何选题时提交试卷将出现提示你没有做任何选择,得出分数为0。
2.当考生做了选题时,提交试卷就会出现正确答案,如选择正确将显示恭喜您!答对了,若选择错误将提示正确答案,最后在页面下部给出最后考试分数和及格情况。
具体功能界面如图5-6所示:
图5-6 学生交卷后模块界面
学生提交试卷后,根据各题的ID将正确答案与学生所选答案数据进行比较,在页面左边显示出试卷题号好题目内容,右边显示出正确答案和学生选的答案正确与否的判断。具体实现方法为:
<%
Response.Write( rs1("right1"))
%>
下面这段代码主要是用来实现给出正确答案和判断提示的功能,它是通过提交表单form中的数据库字段来显示相应的内容,如果学生没有做任何选择则提示你没有选择,如果选择正确则提示答对信息,
<%
if Request.Form("1")="" then
Response.Write( "你没有选择")
else if rs1("right")=Request.Form(i) then
Response.Write( "恭喜您!答对了")
ycorrect=ycorrect + 1
end if
end if
%>
>
下面这段代码主要用来实现网页底部显示出来的学生得分情况和及格情况。它是通过计算分数的公式来算出得分,并根据得分范围来划分出不及格、及格和优秀三种等级。其主要实现代码为:
<tr>
<TD width="40" > </TD>
<td height="48">
<%
score=int(ycorrect/rs1.recordcount*100)
Response.Write"你的分数是:"&(score)&"<br>"
if score <= 60 then Response.Write "你不及格!"&"<br>"
if score >= 60 and score <= 80 then Response.Write "及格"&"<br>"
if score >= 80 and score <= 100 then Response.Write "优秀!"
%>
</td>
<TD width="168" ><a href="test1.asp">返回</a></TD>
</tr>
5.4 网上报名模块
本功能模块是用来给学员在线报名的,学员可通过此功能模块在所要求的选项中如实填写资料,带*的为必填项,如果填错或未填信息,提交时提示出错信息,填对则提示报名成功,并将信息记录到数据库中,其主界面如图5-7所示:
图5-7 在线报名模块界面
主要实现代码如下:
<form action="tijiao.asp" method="post" name="form1" target="_blank"
id="form1" >
<td width="84" height="14" >
<strong>姓名:</strong></td>
<td width="450" height="14" ><label>
<input name="name" type="text" id="name" />
<span class="STYLE10">*</span>
<select name="type" id="type">
<option value="C1型_手动档小车">C1型_手动档小车</option>
<option value="B2型_大型货车">B2型_大型货车</option>
</select>
</form>
下面是提交和重置功能的实现代码:
<td width="84" height="14" > </td>
<td width="450" height="14" ><label>
<input type="submit" name="Submit" value="提交" />
<input type="reset" name="Submit2" value="重置" />
</label></td>
当学员未填写必填资料时,提交后就会显示错误提示页面.它是通过先定义一些要填资料名称的变量,如:
dim name1 ,age ,card ,sex ,type1 ,address ,ask ,tel ,email ,job,rs_user
在将数据库中相应的字段名赋值给这些变量:
name1=request("name")
然后学员输入的值,根据所设定的判断条件来判断是否应输出提示错误信息:
if name1="" then
err(1)=" 姓名不能为空"
haveerr="yes"
其界面如图5-8所示:
图5-8 在线报名错误提示模块界面
如果资料填写全部正确则进入成功界面将信息寸入数据库,并提示报名成功。
5.5 留言本
本功能模块是用来给学员和学校有一个交互的平台,学员可通过此功能模块在填写自己的留言,管理员可以通过登录到系统,对留言进行查询和编辑,其主界面如下图5-9所示:
图5-9 留言本模块界面
这个子模块主要包括显示留言内容和回复留言内容两大版块,交互性很强,界面简洁美观,功能强大。实现思路是把学员的留言记录到数据库中,并通过调用记录读出留言内容,将其显示在页面中,等管理员查看后并做出即时回复,当留言量达到一定程度后就可以将以前的留言删除。在模块上学员还可以直接发邮件给管理员,这样联系管理员的方式也增多了。
在主页面中可以点击管理留言进入管理员登陆界面,登陆界面如图5-10所示:
图5-10 管理登陆模块界面
管理员填写正确用户名和密码后进入管理留言界面,在页面中管理员可以查看、回复、编辑和删除留言。登陆界面主要实现代码为:
<form id="form1" name="form1" method="POST" action="<%=MM_LoginAction%>">
<table width="300" border="0" align="center">
<tr>
<td width="94"><div align="center">管理员名称:</div></td>
<td><label>
<input name="username" type="text" id="username" size="20" />
</label></td>
</tr>
<tr>
<td><div align="center">管理员密码:</div></td>
<td><label>
<input name="password" type="password" id="password" size="20" />
</label></td>
</tr>
<tr>
<td><div align="center"></div></td>
<td><label>
<input type="submit" name="Submit" value="进 入" />
</label>
<label>
<input type="reset" name="Submit2" value="重 填" />
</label></td>
</tr>
</table>
</form>
登陆后管理员可以回复留言,其主界面如图5-11所示:
图5-11 回复留言模块界面
管理员除了拥有回复留言的功能外,还具有编辑修改留言,删除留言,总之这个留言本界面比较简洁美观,让人看起来舒服,功能也十分强大,是个非常好用的留言本。
5.6 后台管理模块
在系统中,后台管理所实现的功能是对前面所介绍的学车常识、名师简介、在线考试、网上报名等功能模块进行数据管理,可以对个模块的内容进行添加、删除、修改等主要功能。本节详细介绍后台管理中网站管理、常识管理、老师管理、考卷管理、考生管理模块的具体实现。
首先通过前台主页的管理入口链接进入后台系统登录界面,如图5-12所示:
图5-12 管理员登录界面
登录界面具体实现代码为:
<!--#include file="inc/conn.asp"-->
<!--#include file="inc/copy.inc"-->
<% dim rndnum,verifycode
Randomize
Do While Len(rndnum)<4
num1=CStr(Chr((57-48)*rnd+48))
rndnum=rndnum&num1
loop
session("verifycode")=rndnum
%>
在上图登录界面中,管理员通过输入用户名和密码进入后台管理界面,具体界面如图5-13所示:
图5-13 后台管理主界面
在本系统中的界面结构是基于框架的,由左侧快键菜单和右侧功能页面组成。快捷菜单名文件名为left.asp,右侧默认的页面为main.asp。
页面结构在default.asp文件中定义,这个文件的代码
<html>
<head>
<title></title>
</head>
<frameset cols=”130,*” frameborder=”NO” border=”0” framespacing=”0” row=”0”>
<frame name=”frmlefr” src=”left.asp”>
<frame name=”frmmain” src=”main.asp”>
</frameset>
<noframes>
</noframes>
<html>
进入主界面后,可以点击页面的左侧菜单进行相应的管理操作。
5.6.1 网站管理
在网站管理中主要包含功能:
- 初始信息
在初始信息模块中,可以修改用户名和密码,它是通过rs.update来修改数据库中的数据,其中包括判断条件和提示信息,界面如图5-14所示:
图5-14 用户资料修改界面
具体实现代码为:
<%
if request("action")="change" then
sql="select * from manager where admin_name ='"&admin_name&"'"
rs.open sql,conn,1,3
if len(request("pwd"))<6 then
response.write "<font color='red'>密码不能少于6位!</font>"
response.write "<a href='change.asp'>返回</a>"
else
rs("admin_name")=request("name")
pwd=md5(request.Form("pwd"),16)
rs("pwd")=pwd
rs.update
rs.close
response.write "您的更改已成功"
end if
else
%>
- 添加管理员
可以通过本模块输入用户名和密码来直接添加管理员,界面如图5-15所示:
图5-15 添加管理员模块界面
具体实现方法是对用户输入的数据进行判断并通过表单来提交记录,点击添加显示操作提示,实现代码为:
<form id="form1" name="form1" method="post" action="admin_add.asp?action=add">
<input type="submit" name="Submit" value="添加" />
<input type="reset" name="Submit2" value="取消" /></td>
</form>
- 管理员管理
在这个模块中可以对管理员进行修改和删除操作,由于本系统力求界面简单,操作方便,所以不进行复杂的界面设计,模块主要界面如图5-16所示:
图5-16 管理员管理模块界面
具体实现方法是管理员单击修改按钮时本页面将用户ID号提交到修改页面中,点击修改操作,实现代码为:
<td width="137" align="center" bgcolor="#ffffff"><a href="admin_mod.asp?id=<%=rs("id")%>">修改</a></td>
点击删除按钮,实现代码为:
<a href="delad.asp?id=<%=rs("id")%>">删除</a>
5.6.2 常识管理
常识管理主要包括两个功能模块:
1.常识添加
常识添加功能模块可以将常识名称、来源、内容和发表人等数据添加到数据库中,前台页面通过添加的常识ID将存入数据库中的记录显示出来,具体实现方法所需要的代码为:
sql="select * from main order by id desc"
rs.open sql,conn,1,3
rs.addnew
rs("id")=id
rs("title")=title
rs("cnwords")=content
rs("writer")=writer
'rs("hit")=0
rs("user")=fabu
rs.update
response.Write "添加常识成功!!"
response.Write "<a href='dealnews.asp'>"
Response.Write "返回"
Response.Write("</a>")
常识添加模块功能界面如图5-17所示:
图5-17 常识添加模块界面
2.常识管理
常识管理主要包括修改和删除功能常识, 在界面中可以点击常识标题进入修改页面修改常识内容,其功能具体实现代码为:
sql="select * from main where id='"&request("id")&"'"
rs.open sql,conn,1,3
rs("name")=name1
rs("cnwords")=content
rs("user")=user
rs("writer")=writer
rs.update
response.Write "修改常识成功!!"
response.Write "<a href='new_manage.asp'>"
Response.Write "返回"
Response.Write("</a>")
response.End
修改常识主界面如图5-18所示:
图5-18 常识修改模块界面
在操作中点击删除功能可以删除常识,具体实现代码为:
set rs=server.CreateObject("adodb.recordset")
sql="select * from main where id="&request("id")
rs.open sql,conn,1,3
rs.delete
rs.update
response.Redirect "dealnews.asp"
5.6.3 老师管理
老师管理主要包括两个功能模块:
1.老师添加
老师添加功能模块可以将老师编号、老师姓名、照片、介绍等数据添加到数据库中,前台页面通过添加的老师ID将存入数据库中的记录显示出来,老师添加模块功能界面如图5-19所示:
图5-19 老师添加模块界面
具体实现的方法和前面常识添加的基本一致,其中上传老师图片的实现代码为:
call lanyuhtml("upload.asp",400,25)
<%
sub lanyuhtml(addr,w,h)
Response.write("<IFRAME name='i1' src='"&addr&"'; frameBorder=0 width="&w&" scrolling=no height="&h&"> </IFRAME>")
end sub%>
2.老师管理
老师管理主要包括修改和删除功能操作,老师管理的主要界面如图5-20所示:
图5-20 老师管理模块界面
在上图界面中可以点击老师标题来进行修改老师内容,其功能与上面介绍的其他模块中的修改功能基本一致,在操作中点击删除功能可以删除老师资料,具体实现代码为:
<a href="anli_del.asp?id=<%=rs("老师编号")%>" onClick="return checkIn();">删除</a>
function checkIn()
{if(confirm("你真的要删除这条记录?"))
return true
else
return false;
}
sql="select * from teacher where 老师编号='"&request("id")&"'"
rs.open sql,conn,1,3
rs.delete
rs.update
response.Redirect "anli_manage.asp"
5.6.4 考卷管理
考卷管理主要包括两个功能模块:
1.试题添加
试题添加功能模块可以将试题编号、题目、以及各选项和正确答案等数据添加到数据库中,前台页面通过添加的试题ID将存入数据库中的记录显示出来,
具体实现代码为:
set rs=server.createobject("adodb.recordset")
sql="select * from kaoshi "
rs.open sql,conn,1,3
rs.addnew
rs("id")=id
rs("quest")=mContent
rs("A")=A
rs("B")=B
rs("C")=C
rs("D")=D
rs("right1")=E
rs("right")=F
rs.update
试题添加模块功能界面如图5-21:
图5-21 试题添加模块界面
2.试题管理
试题管理主要包括修改和删除功能操作,其中调用修改和删除功能的代码为:
<a href="down_admin_modi.asp?id=<%=rs("id")%>">修改</a>||<a href="down_admin_del.asp?id=<%=rs("id")%>" onClick="return checkIn();">删除</a>
点击操作中的修改按钮进入修改试题界面,在界面中可以修改试题题目、答案等各项内容。
点击操作中的删除按钮将弹出提示框提示是否删除,如果选是就直接删除试题,选否回到试题管理界面。
试题管理的主要界面如图5-22所示:
图5-22 试题管理模块界面
5.6.5 学生管理
学生管理主要包括修改和删除功能操作,其中调用修改和删除功能的代码为:
<a href="UserModify.asp?UserID=<%=rs("ID")%>">修改</a>
<a href="UserDel.asp?UserID=<%=rs("ID")%>" onClick="return ConfirmDel();">删除</a>
点击操作中的修改按钮进入修改学生资料修改界面,在界面中可以修改学生姓名、性别、E-mail、工作单位、身份证号码等内容。
点击操作中的删除按钮将弹出提示框提示是否删除,如果选是就直接删除学生资料,选否回到学生管理界面。
学生管理的主要界面如图5-23所示:
图5-23 学生管理模块界面
以上就是后台管理实现的一些基本功能,基本上可以实现系统的管理功能。
相关文章:
基于ASP.NET的驾校管理系统设计与实现
摘 要 伴随国民经济的飞速发展和人民生活水平的不断提高,家用汽车在我国逐渐普及。面对不断增长的庞大的用户群,随之产生的驾驶培训行业,规模不断扩大。近年来,随着Internet的迅速发展以及网页制作技术的日臻完善,驾校…...
第一章 计算机系统概述 三、操作系统的发展与分类
一、手工操作阶段 缺点:人机速度矛盾 二、批处理阶段 1、单道批处理系统(引入脱机输入输出技术) 优点:缓解人机速度矛盾 缺点:资源利用率依然很低 2、多道批处理系统(操作系统开始出现) 优点:多道程序并发进行,…...
【2023年11月第四版教材】第12章《质量管理》(第二部分)
第12章《质量管理》(第二部分) 4 规划质量管理4.1 数据收集★★★4.2 数据分析★★★4.3 数据表现★★★4.4 质量管理计划★★★4.5 质量测量指标★★★ (22下35) 4 规划质量管理 组过程输入工具和技术输出计划1.规划质量管理1.项…...
metinfo __ 6.0.0 __ file-read
metinfo __ 6.0.0 __ file-read 说明内容漏洞编号–漏洞名称MetInfo 6.0.0 任意文件读取漏洞漏洞评级高危影响范围6.0.0.0漏洞描述MetInfo 存在任意文件读取漏洞,攻击者利用该漏洞,在具有权限的情况下,可以读取网站任意文件,包括…...
打造高效的私密论坛网站:Cpolar内网穿透+HadSky轻量级搭建指南
文章目录 前言1. 网站搭建1.1 网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道(云端设置)2.3 Cpolar稳定隧道(本地设置)2.4 公网访问测试 总结 前言 经过多年的基础…...
MediaCodec源码分析 configure流程
前言 本文梳理MediaCodec configure流程,基于7.0代码,这里只分析AVC和HEVC的视频硬解,流程图如下。 代码见: frameworks/base/media/java/android/media/MediaCodec.java frameworks/base/media/jni/android_media_MediaCodec.h frameworks/base/media/jni/android_media_…...
借助ChatGPT使用Pandas实现Excel数据汇总
一、问题的提出 现在有如下一个Excel表: 上述Excel表中8万多条数据,记录的都是三年以来花菜类的销量,现在要求按月汇总实现统计每个月花菜类的销量总和,如果使用Python的话要给出代码。 二、问题的解决 1.首先可以用透视表的方…...
[学习笔记]PageRank算法
参考资料:改变世界的谷歌PageRank算法 pagerank算法用于计算节点重要度 思想 如果网页被更多的入度(被引用),则网页更重要。 被重要网站引用比被普通网站引用更加凸显重要性。 所以考虑一个网站是否重要,需要看引用它的网站是否重要&#…...
【洛谷算法题】P5704-字母转换【入门1顺序结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5704-字母转换【入门1顺序结构】🌏题目描述🌏输入格式&a…...
Pytorch——查找、替换module相关操作
nn.Module类可用操作 1. model.named_parameters() # 遍历模型的所有参数并打印它们的名称和形状 for name, param in model.named_parameters():print(f"Parameter Name: {name}, Parameter Shape: {param.shape}")输出示例: Parameter Name: conv1.w…...
组件安全以及漏洞复现
组件安全 1. 概述 A9:2017-使⽤含有已知漏洞的组件 A06:2021-Vulnerable and Outdated Components 组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。如果应用程序中含有已知漏洞的组件被攻击者利用,可能会造成…...
人工智能安全-4-小样本问题
0 提纲 小样本学习问题数据增强基于模型的小样本学习基于算法的小样本学习相关资源1 小样本学习问题 在小样本监督分类中,通常将问题表述为 N-way-K-shot分类, 当K = 1,称为one-shot learning;当K = 0时,成为zero-shot learning(ZSL)。ZSL就要求学习的问题具备充足的先…...
iOS 17中的Safari配置文件改变了游戏规则,那么如何设置呢
Safari在iOS 17中最大的升级是浏览配置文件——能够在一个应用程序中创建单独的选项卡和书签组。这些也可以跟随你的iPad和Mac,但在本指南中,我们将向你展示如何使用运行iOS 17的iPhone。 你可能有点困惑,为什么Safari中没有明显的位置可以添…...
AC自动机小结
AC自动机是一种多模匹配算法。 常见操作 查询一个串的子串 任何一个串的子串都可以表示成他的一个前缀的后缀 他的前缀可以在Trie树上查询 后缀相当于其在fail树上的所有祖先 例1 : HDU4117 接上。首先AC自动机要学会离线。 对于每个点查询祖先复杂度很大。…...
【C++】构造函数分类 ③ ( 调用有参构造函数的方法 | 括号法 | 等号法 )
文章目录 一、在不同的内存中创建类的实例对象1、括号法调用构造函数2、等号法调用构造函数 二、完整代码示例 一、在不同的内存中创建类的实例对象 在上一篇博客 【C】构造函数分类 ② ( 在不同的内存中创建类的实例对象 | 栈内存中创建实例对象 | new 关键字创建对象 ) 中 , …...
uni-app 之 uni.request 网络请求API接口
uni-app 之 uni.request 网络请求API接口 image.png <template><!-- vue2的<template>里必须要有一个盒子,不能有两个,这里的盒子就是 view--><view>--- uni.request 网络请求API接口 ---<view><!-- 免费的测试接口 --…...
代码随想录33|509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯, 34. 在排序数组中查找元素的第一个和最后一个位置
509. 斐波那契数 链接地址 class Solution { public:int fib(int n) {if (n < 1) return n;vector<int> dp(n 1);dp[0] 0;dp[1] 1;for (int i 2; i < n 1; i) {dp[i] dp[i - 1] dp[i - 2];}return dp[n];} };70. 爬楼梯 链接地址 class Solution { public…...
什么是Executors框架?
Executors 是 Java 标准库中的一个工具类,位于 java.util.concurrent 包中,用于创建和管理线程池。它提供了一组静态工厂方法,用于快速创建不同类型的线程池。Executors 框架的目标是使线程池的创建和管理更加简单和方便。 以下是一些 Executors 框架的常用工厂方法和线程池…...
【kafka】kafka单节点/集群搭建
概述 本章节将分享不同版本的kafka单节点模式和集群模式搭建。 在kafka2.8版本之前,需要依赖zookeeper服务,而在kafka2.8版本(包括)之后,可以不在依赖zookeeper服务。本章节将分kafka2.8版本之前的版本和之后的版本分…...
如何进行机器学习
进行机器学习主要包含以下步骤: 获取数据:首先需要获取用于学习的数据,数据的质量和数量都会影响机器学习的效果。如果自己的数据量较少,可以尝试在网上寻找公开数据集进行训练,然后使用自己的数据进行微调。另一种方…...
Vue项目使用axios配置请求拦截和响应拦截以及判断请求超时处理提示
哈喽大家好啊,最近做Vue项目看到axios axios官网:起步 | Axios 中文文档 | Axios 中文网 (axios-http.cn) 重要点: axios是基于Promise封装的 axios能拦截请求和响应 axios能自动转换成json数据 等等 安装: $ npm i…...
《DevOps实践指南》- 读书笔记(四)
DevOps实践指南 Part 3 第一步 :流动的技术实践11. 应用和实践持续集成11.1 小批量开发与大批量合并11.2 应用基于主干的开发实践11.3 小结 12. 自动化和低风险发布12.1 自动化部署流程12.1.1 应用自动化的自助式部署12.1.2 在部署流水线中集成代码部署 12.2 将部署…...
盲打键盘的正确指法指南
简介 很多打字初学者,并不了解打字的正确指法规范,很容易出现只用两根手指交替按压键盘的“二指禅”情况。虽然这样也能实现打字,但是效率极低。本文将简单介绍盲打键盘的正确指法,以便大家在后续的学习和工作中能够提高工作效率…...
【MySQL】索引 详解
索引 详解 一. 概念二. 作用三. 使用场景四. 操作五. 索引背后的数据结构B-树B树聚簇索引与非聚簇索引 一. 概念 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各…...
怎么通过ip地址连接共享打印机
在现代办公环境中,共享打印机已成为一种常见的需求。通过共享打印机,多个用户可以在网络上共享同一台打印机,从而提高工作效率并减少设备成本。下面虎观代理小二二将介绍如何通过IP地址连接共享打印机。 确定打印机的IP地址 首先࿰…...
迅为i.MX8mm小尺寸商业级/工业级核心板
尺寸: 50mm*50mm CPU: NXP i.MX8M Mini 主频: 1.8GHz 架构: 四核Cortex-A53,单核Cortex-M4 PMIC: PCA9450A电源管理PCA9450A电源管理NXP全新研制配,iMX8M的电源管理芯片有六个降压稳压器、五…...
vue中v-for循环数组使用方法中splice删除数组元素(错误:每次都删掉点击的下面的一项)
总结:平常使用v-for的key都是使用index,这里vue官方文档也不推荐,这个时候就出问题了,我们需要key为唯一标识,这里我使用了时间戳(new Date().getTime())处理比较复杂的情况, 本文章…...
Python用GAN生成对抗性神经网络判别模型拟合多维数组、分类识别手写数字图像可视化...
全文链接:https://tecdat.cn/?p33566 生成对抗网络(GAN)是一种神经网络,可以生成类似于人类产生的材料,如图像、音乐、语音或文本(点击文末“阅读原文”获取完整代码数据)。 相关视频 最近我们…...
嵌入式Linux驱动开发(LCD屏幕专题)(一)
一、LCD简介 总的分辨率是 yres*xres。 1.1、像素颜色的表示 以下三种方式表示颜色 1.2、如何将颜色数据发送给屏幕 每个屏幕都有一个内存(framebuffer)如下图,内存中每块数据对用屏幕上的一个像素点,设置好LCD后ÿ…...
uniapp搜索功能
假设下方数据是我们从接口中获取到的,我们需要通过name来搜索,好我们看下一步。 data: [{"id": 30,"category_id": 3,"name": "日常家居名称","goods_num": 20,"integral_num": 20,&q…...
网站后台文本编辑器/网推是什么
在编程界,Python是一种神奇的存在。有人认为,只有用Python才能优雅写代码,提高代码效率;但另一部分人恨不能把Python喷成筛子。那么,Python到底有没有用,为什么用Python找不到工作?Python到底能…...
大连市网站制作电话/新东方线下培训机构官网
在使用php开发之中大家都习惯使用gb类库来处理图像信息,但是函数很多的gb类库也是很头疼,使用起来要一个个的查询函数和看官方手册,下面将介绍一个很强大的图像处理工具----ImageMagick,这个在liunx下面处理图像信息将会更简洁。先…...
株洲网络/北京seo网站设计
一个事务中有多个对数据库操作的点 一个点完成了 事务没有结束 在数据库中就差不到这个变化 mysql的默认隔离级别 可重复读 也就是必须最起码读到已经提交了的数据 SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;这行代码 将当前的会话的隔离级别设置为 读未提交…...
wordpress多站点数据共享/培训机构在哪个平台找
2019独角兽企业重金招聘Python工程师标准>>> 为什么使用Maven? 1.目前的技术在开发中存在的问题 ①.一个项目就是一个工程: 如果项目非常庞大,就不适合使用package来划分模块,最好每一个模块对应一个工程,利…...
腾讯邮箱网页版/seo技术服务外包
51%的企业在过去12月内发生过数据泄漏面对日益复杂的安全环境,多样化的攻击手段,传统的防护已经失效,你的安全团队是否做好了准备? 深井式的管理架构,各自封闭的信息系统,无迹可寻的内部泄漏,防…...
西安给公司做网站/站长seo软件
文章目录1. AspectJ1.1 什么是AspectJ1.2 基于AspectJ实现AOP操作2. Spring实现AOP2.1 基于注解2.1.1 完全注解开发2.2 基于配置文件1. AspectJ Spirng框架一般都是基于AspectJ实现AOP操作 1.1 什么是AspectJ AspectJ不是Spring组成部分,独立于AOP框架࿰…...