毕业设计(论文)-大学掌上校园IOS客户端

上传人:na****u 文档编号:58854301 上传时间:2022-03-01 格式:DOCX 页数:50 大小:4.14MB
收藏 版权申诉 举报 下载
毕业设计(论文)-大学掌上校园IOS客户端_第1页
第1页 / 共50页
毕业设计(论文)-大学掌上校园IOS客户端_第2页
第2页 / 共50页
毕业设计(论文)-大学掌上校园IOS客户端_第3页
第3页 / 共50页
资源描述:

《毕业设计(论文)-大学掌上校园IOS客户端》由会员分享,可在线阅读,更多相关《毕业设计(论文)-大学掌上校园IOS客户端(50页珍藏版)》请在装配图网上搜索。

1、本 科 毕 业 论 文院 系 计算机科学与工程学院 专 业 计算机科学与技术(软件工程) 题 目 南京大学金陵学院掌上校园IOS客户端年 级 2012 学号 学生姓名 指导老师职称 讲师/中级开发工程师 论文提交日期 2016. 04. 25 南京大学金陵学院 毕业设计(论文)摘 要随着校园移动服务需求的不断增加,移动互联网的不断快速发展,各大高校的校园网上教务系统已经越来越不能满足现在学生的使用需求,国内外各大高校开发其自己的校园移动应用已势在必行。手机APP校园客户端的开发能够打造高校数字校园文化,完善数字化校园体系,扩大信息交流平台,促进虚拟校园的建设。本文介绍了一个基于IOS系统,通过

2、获取南京大学金陵学院掌上校园接口并重新设计的移动应用的开发。从可行性分析、开发技术、开发环境、系统架构、功能详细设计、系统测试等方面作了详细的介绍。该应用主要分为首页模块、图书馆模块、生活圈模块和个人中心模块。其中大部分功能需要学生登录之后才能使用,经过测试显示,该应用运行良好,在功能方面也相对完善。关键词:掌上校园;IOS移动客户端;接口全套设计加扣 3012250582iv NanJing UniverSity JinLing College Pocket Campus IOS ClientABSTRACTWith the increasing demand for mobile serv

3、ices on campus, the continued rapid development of mobile Internet, online campus educational administration system major colleges and universities has become increasingly unable to meet the current demand for the use of students, the development of major colleges and universities at home and abroad

4、 with its own campus mobile app is imperative. Development of mobile phone APP client can build a campus university digital campus culture, improve digital campus system, and expand information exchange platform to facilitate the construction of the virtual campus.This article describes the developm

5、ent of mobile applications based on the IOS System by acquiring Nanjing University Jinling Institute Pocket campus and redesigned the interface. From feasibility analysis, development of technology, the development environment, system architecture, detailed design features, system testing and other

6、aspects were described in detail. The application is divided into Home module, the module library, living area and individual module center module. Most features require students to log in before you can use, after tests showed that the application is running well, in terms of functionality are rela

7、tively well.Keywords:Pocket campus; IOS Client; Interface目 录摘 要iABSTRACTii第一章 绪 论11.1引言11.2 研究背景和意义11.3 国内外研究现状21.4本文主要研究内容31.5系统可行性分析3第二章 系统开发相关框架及技术介绍52.1 IOS框架52.2 Xcode介绍52.3 Storyboard介绍62.4 Objective-c介绍7第三章 系统需求分析和概要设计83.1系统需求分析83.1.1 系统概述83.1.2 开发环境103.1.3 性能分析103.2 系统概要设计103.2.1 系统总体结构103.2

8、.2 用例图113.2.3 数据库设计113.3 系统的开发项目搭建123.3.1 框架的搭建12第四章 系统功能详细设计及其实现154.1 首页模块的设计和实现154.1.1 首页如图4.1-1所示154.1.2 银行转账功能的详细设计与实现154.1.3 电控转账功能的详细设计与实现174.2 图书馆模块功能的设计和实现184.2.1 图书馆页面如图4.2-1展示184.2.2 证件信息功能详细设计与实现194.2.3 欠款信息页面的详细设计与实现214.3 生活圈模块功能的设计和实现234.3.1 生活圈页面页面如下图4.3-1所示234.3.2 生活圈的详细设计与实现244.3.4 天

