基于Qt与Android的KTV管理系统管理 设计.docx

上传人:b****6 文档编号:6961816 上传时间:2023-01-13 格式:DOCX 页数:26 大小:667.17KB
下载 相关 举报
基于Qt与Android的KTV管理系统管理 设计.docx_第1页
第1页 / 共26页
基于Qt与Android的KTV管理系统管理 设计.docx_第2页
第2页 / 共26页
基于Qt与Android的KTV管理系统管理 设计.docx_第3页
第3页 / 共26页
基于Qt与Android的KTV管理系统管理 设计.docx_第4页
第4页 / 共26页
基于Qt与Android的KTV管理系统管理 设计.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

基于Qt与Android的KTV管理系统管理 设计.docx

《基于Qt与Android的KTV管理系统管理 设计.docx》由会员分享,可在线阅读,更多相关《基于Qt与Android的KTV管理系统管理 设计.docx(26页珍藏版)》请在冰豆网上搜索。

基于Qt与Android的KTV管理系统管理 设计.docx

基于Qt与Android的KTV管理系统管理设计

目录

毕业设计(论文)任务书I

摘要II

AbstractIII

第1章 绪论1

1.1论文研究主要内容1

1.2系统开发的意义1

1.3国内外现状1

第2章 关键技术介绍3

2.1Qt3

2.2Android6

2.3Wi-Fi9

2.4基于TCP的Socket通信10

第3章 系统分析与设计12

3.1构架概述12

3.1.1功能构架12

3.1.2模块需求描述13

3.2系统开发环境14

3.2.1硬件开发环境14

3.2.2软件开发环境14

3.3系统任务的可行性分析14

3.4系统构架14

3.5数据库设计15

第4章 系统设计与实现17

4.1管理员系统页面设计17

4.1.1登录界面的设计17

4.1.2修改人员信息界面的设计17

4.1.3消费统计界面的设计17

4.1.4查询工资界面的设计17

4.2服务员系统页面设计17

4.2.1登录界面的设计17

4.2.2订单管理界面的设计17

4.2.3消费统计界面的设计18

4.2.4个人状态界面的设计18

4.3客人系统页面设计18

4.3.1呼叫服务界面的设计18

4.3.2评价服务界面的设计18

4.4系统的用例图分析19

第5章 系统测试23

5.1测试目的23

5.2测试方案23

5.3测试结果23

第6章 结 论25

参考文献26

致谢27

第1章 绪论

在这个信息化的时代,随着时代的发展,伴随着全球经济一体化进程的不断地加快,IT技术的飞速发展,电子产品的成本不断下降且便携设备的价格也越来越低,使得越来越多领域开始使用软件和微处理器控制各种嵌入式设备。

再加上娱乐业市场活跃,蕴藏着巨大的商机,娱乐消费继续担当者拉动消费需求迅增的重要力量。

所以由此可见,KTV管理系统的设计与实现是十分必要的,可以使运营与管理变得非常方便,轻松,所以我作了这个KTV管理系统。

1.1论文研究主要内容

本系统是属于C/S架构模式设计,通过数据共享方式完成对KTV正常运营的管理工作。

本人以当今流行的C++及Java开发语言为基础,基于Qt和Android开发设计并结合SQLserver数据库操作以及Wifi无线连接技术。

服务器端的开发使该软件实现了人事管理、消费统计、消费管理、财会管理等功能,服务员客户端的开发使该软件实现了订单处理、异常处理、数据处理等,客人客户端的开发使该软件实现了基本呼叫服务功能、评价功能。

本系统良好的运行稳定性使得本系统开发的可能性大大提高。

1.2系统开发的意义

随着社会的发展,人类进入21世纪后的生活的水平有所提高,为了满足人们对生活的需要,丰富业余生活,就需要有一些娱乐的设施来弥补这些空缺,KTV已经越来越深入大众生活。

自我国加入世界贸易组织,KTV服务业与国际市场接轨已成为大势所趋,KTV要迎接这场挑战,就必须提高整体竞争能力,提高整体竞争能力必须变革KTV的管理模式,提高管理水平,实施信息化建设无疑是实现这一目的的必由之路和明智之举。

目前,我国KTV服务业信息化管理的进程缓慢,跟国外的KTV相比管理依然落后。

在激烈的KTV业竞争中,如何能把握机会,保持自己的优势,立于不败之地呢?

这就需要提供最好的服务,提供最完善的设施和最先进的技术。

一个成功的KTV,其经营者不仅要提高服务水平和服务质量,从而提高包厢占有率和回头率,还要有好的工作效率,并控制成本。

