公交查询系统

目    录

  

第一章   

1.1 数据库技术

1.1.1 数据库体系结构

1.1.2 数据库管理信息系统(DBMS

1.2 公交查询系统

1.2.1 计算机网络

1.2.2 系统功能

1.2.3 系统运行环境

1.2.4 系统开发工具

1.2.5 现状与前景

1.3 本文所作的工作

第二章 基于Eclispe平台下的开发技术

2.1 B/S结构介绍

2.2 Java程序框架

2.3 B/S架构具备极大的优越性

第三章  公交查询系统设计分析

3.1应用需求分析

3.2 系统功能模块划分

3.3 系统数据库设计

3.3.1概念设计

3.3.2 逻辑设计

第四章  公交查询系统设计分析

4.1 查询模块的功能实现

4.2 管理更新的功能实现

4.3 公交线路管理

结束语

 

摘   要

如今计算机网络发展非常迅速,时间的重要性对于人们来说不言而喻,人们出行越来越注重时间的节约,城市公交已经成为出行的一种主要的方式,本文结合公交运行的实际来对公交查询信息系统进行可行性研究,通过详实的问题定义与需求分析并且进行了合理的设计,提出了在B/S模式下的三层体系结构,应用了当前最流行的Eclispe开发环境,后台采用了以目前最稳定的SQL Server2005数据库为开发平台。目前,该信息系统已经完成了模块的需求分析、数据库设计以及应用程序设计的工作,并且主要模块运行有效、稳定。该系统可以帮助查询人员找到能最快到达目的地,并且节约费用。通过浏览器查询,通过计算机网络全面联网,实现中心控制、自动更新、更多的查询方式、和GIS系统的互联互通等等更多更强大的功能。从这方面来说,此系统具有美好的应用前景。

关键词:管理信息系统,B/S结构,数据库,WEB服务器,JSP

第一章  绪  论

数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。优秀的数据库设计是应用成功的基石。万万丈高楼平地起,数据库设计如同高楼的基石,是开发高品质应用的前提。

1.1 数据库技术

1.1.1 数据库体系结构

数据的体系结构分成三级:内部级(Internal),概念级(Conceptual)和外部级(External)。这个三级结构有时也称为“三级模式结构”。 1)外部级:最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。 2)概念级:涉及到所有用户的数据定义、是全局的数据视图。全局视图的描述称为“概念模式”。 3)内部级:最接近于物理存储设备,涉及到实际数据存储的结构物理存储数据视图的描述称为“内模式”。 数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。

1.1.2 数据库管理信息系统(DBMS

数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、查询、更新及各种控制,都是通过DBMS进行的。 在不同的计算机系统中,由于缺乏统一的标准,即使同种数据模型的DBMS,它们在用户接口、系统功能方面也常常是不相同的。 用户对数据库进行操作,是由DBMS把操作从应用程序带到外部级、概念级、再导向内部级,进而操作存储器中的数据。DBMS的主要目标,是使数据作为一种可管理的资源处理。 DBMS的主要功能为: 1) 数据库定义功能:DBMS提供数据定义语言(DDL)定义数据库的三级结构,包括外模式、概念模式、内模式及基相互之间的映象,定义数据的完整性、安全控制等约束。因此,在DBMS中应包括DDL的编译程序。 2)数据库的操纵功能:DBMS提供数据操纵语言(DML)实现对数据库中数据的操作。基本的数据操作分成两类四种: 检索(查询)、更新(插入、删除、修改) 3)数据库的保护功能:数据库中的数据是信息社会的战略资源,对数据的保护是至关重要的大事。

4)数据库的恢复:在数据库被破坏或数据不正确时,系统有能力把数据库恢复到正确的状态。 5)数据库的并发控制:DBMS的并发控制子系统能防止错误发生,正确处理好多用户、多任务环境下的并发操作。 6)数据库的完整性控制:保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作。 7)数据库的安全性控制:防止未经授权的用户蓄谋或无意地存取数据库中的数据,以免数据的泄露、更改或破坏。 8)数据库的存储管理:把各种DML语句转换成低层的文件系统命令,起到数据的存储、检索和更新的作用。 9)数据库的维护功能:它有许多实用程序提供给数据库管理员: 数据装载程序 备份程序 文件重组织程序 性能监控程序 10)数据字典:数据库系统中存放三级结构定义的数据库称为数据字典(DD)。对数据库的操作都要通过访问DD才能实现,通常DD中还存放数据库运行时的统计信息。

1.2 公交查询系统 

1.2.1 计算机网络 