9、气预报的详细设计与实现264.3.5 快递查询的详细设计与实现284.3.6 交易记录的详细设计与实现324.4 个人中心模块功能的设计和实现354.4.1 个人中心页面展示354.4.2 登录与退出登录364.4.3 修改登录密码384.4.4 修改个性签名39第五章 系统测试415.1 功能性测试41总结43致 谢44参考文献45第一章 绪 论1.1引言 南京大学金陵学院IOS掌上校园(毕业设计)移动应用是一款基于IOS手机平台,使用Objective-c语言编写的软件,用户可以通过登录学号、密码,随时随地的使用校园卡转账、电控转账、交易记录查询等一系列校园生活所需的功能。同时也可以在生活

10、圈功能中看见其他同学发送的消息。还可以使用其他一些生活功能如:天气预报、快递查询等。1.2 研究背景和意义我校(南京大学金陵学院)同样跟随时代和移动互联网发展的步伐,已经拥有了自己的掌上校园移动应用。其中包含了学校WEB系统的大部分功能,例如:手机在线转账、手机宿舍电量充值、银行卡余额查询、校园卡余额查询、交易记录查询以及掌上教务系统和掌上图书馆系统,方便学生使用手机便可以进行校园卡转账、电量充值、使用教务系统,以及图书馆系统等功能。学生可以随时随地的使用掌上校园移动应用,了解校园卡情况,了解在图书馆借书还书情况,同学们感觉最大的方便就是校园卡以及宿舍电量的充值不需要再排队充值,只要银行卡或者

11、校园卡有余额,就可以在手机上完成充值,最大限度的节约了时间,也更高效实用,大大增加了学生使用掌上校园APP的动力。随着移动互联网的发展,移动APP层出不穷,学生也越来越注重移动应用体验度,所以我想利用我校(南京大学金陵学院)掌上校园APP的接口,重新开发一个能够提升用户体验的掌上校园APP。功能主要分为五个模块,第一、首页,包含功能:银行转账、电控转账、欠款信息、意见反馈、动画轮播;第二、图书馆模块,包含功能:证件信息、历史借阅、当前借阅、预约借书、违章信息、借阅详情;第三、生活模块、包含功能:天气预报、快递查询、缴费管理、一卡通保修、交易记录、离校申请、申请调宿;第三、个人中心模块,包含功能

12、:我的校园卡、我的位置、个人信息、我的银行卡、修改登录密码、退出登录、查询电量、校园卡挂失、更换头像、更换个性签名等,另外也添加了6S-3D-Touch功能。所有功能都是重新设计、进行布局。在这五个模块中,除天气预报、快递查询、交易记录、更换个性签名之外,其他功能只是利用已有接口,设计,布局都是重新开发。想以一个更合理更系统的样式展示校园APP。 1.3 国内外研究现状目前对国内校园投入使用的APP数量没有准确的统计数字,可以肯定的是由于开发APP的技术门槛和成本要求都处于较低的水平,未来一段时间内在相应需求的推动下和国家鼓励大学生自主创新创业的政策引导下,投入使用的校园APP数量将进入一个快

13、速增长的阶段1。1、 校园APP的主要功能设定目前校园APP的功能设定主要可以归纳为下述4类(1)校园资讯 校园资讯包含的信息内容十分宽泛,又可细分为学校新闻和通知公告、校内及周边高校讲座信息、针对新生的攻略信息、求职和兼职信息、考试信息、教室空闲信息等。上述信息往往出自本校学生的切身经验,并经过了一定的整理归纳,相比于互联网上搜集到的同类信息具有更“接地气”的特点,信息来源可能由运营团队进行有针对性的搜集或由部分用户自发提供。(2)信息查询部分APP提供了与互联网上学校教务管理系统、图书馆借书系统等系统的对接功能,可通过输入用户名和密码在手机终端上直接登录上述系统查询使用者的选课情况、图书馆

14、图书信息等,甚至直接在手机上选课、预约图书。(3)生活服务提供学校周边购物、餐饮、二手交易等信息并提供联系方式,此类功能也是部分商业化运营的校园APP主要收入来源。2、开发方的类型(1)官方开发型由学校有关管理部门组织开发和运营,某种程度上此类校园APP相当于简化版的学校官网主页。其优点在于提供的学校相关信息权威、及时,能与学校管理系统实现较好的对接并保证个人信息的安全。缺点在于官方色彩浓厚,承载的内容灵活性不够,某些方面距学生的实际需求存在一定的差距。(2)第三方开发通用型由第三方专业研发团队开发,学校付费或无偿使用,此类校园APP的典型代表是由中国高校传媒联盟、中国青年报社等机构共同研发的

