基于iOS的点菜系统的设计与实现.pptx
《基于iOS的点菜系统的设计与实现.pptx》由会员分享,可在线阅读,更多相关《基于iOS的点菜系统的设计与实现.pptx(22页珍藏版)》请在冰豆网上搜索。
开题报告基于IOS的点菜系统的设计与实现-胡卫-11通信2班一、研究背景一、研究背景近几年来,人们的生活方式和生活理念随着生活水平的大幅度提高逐渐发生变化,在整个社会中,餐饮业占据着举足轻重的位置。
那么,如何提高餐饮业的服务质量和服务速率也成为了大家所关注的问题。
随着无线通信技术的飞速发展,在餐饮业中引入无线点菜技术是对餐饮业的一种技术革命。
在大多数的餐饮场所中点菜,查看菜谱都是人工完成的。
这需要通过大量的手工劳动完成,速度慢,耗费人力多,而且容易出错,进而导致其工作效率低,造成人力物力的极大浪费。
为了节省人力和时间,避免不必要的出错,采用点菜软件去点菜可以解决以上问题。
二、主要内容二、主要内容1、要能查看菜单2、可以点菜3、能够选座位4、能计算所点菜的总价格5、可以浏览用户自己以前所点的菜单三、设计方案三、设计方案1、点菜软件的功能设计2、点菜软件的界面设计3、点菜软件的结构设计4、数据库设计5、工作流程设计1、点菜软件的功能设计实现的功能:
(1)查询菜单;
(2)点菜选菜;(3)查看订单;(4)增减自选;(5)订座功能2、点菜软件的界面设计
(1)菜单界面2、点菜软件的界面设计
(2)用户菜单界面2、点菜软件的界面设计(3)历史菜单界面2、点菜软件的界面设计(4)座位选择界面3、点菜软件的结构设计点菜软件采用MVC的设计模式。
V是视图,是我们看到的界面。
M是模型,指的是用什么样的方法从数据库里取出数据。
C是控制,指的是我们点击界面上的按键后,选择M中提供的方法途径。
4、数据库设计数据库共建了5张表。
(1)groupTable,字段有id、kind、name。
表的创建语句为CREATETABLEgroupTable(idINTEGERPRIMARYKEYAUTOINCREMENTUNIQUE,kindTEXTNOTNULLUNIQUE,nameTEXTUNIQUE)。
这张表是用来存放菜的种类。
(2)menuTable,字段有id、groupID、iKind、name、price、unit、detail、picName。
表的创建语句为CREATETABLEmenuTable(idINTEGERPRIMARYKEYAUTOINCREMENTNOTNULLUNIQUE,groupIDINTEGERNOTNULL,iKindTEXTNOTNULL,nameTEXTNOTNULLUNIQUE,priceINTEGER,unitTEXT,detailTEXT,picNameTEXT)。
这张表是存放所有的菜的详细信息的。
4、数据库设计(3)orderTable,字段有id、menuName、Price、kind、menuNum、remark。
表的创建语句为CREATETABLEorderTable(idINTEGERPRIMARYKEYNOTNULL,menuNameTEXTNOTNULL,PriceTEXT,kindTEXTNOTNULL,menuNumINTEGERNOTNULL,remarkTEXT)。
这张表是用来存放用户当前所点的菜的信息。
(4)group_recordTable,字段有id、date、time、room。
表的创建语句为CREATETABLEgroup_recordTable(idINTEGERPRIMARYKEYAUTOINCREMENTNOTNULLUNIQUE,dateTEXTNOTNULL,timeTEXTNOTNULL,roomTEXTNOTNULL)。
这张表是用来存放用户历史用餐记录的。
(5)recordTable,字段有id、stateNum、menuName、menuPrice、menuKind、MenuNum、menuRemark、groupID。
表的创建语句为CREATETABLErecordTable(idINTEGERPRIMARYKEYAUTOINCREMENTNOTNULLUNIQUE,stateNumINTEGERNOTNULL,menuNameTEXTNOTNULL,menuPriceTEXTNOTNULL,menuKindTEXTNOTNULL,menuNumINTEGERNOTNULL,menuRemarkTEXTNOTNULL,groupIDINTEGERNOTNULL)。
这张表是用来存放用户以前所有的点餐的详情。
5、工作流程设计工作流程图5、工作流程设计首界面相当与欢迎界面通过点击button跳转到第二界面;第二个界面可以选择返回第一个界面,或者进入菜单界面,或者进入用餐记录界面,都是通过点击不同的button来跳转。
用餐记录界面用一个表格展示用户以前的用餐记录,用户可以选择删除记录;在用餐记录界面通过选中每一条用餐记录可以查看用餐的详细信息。
首界面,第二个界面,用餐记录界面,记录详情界面都是用一个UIViewController类控制。
菜单界面是最复杂的一个界面,这个界面用三个UIViewController类来控制,选择菜的种类的表格放在最底层的界面上,选择不同的菜品用就在界面上展示当前种类菜的视图。
用户在这个界面可以浏览所有的菜品,不同种类的菜品在不同的界面展示,在每个界面用户都可以将当前的菜品添加进自己的菜单,也可以查看当前菜的详细信息。
5、工作流程设计用户在菜单界面点好菜之后可以通过点击button进入用户点单界面,这个界面用一个UIViewController类来控制。
在用户点单界面用一个表格展示用户所点的菜及菜的总价格,在这个界面用户可以对菜单进行修改,删除不想要的菜,对喜欢的菜可以设置点的份数,还可以对每样菜做备注。
用户确定菜单后就通过点击button跳转到座位选择界面,座位选择界面用一个UIViewController类来控制。
在这个界面用户能够选择餐厅中的座位。
除此之外还有一个NSObject类,在这个类中负责对所有数据的操作,对数据库中的数据进行曾删改查,上面所有界面的数据操作都要到调用NSObject类的方法,到NSObject类中尽进行。
四、技术路线四、技术路线1、开发工具开发环境主要包括:
(1).Xcode(主要开发工具)。
(2).iPhoneSimulator(iPhone模拟器)。
(3).SDK(SoftwareDevelopmentKit,软件开发工具包)。
2、整个系统基于Objective-C编程语言Object-C是扩充C的面向对象编程语言。
它主要使用于MacOSX和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。
Objective-C可以在gcc运作的系统写和编译,因为gcc含Objective-C的编译器。
1980年代初布莱德确斯(BradCox)在其公司Stepstone发明Objective-C。
目前主要是编写iOS操作系统应用程序的利器。
近几年Objective-C排名大幅提升,它的流行当归功于iphone的成功,因为Objective-C一直被用于编写iPhone应用程序。
Objective-C是非常实际的语言。
它是一个用C写成、很小的运行库,只会令应用程序的大小增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。
ObjC写成的程序通常不会比其原始码大很多。
而其函式库亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反3、数据库使用MysqlMySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。
4、设计模式点菜软件采用MVC的设计模式;MVC(ModelViewController)模型(model)视图(view)控制器(controller):
MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。
使用MVC是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。
C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:
模型、视图、控制器。
它们各自处理自己的任务。
视图是用户看到并与之交互的界面。
模型表示企业数据和业务规则。
在MVC的三个部件中,模型拥有最多的处理任务。
被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。
由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器接受用户的输入并调用模型和视图去完成用户的需求。
它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
五、关键问题五、关键问题1、数据库的设计点菜系统中会所涉及到很多种类的数据,怎样将这些数据分类保存,相互之间不产生混淆就需要设计好数据库各个库表之间的关系。
2、内存管理问题IOS程序的内存管理是半自动的,有些对象在不使用用时所占内存会自动释放,有些对象的内存在程序运行事会一直占用,如果不手动释放就会占用大量的内存,导致程序卡顿,所以需要进行手动释放,否则就会造成内存泄露。
3、数据处理问题在程序中,关于数据处理的操作特别多,每种操作对应的数据处理都不一样,每种数据操作对有关的数据库中表的数据都需要进行更新,不能漏了,否则会造成数据混乱。
六、时间安排六、时间安排1-3周:
熟悉IOS特点和开发平台及环境的配置。
2-3周:
熟悉IOS特点及分层设计的思路和方法4-7周:
系统设计,建立各个功能模块的初步设计8-12周:
系统编程12-13周:
完成程序,进行调试成功。
13-14周:
写成论文,修改,整理论文,准备答辩;15周:
答辩16周:
论文资料完善等谢谢老师观看指导!