计算机网络是指将多台具有独立功能的计算机,通过通信线路和通信设备连接起来,在网络软件的支持下实现数据通信和资源共享的计算机系统。 计算机网络的规模有大有小,大的可以覆盖全球,小的仅局限于一个办公室。现在一般按照网络覆盖的地理范围将计算机网络分为三类:局域网(LAN)、城域网(MAN)、广域网(WAN)。

1.2.2 系统功能

1)基于浏览器(B/S模式)的公交线路分类查询;

2)数据的录入、修改、添加、删除。

1.2.3 系统运行环境 该系统采用Browser/Server模式进行设计: 在服务器上运行Web发布服务器、数据库程序,服务器操作系统为WindowsNT/2000/XP/2003 server,客户机操作为Windows9×/ NT/2000/XP/2003,其上运行浏览器程序,服务器和客户机可为同一设备。

1.2.4 系统开发工具 该系统采用JDK Java环境进行开发,数据库服务器为SQLServer2000,WEB发布服务器为Tomcat Server;客户端使用浏览器运行程序,整个系统调试成功。

1.2.5 现状与前景 

公交查询系统现状分析:鉴于中国目前的经济发展状况,中国人出行还是以公交车为主,所以每个城市的公交系统都比较庞大发达。公交查询系统是近两年出现的新生事物,每个城市的发展状况也是良莠不齐。目前的公交查询系统,基本上具备一下功能:采用车站站点查询、车次查询、路线分析查询三种查询形式,不仅能够查询到各条线路的起停站点,同时还能够分析出换乘车辆情况。 

公交查询系统的发展前景:未来的公交查询系统,将是基于B/S架构,通过浏览器查询,通过计算机网络全面联网,实现中心控制、自动更新、更多的查询方式、和GIS系统的互联互通等等更多更强大的功能。

1.3 本文所作工作

数据的三级模式结构:内部级,外部级和概念级。数据库系统的系统结构保证了数据库系统中能够具有较高的逻辑独立性和物理独立性。数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、操纵、保护恢复及并发性,安全性和完整性等各种控制以及存储和维护等功能,是通过DBMS进行的。  本文首先介绍了城市公交查询系统的应用背景、开发环境以及选用的开发工具与数据库的关系,阐明了计算机互联网络的概念。并对数据库的体系结构、DBMS进行了介绍;介绍关系型数据库的基本概念,着重说明了几个关键概念的定义;然后对SQL语言作了一个介绍说明;从特点和功能入手,介绍Java、JSP;并且介绍了B/S模式的概念、特点;用软件工程的方法分析城市公交查询系统,对整个系统进行了需求分析、功能模块划分,并通过ER图对数据库进行概念设计;对城市公交查询系统的具体设计,描述了查询、录入模块的实现过程。 最后,在结束语的总结部分指出了系统的亮点以及不足之处,简单介绍了自己开发过程中的体会与心得:在摸索中实践,在实践中摸索。

章 基于Eclispe平台下的开发技术

Java是Sun Microsystems于1995年推出的高级编程语言,Java 领域的JavaSE、JavaEE技术已发展成为同C#和.NET平分天下的应用软件开发平台和技术。

在 Sun 正式发布 JSP(JavaServer Pages) 之后,这种新的 Web 应用开发技术很快引起了人们的关注。 JSP 为创建高度动态的 Web 应用提供了一个独特的开发环境。按照 Sun 的说法, JSP 能够适应市场上包括 Apache WebServer,IIS4.0 在内的 85% 的服务器产品。

当今比较流行的软件技术研发模式是C/S和B/S的体系结构。C/S(Client/Server)结构,即客户机和服务器结构。通过C/S可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。

Eclipse 这样功能完整且成熟的开发环境,是由蓝色巨人IBM 所释出。IBM 花了4 千万美金来开发这个IDE(Integrated Development Environment)。第一版1.0 在2001 年11 月释出,随后逐渐受到欢迎。Eclipse已经成为开放原始码计划(Open Source Project),大部分的开发扔然掌握在IBM手中,但是有一部份由eclipse.org的软件联盟主导。

2.1 B/S结构介绍

B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起而对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现。大大简化了客户端电脑载荷,减少了系统维护与升级的成本和工作量,降低了用户的总体成本。B/S方式可以形成所谓三层以上的结构。B/S结构是一次到位开发,能实现不同人员,从不同地点,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更为方便、快捷、高效。B/S工作机制如图3-1所示:

传统的C/S架构(客户机/服务器,Client/Server)方式中,业务逻辑位于客户端,每完成一项事务,都要频繁地访问数据库,使得网络上数据流量非常大,对于慢速连接的用户,甚至无法使用。