15、“青梅”客户端,已在全国120多所高校投入使用。此类校园APP的优点在于研发团队更专业,产品打磨更精细,有较为可靠的技术保障。能够考虑不同地方学生的共同需求,并可实现校际互动。缺点在于本地化程度不足和特定学校学生的实际需求存在一定偏差。(3)学生自主研发型目前,各高校中流行的校园APP大多属于此类,其优点是由本校学生直接开发,开发者本身也是使用者能最好的了解用户需求,提供的信息最符合学生实际需要。缺点在于技术水平和资金支持不足,学生的在校年限也决定了其人运营员更替较为频繁团队的持续性难以保证。另外,此类APP发布信息内容需要一定的监督机制以避免错误的信息造成较大的社会影响,用户的个人信息的安全

16、性也缺乏有效的保护。1.4本文主要研究内容本论文主要是介绍本应用开发过程中所实现的功能以及实现方式。本应用主要基于IOS平台开发,部分功能后台服务使用Java开发完成。IOS平台开发使用Xcode开发工具,Java开发部分使用eclipse开发工具。IOS中的页面开发使用StoryBoard与Autolayout相结合的方法进行开发。论文分为五个章节,内容情况如下:第一章, 介绍研究的背景和意义、国内外研究水平、系统可行性分析。第二章, 主要介绍系统开发框架与使用到的技术、开发工具。第三章, 主要介绍需求分析与概要设计部分。第四章, 介绍系统功能的详细设计,介绍功能如何实现,并展示功能效果。第

17、五章, 介绍应用的测试过程。1.5系统可行性分析1、技术可行性分析本系统依托在IOS开发平台和J2EE开发平台,使用MAC系统Xcode开发软件,项目中涉及到第三方库、第三方SDK、Myscle数据库、Json等技术在我日常开发过程中也算是常用技术或开发软件,再加上之前也曾有过JavaWeb开发经验,所以技术上完全可行,同时还可以在开发过程中积累一定的开发技术和编程技巧等。2、经济可行性分析 本项目开发过程中所使用的开发软件Xcode和Eclipse以及Myscle数据库均是免费软件,项目中设计到的一些第三方接口、第三方库如:AFNetWorking、MJRefresh、SBJson、SDWe

18、bImage;第三方SDK如:高德地图等均是可以在GitHub网站上进行下载或SDK官网进行免费下载。因此此项目的开发成本基本为零,所以在经济层面上也是可行的。3、 最终预期目标分析 南京大学金陵学院IOS移动客户端(毕业设计)旨在通过所学知识,利用抓包软件所抓取的接口,从提升用户体验对整个项目的功能进行重新设计与开发,使项目更加实用,更贴近生活。 预计将项目分为四个模块:首页、图书馆系统、生活社区、个人中心。首页主要负责轮流展示新闻、信息公告、银行转账、学生意见反馈等;图书馆系统功能:学生证件信息、历史借阅、当前借阅、欠款信息、违章信息和预约到书;生活社区的功能包含生活圈(学生可以在此发布信

19、息供别人浏览)、我的生活圈(可以查看我所发布的所有信息)、电控转账、交易记录、天气预报以及快递查询;个人中心模块用于登录、显示学生校园卡信息、修改登录密码、查询宿舍电量、查询银行卡信息、修改个性签名、退出登录等。- 45 -第二章 系统开发相关框架及技术介绍2.1 IOS框架IOS是基于UNIX内核的智能手机操作系统,采用了层次化系统架构,IOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Core Touch layer)2。IOS系统结构如图2.1-1所示。图2.1-1

20、 IOS系统结构图1、Core OS是位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。作为app开发者不需要与这一层打交道。2、Core Services是核心服务层,可以通过它来访问IOS的一些服务。3、Media是媒体层,通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效。4、Cocoa Touch是可触摸层,这一层为我们的应用程序开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。2.2 Xcode介

