1、哈尔滨理工大学学士学位论文- I -上海明东集装箱码头信息查询系统摘 要今天的 Internet 飞速发展,PC 互联网已日趋饱和。移动互联网的时代已经到来,移动互联网已经成为人们生活中必不可少的一部分,移动端智能手机的普及,以及 4G 网络的到来,成为了移动端兴起的主要因素,越来越多的企业单位为了带个客户更好的体验,提升公司内的办公效率,各个企业逐渐将 web 应用搬到移动终端上,如今的移动互联网市场越来越受到重视,已经成为信息化产业的一个重要组成部分。本次的课题目的,是为了将上海明东集装箱码头信息查询系统的 web应用进行分析,提取出适合移动终端功能,加以修改为用户提供一种,通过移动终端
2、IOS 客户端展现。即用户可以通过移动端得到上海明东集装箱码头的服务器提供的信息,对这些信息筛选和查询。而且还要加入一些针对移动端进行设计的新功能,来体现移动端为客户带来的便利,给用户更好的体验。整个 APP 实现了首页九宫格,提供了九个查询信息入口。用户可以方便的通过这些入口快速查询到需要的信息。九个入口分别是,船舶计划查询类型、船舶计划查询船名、进箱信息跟踪、进箱计划查询、箱货信息查询、公司代码查询、电子装箱单查询、直装直提计划查询、外籍卡进出查询,九个查询入口,除此之外,还有“我明东”用来展示用户信息,并把用户关注的信息进行的整合,以及“消息通知”提醒用户关注的信息发生了变化。整个系统前
3、端基于 Cocoa Touch 框架开发,遵循 MVC 模式架构,实现视图(View )与控制器( Controller)和模型(modal)的分离,该 APP的 UI 界面依照当今主流的扁平化进行设计,十分美观,充分提升用户体验,以及界面友好度。后端采用主流的.NET 开发。前后端使用 JSON 传递数据完美结合。形成成高效美观友好的移动端查询工具。关键词 IOS;Cocoa Touch;MVC;.NET;JSON哈尔滨理工大学学士学位论文- II -ShangHai MingDong Container Terminals Limited Information Inquiry Syste
4、mAbstractToday, the rapid development of the Internet. Traditional Internet has increasingly saturated. The mobile Internet era has arrived. Mobile Internet has become an indispensable part of peoples life. The mobile smartphone is very popular and the user of 4G wireless communication network are i
5、ncrease. These reasons are the main factors of mobile terminal rise. More and more enterprises hope to give customers a better experience. And Improve work efficiency. Most of the enterprise will move the web application to mobile terminals. Todays mobile Internet market is more and more attention.
6、Has become an important part of information industry.The purpose of this time. We will analysis of ShangHai MingDong Container Terminals Limited Information Inquiry System. And alter it make it running on ios device. So those users can use ios access ShangHai MingDong Container Terminals Limited Inf
7、ormation Inquiry System to get some informations. Compared with the traditional PC access it is more convenient and faster. To make user experience better.This App has realized the homepage, provides nine query information portal. Users can easily through the entrance the quick query to the informat
8、ion if thire need. Nine entrance is respectively, the plan query plan query - type, ship, name of vessel, into the box information tracking, into the query box plan, container load information query, company code query, electronic packing list query, straight with straight plan inquiry, foreign card
9、 in and out of the query, query nine entrance, in addition, there is one page is used to display user information, to focus on the users information 哈尔滨理工大学学士学位论文- III -integration, and “news“ to remind users of information has changed.The whole system is based on the Cocoa Touch framework. Follow t
10、he MVC pattern architecture, implementation View (View) and Controller (the Controller) and model (modal) the separation of the APP UI interface design, according to todays mainstream flat is very beautiful, fully improve the user experience, and friendly interface. The server using mainstream .net
11、development. The client and server transfer data by JSON. So its easy for maintenance and more friendly for userKeywords IOS;Cocoa Touch;MVC;.NET;JSON哈尔滨理工大学学士学位论文- IV -目 录摘要 .IAbstract.II上海明东集装箱码头信息查询系统 .I第 1 章 绪论 .21.1 课题背景 .21.2 研究目的 .21.3 研究意义 .21.4 研究内容 .2第 2 章 相关知识简介 .22.1 C 语言简介 .22.2 Objecti
12、ve-C 简介 .22.3 MVC 简介 .22.4 Cocoa Touch 简介 .22.5 C# 简介 .22.6 Microsoft .NET Framework 简介 .22.7 JSON 简介 .2第 3 章 需求分析 .23.1 开发模型 .23.2 需求分析 .23.2.1 船舶计划查询-类型 .23.2.2 船舶计划查询_船名 .23.2.3 进箱计划查询 .23.2.4 箱货信息查询 .23.2.5 进箱信息跟踪 .23.2.6 电子装箱单查询 .23.2.7 直装计划 .23.2.8 外集卡进出查询 .23.2.9 公司代码查询 .23.2.10 船、箱信息收藏 .23.2
13、.11 我的消息 .23.2.12 关于我们 .23.2.13 业务指南 .23.2.14 缓存 .2哈尔滨理工大学学士学位论文- V -3.3 用例图 .23.4 可行性分析 .23.5 本章小结 .2第 4 章 概要设计 .24.1 系统模块 .24.2 系统架构 .24.3 系统设计 .24.3.1 App 界面设计 .24.3.2 开发及运行环境 .24.4 接口设计 .24.5 数据库设计 .24.6 操作流程 .24.7 本章小结 .2第 5 章 详细设计 .25.1 模块设计与接口设计 .25.2 JSON 返回信息详细设计 .25.2.1 返回一条数据 .25.2.2 返回多条
14、数据 .25.2.3 返回零条数据 .25.2.4 返回错误信息 .25.3 数据库详细设计 .25.4 消息通知设计 .25.5 PS 优化设计 iOS app 流程 .25.6 本章小结 .2第 6 章 系统的具体实现 .26.1 系统结构 .26.2 方法举例 .26.3 页面展示 .26.4 测试 .26.5 本章小结 .2结论 .2致谢 .2参考文献 .2How to Submit Your App to Apple: From No Account to App Store .2零基础学习 iOS 开发流程 从注册账号到提交应用 .2附录 A .2附录 B .2哈尔滨理工大学学士学
15、位论文- 1 -第 1 章 绪论1.1 课题背景本次的课题选自上海明东集装箱码头有限公司的项目需求,整个平台本来是建立 Web 上的查询系统,但是因为移动互联网的热潮,越来越多的 Web 系统,开始移动到移动终端上,移动终端带给用户的便利不是传统 Web 系统可以比拟的。他已逐渐成为人们传递信息的重要手段,在各个领域发挥着不同的重要作用,早已成为各个领域信息化的重要组成部分。人们对此非常重视。本次上海明东集装箱码头有限公司经过内部调查研究,希望将传统Web 端的大部分功能放到移动端上如 iphone、ipad ,部分功能针对移动端的特点重新从设计,为用户提供便利的查询系统,友好的交互界面,为本
16、次课题的最终目的。本次开发的 ios 版 App,使用 MacOSX+Xcode6.2 的 ios 主流开发工具进行开发。采用 Cocoa Touch 的开发框架,Cocoa Touch 框架是遵照 MVC模式设计的,所以开发时也尽量按照 MVC 模式开发。Xcode+Cocoa Touch 既可以制作出漂亮的程序,但为了使程序健壮性更强,更美观,里面预计使用一些在 github 上的开源控件,如EGOTableViewPullRefresh,这个控件可以方便的实现下拉刷新,和上拉加载,而且是开源的,可以方便的进行修改和定制,来实现需要的效果。后台采用.Net 开发。前台以接口的形式调用后台传
17、过来的 JSON 对象,之后解析 JSON,序列化为普通对象,视图层通过控制器绑定数据。这种做法上当今移动开发比较主流的方式。1.2 研究目的上海明东集装箱码头有限公司,为了方便用户查询货物信息,希望将原有的 web 门户网站,和声讯电话整合到移动端,希望用户通过移动端代替以往传统的查询方式,以前用户仅仅可以通过声讯电话,和门户网站查询所需要的数据,声讯电话的使用基本不受地点限制,但是服务流程繁琐。而门户网站虽然查询的来的资料更为详细,但是却受到地点的限制,必须有网络和电脑,虽然可以通过手机访问该网站,但是效果不尽人意,综合上诉几个问题,公司通过内部需求调查得出,需要一款通过移动终端来查询集装
18、箱码头信息的工具。以上即本次研究的目的。哈尔滨理工大学学士学位论文- 2 -1.3 研究意义移动互联网时代具有信息效率高,传播广泛,用户普及非常快的优势。所以开发出一个优秀的 APP 能很容易被人们接受尝试,从而推广出去,不仅方便了用户群,还为自己的公司提升形象,一举两得。这也是互联网转向移动互联网的表现形式,虽然传统互联网不会消失,但显然的是移动互联网更能为公司带来无法忽视的效益。1.4 研究内容整个 APP 的编写以船,箱子,卡车为中心。用户进入到主页面后需要能够看到一个精美的界面,然后会员可以进行选择查询方式,需要能够将最新最全面的信息展示到屏幕上。供用户阅览。这些信息可以帮助用户立刻得
19、到关注货物的状态。使用户脱离电脑即可快速查询并得到箱货的信息。涉及的技术点有:object-c、storybroad、json,排序算法,数据结构设计,按照 mvc 结构编写代码等。在主页面显示的是简洁的九宫格。APP 的首页采用当前苹果推崇的主流扁平化效果,精美大方。背景以灰色为主,设计比较平稳,且不会让用户感觉到视觉疲劳。数据页面采用移动端主流的 tableview 结合自定义 cell,通过接口读取 json 对象并绑定到页面上。用户可以对 tableview 进行拖动下拉刷新,上拉加载更多,提升用户带来的体验。后台部分系统的编写。后台的主要功能是:提供数据接口供前台使用。将从上海明东集
20、装箱码头有限公司得到的数据,通过存储过程转移到当前数据库,并从数据库中抽取相关字段序列化成 json 对象,并封装成接口。还要增加用户收藏模块,提高用户体验。不论前台或者后台,我们都必须通过 json 对象进行数据的传递,所以必须对 json 这种数据格式要有一个认识。JSON 格式字符串解析Json 其实就是 javascript 中的对象或者数组,所以 json 有两种数据结构,一种是对象,另外一种就是数组结构,两种方式结合组成复杂的数据结构就是 json。1 对象:在 json 中对象用就是指“” (花括号)括起来的部分,我们称之为对象。数据结构表示为key:value ,key:val
21、ue,即用键值对的形式表示。在面向对象的语言中我们把 key 称为对象属性,value 称为对应的属性值,所以当我们需要某个值得时候,我们只要用相应的方法,通哈尔滨理工大学学士学位论文- 3 -过属性得到属性的值,属性值可以是,数字、数组、字符串、对象等等。2 数组:数组在 Javascript 中使用“” (中括号)括起来的部分表示数组的内容,数据结构如下“value”,”value2 ”,”value3”,.,取值的方法跟大多数语言一样,使用下标索引的方式获取对应的内容,数组可以结合数字、字符串、数组和对象,讲过组合就可以形成复杂的数据结构了。不同屏幕手机适配问题目前从 iphone4-i
22、phone6 共有 3.5 寸(4,4s),4 寸(5,5s) ,4.7 寸(6) ,5 寸(6plus),为了保证在不同屏幕上能显示出精美的界面,经过研究调查决定,使用 xcode6 进行开发,对最低配置要求为 4s,系统要求为 7.1,这样可以使用 autolayout 对界面进行布局。Autolayout 布局方式Autolayout 使用起来非常简单,在 XCode 上显示的也非常直观。实际上 Autolayout 是对每个控件加上一组约束(Constraints) ,可以约束这个控件的宽,高,距离上(下、左、右)面控件的距离。实际上就是方程组的一组解。所以必须每个控件都要设置相应的约
23、束,而且约束过多或或少都会与理想的效果不同,相对来说也比较复杂。哈尔滨理工大学学士学位论文- 4 -第 2 章 相关知识简介2.1 C 语言简介C 语言是一种计算机领域的编程语言,他是以面向过程为基础的语言,应用十分广泛,由于其简洁高效,在二十世纪的作为程序开发所使用的主要语言,由于各个厂商都有自己的实现方式,所以为了避免语法的差异,美国国家标准局特别为 C 语言定制了一套规则,叫做 ANSI C 标准,目前一般的编译器都支持 ANSI C 所规定的语法。C 语言有着高效的性能,目前还没有其他语言可以取而代之。随着物联网的兴起,C 语言可能作为主要的语言,被人们所认识。2.2 Objectiv
24、e-C 简介Objective-C 是 C 语言的超集,兼容标准 C,在 C 语言的标准上引入了面向对象的功能。有了面向对象的功能的 Objective-C 在 Mac OS 以及IOS 上开发非常便捷,后来引入的 ARC 内存管理使开发人员几乎不用在乎内存的事情,把剩余的精力用来描写逻辑上。与 C+相比,Objective-C不支持多继承,但是它可以通过 protocols 实现同样的效果而且没有任何副作用。此外 Objective-C 还是 dynamic langauge 类型的语言,在运行时会进行检查所以由 Objective-C 写出的程序非常健壮。2.3 MVC 简介MVC 的全称
25、是 Model View Controller,即是模型(Model)视图(View) 控制器(controller)是一种软件的设计模式。视图(View)代表用户交互界面,对于 Web 应用来说,可以概括为HTML 界面,但有可能为 XHTML、XML 和 Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC 设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控
26、制和模型。模型(Model):就是业务流程 /状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是 MVC 最主要的核心。目哈尔滨理工大学学士学位论文- 5 -前流行的 EJB 模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC 设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是
27、判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC 并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC 定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要 6。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据 保存(持续化) 。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。控制(Controller)可以理解为从用户接收请求 , 将模型与视图匹配在一起,共同完成用户的
28、请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。这种方式的设计模式可以使数据、业务逻辑、界面分离。按照这样的设计模式开发,当需求变更的时候,便于维护,还具有耦合性低、重用性高,便于管理等特点。另外,IOS 开发的核心框架,Cocoa Touch 就是遵循 MVC 模式设计开发的。2.4 Cocoa
29、 Touch 简介Cocoa Touch 是由苹果公司提供的专门为 IOS 开发而设计的框架。大部分的 Cocoa Touch 框架是由 Objective-C 编写实现的。Cocoa Touch 实际上是由 Foundation 框架、CoreData 框架、UIKit 框架组成。Foundation 框架提供 NSObject 基类和各种基本功能, CoreData 框架提供了与数据库,模型相关的数据存储的操作,UIKit 提供了基本的视图控件。世界上顶级的 IOS 应用都是利用该框架制作出来的。2.5 C# 简介C#是一种计算机编程语言,它是由微软公司研究并发布的,其主要是运行在.NET Framework 之上。