在信息时代,更重要的是还必须要有一个完善的管理信息系统,便于方便客人和更好地管理KTV。

所以开发这样的KTV服务管理系统是十分有必要的。

1.3国内外现状

国内量贩式KTV的市场格局正在发生变化,可谓前途一片光明却又竞争激烈。

KTV兴起于八十年代,雏形是几台电视机、几台VCD、外加几个话筒,尽管最初是简陋的,但是发展起来是非常迅速的,九十年代就开始有了KTV的正式场所,最早的有嘟嘟、阿米果、欢乐谷、多来咪等。

那时候去KTV是奢侈的,一般去消费的是事业有成或经济比较好的时尚年轻人。

随着KTV市场的升温,KTV场所也越来越多,消费也相对便宜了,成了经济实惠的娱乐方式。

平常大家总是喜欢约上三五好友一起到KTV去开心一下,聚一聚、吼一吼,既发泄了,又与朋友聚到了,实在是划算。

随着居民生活消费水平的提高,有时候会面临这样的问题:

“晚上活动怎么安排?

去KTV吧!

”如今,卡拉OK已成为城市居民重要的休闲方式之一。

自助式消费、健康的活动内容,这种娱乐模式很快被市民接受。

这种新的业态出现,改变了居民的生活方式。

1、缺乏特色竞争激烈

我们发现,多数量贩式KTV店缺乏特色,同质化比较严重。

量贩式已经不再是KTV经营者的“金招牌”。

据了解,目前,不少量贩式KTV店在经过惨烈的价格战之后,仍难以挽回市场。

好几家大家熟悉的KTV店因无法维持,已经悄悄打起了转让广告。

如今,这种经营模式似乎已不那么赚钱了。

2、市场格局正在变化

随着KTV行业的管理日趋完善和严格,量贩式KTV还面临要交版权费的问题。

虽然因为种种原因,目前对KTV店征收版权费还没有真正实施,但交版权费的日子必定会到来,这无疑会加大经营成本。

不少商家反映KTV行业越来越难做了。

3、消费者的需求日益复杂

由于现代消费者对娱乐的需求日益复杂,除在意装潢格调、音响音质、伴唱带质量、餐饮口味服务外,业者必须经常调整营业内容及设施,提供各种不同的娱乐服务给消费者,以满足消费者欢乐及新鲜的心理需求。

在未来的ktv行业发展趋势中,应发展新技术以改进服务质量,还有引进更先进的视听设备,使消费者可以享受更好的服务。

由此可见,一个成功的KTV,其经营者不仅要提高服务水平和服务质量,从而提高包厢占有率和回头率,还要有好的工作效率,并控制成本。

在信息时代,更重要的是还必须要有一个完善的管理信息系统,便于方便客人和更好地管理KTV。

第2章 关键技术介绍

该KTV管理系统的开发使用了C/S架构,一个服务器端和多个客户端,服务器端管理员用于管理KTV的全面运营,客户端分为服务员和客户两种类型,分别具有不用的权限和功能实现,服务器端使用Qt实现,两类客户端使用Android实现,它们之间使用Wifi无线连接技术进行数据的共享。

2.1Qt

Qt是在1991年一个由奇趣科技开发的跨平台C++图形用户界面的应用程序开发框架。

且是面向对象语言,易于扩展且允许组件编程。

Qt支持的平台有MS/Windows-95、98、ME、NT4.0、2000、XP、Win7和Vista,以及Unix/X11-Linux、SunSolaris、CompaqTru64UNIX、HP-UX、IBMAIX、SGIIRIX、、BSD/OSFreeBSD和其它很多X11平台,另外还有Macintosh-MacOSX、Embedded-有帧缓冲(framebuffer)支持的嵌入式Linux平台和WindowsCE等。

Qt支持的操作系统有Windows,Linux,Solaris,SunOS,Mac,FreeBSD、BSD/OS,SCO,AIX,OS390,QNX等等。

Qt的良好分装机制使得Qt的模块化程度非常高,可重用性良好,对于用户开发来说是非常方便的。

Qt提供了一种成为signal/slots信号和槽的安全类型来代替callback,具有可查询和可设计的属性,这样使得各个元件之间的协同工作变得十分简单呐。

此外,Qt还有丰富的API,包括多达500个一上的C++类,还提供基于模版的collections,file,serialization,I/Odevice,data/time,directorymanagement类。

甚至还包括正则表达式的处理功能。

Qt还具有有约的绘画功能,Qt的绘画工具QPainter类,在任意一个绘图设备上都可以润色图形。

绘图设备包括组件、像素映射、打印机和图形文件,相同的代码可以用在4种不同类型的设备上。