21、绍Xcode 是运行在操作系统Mac OS X上的集成开发工具(IDE),由苹果公司开发。Xcode是开发OS X 和 iOS 应用程序的最快捷的方式。Xcode 具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。Xcode前身是继承自NeXT的Project Builder。The Xcode suite 包含有GNU Compiler Collection自由软件 (GCC、 apple-darwin9-gcc-4.0.1 以及 apple-darwin9-gcc-4.2.1, 默认的是第一个),并支持 C语言、C+、Fortran、Objective-C、Objectiv

22、e-C+、Java、AppleScript、Python以及Ruby, 还提供Cocoa、Carbon以及Java等编程模式。协力厂商更提供了 GNU Pascal,Free Pascal, Ada, C#, Perl, Haskell 和 D语言。Xcode套件使用 GDB作为其后台调试工具。不管你用C、C+、Objective-C或Java编写程序,在AppleScript里编写脚本,还是试图从另一个奇妙的工具中转移编码,你会发现 Xcode 编译速度极快。每次操作都很快速和轻松。苹果公司为用户提供了全套免费的Cocoa程序开发工具(Xcode),和Mac OS X一起发行,在苹果公司官方

23、的网站下载3。2.3 Storyboard介绍StoryBoard是iOS 5的新特征,旨在代替历史悠久的NIB/XIB,节约创建UI的时间。以往的XIB的使用方法是一个viewController对应一个nib文件。StoryBoard的最大作用就是把这些nib文件组织起来,放在一个文件里MainStoryBoard.storyboard,同时在此文件里面提供了不同试图间的切换。下面贴出一张StoryBoard的样图,通过StoryBoard可以一目了然的看出一个项目的架构与流程,如图2.3-1所示:图2.3-1 StoryBoard图2.4 Objective-c介绍Objective-c

24、是扩充C的面向对象编程语言。它主要用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在GCC以及Clang运作的系统上编译,因为GCC与Clang含Objective-C的编译器4。Objective-C是非常实用的语言。它是一个用C写成很小的运行库,令应用程序的尺寸增加很小和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。Objective-C写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极 大的内存来开启一个窗口的

25、情况相反。因此,Objective-C它完全兼容标准C语言(C+对C语言的兼容仅在于大部分语法上,而在ABI(Application Binary Interface)上,还需要使用extern C这种显式声明来与C函数进行兼容),而在此基础上增加了面向对象编程语言的特性以及Smalltalk消息机制5。第三章 系统需求分析和概要设计3.1系统需求分析3.1.1 系统概述 南京大学金陵学院IOS移动客户端(毕业设计)是一款通过青花瓷抓包软件获取接口,通过接口对系统架构及页面进行重新设计的客户端应用。其主要功能是为学生提供在客户端进行线上转账、查询、图书馆系统、生活圈等。 系统的主要分为四个模块

26、:首页、图书馆、生活圈、个人中心。每个模块又包含多个功能,首页模块:银行转账、电控转账、欠款信息、意见反馈;图书馆模块:证件信息、历史借阅、当前借阅、欠款信息、违章信息、预约到书;生活圈模块:生活圈、我的生活圈、天气预报、快递查询、交易记录;个人中心模块:登录、位置、银行卡信息查询、电量查询、消息、修改登录密码、修改个性签名、退出登录。下面对着四个模块进行功能性描述。1、首页(1)银行转账:此功能用于学生校园卡充值,还提供银行卡余额查询。(2)电控转账 学生可以通过此功能选择宿舍编号,将校园卡余额充值到宿舍电控账户中。(3)欠款信息 主要用于显示学生欠款信息列表,并提供详细信息。(4)意见反馈

27、 学生可以通过这个功能对相关部门进行投诉或意见反馈。2、图书馆(1)证件信息此页面显示学生图书管理系统的个人信息,包括头像、姓名、身份证号等。(2)借阅历史此页面显示学生所借阅过的所有书籍,并对借阅多与少给出相应提示。(3)当前借阅当前借阅页面用于显示学生当前所借图书列表。 (4)欠款信息与首页欠款信息属于同一功能。(5)违章信息显示学生在借书过程中的违章信息列表。(6)预约到书显示学生所预约到的图书信息列表。3、生活圈(1)生活圈此功能可发布消息、浏览其他同学发布的消息、对别人发布的消息进行点赞。(2)我的生活圈学生可以在此功能中国浏览自己所发布的所有信息。(3)天气预报此功能用于显示今天、

