毕业设计论文基于iOS系统校园生活app开发Word文档格式.docx
- 文档编号:21520926
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:23
- 大小:495.25KB
毕业设计论文基于iOS系统校园生活app开发Word文档格式.docx
《毕业设计论文基于iOS系统校园生活app开发Word文档格式.docx》由会员分享,可在线阅读,更多相关《毕业设计论文基于iOS系统校园生活app开发Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
iOS;
DevelopmentofcampuslifeappbasedoniOSsystem
Abstract
Withtherapiddevelopmentofscienceandtechnology,themobilephonebecomesatoolforpeople'
sdailylife.Modernlifeisrichandcolorful,simpletocallandsendtextmessagescannotmeettheneedsofpeople'
slives,theauxiliarylivingpowerfulmobilephonecameintobeing.BasediPhonewithIOSsystemhasthefunctionofsimpleandeasytouseinterface,gaspinadmiration,stability,becauseofitsuniquedesignandexcellentexperiencewelcomedbyusers.IOSasthemostpopularoperatingsystemplatform,therearealotofnaturalapplicationserviceneeds.
Inrecentyears,Apple'
smobilephonemarketinChinaisgettingbiggerandbigger,manypeoplebegantocrazypursuitofappleproducts.Collegestudentsisoneofthemainforce.ThistopicisbasedontheiOSsystemofthecampuslifeappdevelopment,campuslifeappismainlyforcollegestudentstoprovideassistance.ThistopicusesX-codeasthedevelopmentsoftware,usingObjective-Casthedevelopmentlanguage.Thisisthesubjectofthestudyofthetechnologyusedtointroduceandappdesignprocesstodoadetailedexplanation.
第1章绪论
1.1选题背景
21世纪为信息时代,人们对于信息的需求日益增加,在快节奏的生活方式中,移动终端已然成为现代人不可缺少的一部分。
人们通过移动设备获取的信息越来越多,移动设备也随之变得越来智能,功能也越来越强大,拥有iOS系统的苹果设备受到全世界人们的喜爱和追捧。
2014年苹果在各国的GDP排名为42位,而2015年苹果的营收额达到2310亿美元。
在2015第一季度,中国超过美国成为苹果第一大市场。
iOS应用app因其简洁的界面和良好的用户交互获得广大用户的喜爱和追捧,这些app种类众多,为我们生活提供这各种帮助及娱乐,iOS应用app开发者也如雨后春笋般迅速增长。
1.2研究目的及内容
作为一个即将进入社会的特殊群体,大学生的生活广受人们的关注。
没有一个大学生不希望拥有一个有规划,良好的大学生生活。
本课题研究设计一款能帮助大学生规划设计自己的大学生活的校园生活app。
随着学习方式的改变,初入大学的大学生往往会有一段迷茫阶段。
本课题研究的内容是如何从生活、学习上辅助大学生规划大学生活。
本课题设计的app是基于iOS系统,使用编程语言为Object-C。
通过app,大学生可以准确的掌握大学课程,考试时间。
大学课堂学习知识量比较大,大学生可以使用app来做课堂笔记,从而提高学习效率。
1.3开发工具介绍
本课题使用的编程工具为Xcode。
Xcode前身是继承自于NeXT的ProjectBuilder。
TheXcodesuite中包含有GNUCompilerCollection的自由软件(apple-darwin9-gcc-4.2.1、apple-darwin9-gcc-4.0.1、GCC默认的是第三个),它不仅支持C++、C语言、Objective-C、Fortran、Objective-C++、AppleScript、Java、Python以及Ruby,而且还提供Carbon、Cocoa以及Java等编程模式。
协力厂商更提供了FreePascal,GNUPascal,C#,Perl,Ada,Haskell和D语言。
Xcode套件后台调试工具为GDB。
Xcode只能在苹果公司的Mac系统下运行,是苹果公司为开发者开发MacOSX,iOS提供非开源集成环境的应用软件。
无论你编写程序用Java、C、C++或Objective-C,在AppleScript里编写脚本,还是试图从另一个工具中转移编码,Xcode的编译速度都非常快,而且每次操作也都很快速轻松。
1.4开发语言的介绍
本课题使用的语言为Object-C。
1980年代初BradCox和TomLove在公司Stepstone发明Object-C。
Objective-C,一般写作ObjC或OC,是扩充C的面向对像编程语言。
它主要使用的系统为MacOSX和GNUstep这两个使用OpenStep标准的系统,它是NeXTSTEP和OpenStep中的基本语言。
Objective-C是一款非常实用的语言。
它是一个用C写成十分小的运行库,因此应用程序的尺寸增加很小,和大多数OO系统使用特别大的VM执行时间取代了整个系统的运作方式不一样。
Objective-C写成的程序一般都不会比其原始码大很多。
并且其函式库(通常指没附在软件发行本)亦和Smalltalk系统使用极大内存来开启一个窗口的情况不同。
所以,Objective-C它不仅完全兼容标准的C语言(C++对C语言的兼容不仅仅在于大部分语法上,而在ABI(ApplicationBinaryInterface)上,而且还需要使用extern"
C"
这种显式的声明来和C函数进行兼容),而且在此基础上增加了面向对象编程语言特性以及Smalltalk的消息机制。
第2章校园生活app设计
2.1开发环境
操作系统:
MacOSX11.0.4
开发语言:
Object-C
开发平台:
Xcode
2.2需求分析
经济上,iOS开发的工具Xcode完全免费,它的使用简单,轻巧独特,开发过程完全足够满足需求,并且可以带来十分可观的经济效益,是低投入高回报的一项工程。
在经济上完全是可行的。
技术上,iOS通过Object-C语言编码、UI界面搭建和网络解析获得一系列的数据来实现自己的功能。
使用现有技术就完全可以实现系统的设计。
社会可行性,中国作为苹果的最大市场,拥有iOS设备的大学生不再少数。
手机不离身的大学生对于一款辅助自己大学生活的app是不会抗拒的。
2.3架构设计
校园生活app使用的架构模式为MVC。
MVC一种软件设计典范,其全名是ModelViewController,为模型(model)-视图(view)-控制器(controller)的缩写。
其中Model(模型)表示应用程序的核心(比如数据库的记录列表),View(视图)为显示数据部分(用户能看见的部分)。
Controller(控制器)处理输入(处理用户的操作,进行页面间的跳转)。
校园生活app使用UITabBar分栏控制器作为根视图,如图2.1所示。
创建四个试图控制器,将他们添加到UITabBar
图2.1
根试图上。
系统架构如图2.2所示。
图2.2
2.4界面设计
2.4.1新鲜事界面设计
新鲜事界面主要功能事为大学生提供时事新闻。
所以使用UITableView作为视图控制器。
在设计界面初期,为了提高效率,先使用假数据来展示页面呈现效果如图2.3所示。
图2.3
2.4.2课表界面设计
课表界面,顾名思义为课程表界面。
我采用ViewController视图控制器。
使用View作为ViewController的根视图。
如图2.4所示,导航上UIBarButtonItem
图2.4
来实现对课表的编辑触发。
触发代码如下所示:
-(void)xiugai:
(UIBarButtonItem*)btn{
if(self.scheduleTable.userInteractionEnabled==NO){
self.scheduleTable.userInteractionEnabled=YES;
btn.title=@"
保存"
;
}else{
self.scheduleTable.userInteractionEnabled=NO;
编辑"
}
}
由于手机屏幕大小有限,为了显示一周的课程,我采用了UIScrollView(滚动视图),创建35个UIButton来实现每节课程的详细信息,代码如下所示。
intnum=1;
for(inti=0;
i<
5;
i++){
for(intj=0;
j<
7;
j++){
UIButton*btn=[[UIButtonalloc]initWithFrame:
CGRectMake(0+j*60,0+i*130,59,129)];
btn.tag=num;
btn.layer.cornerRadius=5;
btn.backgroundColor=[UIColorbrownColor];
btn.titleLabel.numberOfLines=0;
btn.titleLabel.font=[UIFontsystemFontOfSize:
10];
[btnaddTarget:
selfaction:
@selector(onclick:
)forControlEvents:
UIControlEventTouchUpInside];
[btnsetTitle:
[NSStringstringWithFormat:
@"
%@\n%@\n%@"
self.scheduleAy[3*(num-1)],self.scheduleAy[3*(num-1)+1],self.scheduleAy[3*(num-1)+2]]forState:
UIControlStateNormal];
[self.scheduleTableaddSubview:
btn];
num++;
每个UIButton拥有一个点击事件,点击UIButton进入课表编辑界面。
代码下:
addScheduleViewController*addSv=[[addScheduleViewControlleralloc]init];
Schedule*sch=[[Schedulealloc]init];
sch.object=self.scheduleAy[3*(btn.tag-1)];
sch.teacher=self.scheduleAy[3*(btn.tag-1)+1];
sch.addr=self.scheduleAy[3*(btn.tag-1)+2];
addSv.sch=sch;
[self.navigationControllerpushViewController:
addSvanimated:
YES];
课表编辑有3个UITextField用来提供用户输入课程信息。
导航上UIBarButtonItem来实现对用户输入信息传到上一界面及数据持久化保存的触发。
代码如下:
-(void)onclick:
(UIButton*)btn
{
UITextField*object=[self.viewviewWithTag:
1];
UITextField*teacher=[self.viewviewWithTag:
2];
UITextField*addr=[self.viewviewWithTag:
3];
Schedule*schedule=[[Schedulealloc]init];
schedule.object=object.text;
schedule.teacher=teacher.text;
schedule.addr=addr.text;
self.block(schedule);
[self.navigationControllerpopViewControllerAnimated:
addSv.block=^(Schedule*schedule){
schedule.object,schedule.teacher,schedule.addr]forState:
[self.scheduleAysetObject:
schedule.objectatIndexedSubscript:
3*(btn.tag-1)];
schedule.teacheratIndexedSubscript:
3*(btn.tag-1)+1];
schedule.addratIndexedSubscript:
3*(btn.tag-1)+2];
//创建轻数据库单例
NSUserDefaults*user=[NSUserDefaultsstandardUserDefaults];
[usersetObject:
self.scheduleAyforKey:
scheduleAy"
];
[usersynchronize];
2.4.3学霸界面设计
学霸这个界面的主要实现功能为:
课堂笔记、成绩查询及考试倒计时。
和课表界面一样使用ViewController作为根视图。
设计有3个UIButton给别作为课堂笔记、考试查询及考试倒计时的触发交互。
课堂笔记UIButton跳转进入课堂笔记列表界面。
这个界面为用户所的课堂笔记的列表,故使用UITableView作为根视图如图2.5。
在导航上添加一个UIBarButtonItem来实现对课堂笔记添加页面的跳转触
图2.5图2.6
发。
课堂笔记编辑界面如图2.6,其中UITextField和UITextView作为用户输入交互。
UIbutton来打开用户手机相机,代码如下:
//打开调用手机相机
-(IBAction)openCamery:
(UIButton*)sender{
//判断是否否能打开相机
if([UIImagePickerControllerisSourceTypeAvailable:
UIImagePickerControllerSourceTypeCamera]){
[selfopenIamgePicKer:
UIImagePickerControllerSourceTypeCamera];
}elseif([UIImagePickerControllerisSourceTypeAvailable:
UIImagePickerControllerSourceTypePhotoLibrary]){
UIImagePickerControllerSourceTypePhotoLibrary];
}
-(void)openIamgePicKer:
(UIImagePickerControllerSourceType)type{
//将打开相册相机的视图控制器初始化
self.PickerCon=[[UIImagePickerControlleralloc]init];
//设置打开的是相机还是相册
self.PickerCon.sourceType=type;
self.PickerCon.delegate=self;
//将用户的信息模态的方式弹出
[selfpresentViewController:
self.PickerConanimated:
YEScompletion:
nil];
//选择某个文件是,被调用
-(void)imagePickerController:
(UIImagePickerController*)pickerdidFinishPickingMediaWithInfo:
(NSDictionary<
NSString*,id>
*)info{
UIImage*selectIamge=[infovalueForKey:
UIImagePickerControllerOriginalImage];
[self.imageAyaddObject:
selectIamge];
if(self.imageAy.count>
3){
[self.imageAyremoveObjectAtIndex:
0];
for(inti=0;
i<
self.imageAy.count;
i++){
[self.imageViewAy[i]setImage:
self.imageAy[i]];
//图片试图控制器消失
[pickerdismissViewControllerAnimated:
3个UIImageView来显示用户拍的信息。
每个UIImageView添加动画,代码如图如下:
//动画添加
-(void)addanimal
[UIViewbeginAnimations:
nilcontext:
[UIViewsetAnimationDuration:
//播放次数1
[UIViewsetAnimationRepeatCount:
//添加点击手势
-(void)addtap{
self.imageViewAy=@[self.image1,self.image2,self.image3];
[self.imageViewAycount];
UITapGestureRecognizer*tap=[[UITapGestureRecognizeralloc]initWithTarget:
@selector(Oncilck:
)];
tap.numberOfTapsRequired=1;
[self.imageViewAy[i]addGestureRecognizer:
tap];
//坐标纪录
UIImageView*iv=self.imageViewAy[i];
CGRectrect=iv.frame;
[self.arrAyaddObject:
[NSValuevalueWithCGRect:
rect]];
在导航上添加一个UIBarButtonItem来实现用户纪录课堂笔记的持久化保存并跳转到上一个界面。
成绩查询UIButton触发网络请求进行成绩查询,跳转到成绩显示界面,代码如下:
-(IBAction)finderResults:
UIStoryboard*mainStoryboard=[UIStoryboardstoryboardWithName:
Main"
bundle:
testResultTableViewController*trtvc=[mainStoryboardinstantiateViewControllerWithIdentifier:
testResultTableViewController"
self.hidesBottomBarWhenPushed=YES;
self.tabBarController.tabBar.hidden=YES;
trtvcanimated:
考试倒计时UIButton触发跳转考试倒计时列表。
考试倒计时列表用UITableView作为根视图如图2.7。
UIButton跳转到新建倒计时界面如图2.8。
图2.7图2.8
新建倒计时界面有4个UITextField为用户提供输入,其中两个用来输入考试时间及提醒时间,在编辑事触发选择器。
-(void)textFieldDidBeginEditing:
(UITextField*)textField{
HSDatePickerViewController*hpvc=[[HSDatePickerViewControlleralloc]init];
hpvc.delegate=self;
if(self.selectedDate){
hpvc.date=self.selectedDate;
hpvcanimated:
^{if(textF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 iOS 系统 校园生活 app 开发
![提示](https://static.bdocx.com/images/bang_tan.gif)