Qt的类库架构:

Qt的主要通信机制是信号和槽,使用这种方法非常简单,只要编写一行代码就能将用户事件和程序事件连接起来。

信号/槽机制是在QObject类中实现的。

在QObject类或者期中一个子类(比如QWidget类)继承法的所有类中,都存在了信号和槽。

当对象改变其状态的时候,信号被发送,对象不关心有没有其他对象接收到这个信号槽是类的正常成员函数,可以将信号和槽通过connect()函数任意连接。

当一个信号被发射它所连接的槽会被立即执行,如同一个普通函数调用一样。

当心好被发出时,会调用与之相连接的槽。

槽是普通的C++函数,可以用普通的方式来调用。

它唯一特殊的地方在于可以与信号相连接。

槽的参数不能有默认值。

同样,信号的参数也不能有默认值。

在槽的函数中尽量不使用自定义的数据类型,因为这样会使通用性降低。

既然槽和普通的成员函数差不多,它们和普通成员函数一样有访问限制,根据槽的访问限制谁可以与它们相连接,能够分为以下三种情况:

publicslot:

任何信号都可以与之相连接。

这在窗口部件编程中非常有用,用于创建一些对彼此一无所知的对象,只有通过信号和槽来交换信息。

Publicslot就像是标准的铁路一样。

protectedslot:

只有该类及其子类所派生的对象的信号才可以与之相连接。

这类槽的目的通常是为了类的完善,而不是类与外界的接口。

privateslot:

只有该类自己的信号才可以与之相连接。

当某个信号对其客户或所有者发生的内部状态发生改变,信号被一个对象发射。

只有定义过这个信号的类及其派生类能发射这个信号。

当一个信号被发射时,与其相关联的槽将被立即执行,就像一个正常的函数调用一样。

信号-槽机制完全独立于任何GUI时间循环。

只有当所有的槽返回以后发射函数才返回。

如果存在所个槽与某个信号相关联,那么,当这个信号被发射时,这些槽将会一个接一个地执行,但是它们执行的顺序将会是随机的、不确定的,我们不能人为地指定哪个先执行、哪个后执行。

如果有两个不同的对象对一个信号感兴趣,只要将该信号连接到这两个对象的槽上就可以了。

2.2Android

Android是一个以Linux为基础的开放源码的操作系统,它主要用于便携设备,Android操作系统最初是由AndyRubin开发且主要支持手机。

在2005年由Google收购注资,并组建了开放手机联盟开发改良,逐渐地扩展到平板电脑以及其他领域上。

在2011年第一季度,Android在全球的市场份额首次超过了塞班系统,跃居全球第一。

在2012年2月数据中显示,Android占据了全球智能手机操作系统市场52.5%的份额,在中国市场的占有率为68.4%。

Android系统架构和别的操作系统一样,采用了分层架构。

Android一共分为四层,从高到低依次是应用程序层、应用程序框架层、系统运行库层和Linux核心层。

它是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android快速发展,如今已经允许了开发者使用多种编程语言来开发应用程序,而不再是像以前一样只能使用Java开发Android应用程序的单一局面,因而它受到了众多开发者的欢迎,成为了真正意义上的开放式操作系统。

开发者在Android中可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言进行开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:

php、python、tcl、lua等等),还有其他诸如:

Mono(MonoforAndroid)、Qt(QtforAndroid)等一些著名的编程框架也开始支持Android编程。

甚至通过MonoDroid,开发者们还可以使用C#作为编程语言开发应用程序。

此外,Google于2009年特别发布了针对初学者的AndroidSimple语言,该语言类似Basic语言。

但是在网页编程语言方面,JavaScript,Ajax,HTML5,jquery、Phone、sencha、mobl、dojoGap等等都已经支持Android开发。

而在Android系统底层方面,Android是使用C/C++作为开发语言。

android四大组件分别是:

1.活动(Activity):

用于表现功能。

2.服务(Service):

后台运行服务,不提供界面呈现。

3.广播接收器(BroadcastReceiver):

用于接收广播。

4.内容提供商(ContentProvider):

支持在多个应用中的存储和读取数据,相当于数据库。

Activity

一个Activity通常展现为一个可视化的用户界面。

例如,一个activity可能展现为一个用户可以选择的菜单项列表或者展现一些图片以及图片的标题。

一个消息服务应用程序可能包含一个显示联系人列表的activity,一个编写信息的activity,以及其它一些查看信息和修改应用程序设置的activity。

虽然这些activity一起工作,共同组成了一个应用程序,但每一个activity都是相对独立的。