28、明天、后天的天气情况,包括实时气温、天气类型、风力级别、空气质量等指数。同时提供生活各种指数,通过点击按钮进行显示和隐藏。(4)快递查询此功能提供快递查询,选择快递公司、输入单号进行查询,并会显示物流信息。 (5)交易记录此功能用于显示学生校园卡金额变动明细,包括消费、存款、电控转账、全部四个列表,点击可获得更多详细信息。4、个人中心(1)登录 此功能提供登录,登录成功会返回上一层页面,登录失败会显示失败原因。(2)修改登录密码 学生可以在此功能输入两次同样的新密码进行更改密码。(3)电量查询 用于学生宿舍当前的电量,会以一个View的方式弹出显示宿舍号及电量。(5)银行卡信息查询 银行卡信息

29、查询,用于学生查询银行卡余额。(6)更改个性签名 学生可以在此更改自己的个性签名。再次登录时候依然存在。(7)退出登录 学生可通过此功能退出登录,退出后,所有需要用户信息的功能都需要重新登录。(8)位置 位置功能,通过调用高德SDK,同时显示学校和学生所在位置。(9)消息 获取学校给学生发送的消息,以列表的形式展示。3.1.2 开发环境本项目主要是基于IOS开发架构,使用Xcode、Eclipse、Mysql、Jdk7.0.15等免费软件,由于是开发IOS客户端,同时Xcode只能在Mac系统上运行,所以选择使用Mac系统进行开发。3.1.3 性能分析1、本项目可以运行在IOS6.0版本以上的

30、 所有Iphone上,客户端问题,最常见的表现形式便是闪退,为了防止这种情况的发生,本项目将所有可能会导致项目崩溃的代码,如数组取值是否越界、数组添加对象是否为空等方法使用宏定义取代,在宏定义中进行处理将会出现崩溃的情况。2、本项目在UI绘制上采用了苹果官方推荐的StoryBoard,除了方便开发,节约开发时间之外,在页面加载上也大大提高了性能,使得页面跳转直接更加流畅。3、本项目的网络请求部分,使用了第三方库AFNetWorking,它构建于在NSURLConnection, NSOperation, 以及其他熟悉的Foundation技术之上. 它拥有良好的架构,丰富的api,以及模块化构

31、建方式,很大程度上的提升了网络请求的速度。在页面加载的同时使用异步多线程进行网络请求的处理。除此之外本项目还使用Block对此第三方库进行了一层简单的封装使调用起来更加方便。3.2 系统概要设计3.2.1 系统总体结构系统结构主要是对此客户端的结构进行一个的简单的描述、通过采用系统结构图来描述系统功能。系统结构如图3.2.1-1所示:(1)启动程序,进入开机界面,然后跳转到主界面。(2)主界面使用UITabBar控件,包括四个界面,第一个展示的是首页,其余分别为图书馆、生活圈、个人中心界面。(3)在四个界面中分别包含不同的子界面,通过点击不同的功能即可进入相应的子页面。图3.2.1-1 系统结

32、构图3.2.2 用例图图3.2.2 用例图3.2.3 数据库设计本项目采用的数据库是Myscle数据库,数据库中一共建立两张表,第一张为文章表,第二章为关系表。下面将对表的详细表对象以及字段说明做介绍。1、文章对象,记录所有文章的相关信息,其中id为主键,其他字段分别记录文章的基本信息。表结构如表3.2.3-1所示。表3.2.3-1 文章信息表类型名称属性描述IntiduserIdStringtitle标题Stringsub_title子标题Stringcontent内容Intdian_zan点赞数datetimecreate_date创建时间datetimeupdate_date更新时间 2

33、、关系表,表示文章与学生之间的关系。其中id为主键,文章与学生之间的关系通过save_id与save_value两个字段进行依赖,获取我所发布的所有信生活圈时,通过save_id字段可获取所有与save_id有关的数据。此表结构如表3.2.3-2所示。表3.2.3-2 关系表类型名称属性描述IntididIntsave_iduserIdIntsave_value保存的iddatetimecreate_date创建时间datetimelast_update_date最后修改时间3.3 系统的开发项目搭建3.3.1 框架的搭建1、本项目在网络请求、数据解析、图片处理、地图等都要使用第三方库文件与第