图 2.1  B/S工作机制

2.2 Java程序框架

为弥补上述C/S架构的缺陷,人们发展出了三层或多层架构:客户机—中间件(应用服务器)—数据库服务器(Client—Middle ware—Database Server)。在这种架构中,业务逻辑放置于中间件服务器上,大量的数据流也位于中间件和数据库之间,而客户机只是简单地发出请求,中间件接受请求后进行事务处理并将处理的结果返回给客户机,这一类型的客户机也称之为“廋客户”。B/S架构实际上是三层架构的一种,所不同的是客户端就是目前几乎每台电脑中都有的网络浏览器,而中间件则是Web应用服务器。注意到主要的业务逻辑均由位于Web应用服务器上的Servlet和JSP程序或EJB来处理。

2.3 B/S架构具备极大的优越性

1)面向电子商务时代的技术

将来所有的应用系统几乎都在互联网或企业内部广域网上运行,发展电子商务成为企业不可避免的信息化道路。B/S架构的软件正是电子商务的基石,正是这类软件使得移动办公和分布式协同工作真正成为现实。无论在世界的那个角落,只需要一台可以联网的设备(计算机、PDA甚至手机)都可以方便地与客户联系和与他人协同工作。

2)软件操作、维护和升级方式的革命

软件系统的改进和升级越来越频繁,B/S架构的产品在维护和升级方面具备显著的优势。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只对服务器进行,通过远程连接服务器,异地的运维人员甚至于可以做到远程维护和升级,这对人力、时间、费用的节省是相当惊人的。所有的客户端只是浏览器,所有的操作都和上网浏览网页类似,使用者接受的培训也仅限于业务逻辑而无需将大量精力浪费学习软件操作上。

第三章  公交查询系统设计分析

根据数据库系统生存期的设计方法,从数据库应用系统和开发的全过程来考虑将数据库应用系统设计分为以下几个阶段:    

1)规划;     

2)需求分析;     

3)概念设计;     

4)逻辑设计;    

5)物理设计

3.1应用需求分析

    要设计一个良好的公交查询系统,就必须首先明确该应用环境对系统的要求。公交查询系统的应用背景为:方便市民搭乘公交车出行;手动(目前)、自动(将来)、及时更新查询数据。因此,该系统需满足以下几方面需求: 1)问题分析

(1)功能需求:该模块实现公交查询功能。该模块实现数据的录入、修改、删除功能。

(2)性能需求:系统的相应时间不能超过10ms

(3)出错处理需求:当输入的信息不全,或格式不正确时,提示出错信息。

2)问题描述

(1)信息要求:可实现按起点-中转站-终点查询查询和按线路查询两种查询方式。

(2)处理要求:该模块实现数据的录入、修改、删除功能。该模块由公交站点管理与公交线路管理两部分组成.

(3)安全性与完整性要求。用户进入系统前必须登陆,输入密码,经服务器确认后放开进入系统。(暂未实现)

3)数据的更新修改:

更新:系统允许管理员级别的用户对数据进行更新、修改并且存盘操作; 编辑:系统允许管理员级别的用户对数据进行编辑、删除的操作,保证现库的真实性与实时性。 4)打印输出(暂未实现):系统可以将用户查询到的内容动态地生成报表,并打印输出。

3.2 系统功能模块划分

公交查询系统功能划分模块如下:

1)查询系统模块  该模块实现公交查询功能。可实现按起点-中转站-终点查询查询和按线路查询两种查询方式。

详细设计视图如图3-1

图3-1查询系统模块

2)录入系统模块  该模块实现数据的录入、修改、删除功能。该模块由公交站点管理与公交线路管理两部分组成.详细设计视图如图3-2录入系统模块所示:

图3-2 录入系统模块

2)信息输入输出模块如图3-3所示:

图3-3   信息输入输出模块

3.3 系统数据库设计

3.3.1概念设计 概念设计的目标是产生反映城市公交查询系统需求的数据库概念结构,即概念模式。概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的。 1)ER模型 ER模型是对现实世界的一种抽象。它的主要成分是实体、联系和属性。使

用这三种成分,我们可以建立许多应用环境的ER模型。 2) ER模型的操作 在利用ER模型进行数据库概念设计的过程中,常常需要对ER图进行种种

变换。这些变换又称为ER模型的操作,包括实体类型、联系类型和属性的分裂、合并和增删等等。 3)利用ER方法的数据库概念设计 利用ER方法进行数据库的概念设计,可以分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局ER模式,最后对全局ER模式进行优化,得到最终的ER模式,即概念模式。