每一个activity都是Activity(android.app.Activity)的子类。

一个应用程序可能只包含一个activity,或者像上面提到的消息服务程序一样有多个activity。

一个应用程序包含几个activity以及各个activity完成什么样的功能完全取决于应用程序以及它的设计。

通常每个应用程序都包含一个在应用程序启动后第一个展现给用户的activity。

在当前展现给用户的activity中启动一个新的activity,可以实现从一个activity转换到另外一个activity。

每个activity都会有一个用于绘制用户界面的窗口。

通常这样一个窗口会填充整个屏幕,当然这个窗口也可以比屏幕小并漂浮在其他窗口之上。

activity还可以使用一些额外的窗口,例如一个要求用户响应的弹出式对话框,或者是当用户在屏幕上选择一个条目后向用户展现一些重要信息的窗口。

展示activity窗口的可视化内容区域是一些具有层次关系(很像数据结构中的树)的视图,而视图则是由类View的子类表示的。

每个视图控制窗口中的一个矩形区域。

父视图包含一些子视图并管理子视图的布局。

位于叶节点的视图直接控制并响应用户的动作。

因此视图就是activity与用户交互的接口。

例如,一个显示图片的视图,当用户单击的时候它可能会启动一个动作。

Android有许多开发人员可以直接使用的视图,包括按钮,文本域,滚动条,菜单,复选框等。

通过调用Activity.setContentView()方法来设置展现activity的窗口的视图。

内容视图则是视图层次结构中的根节点视图。

Service

service没有用户界面,但它会在后台一直运行。

例如,service可能在用户处理其它事情的时候播放背景音乐,或者从网络上获取数据,或者执行一些运算,并把运算结构提供给activity展示给用户。

每个service都扩展自类Serivce。

多媒体播放器播放音乐是应用service的一个非常好的例子。

多媒体播放器程序可能含有一个或多个activity,用户通过这些activity选择并播放音乐。

然而,音乐回放并不需要一个activity来处理,因为用户可能会希望音乐一直播放下去,即使退出了播放器去执行其它程序。

为了让音乐一直播放,多媒体播放器activity可能会启动一个service在后台播放音乐。

Android系统会使音乐回放service一直运行,即使在启动这个service的activity退出之后。

应用程序可以连接到一个正在运行中的service。

当连接到一个service后,可以使用这个service向外暴露的接口与这个service进行通信。

对于上面提到的播放音乐的service,这个接口可能允许用户暂停,停止或重新播放音乐。

与activity以及其它组件一样,service同样运行在应用程序进程的主线程中。

所以它们不能阻塞其它组件或用户界面,通常需要为这些service派生一个线程执行耗时的任务。

Broadcasereceiver

broadcasereceiver不执行任何任务,仅仅是接受并响应广播通知的一类组件。

大部分广播通知是由系统产生的,例如改变时区,电池电量低,用户选择了一幅图片或者用户改变了语言首选项。

应用程序同样也可以发送广播通知,例如通知其他应用程序某些数据已经被下载到设备上可以使用。

一个应用程序可以包含任意数量的boradcasereveiver来响应它认为很重要的通知。

所有的broadcastreceiver都扩展自类BroadcastReceiver。

broadcastreceiver不包含任何用户界面。

然而它们可以启动一个activity以响应接受到的信息,或者通过NotificationManager通知用户。

可以通过多种方式使用户知道有新的通知产生:

闪动背景灯、震动设备、发出声音等等。

通常程序会在状态栏上放置一个持久的图标,用户可以打开这个图标并读取通知信息。

Contentprovider

应用程序可以通过contentprovider访问其它应用程序的一些私有数据,这是Android提供的一种标准的共享数据的机制。

共享的数据可以是存储在文件系统中、SQLite数据库中或其它的一些媒体中。

contentprovider扩展自ContentProvider类,通过实现此类的一组标准的接口可以使其它应用程序存取由它控制的数据。

然而应用程序并不会直接调用ContentProvider中的方法,而是通过类ContentResolver。

ContentResolver能够与任何一个ContentProvider通信,它与ContentProvider合作管理进程间的通信。

任何时候当Android系统收到一个需要某个组件进行处理的请求的时候,Android会确保处理此请求的组件的宿主进程是否已经在运行,如果没有,则立即启动这个进程,当请求的组件的宿主进程已经在运行,它会继续查看请求的组件是否可以使用,如果不能立即使用,它会创建一个请求的组件的实例来响应请求。

2.3Wi-Fi

Wi-Fi的英文全称为wirelessfidelity,Wi-Fi原先是无线保真的缩写,它在无线局域网的范畴是指“无线相容性认证”,实质上那是一种商业认证,同时也是一种无线联网的技术。