34、三方SDK,所以在搭建项目之时,将相关库文件导入项目中,具体第三方类库列表如下:(1)AFNetworking第三方库文件如图3.3.1-1所示。图3.3.1-1 AFNetworking2、本项目页面开发使用的是StoryBoard,根据页面模块分类,创建StoryBoard,如图3.3.1-2所示。图3.3.1-2 StoryBoard分类图3、本项目的所以资源文件,都以不同文件夹的形式存放于同一个目录下,如图3.3.1-3所示。图3.3.1-3 资源文件图4、本项目的所有类文件包括页面与自定义View代码按页面分类于相应的文件夹下。如图3.3.1-4所示。图3.3.1-4 类文件图第四章

35、 系统功能详细设计及其实现本章主要介绍本系统整体功能上的设计及其实现方法,因篇幅受限,这里主要介绍系统中各个模块重要且核心的一些功能。此项目中所有需要使用学生信息的页面,页面的加载方法viewDidLoad()会先判断单例模式类PublicInfo中的LoginFlag是否为YES,如果是YES则进入相应页面,为NO则跳转至登录页面LoginVC,登录成功之后再进入所需跳转的功能页面。4.1 首页模块的设计和实现4.1.1 首页如图4.1-1所示首页是系统打开时给学生留下的第一印象页面,首页选择的功能也是从学生角度思考很大可能需要第一时间打开功能,因此一个好的首页必须具备良好的用户体验与人机交

36、互。1、页面如图4.1-1展示图4.1-1 首页4.1.2 银行转账功能的详细设计与实现1、银行转账页面如图4.1-2所示。 图4.1-2 银行转账页面- (IBAction)commitAction:(id)sender if (self.textField.text integerValue = 10) GRHttpTool _text_post:bankUrl params:nil success:(id response) if (response count) iToast makeText:充值成功 setGravity:iToastGravityCenter show; fail

37、ure:(NSError *failure) iToast makeText:已过充值时间或金额不足 setGravity:iToastGravityCenter show; ; else iToast makeText:充值金额未大于10 setGravity:iToastGravityCenter show; 2、当学生点击进入银行转账页面BankVC,BankVC会调用页面加载方法viewDidLoad(),当学生点击cardInfoView时,会触发showBankInfoAction事件,通过网络请求来获取银行卡账户信息,并通过一个View以弹出的效果显示,学生可以查看当前的银行卡余

38、额。学生通过点击moneyField输入转账金额,点击充值Button触发commitAction()进行充值, moneyField的placeholder已提示充值金额必须大于10元,当学生输入的充值金额小于10或大于银行卡余额,点击充值Button后都会提示充值不成功的原因。下面是commitAction()代码:4.1.3 电控转账功能的详细设计与实现1、电转账页面如图4.1-3所示。图4.1-3电转账页面2、当学生进入电控转账页面 ElecMoneyVC,ElecMoneyVC的加载方法viewDidLoad()会调用request()发送获取所有建筑物的网络请求,并将Json格式的

39、result解析出所有建筑物的数组,放入buildingNameArray中。当学生点击buildingField,页面底部会弹出pickerView,学生可以通过pickerView选择建筑物,点击roomField时,ElecMoneyVC会根据建筑物名称发送获取该建筑物内的所有宿舍编号的请求,同样从页面底部的pickerView选取宿舍,点击moneyField,学生可根据Placeholder的提示要求进行输入,点击commitButton触发commitAction()事件,此事件会使用学生输入的充值金额与10和学生登录时已经获取的LoginModel中的校园卡金额currdbmon

40、ey进行比较,只有同时满足充值金额大于10元且小于校园卡余额才能发送充值请求。无论充值是否成功,commitAction()都会根据请求response给出相应的提示文字。下面是commitAction()代码。- (IBAction)commitAction:(id)sender NSInteger money = PublicInfo sharePublicInfo.loginmodel.currdbmoney integerValue; if(self.moneyTextField.text integerValue money ) iToast makeText:充值金额未大于10元或

41、校园卡余额不足 setGravity:iToastGravityCenter show; else /发送充值请求 GRHttpTool _text_post:elemoney_enterUrl params:nil success:(id response) if (response count) iToast makeText:充值成功 setGravity:iToastGravityCenter show; failure:(NSError *failure) iToast makeText:由于服务器原因,充值失败 setGravity:iToastGravityCenter show