设计局部的ER模式 通常,一个数据库系统都是为多个不同用户服务的。各个用户对数据的观点可能不一样,信息处理需求也可能不同。在设计数据库概念结构时,为了更好地模拟现实世界,一个有效的策略是“分而治之”,即先分别考虑各个用户的信息需求,形成局部概念结构,然后再综合成全局结构。在ER方法中,局部概念结构又称为局部ER模式,其图形表示称为ER图(如图4-5)。 实体和属性的定义如下: 站点(站点编号,站点名称,站点类别) 线路(线路编号,始发时间,终发时间,备注) 线路站点对应(线路编号,站点名称)

图3-4实体和属性用例

4)联系定义

ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。

                       图3-5   E/R图的表示

5)设计全局ER模式

所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。 (1)确定公共实体类型  为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键枕认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。 (2)局部ER模式的合并 合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。  (3)消除冲突  冲突分为三类:属性冲突、结构冲突、命名冲突。  设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。  (4)全局ER模式的优化  在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。

3.3.2 逻辑设计   

本系统初步定义了4个视图,具体视图设计及实例如下:

1)公交车信息的视图设计(如图4-6):

用途:输入公交车号

输出对应公交车所有信息

图3-6 公交车信息的视图设

2)公交车信息实例(如图4-7):

图3-7  公交车信息实例

车站信息视图设计(如图4-8):

输入: 车站号

输出: 对应车站所有信息

图3-8车站信息视图设计

车站信息实例(如图3-9)

图3-9  车站信息实例

3)公交车――站点查询视图(如图3-10):

输入:公交车号

输出:公交车经过的所有站点

图3-10  公交车――站点查询视图

4)站点――公交车查询视图(如图4-11):

输入: 经过站点

输出: 对应公交车号

图3-11    站点――公交车查询视图

章  公交查询系统设计分析

4.1 查询模块的功能实现

公交查询模块是用户与系统进行交互的直接媒介。除了要完成用户的请求外,更需要从用户的角度出发,以人为本。设计出人性化的交互页面。

查询模块主要有文本框和提交按钮组合而成。从实际出发对于公交查询系统而言,用户输入始发站,终点站后提交请求,后台数据库查询系统为系统列出符合条件的公交班次。当用户发现填写有误时,点击重填按钮,文本框自动清空。当然,用户还可以选择第二种查询方式:选择要查询的线路,提交后用户自动列出该路公交车所路经的站点。

公交查询系统运行界面如图4-1所示:

图4-1 公交查询系统运行界面

关键代码如下:

connection = DataConnectionManager.getInstance().getConnection();

try {

routes = route_Manager.selectes(connection);

} catch (Exception e) {

throw e;

} finally { 

if (connection != null) {

connection.close();

connection = null;

}

}

<SCRIPT language=JAVASCRIPT type=text/javascript>

<!--

function loginSubmit(theObj)

{

if (theObj.fromStep.value == "" && theObj.toStep.value != "")

{

alert("始发站不能为空");

theObj.fromStep.focus();

return false;

}

else if (theObj.fromStep.value != "" && theObj.toStep.value == "")

{

alert("终点站不能为空");

theObj.toStep.focus();

return false;

}

else if (theObj.fromStep.value == "" && theObj.toStep.value == "")

{

alert("始发站和终点站不能为空");

theObj.fromStep.focus();

return false;

}

return true;

}

// -->

</SCRIPT>

<link rel="STYLESHEET" type="text/css" href="../css/all.css">

<style type="text/css">

<!--

body {  font-size: 9pt}

table {  font-size: 9pt}