以前通过网线连接电脑,而现在则是通过无线电波来连网。

常见的就是一个无线路由器,那么在这个无线路由器电波覆盖的有效范围内都可以采用WIFI的连接方式来进行联网,如果无线路由器连接了一条ADSL线路或者别的上网线路,则又被称为“热点”。

所谓Wi-Fi,是由一个名为“无线以太网相容联盟”(WirelessEthernetCompatibilityAlliance,WECA)的组织所发布的业界术语,中文译为“无线相容认证”。

它是一种短程无线传输技术,能够在数百英尺范围内支持互联网接入的无线电信号。

随着技术的发展,以及IEEE802.11a及IEEE802.11g等标准的出现,现在IEEE802.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)。

它们也是公开使用的,但802.11G/N在世界上最为常用。

Wi-Fi热点是通过在互联网连接上安装访问点来创建的。

这个访问点将无线信号通过短程进行传输-一般覆盖300英尺。

当一台支持Wi-Fi的设备(例如PocketPC)遇到一个热点时,这个设备可以用无线方式连接到那个网络。

大部分热点都位于供大众访问的地方,例如机场、咖啡店、旅馆、书店以及校园等等。

许多家庭和办公室也拥有Wi-Fi网络。

虽然有些热点是免费的,但是大部分稳定的公共Wi-Fi网络是由私人互联网服务提供商(ISP)提供的,因此会在用户连接到互联网时收取一定费用。

802.11b有时也被错误地标为Wi-Fi,实际上Wi-Fi是无线局域网联盟(WLANA)的一个商标,该商标仅保障使用该商标的商品互相之间可以合作,与标准本身实际上没有关系。

但是后来人们逐渐习惯用WIFI来称呼802.11b协议。

它的最大优点就是传输速度较高,可以达到11Mbps,另外它的有效距离也很长,同时也与已有的各种802.11DSSS设备兼容。

笔记本电脑技术——迅驰技术就是基于该标准的。

IEEE([美国]电子和电气工程师协会)802.11b无线网络规范是IEEE802.11网络规范的扩展,最高带宽为11Mbps,在信号较弱或有干扰的情况下,带宽可调整为5.5Mbps、2Mbps和1Mbps,带宽的自动调整,有效地保障了网络的稳定性和可靠性。

其主要特性为:

速度快,可靠性高,在开放性区域,通讯距离可达305米,在封闭性区域,通讯距离为76米到122米,方便与现有的有线以太网络,支持Wi-Fi的笔记本。

整合,组网的成本更低。

Wi-Fi(WirelessFidelity,无线相容性认证)的正式名称是“IEEE802.11b”,与蓝牙一样,同属于在办公室和家庭中使用的短距离无线技术。

虽然在数据安全性方面,该技术比蓝牙技术要差一些,但是在电波的覆盖范围方面则要略胜一筹。

Wi-Fi的覆盖范围则可达300英尺左右(约合90米),办公室自不用说,就是在小一点的整栋大楼中也可使用。

2.4基于TCP的Socket通信

基于TCP的Socket通信是通过指定IP地址和port号,采用C/S模式建立TCP协议下的两个通信进程间的连接,实现可靠的双向通信。

在Java中,实现客户端套接字的Socket类;实现服务器端套接字的ServerSocket类。

Socket通信原理是网络中基于Socket通信的两个进程间建立连接时,会将其中一个进程作为客户端,而另一个进程作为服务器端。

ServerSocket类和Socket类实现通信的C/S模型。

由服务器端程序与客户端程序两部分组成,基本功能是:

服务器端程序监听C/S双方约定的端口(55558),等待并接收客户请求,接受客户请求后建立一个至客户端的基于套接字的连接,然后利用该连接返回到客户端的Socket对象,创建一个服务器端输入流InputStream和一个服务器端输出流OutputStream,同时将它们分别包装成便于操作与刷新的BufferedReader输入流和PrintWriter输出流。

然后,服务器端从InputStream读入客户端输出的数据,用OutputStream向客户端输出数据,直到接收到客户端的数据终止标志“结束”为止,

最后关闭连接,释放网络资源,结束本次通信。

客户端程序首先创建客户端Socket对象后,然后在约定端口向服务器端发送请求,待服务器端接受请求后建立基于套接字的连接,然后利用该连接的Socket对象,创建一个客户端输入流InputStream和一个客户端输出流OutputStream,同时将它们分别包装成便于操作与刷新的BufferedReader输入流和PrintWriter输出流。

然后,客户端从InputS

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 家庭教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1