42、; ; 4.2 图书馆模块功能的设计和实现图书馆模块集成了证件信息、历史借阅、当前借阅、欠款信息、违章信息、预约到书六个功能,方便学生时刻了解自己图书馆借阅图书情况,考虑到此模块的功能及实现方法类似,因此就不对该模块功能一一介绍,将选取具有代表性的证件信息、欠款信息这两个功能进行介绍。4.2.1 图书馆页面如图4.2-1展示图4.2-1 图书馆页面4.2.2 证件信息功能详细设计与实现1、证件信息页面CertificateInfoVC如图4.2.2-1所示。图4.2.2-1 证件信息页面 2、CertificateInfoVC使用TableView进行显示,由于TableView的tableV

43、iewCell格式并不能满足此页面的显示要求,所以使用了Xib进行自定义tableViewCell,自定义样式如图4.2.2-2所示。 图4.2.2-2 自定义Cell- (void) request GRHttpTool _text_post:libaryBaseInfoUrl params:usercode:NSDictionary valueByKey:responseObject_loginSucvalueForKey:usercode success:(id response) if (response objectForKey:is_successintValue = 1) NSS

44、tring *status; NSString *sexy; dataArr = response objectForKey:data; detailArr_section_2 = dataArr valueForKey:dzxm,dataArr valueForKey:zjhm,dataArr valueForKey:dztm,dataArr valueForKey:sfid; detailArr_section_3 = dataArr valueForKey:bzrq,dataArr valueForKey:dzlxmc; detailArr_section_4 = NSString st

45、ringWithFormat:%,dataArr valueForKey:dzzdjyl,NSString stringWithFormat:%,dataArr valueForKey:ljcc,NSString stringWithFormat:%,dataArr valueForKey:qkje; detailArr_section_5 = dataArr valueForKey:dwmc,sexy,status; detailArr_All = titleArr_section_1,detailArr_section_2,detailArr_section_3,detailArr_sec

46、tion_4,detailArr_section_5; self.infoTable reloadData; 3、当学生进入证件信息页面CertificateInfoVC,CertificateInfoVC的页面加载方法viewDidLoad()会调用request()发送获取学生证件信息的网络请求,并将返回Json格式的response,使用objectForKey方法解析之后,组装到已经创建好的五个数组中。由于此页面展示使用TableView控件显示信息,一共分5个Section块,所以要将每个Section中的数据按顺序放入相应的数组中,最后再将这五个数组按顺序放入同一个数组中,Tabl

47、eView会调用reloadData进行刷新,TableView的代理方法cellForRowAtIndexPath会在刷新之后重新将数组中的数据取出来显示,发送网络请求并将数据存入各个数组中的代码如下。4.2.3 欠款信息页面的详细设计与实现考虑到学生在进入页面时可以第一时间查看或起到提醒学生查看学生是否在图书馆有欠款信息时,欠款信息页面这个功能也出现在首页模块中。1、欠款信息页面OwnMoneyInfoVC真机显示如图4.2.3-1所示。图4.2.3-1 欠款信息页面2、OwnMoneyInfoVC也使用TableView进行显示,同样也需要自定义tableViewCell自定义样式如图4

48、.2.3-2所示。 图4.2.3-2 自定义Cell3、当学生点击进入OwnMoneyInfoVC时,OwnMoneyInfoVC的页面加载方法ViewDidLoad()会调用request()进行获取欠款信息的网络请求,获取到Json格式的result之后,需要使用for循环将result中欠款图书的标题遍历提取出来并使用addObject方法将标题按顺序放入标题数组titleArr中。添加好之后TableView会调用reloadData进行刷新,刷新完成后,TableView的cellForRowAtIndexPath代理方法会从titleArr中取出标题来显示,网络请求与将Result

49、中标题加入titleArr如下。- (void) request GRHttpTool _text_post:ownMoneyUrl params:usercode:usercode_dict success:(id response) if (response objectForKey:is_successintValue = 1 & response objectForKey:data count) dataArr = response objectForKey:data; for (int i = 0; i dataArr.count; i+) titleArr addObject:da