a:active {  font-size: 9pt; color: #000000;}

A:hover { font-size: 9pt; COLOR: #000000; TEXT-DECORATION: none}

a:link {  font-size: 9pt; color: #000000;}

a:visited {  font-size: 9pt; color: #000000;}

-->

4.2 管理更新的功能实现

管理更新功能是针对系统维护而设计的。随着城市现代化的发展,公路部分线路也会有相应的变化。为使本系统能跟上发展,与现实保持同步,管理更新功能也是举足轻重的。其中包括站点管理和线路管理。

在数据库中每条公交线路都有其相应的站点,没路公交车都有其相应的公交线路。当现实中的某个因素改变时,数据库中的记录也要有相应同步的变化。站点管理就是对路线上的站点进行相应的更新。输入相应的站点序号,站点名称和类型后点击保存系统将数据录入数据库当中。现实中的某些站点更改时在站点列表中点击删除即可。站点管理界面如图5.2.1所示:

图4-2公交站点管理截图

公交站点管理主要代码如下:

<jsp:useBean class="com.lanyuer.util.JspParamReader" id="reader scope="request"" 

/>

<%

reader.setRequest(request);

List stopsets = null;

Connection connection;

com.lanyuer.route.stopset_Manager  stopset_Manager =

com.lanyuer.route.stopset_Manager.getInstance();

com.lanyuer.route.stopset stopset1 = null;

connection = DataConnectionManager.getInstance().getConnection();

try {

if (reader.getString("delRoute_Pk","").length() > 0)

stopset_Manager.deleteByPk(connection,com.lanyuer.route.stopset_Pk.valueOf

(reader.getString("delRoute_Pk","")));

stopsets = stopset_Manager.selectes(connection);

if (reader.getString("stopset_Pk","").length() > 0)

stopset1 = stopset_Manager.selectByPk

(connection,com.lanyuer.route.stopset_Pk.valueOf

(reader.getString("stopset_Pk","")));

} catch (Exception e) {

throw e;

} finally { 

if (connection != null) {

connection.close();

connection = null;

}

}

%>

<%

  Iterator iterator = stopsets.iterator();

  while(iterator.hasNext()) {

    com.lanyuer.route.stopset stopset = (com.lanyuer.route.stopset)iterator.next();

%>   

4.3 公交线路管理

现实中的公交线路在数据库中都对应了相应的记录。各路的公交车走各自的公交线路,随着城市现代化的进程,某些公交车的线路可能发生改变。这需要在系统中及时的做出更改。在公交线路管理界面中输入线路的编号,起始时间,及其对应的公交号码提交系统后会作保存。某些线路更改了公交号码就课点击删除按钮将其删除。这样数据库就获取了更新数据,查询系统能够准确的提供有效信息。公交线路管理运行界面如图5-3所示:

图4-3公交线路公里界面

公交站点管理主要代码如下:

<jsp:useBean class="com.lanyuer.util.JspParamReader" id="reader" scope="request" />

<%

reader.setRequest(request);

List routes = null;

Connection connection;

com.lanyuer.route.route_Manager route_Manager = com.lanyuer.route.route_Manager.getInstance();

com.lanyuer.route.route route1 = null;

connection = DataConnectionManager.getInstance().getConnection();

try {

if (reader.getString("delRoute_Pk","").length() > 0)

route_Manager.deleteByPk(connection,com.lanyuer.route.route_Pk.valueOf(reader.getString("delRoute_Pk","")));

routes = route_Manager.selectes(connection);

if (reader.getString("route_Pk","").length() > 0)

route1 =

route_Manager.selectByPk(connection,com.lanyuer.route.route_Pk.valueOf(reader.getString("route_Pk","")));

} catch (Exception e) {

throw e;

} finally {

if (connection != null) {

connection.close();

connection = null;

}

}

%>

<%

  Iterator iterator = routes.iterator();

  while(iterator.hasNext()) {

    com.lanyuer.route.route route = (com.lanyuer.route.route)iterator.next();

%>    

<tr>

                                  

                  <td align="center"><%=route.getiEndTime()%></td>

                  <td align="center"><%=route.getcNote()%></td>

                  <td align="center">

<a href="?delRoute_Pk=<%=java.net.URLEncoder.encode(route.getPrimaryKey().toString())%>">删除</a></td>

</tr>

<%

  }

%>

结束语

一个应用程序设计开发的好坏,与设计人员对开发工具的掌握程度息息相关。根据个人情况,尽量选择了自己较熟悉的开发环境及工具,以便能够顺利的实现系统避免延期。同时设计的思想,套路在开发前期需要认真的物色,一个好的设计思路是开发出好的系统的基石;开发之前经过思考研究以B/S的模式设计本系统。

尽管如此在本系统的开发设计过程中,由于本人对开发工具的掌握尚有欠缺,可以说整个的开发过程是一边摸索一边实践出来的。但令人高兴的是,通过这样一个边学习边应用的过程与其他同学、老师的帮助,本人完成了公交查询系统的开发工作,并实现了该应用程序背景所要求的功能。在此过程中能力得到了相应的提升,为日后设计开发和学习增强了信心。但总的来说,程序仍然存在许多不足之处,在整个开发过程中本人一直本着认真、虚心、刻苦、积极的态度,坚持自己独立完成设计,并基本达到了应用设计的功能要求。相信随着对开发工具的逐渐熟悉和知识体系的逐渐完善,该系统在日后一定能够得到不断改进,发挥出它应有的作用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值