《基于Qt与Android的KTV管理系统设计与实现毕业论文(25页).doc》由会员分享,可在线阅读,更多相关《基于Qt与Android的KTV管理系统设计与实现毕业论文(25页).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于QT与ANDROID的KTV管理系统设计与实现毕业论文-第 22 页目 录 第1章绪 论11.1 论文研究主要内容11.2 系统开发的意义11.3 国内外现状1第2章关键技术介绍32.1 Qt32.2 Android62.3 Wi-Fi92.4 基于TCP的Socket通信10第3章系统分析与设计123.1 构架概述123.1.1 功能构架123.1.2 模块需求描述133.2 系统开发环境143.2.1 硬件开发环境143.2.2 软件开发环境143.3 系统任务的可行性分析143.4系统构架143.5数据库设计15第4章系统设计与实现174.1管理员系统页面设计174.1.1登录界面
2、的设计174.1.2修改人员信息界面的设计174.1.3消费统计界面的设计174.1.4查询工资界面的设计174.2服务员系统页面设计174.2.1登录界面的设计174.2.2订单管理界面的设计174.2.3消费统计界面的设计184.2.4个人状态界面的设计184.3客人系统页面设计184.3.1呼叫服务界面的设计184.3.2评价服务界面的设计184.4系统的用例图分析19第5章系统测试235.1测试目的235.2 测试方案235.3 测试结果23第6章结论25参考文献26致 谢27第1章绪 论在这个信息化的时代,随着时代的发展,伴随着全球经济一体化进程的不断地加快,IT技术的飞速发展,电子
3、产品的成本不断下降且便携设备的价格也越来越低,使得越来越多领域开始使用软件和微处理器控制各种嵌入式设备。再加上娱乐业市场活跃,蕴藏着巨大的商机,娱乐消费继续担当者拉动消费需求迅增的重要力量。所以由此可见,KTV管理系统的设计与实现是十分必要的,可以使运营与管理变得非常方便,轻松,所以我作了这个KTV管理系统。1.1 论文研究主要内容本系统是属于C/S架构模式设计,通过数据共享方式完成对KTV正常运营的管理工作。本人以当今流行的C+及Java开发语言为基础,基于Qt和Android开发设计并结合SQL server数据库操作以及Wifi无线连接技术。服务器端的开发使该软件实现了人事管理、消费统计
4、、消费管理、财会管理等功能,服务员客户端的开发使该软件实现了订单处理、异常处理、数据处理等,客人客户端的开发使该软件实现了基本呼叫服务功能、评价功能。本系统良好的运行稳定性使得本系统开发的可能性大大提高。1.2 系统开发的意义随着社会的发展,人类进入21世纪后的生活的水平有所提高,为了满足人们对生活的需要,丰富业余生活,就需要有一些娱乐的设施来弥补这些空缺,KTV已经越来越深入大众生活。自我国加入世界贸易组织,KTV服务业与国际市场接轨已成为大势所趋,KTV要迎接这场挑战,就必须提高整体竞争能力,提高整体竞争能力必须变革KTV的管理模式,提高管理水平,实施信息化建设无疑是实现这一目的的必由之路
5、和明智之举。目前,我国KTV服务业信息化管理的进程缓慢,跟国外的KTV相比管理依然落后。在激烈的KTV业竞争中,如何能把握机会,保持自己的优势,立于不败之地呢?这就需要提供最好的服务,提供最完善的设施和最先进的技术。一个成功的KTV,其经营者不仅要提高服务水平和服务质量,从而提高包厢占有率和回头率,还要有好的工作效率,并控制成本。在信息时代,更重要的是还必须要有一个完善的管理信息系统,便于方便客人和更好地管理KTV。所以开发这样的KTV服务管理系统是十分有必要的。1.3 国内外现状国内量贩式KTV的市场格局正在发生变化,可谓前途一片光明却又竞争激烈。KTV兴起于八十年代,雏形是几台电视机、几台
6、VCD、外加几个话筒,尽管最初是简陋的,但是发展起来是非常迅速的,九十年代就开始有了KTV的正式场所,最早的有嘟嘟、阿米果、欢乐谷、多来咪等。那时候去KTV是奢侈的,一般去消费的是事业有成或经济比较好的时尚年轻人。随着KTV市场的升温,KTV场所也越来越多,消费也相对便宜了,成了经济实惠的娱乐方式。平常大家总是喜欢约上三五好友一起到KTV去开心一下,聚一聚、吼一吼,既发泄了,又与朋友聚到了,实在是划算。随着居民生活消费水平的提高,有时候会面临这样的问题:“晚上活动怎么安排?去KTV吧!”如今,卡拉OK已成为城市居民重要的休闲方式之一。自助式消费、健康的活动内容,这种娱乐模式很快被市民接受。这种
7、新的业态出现,改变了居民的生活方式。1、缺乏特色竞争激烈 我们发现,多数量贩式KTV店缺乏特色,同质化比较严重。量贩式已经不再是KTV经营者的“金招牌”。据了解,目前,不少量贩式KTV店在经过惨烈的价格战之后,仍难以挽回市场。好几家大家熟悉的KTV店因无法维持,已经悄悄打起了转让广告。如今,这种经营模式似乎已不那么赚钱了。 2、市场格局正在变化 随着KTV行业的管理日趋完善和严格,量贩式KTV还面临要交版权费的问题。虽然因为种种原因,目前对KTV店征收版权费还没有真正实施,但交版权费的日子必定会到来,这无疑会加大经营成本。不少商家反映KTV行业越来越难做了。 3、消费者的需求日益复杂由于现代消
8、费者对娱乐的需求日益复杂,除在意装潢格调、音响音质、伴唱带质量、餐饮口味服务外,业者必须经常调整营业内容及设施,提供各种不同的娱乐服务给消费者,以满足消费者欢乐及新鲜的心理需求。在未来的ktv行业发展趋势中,应发展新技术以改进服务质量,还有引进更先进的视听设备,使消费者可以享受更好的服务。由此可见,一个成功的KTV,其经营者不仅要提高服务水平和服务质量,从而提高包厢占有率和回头率,还要有好的工作效率,并控制成本。在信息时代,更重要的是还必须要有一个完善的管理信息系统,便于方便客人和更好地管理KTV。第2章关键技术介绍该KTV管理系统的开发使用了C/S架构,一个服务器端和多个客户端,服务器端管理
9、员用于管理KTV的全面运营,客户端分为服务员和客户两种类型,分别具有不用的权限和功能实现,服务器端使用Qt实现,两类客户端使用Android实现,它们之间使用Wifi无线连接技术进行数据的共享。2.1 QtQt是在1991年一个由奇趣科技开发的跨平台C+图形用户界面的应用程序开发框架。且是面向对象语言,易于扩展且允许组件编程。Qt支持的平台有MS/Windows - 95、98、ME、NT 4.0、2000、XP、 Win7和Vista,以及Unix/X11 - Linux、Sun Solaris、CompaqTru64 UNIX、HP-UX、IBM AIX、SGI IRIX、BSD/OS F
10、reeBSD和其它很多X11平台,另外还有Macintosh - Mac OS X、Embedded - 有帧缓冲(framebuffer)支持的嵌入式Linux平台和Windows CE等。Qt支持的操作系统有Windows,Linux,Solaris,SunOS,Mac,FreeBSD、BSD/OS,SCO,AIX,OS390,QNX等等。Qt的良好分装机制使得Qt的模块化程度非常高,可重用性良好,对于用户开发来说是非常方便的。Qt提供了一种成为signal/slots信号和槽的安全类型来代替callback,具有可查询和可设计的属性,这样使得各个元件之间的协同工作变得十分简单呐。此外,Q
11、t还有丰富的API,包括多达500个一上的C+类,还提供基于模版的collections,file,serialization,I/Odevice,data/time,directory management类。甚至还包括正则表达式的处理功能。Qt还具有有约的绘画功能,Qt的绘画工具QPainter类,在任意一个绘图设备上都可以润色图形。绘图设备包括组件、像素映射、打印机和图形文件,相同的代码可以用在4种不同类型的设备上。Qt的类库架构:Qt的主要通信机制是信号和槽,使用这种方法非常简单,只要编写一行代码就能将用户事件和程序事件连接起来。信号/槽机制是在QObject类中实现的。在QObjec
12、t类或者期中一个子类(比如QWidget类)继承法的所有类中,都存在了信号和槽。当对象改变其状态的时候,信号被发送,对象不关心有没有其他对象接收到这个信号槽是类的正常成员函数,可以将信号和槽通过connect()函数任意连接。当一个信号被发射它所连接的槽会被立即执行,如同一个普通函数调用一样。当心好被发出时,会调用与之相连接的槽。槽是普通的C+函数,可以用普通的方式来调用。它唯一特殊的地方在于可以与信号相连接。槽的参数不能有默认值。同样,信号的参数也不能有默认值。在槽的函数中尽量不使用自定义的数据类型,因为这样会使通用性降低。既然槽和普通的成员函数差不多,它们和普通成员函数一样有访问限制,根据
13、槽的访问限制谁可以与它们相连接,能够分为以下三种情况:public slot:任何信号都可以与之相连接。这在窗口部件编程中非常有用,用于创建一些对彼此一无所知的对象,只有通过信号和槽来交换信息。Public slot就像是标准的铁路一样。protected slot:只有该类及其子类所派生的对象的信号才可以与之相连接。这类槽的目的通常是为了类的完善,而不是类与外界的接口。private slot:只有该类自己的信号才可以与之相连接。当某个信号对其客户或所有者发生的内部状态发生改变,信号被一个对象发射。只有定义过这个信号的类及其派生类能发射这个信号。当一个信号被发射时,与其相关联的槽将被立即执行
14、,就像一个正常的函数调用一样。信号-槽机制完全独立于任何GUI时间循环。只有当所有的槽返回以后发射函数才返回。如果存在所个槽与某个信号相关联,那么,当这个信号被发射时,这些槽将会一个接一个地执行,但是它们执行的顺序将会是随机的、不确定的,我们不能人为地指定哪个先执行、哪个后执行。如果有两个不同的对象对一个信号感兴趣,只要将该信号连接到这两个对象的槽上就可以了。2.2 AndroidAndroid是一个以Linux为基础的开放源码的操作系统,它主要用于便携设备,Android操作系统最初是由Andy Rubin开发且主要支持手机。在2005年由Google收购注资,并组建了开放手机联盟开发改良,
15、逐渐地扩展到平板电脑以及其他领域上。在2011年第一季度,Android在全球的市场份额首次超过了塞班系统,跃居全球第一。在2012年2月数据中显示,Android占据了全球智能手机操作系统市场52.5%的份额,在中国市场的占有率为68.4%。Android系统架构和别的操作系统一样,采用了分层架构。Android一共分为四层,从高到低依次是应用程序层、应用程序框架层、系统运行库层和Linux核心层。它是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android快速发展,如今已经允许了开发者使用多种编程语言来开发应用程序,而不再是像以前一样只能使用Java开发Android
16、应用程序的单一局面,因而它受到了众多开发者的欢迎,成为了真正意义上的开放式操作系统。开发者在Android中可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C+作为编程语言进行开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:php、python、tcl、 lua等等),还有其他诸如: Mono(Mono for Android)、Qt(Qt for Android)等一些著名的编程框架也开始支持Android编程。甚至通过MonoDroid,开发者们还可以使用C#作为编程语言开发应用程序。此外,Google于2009年特别发布了针对初学者的Android
17、Simple语言,该语言类似Basic语言。但是在网页编程语言方面,JavaScript,Ajax,HTML5,jquery、Phone、sencha、mobl、dojo Gap等等都已经支持Android开发。而在Android系统底层方面,Android是使用C/C+作为开发语言。android四大组件分别是:1. 活动(Activity):用于表现功能。2. 服务(Service):后台运行服务,不提供界面呈现。3. 广播接收器(BroadcastReceiver):用于接收广播。4. 内容提供商(Content Provider):支持在多个应用中的存储和读取数据,相当于数据库。Act
18、ivity一个Activity通常展现为一个可视化的用户界面。例如,一个activity可能展现为一个用户可以选择的菜单项列表或者展现一些图片以及图片的标题。一个消息服务应用程序可能包含一个显示联系人列表的activity,一个编写信息的activity,以及其它一些查看信息和修改应用程序设置的activity。虽然这些activity一起工作,共同组成了一个应用程序,但每一个activity都是相对独立的。每一个activity都是Activity(android.app.Activity)的子类。一个应用程序可能只包含一个activity,或者像上面提到的消息服务程序一样有多个activi
19、ty。一个应用程序包含几个activity以及各个activity完成什么样的功能完全取决于应用程序以及它的设计。通常每个应用程序都包含一个在应用程序启动后第一个展现给用户的 activity。在当前展现给用户的activity中启动一个新的activity,可以实现从一个activity转换到另外一个 activity。每个activity都会有一个用于绘制用户界面的窗口。通常这样一个窗口会填充整个屏幕,当然这个窗口也可以比屏幕小并漂浮在其他窗口之上。 activity还可以使用一些额外的窗口,例如一个要求用户响应的弹出式对话框,或者是当用户在屏幕上选择一个条目后向用户展现一些重要信息的窗口
20、。展示activity窗口的可视化内容区域是一些具有层次关系(很像数据结构中的树)的视图,而视图则是由类View的子类表示的。每个视图控制窗口中的一个矩形区域。父视图包含一些子视图并管理子视图的布局。位于叶节点的视图直接控制并响应用户的动作。因此视图就是activity与用户交互的接口。例如,一个显示图片的视图,当用户单击的时候它可能会启动一个动作。Android有许多开发人员可以直接使用的视图,包括按钮,文本域,滚动条,菜单,复选框等。通过调用Activity.setContentView()方法来设置展现activity的窗口的视图。内容视图则是视图层次结构中的根节点视图。Services
21、ervice没有用户界面,但它会在后台一直运行。例如,service可能在用户处理其它事情的时候播放背景音乐,或者从网络上获取数据,或者执行一些运算,并把运算结构提供给activity展示给用户。每个service都扩展自类Serivce。多媒体播放器播放音乐是应用service的一个非常好的例子。多媒体播放器程序可能含有一个或多个activity,用户通过这些 activity选择并播放音乐。然而,音乐回放并不需要一个activity来处理,因为用户可能会希望音乐一直播放下去,即使退出了播放器去执行其它程序。为了让音乐一直播放,多媒体播放器activity可能会启动一个service在后台播
22、放音乐。Android系统会使音乐回放service一直运行,即使在启动这个service的activity退出之后。应用程序可以连接到一个正在运行中的service。当连接到一个service后,可以使用这个service向外暴露的接口与这个service进行通信。对于上面提到的播放音乐的service,这个接口可能允许用户暂停,停止或重新播放音乐。与activity以及其它组件一样,service同样运行在应用程序进程的主线程中。所以它们不能阻塞其它组件或用户界面,通常需要为这些service派生一个线程执行耗时的任务。Broadcase receiverbroadcase receive
23、r不执行任何任务,仅仅是接受并响应广播通知的一类组件。大部分广播通知是由系统产生的,例如改变时区,电池电量低,用户选择了一幅图片或者用户改变了语言首选项。应用程序同样也可以发送广播通知,例如通知其他应用程序某些数据已经被下载到设备上可以使用。一个应用程序可以包含任意数量的boradcase reveiver来响应它认为很重要的通知。所有的broadcast receiver都扩展自类BroadcastReceiver。broadcast receiver不包含任何用户界面。然而它们可以启动一个activity以响应接受到的信息,或者通过NotificationManager通知用户。可以通过多
24、种方式使用户知道有新的通知产生:闪动背景灯、震动设备、发出声音等等。通常程序会在状态栏上放置一个持久的图标,用户可以打开这个图标并读取通知信息。Content provider应用程序可以通过content provider访问其它应用程序的一些私有数据,这是Android提供的一种标准的共享数据的机制。共享的数据可以是存储在文件系统中、SQLite 数据库中或其它的一些媒体中。content provider扩展自ContentProvider类,通过实现此类的一组标准的接口可以使其它应用程序存取由它控制的数据。然而应用程序并不会直接调用ContentProvider中的方法,而是通过类Co
25、ntentResolver。ContentResolver能够与任何一个 ContentProvider通信,它与ContentProvider合作管理进程间的通信。任何时候当Android系统收到一个需要某个组件进行处理的请求的时候,Android会确保处理此请求的组件的宿主进程是否已经在运行,如果没有,则立即启动这个进程,当请求的组件的宿主进程已经在运行,它会继续查看请求的组件是否可以使用,如果不能立即使用,它会创建一个请求的组件的实例来响应请求。2.3 Wi-FiWi-Fi 的英文全称为wireless fidelity,Wi-Fi原先是无线保真的缩写,它在无线局域网的范畴是指“无线相容
26、性认证”,实质上那是一种商业认证,同时也是一种无线联网的技术。以前通过网线连接电脑,而现在则是通过无线电波来连网。常见的就是一个无线路由器,那么在这个无线路由器电波覆盖的有效范围内都可以采用WIFI的连接方式来进行联网,如果无线路由器连接了一条ADSL线路或者别的上网线路,则又被称为“热点”。所谓Wi-Fi,是由一个名为“无线以太网相容联盟”(Wireless Ethernet Compatibility Alliance, WECA)的组织所发布的业界术语,中文译为“无线相容认证”。它是一种短程无线传输技术,能够在数百英尺范围内支持互联网接入的无线电信号。随着技术的发展,以及IEEE 802
27、.11a 及IEEE 802.11g等标准的出现,现在IEEE 802.11 这个标准已被统称作Wi-Fi。从应用层面来说,要使用Wi-Fi,用户首先要有Wi-Fi 兼容的用户端装置。Wi-Fi是一种帮助用户访问电子邮件、Web和流式媒体的互联网技术。它为用户提供了无线的宽带互联网访问。同时,它也是在家里、办公室或在旅途中上网的快速、便捷的途径。能够访问Wi-Fi 网络的地方被称为热点。Wi-Fi或802.11G在2.4Ghz频段工作,所支持的速度最高达54Mbps(802.11N工作在2.4Ghz或者5.0Ghz,最高速度600Mbps)。另外还有两种802.11空间的协议,包括(a)和(b
28、)。它们也是公开使用的,但802.11G/N在世界上最为常用。Wi-Fi 热点是通过在互联网连接上安装访问点来创建的。这个访问点将无线信号通过短程进行传输- 一般覆盖300英尺。当一台支持Wi-Fi 的设备(例如Pocket PC)遇到一个热点时,这个设备可以用无线方式连接到那个网络。大部分热点都位于供大众访问的地方,例如机场、咖啡店、旅馆、书店以及校园等等。许多家庭和办公室也拥有Wi-Fi 网络。虽然有些热点是免费的,但是大部分稳定的公共Wi-Fi 网络是由私人互联网服务提供商(ISP)提供的,因此会在用户连接到互联网时收取一定费用。802.11b有时也被错误地标为Wi-Fi,实际上Wi-F
29、i是无线局域网联盟(WLANA)的一个商标,该商标仅保障使用该商标的商品互相之间可以合作,与标准本身实际上没有关系。但是后来人们逐渐习惯用WIFI来称呼802.11b协议。它的最大优点就是传输速度较高,可以达到11Mbps,另外它的有效距离也很长,同时也与已有的各种802.11 DSSS设备兼容。笔记本电脑技术迅驰技术就是基于该标准的。IEEE(美国电子和电气工程师协会)802.11b无线网络规范是IEEE 802.11网络规范的扩展,最高带宽为11 Mbps,在信号较弱或有干扰的情况下,带宽可调整为5.5Mbps、2Mbps和1Mbps,带宽的自动调整,有效地保障了网络的稳定性和可靠性。其主
30、要特性为:速度快,可靠性高,在开放性区域,通讯距离可达305米,在封闭性区域,通讯距离为76米到122米,方便与现有的有线以太网络,支持Wi-Fi的笔记本。整合,组网的成本更低。WiFi(WirelessFidelity,无线相容性认证)的正式名称是“IEEE802.11b”,与蓝牙一样,同属于在办公室和家庭中使用的短距离无线技术。虽然在数据安全性方面,该技术比蓝牙技术要差一些,但是在电波的覆盖范围方面则要略胜一筹。WiFi的覆盖范围则可达300英尺左右(约合90米),办公室自不用说,就是在小一点的整栋大楼中也可使用。2.4 基于TCP的Socket通信基于TCP的Socket通信是通过指定I
31、P地址和port 号,采用C/S模式建立TCP协议下的两个通信进程间的连接,实现可靠的双向通信。在Java中,实现客户端套接字的Socket类;实现服务器端套接字的ServerSocket类。Socket通信原理是网络中基于Socket通信的两个进程间建立连接时,会将其中一个进程作为客户端,而另一个进程作为服务器端。ServerSocket类和Socket类实现通信的C/S模型。由服务器端程序与客户端程序两部分组成,基本功能是:服务器端程序监听C/S双方约定的端口(55558),等待并接收客户请求,接受客户请求后建立一个至客户端的基于套接字的连接,然后利用该连接返回到客户端的Socket对象,
32、创建一个服务器端输入流InputStream和一个服务器端输出流OutputStream,同时将它们分别包装成便于操作与刷新的BufferedReader输入流和PrintWriter输出流。然后,服务器端从InputStream读入客户端输出的数据,用OutputStream向客户端输出数据,直到接收到客户端的数据终止标志“结束”为止,最后关闭连接,释放网络资源,结束本次通信。客户端程序首先创建客户端Socket对象后,然后在约定端口向服务器端发送请求,待服务器端接受请求后建立基于套接字的连接,然后利用该连接的Socket对象,创建一个客户端输入流InputStream和一个客户端输出流Ou
33、tputStream,同时将它们分别包装成便于操作与刷新的BufferedReader输入流和PrintWriter输出流。然后,客户端从InputStream读入服务器端输出的数据,用OutputStream向服务器端输出数据,直到发送完数据终止标志“结束”为止,最后关闭连接,释放网络资源,结束本次通信。第3章系统分析与设计3.1 构架概述3.1.1 功能构架图3.1 系统结构图图3.2 系统体系结构图3.1.2 模块需求描述通过图3.1所示,本KTV管理系统分为管理员、服务员、客人三个角色,管理员使用基于Qt的服务器端,服务员与客人使用两种类型的客户端,通过wifi无线连接共享数据库并利用
34、不同的角色权限对数据库进行操作。(1)管理员管理员是本系统中进行总管理的角色,他规划整个KTV的运营流程,管理数据库的增删改查,该角色在本系统中权限最高,在基于Qt的服务器端工作,包括人员管理、消费统计、消费服务、财会管理等。人事管理模块:本模块用于对KTV的在职员工进行管理,包括增加服务员、删除服务员以及对他们信息的查询,方便KTV管理人员的管理。消费统计模块:本模块是对消费项目以及金额进行统计的模块,包括对每一项目在本日、本月、本年的消费量以及消费总金额进行统计,并绘制出消费统计曲线以便友好直观的对KTV进行日常管理和运营。消费服务模块:本模块用于服务员在客人点单时进行数据库的连接和确认,
35、完成后进行提交订单。客人中途需要修改订单时再对订单进行修改和维护,还可以对客人的订单进行计时消费计算和查询。财会模块:本模块用于对KTV运营的水费、电费、租金以及人事工资等进行记录与汇总并绘制出收入支出和净收入、营业额的曲线,方便管理员的管理。Wifi管理模块:本模块用于与两个客户端的无线连接和数据共享。(2)服务员服务员是本系统中一个比较重要的用户,该用户可以进行的主要的功能有新建订单、订单管理、消费统计、修改个人状态等功能。订单管理模块:本模块用于查询已经存储在数据库中的订单详细信息,对其进行修改和显示等动作。消费统计模块:本模块用于在客人消费结束时对其服务消费的统计,并对其消费进行最终确
36、认。个人状态模块:本模块用于服务员对自己的工作状态进行实时更新,包括空闲、忙碌、事假、病假等,还有服务员的自身评价分数、累计工作时间等。Wifi:本模块用于与服务器端和客人的客户端进行连接并进行数据共享。(3)客人客人是本系统中另一个比较重要的用户,该用户可以进行一系列的招聘活动,主要的功能有呼叫服务和评价服务。呼叫服务模块:本模块用于客人在需要餐点和酒水时点击按钮使请求发送到评价服务模块:本模块用于对服务的服务员进行评价,实行分数制,满分100分,60分及格。此分数为服务员个人属性以及用于最后工资评定。Wifi模块:用于与服务器端以及服务员的客户端进行数据共享和通信3.2 系统开发环境 3.
37、2.1 硬件开发环境主机:戴尔1420笔记本电脑处理器:Intel(R) Core(TM)2 Duo CPU T8100 2.10GHz 2.10GHz安装内存(RAM):2.00GB系统类型:32位操作系统3.2.2 软件开发环境开发环境:Windows7 Ultimate SP1 X86/Qt Creator 2.4.1/Eclipse 3.7.2(ADT 18.0.0/android-sdk_r18-windows)辅助工具:Photoshop CS33.3 系统任务的可行性分析本系统的服务器采用了Linux系统的底层架构,服务器端软件使用Qt Quick 框架开发,数据库采用了SQLi
38、te。Qt Quick提供优秀的跨平台特性,对嵌入式设备有了良好的支持;SQLite数据库轻巧、高效,功能是较为完备的,非常适合用于嵌入式软件的开发。开发工具为Qt Creator,该工具提供完善的代码管理和调试功能,完全能够满足本系统的开发的需求。本系统客户端基于功能强大而且应用广泛的Android平台,Android是一个相对开放的平台,适用于各种类型的便携设备用以充分满足用户不同的需求。开发工具为安装了官方SDK插件的Eclipse,它也能够满足开发要求。3.4系统构架本系统采用C/S架构模式设计开发,基于Qt的服务器端客户端应用软件完成管理员这个角色的相关工作,基于Android的客户
39、端类型包括服务员和客人两种。他们之间通过Wifi进行无线连接的数据共享和通信。3.5数据库设计根据以上的功能分析和预估的实际情况,大致需要在数据库中建立四张表来支持以上的功能,分别为:人员信息表,如表3.1所示:用于存储所有KTV人员的全部信息。订单信息表,如表3.2所示:用于存储所用订单的消费信息。包间消费信息表,如表3.3所示:用于存储所有包间的状态信息。服务员属性信息表,如表3.4所示:用于存储所有KTV人员的工资信息。本KTV管理系统使SQLite开源数据库进行开发,通过对实际功能需求的详细研究,对表字段、主键的设置、数据字段的类型做了严格且细致的分析,决定将每个类别的信息均分别建立一
40、个表,这样设计减少了数据库中表由于字段过多而导致过于复杂,因而得出了这套数据库建立方案。表3.1 人员信息表字段名称数据类型字符描述IDInt(20)工号:主键NAMEVachar(20)人员名字ENTRYDATEDatetime入职时间POSITIONVachar(20)职务DETAILSVachar(400)用户权限EVALUATEVachar(200)评价得分表3.2 订单信息表字段名称数据类型字符描述NUMInt(20)包间号:流水号RNUMInt(20)外键:包间号IDInt (20)外键:工号LUMPSUMInt(20)总价表3.4 消费统计信息表字段名称数据类型字符描述DATED
41、atetime主键:日期SERVICE1Int(20)服务1统计量SERVICE2Int(20)服务2统计量SERVICE3Int(20)服务3统计量SERVICE4Int(20)服务4统计量表3.4 工资信息表字段名称数据类型字符描述IDInt(20)工号:主键ATTENDANCEInt(20)出勤工资BASICInt(20)基本工资SUBSIDYInt(20)补贴SATISFACTIONInt(20)评价奖金第4章系统设计与实现4.1管理员系统页面设计4.1.1登录界面的设计如图4.1所示,管理员登录系统时首先会进入登录的界面,在此界面上输入正确的用户名和密码后可以点击“确认”按钮以进入系
42、统或者点击“退出”退出程序。图4.1 登陆界面4.1.2修改人员信息界面的设计图4.2 人员信息修改界面图如图4.2所示,本界面为管理员修改人员信息页面,当管理员登录到系统以后,如果需要新增、删除、修改、查询人员的信息,可以点击“人员管理”按钮进行相应操作,完成操作后点击“确认”按钮进行数据库的修改,就可以完成了所有操作。4.1.3消费统计界面的设计图4.3消费统计界面图如图4.3所示,本界面显示的是消费统计的页面,当管理员想要去查询本日、本月、本季度的消费统计情况时,只要在主页面点击“消费统计”按钮,就可以跳转到消费统计页面进行操作,在这里管理员可以很直观的看到每日、每月每年消费的基本信息。
43、这样可以很好的了解本店的运营情况以便加以改进。4.1.4查询工资界面的设计图4.4工资管理界面图如图3.6所示,本界面为管理员查询人员每月工作情况的页面,管理员可以点击编辑,删除,修改等操作,还可生成工资图,显示每种在图中的百分比。4.2服务员系统页面设计4.2.1登录界面的设计如图4.1所示,服务员登录系统时首先会进入登录的界面,在此界面上输入正确的用户名和密码后可以点击“确认”按钮以进入系统或者点击“退出”退出程序。图4.5 登陆界面4.2.2订单管理界面的设计图4.6订单管理界面图如图4.2所示,本界面为服务员对客人的需求生成订单并对其进行管理的页面,连接服务器端数据库后,可以选择相应的
44、服务和酒水,完成操作后点击“确认”按钮对数据库的订单数据进行修改。4.2.3消费统计界面的设计图4.7消费统计界面图如图4.3所示,本界面显示的是包房酒水加唱歌所有的消耗价格,方便服务员在客人问起时相应查询以告知,此处会生成简单的组成统计。4.2.4个人状态界面的设计图4.8个人状态界面图如图3.6所示,本界面为服务员即时查询和更改自己的工作状态以便管理员对其进行管理的界面设计。4.3客人系统页面设计4.3.1呼叫服务界面的设计图4.9呼叫服务界面图如图4.2所示,本界面为客人,当客人登录到系统以后,如果需要点单或者加时等操作时,可以点击“呼叫服务”按钮进行相应操作,完成操作后点击“确认”按钮
45、进行数据库的修改,就可以完成了所有操作。4.3.2评价服务界面的设计图4.10评价服务界面图如图4.3所示,本界面是对刚刚服务员进行服务后的评价界面,这样可以很好的对服务员的服务态度和工作能力进行监督以便了解本店的运营情况加以改进。4.4系统的用例图分析图4.11管理员用例图表4.1 登陆用例描述表用例名称登陆参与者管理员用例概述管理员在系统中登陆个人用户账号和密码前置条件参与者身份为管理员基本事件流点击“确认”按钮,进入“功能管理”界面表4.2 来客登记用例描述表用例名称来客登记参与者管理员用例概述管理员在系统中登陆个人用户账号和密码,登陆成功后选房间号前置条件参与者身份为管理员基本事件流1
46、点击“更改房间状态”按钮,进入“房间状态设置”界面2输入需要更新的内容,输入完毕后,点击更新按钮表4.3 分配服务员用例描述表用例名称分配服务员参与者管理员用例概述管理员在系统中查看服务员当前状态并进行呼叫分配前置条件参与者身份为管理员基本事件流1点击“服务员当前状态”链接,进入“服务员分配”界面2点击“确认”链接,把生成的房间号和服务员号进行绑定生成订单表4.4 确认数据修改用例描述表用例名称确认数据修改参与者管理员用例概述管理员在系统中确认数据的修改前置条件参与者身份为管理员和服务员,并且登陆成功基本事件流服务员发来要求修改订单的消息,管理员进行确认表4.5 退出用例描述表用例名称退出参与
47、者管理员用例概述管理员在系统中应聘某一职位前置条件参与者身份为管理员,已经成功登陆。基本事件流点击“注销登陆”按钮后返回登陆界面图4.12服务员用例图表4.6 登陆用例描述表用例名称登陆参与者服务员用例概述服务员在系统中输入个人用户账号和密码前置条件参与者身份为服务员基本事件流点击“确认”按钮,进入“功能管理”界面表4.7 更改状态用例描述表用例名称更改状态参与者服务员用例概述服务员在系统中修改数据库中人员状态信息前置条件参与者身份为服务员,已登陆成功基本事件流1服务员在系统中登陆企业用户账号和密码,并登陆成功2点击“状态修改”按钮,进入“修改状态”界面3修改内容后,点击“更新”按钮表4.8 订单管理用例描述表用例名称订单管理