50、taArri valueForKey:tm ; self doWithTheAlertLab:dataArr.count;/根据数量提示 _ownTable reloadData; failure:(NSError *failure) /处理错误 ;- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath ownModel initWithDict:dataArrindexPath.row; UIStoryboard *story = UIStoryboard stor

51、yboardWithName:Libary bundle:NSBundle mainBundle; OwnMoneyDetailVC *con = story instantiateViewControllerWithIdentifier:OwnMoneyDetailVC; con.ownModel = ownModel; self.navigationController pushViewController:con animated:YES; 4、当学生点击每个tableViewCell查看详情,会触发TableView的didSelectRowAtIndexPath的代理方法,跳转至欠款

52、详情页面OwnMoneyDetailVC,跳转之前,先实例化OwnMoneyDetailVC的对象,并将之前request()的result通过initWithDict()方法将数据转化成模型OwnModel,并将OwnModel赋给OwnMoneyDetailVC作为它的属性,OwnMoneyDetailVC的TableView代理方法cellForRowAtIndexPath可以直接将 model中的各个属性提取出来显示。didSelectRowAtIndexPath方法代码如下。 5、欠款详情页面如图4.2.3-3所示。图4.2.3-3 欠款详情页面4.3 生活圈模块功能的设计和实现生活

53、圈模块用于存放相对于更贴近生活的一些功能,比如生活圈、我的生活圈用属于学生之间的交流平台,天气预报、快递查询属于生活中工具类的功能,交易记录方便学生查询在校园内的所有资金流动情况。4.3.1 生活圈页面页面如下图4.3-1所示图4.3-1 生活页面4.3.2 生活圈的详细设计与实现1、生活圈页面如图4.3.2-1所示。图4.3.2-1 生活圈页面2、当学生进入我的生活圈页面LifeSpaceVC,LifeSpaceVC的启动方法viewDidLoad()会调用request()发送获取生活圈所有数据的请求,将返回的Json格式的response中的data转化存入数组中。刷新table,在ta

54、ble的代理方法cellForRowAtIndexPath中,将数据转化为Model并显示在tableVIewCell中。点击我要发按钮,进入发布生活圈消息页面。在服务层端,后台提getContentList.action接口,获取所有生活圈内容。当接口接收到请求时,先通过request.getParameter()接收请求参数:page、pageNum,通过getContentList()获取数据并转为Map型,然后将数据通过Map.put返回给客户端。下面是页面与服务层获取我列表主要代码。-(UITableViewCell *)tableView:(UITableView *)tableV

55、iew cellForRowAtIndexPath:(NSIndexPath *)indexPath static NSString* cellIdentifier = LifeCostomCell; LifeCostomCell *cell = (LifeCostomCell*)tableView dequeueReusableCellWithIdentifier:cellIdentifier; if(!cell) NSArray *nibs = NSBundle mainBundleloadNibNamed:cellIdentifier owner:self options:nil; ce

56、ll = (LifeCostomCell *)nibs objectAtIndex:0; cell initWithDict:listArrayindexPath.row; return cell;RequestMapping(/c)public ResponseEntity getContentList(HttpServletRequest request)Map map = new HashMap();String page = request.getParameter(page);String pageNum = request.getParameter(pageNumString fl

57、owCode = DateUtil.getNowTime(yyyyMMddHHmmss.SSS);String flag = 0;String failReson = null;try if (StringUtil.isBlank(page) page = 1;if (StringUtil.isBlank(pageNum) pageNum = 10;int pageInt = Integer.parseInt(page);int pageNumInt = Integer.parseInt(pageNum);Map map1 = service.getContentList(pageInt, p

58、ageNumInt);String str = map1.get(returnStr).toString();if (1.equals(str) List list = (List) map1.get(data);map.put(data, list);map.put(total, map1.get(size);flag = 1; catch (Exception e) e.printStackTrace();failReson = 抛异常;map.put(flowCode, flowCode);map.put(flag, flag);map.put(failReson, failReson);ResponseEntity entity = SpringMVCResult.returnResponseEntity(JSON.toJSONString(map);return entity;4.3.4 天气预报的详细设计与实现1、天气预报页面如图4.3.4-1所示。图4.3.4-1 天气预报页面- (void) dealWithResponse_realDict:(NSDictionary *)real_Dict windDict = real_Dict objectForKey:wi

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!