




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
存档编号 基于PHP+MySQL的美发店收银系统的设计与实现系 别数学与计算机科学学院届 别 2013 届 专 业 信息与计算科学 学 号 姓 名 指导老师 完成日期 2013年5月 目录摘要:1Keywords:21.绪论31.1课题研究的背景及发展31.2课题研究的意义32.可行性分析52.1 操作上可行性分析52.3 经济上可行性53.技术概述63.1 B/S体系结构63.2 PHP 概述63.3 MySQL 概述73.4 Apache 概述83.5 HTML概述93.6 CSS 概述93.7 javascript概述103.8 JQuery概述103.9运行环境104. 需求分析124.1系统分析的任务与步骤124.2功能规划124.3模块功能分析134.4 系统功能结构154.5设计目标164.6用户需求174.7系统框架图175. 网站实体设计185.1界面设计185.2 MySQL 数据库的设计236.系统功能详细设计与实现286.1 MySQL的操作286.2登录模块296.3收银模块316.4会员功能模块336.5信息台、报表模块357.登录模块系统测试运行及调试367.1系统调试中遇到的问题及解决办法367.2系统性能分析36致谢38参考文献39摘要:在我国随着市场经济的不断发展,每一个行业都呈现出生机勃勃的发展景象。其中在美发美容行业也是如此,因此必须利用各种现代化技术手段实现信息的高度集成,以此提高获取信息,分析和利用信息的能力。 这样就能在同行业中增加自身的优势。 本文介绍利用Apache + PHP + MySQL 技术在网络上架构一个美发店收银系统。主要实现美发店对收银方面的各项操作与记录,以及对会员的管理和本店消费数据的分析。 关键词: 美发店收银系统 PHP+MySQL 会员管理Abstract: In our country, with the development of market economy, every industry is developing a vibrant scene. One is that in the hair and beauty industry, highly integrated must therefore be achieved by means of modern information technology, in order to improve access to information, analysis and the ability to use information. That would increase their advantage in the same industry. This paper introduces the network structure in a barber shop cashier system using Apache + PHP + MySQL technology. The main salon on the cashier of the operation and recording, and the analysis of the members management and our consumption data. Keywords: Hairdressing Store Cashier System PHP+MySQL Member Management1.绪论1.1课题研究的背景及发展中国美容经济年度报告指出,从世界范围来看,美发美容产业正迎来一个新的春天。根据相关调查,目前全国美发美容行业现有服务机构近160万家,从业人员约800万人,而且美容美发行业每年都以15的速度迅速扩张。在美发美容行业竞争越来越激烈的今天,美发店如何提高服务质量、管理能力显得越来越重要。尤其是对于大型美发店,前台服务显得尤为重要。如果没有一套可靠的美发店前台收银系统,单凭手工操作,不仅效率低下,而且会极大地影响到美发店的服务质量。美发店为了增加盈利,提高服务效率和质量,通常会采用前台收银系统,可以方便地处理顾客的结账,管理一些老顾客的信息,管理员工信息。1.2课题研究的意义收银系统作为美发店自动化管理系统的一部分对提高美发店效率增加收入发挥不可替代的作用,集显示,输入,添加,修改,删除等各种操作为一体,维护起来十分方便。便捷性:利用此系统前台收银员不再和以前一样使用纸笔记录,只是轻点键盘就能完成。准确性:利用此系统,前台收银员可以方便地完成结帐,极大地减少错误地发生,避免无法估计的不必要的损失。因为计算机计算失误几乎为零。安全性:传统的纸质记录方式查询起来很麻烦,而且保密性很差,并且容易磨损丢失,对于会员余额的管理是非常不利的。但如果采用的是电子文档的方式进行数据的保存,这一切都变得非常简便,你可以方便的对数据信息进行备份查询,并且数据的安全性可以得到最大程度的保证。综上分析传统的人工管理方式存在的种种缺陷,不方便管理,为此设计一个收银系统。通过这个收银系统,管理者可以基本解决以上所遇到的种种问题,并且更加科学的对老客户的消费信息进行查询,数据分析以及进行更好的决策。2.可行性分析2.1 操作上可行性分析本系统是基于网站技术开发的,因此用户只需打开浏览器输入域名即可进行访问操作,系统界面采用动态网页界面,具备友好的用户界面,视觉效果直观,操作简单,以及良好的防失误操作功能,只需对系统使用做简单的了解即可。2.2技术上可行性分析美发店收银系统在后台程序上采用开源的PHP服务器端语言,只需要一款Web服务器软件支持就可以运行,这里采用世界排名第一的Apache Web服务器软件,在数据库上采用实用的目前主流的MySQL数据库管理系统,因此本系统在服务端只需要对一款软件“一键快速搭建APMServ5.2.6”进行配置,之后运行即可。美发店收银系统在前台采用超文本标记语言HTML + 级联样式表CSS + 客户端脚本语言 javascript + 一个优秀的javascript框架 JQuery ,本系统在客服端上只需要用户计算机里有任何一款浏览器即可完成各项功能的操作。2.3 经济上可行性本美发店收银系统运行的硬件环境只需一台廉价的电脑既可,软件环境则是安装windows XP/windows 7系统即可。就算是小型美发店对于这个费用开支者是很小的成本支出。因此本系统在经济上、技术上、操作上开发都是可行的。3.技术概述3.1 B/S体系结构B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。B/S体系结构的独特优势:(1)开放的标准:B/S所采用的标准都是开放的、非专用的,是经过标准化组织所确定而非单一厂商所制定,保证了其应用的通用性和跨平台性。(2)较低的开发和维护成本:B/S的应用只需在客户端安装通用的浏览器即可,维护和升级工作都在服务器端进行,不需对客户端进行任何改变,故而大大降低了开发和维护的成本。(3)用户使用简单,界面友好:B/S用户的界面都在统一的浏览器上,浏览器易于使用、界面友好,又因为它不再负责数据的存取和复杂数据计算等任务,只需要进行显示,因而大大降低了对客户端的要求。3.2 PHP 概述PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。PHP 于 1994年由Rasmus Lerdorf创建,刚刚开始是Rasmus Lerdorf 为了要维护个人网页而制作的一个简单的用Perl语言编写的程序。这些工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。后来又用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。1)PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。2)它可以比CGI或者Perl更快速地执行动态网页。3)用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多。4)PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。3.3 MySQL 概述MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。1)使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性2)支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统3)为多种编程语言提供了API。这些编程语言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。4)支持多线程,充分利用CPU资源5)优化的SQL查询算法,有效地提高查询速度6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。7)提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。8)提供TCP/IP、ODBC和JDBC等多种数据库连接途径。9)提供用于管理、检查、优化数据库操作的管理工具。10)支持大型的数据库。可以处理拥有上千万条记录的大型数据库。11)支持多种存储引擎。3.4 Apache 概述Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。Apacheweb服务器软件拥有以下特性:支持最新的HTTP/1.1通信协议拥有简单而强有力的基于文件的配置过程支持通用网关接口支持基于IP和基于域名的虚拟主机支持多种方式的HTTP认证集成Perl处理模块集成代理服务器模块支持实时监视服务器状态和定制服务器日志支持服务器端包含指令(SSI)支持安全Socket层(SSL)提供用户会话过程的跟踪支持FastCGI通过第三方模块可以支持Java Servlets3.5 HTML概述HTML的全拼是HTML(Hypertext Markup Language),中文意思是超文本标记语言。其主要特点如下:1) 简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便。2)可扩展性:超级文本标记语言的广泛应用带来了加强功能,增加标识符等要求,超级文本标记语言采取子类元素的方式,为系统扩展带来保证。3)平台无关性:虽然个人计算机大行其道,但使用MAC等其他机器的大有人在,超级文本标记语言可以使用在广泛的平台上,这也是万维网(WWW)盛行的另一个原因。3.6 CSS 概述级联样式表(Cascading Style Sheet)简称“CSS”,通常又称为“风格样式表(Style Sheet)”,它是用来进行网页风格设计的。比如,如果想让链接字未点击时是蓝色的,当鼠标移上去后字变成红色的且有下划线,这就是一种风格。通过设立样式表,可以统一地控制HTML中各标志的显示属性。级联样式表可以使人更能有效地控制网页外观。使用级联样式表,可以扩充精确指定网页元素位置,外观以及创建特殊效果的能力。3.7 javascript概述Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。3.8 JQuery概述Jquery是继prototype之后又一个优秀的Javascript框架。它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。3.9运行环境硬件环境(推荐):CPU:P4 1GHz或更高内存:256MB或更多显示器分辨率: 800x600或更高保证程序存放的介质是可被写入的软件环境:(推荐)操作系统:windows XP/window 7操作系统服务端:一键快速搭建APMServ5.2.6客户端:任务一款浏览器(推荐火狐浏览器或360极速浏览器)文件配置:打开“C:WindowsSystem32driversetchosts” 将“ ”添加到最尾行保证程序存放的目录具有所有权限4. 需求分析4.1系统分析的任务与步骤4.1.1 系统分析的任务首先,了解用户要求。此用户即为网站系统的使用人员(管理员,员工,顾客)。其次,了解他们在网站功能、性能等方面的要求及用户在硬件配置等方面的意向与打算。最后,把用户的要求成文,完成网站的分析报告。网站的模型主要由一系列的图表和文字组成。描述了系统的目标以及所具备的功能及性能。4.1.2 系统分析的步骤描述网站。在详细调查的基础上,用一定的图标、文字描述。4.2功能规划美发店收银系统由登入/退出功能、首页、收银台、会员功能、信息台、报表、美发店介绍。1)首页:首页将本店的公告、最活动信息、流行发型、以及优秀员工的表扬等展示给顾客、员工浏览。主要以图片形式展示,若有必要可以对图片 标签中的alt属性进行设置文字说明。2)收银台:收银台有结账、找零、打折、账单入库功能。3)会员功能:会员注册、会员卡消费查询。4)信息台:账单查询、会员信息查询、员工信息查询。5)报表:日营业额报表、月营业额报表。6)美发店简介:对美发店的介绍。7)登录退出功能:进入、退出本系统。4.3模块功能分析4.3.1 权限模块1)会员:只可访问首页,美发店简介,关于我们三个模块,且不可进行登录。2)员工:具有会员所有权限,增加登入后可进行收银操作、办理会员的注册、会员消费记录查询。3)BOSS:可具有员工的所有权限,增加可对会员信息查询、员工信息查询、员工业绩查询、报表查询。4)超级管理员:具有所有权限,可执行所有操作。4.3.2 收银模块1)结账功能:对顾客的消费费用结账。2)打折功能:对会员的消费进行打折,吸引顾客。3)找零功能:顾客付款时对其进行找零。4)账单入库功能:把顾客账单入库,记录下消费各项信息,也便于美发店的查询。5)账单各项信息分别为:账单号:为系统自动生成,不可更改。消费时间:为系统自动生成,不可更改。会员卡:可输入会员卡号,必须为6位的数字,(非会员默认会员卡号为100000)。操作员:为当前登录系统的用户。发型师:为顾客剪发的员工,系统自动列出发型名单,只需点鼠标选择此次剪发的发型师,无需输入。折扣信息:当前账单的打折信息。实收金额:应收金额*折扣。类型:顾客的消费类型、分别有剪发、烫染、洗头。顾客:顾客自愿填写,可为空。4.3.3 会员模块1)注册功能:办理会员注册,记录会员各项信息:用户名:该项必填,且只能为字母数字下划线;密码:该项必填,须输入两次一样的密码,且只能为字母数字下划线;会员卡:该项为会员卡的卡号为系统自动生成且不可更改;类型:为会员的类型,有个人、公司等之分默认为个人,可更改;性别:默认为男,可更改;姓名:会员姓名,可不填;手机:会员联系电话,可不填;QQ:会员QQ号码,可不填;生日:会员生日信息,默认01-01;密保问题及密保回答:可不填;2)查询消费记录功能:通过输入该会员的会员卡号即可查询会员的美发店来的历次消费。4.3.4信息模块账单查询:通过输入账单号可查询账单的详细信息。会员信息查询:查询所有会员的信息。员工信息查询:查询所有员工的信息。4.3.5 报表模块日营业额报表:当天的营业额信息。月营业额报表:当月的营业额信息。4.3.6 登录模块管理人员的登录,管理人员的权限,登录状态的识别。4.4 系统功能结构美发店收银系统的功能结构如图1所示。美发店收银系统会员功能信息台报表关于我们美发店简介收银台首页登录如图1:功能结构图4.5设计目标本系统是根据小型美发店的实际需求而开发的,完全能够实现美发店对顾客的自动化管理,通过本系统可以达到以下目标:1)系统运行稳定,安全可靠。2)界面设计美观,人机交互界面友好。3)信息查询灵活、方便、快捷、准确,数据存储安全可靠。4)支持回车键。5)采用多种方式查询数据。6)对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。4.6用户需求本系统的总目标是为用户提供迅速、高效的服务,减免手工处理的繁琐与误差,及时、准确地反映美发店的工作情况、经营情况,从而提高美发店的服务质量,获得更好的经济效益。其具体目标包括:(1)快速完成顾客的结账。(2)准确无误地记录顾客的每笔消费记录。(4)方便查询顾客消费情况。(5)方便查询美发店的营业额情况。4.7系统框架图权限模块收银模块会员模块信息查询登录模块美发店收银系统数据库图2:系统框架图5. 网站实体设计5.1界面设计5.1.1总体设计概述前台界面采用HTML + CSS + javascript + JQuery; 进行结合设计,宽度为990px,高度视内容而定,共8个页面分别为:登录管理:login.php首页:index.php收银台:shouyintai.php会员功能:member.php信息台:info.php报表:data.php美发店简介:jianjie.php关于我们:ours.php除登录管理:login.php页面外,其它7个页面都由有一个公共的头部文件head.php和自身文件组成。加载head.php文件语句为:5.1.2页面头部框架的内容设计内容分为三个部分:用编辑器打开head.php文件就可看到在最外一级共有三个div标签将它们分为三层1) 这里面内容为欢迎词及登录字体输出。2)这里面容为一张logo图片及一张美发店收银系统图片。图片加载的HTML方式为:。其中为加载图片的HTML标签,属性 src为设置图片的路径,属性border为图片的边框,属性height为图片的高度,属性width为图片的宽度。3) 这里内容是导航菜单栏主要结构由 组成。5.1.3页面头部框架排版设计对内容页面的排版文件在index.css文件里,调用CSS文件方式为:CSS文件可用编辑器打开查看,这里针对导航做分析:1)首先设置ul,lilist-style:none;将所有列表前默认的一个点(” )设置为不显示。2).nav ul lidisplay:inline-block;margin-left:1px;height:40px;width:121px;float:left;text-align:center;background-image:url(/images/nav_item.png);border-bottom:1px solid #ffffff;这里对在含有名为.nav的样式类里 标签下的列表元素进行设置了高度:40像素、宽度:121像素、下边框:1像素 实线 颜色为白色、左边距:1像素、背景图片:nav_item.png、内容:居中显示以及最重要的浮动方式的设置float:left左浮动,这个浮动方式的设置才能将内容默认的以7行显示改成的为同一行显示。3).nav1border:0px;height:40px;width:100%;margin-bottom:5px; background:url(/images/navbg1.png) repeat-x #999999;这里是对页面中宽度最宽的一条蓝色横条进行样式设置,其中有两个关键点:1.width:100%,这里使横条充满一整行,并且可随着页面的变化而自动改变宽度。2.背景图处的设置background:url(/images/navbg1.png) repeat-x #999999;这里是用一条宽1px,高40px的图片将宽大于990px的横条全部变为蓝底图片,repeat-x 图片沿X轴方向无限重复,原图如下图3:图3:导航背景图4).nav ul li a:hoverdisplay:inline-block;font-size:16px;height:40px;color:#ff0000;width:124px;line-height:40px;background:url(/images/nav_over.png);font-size:14px;text-decoration:none;在这里是对鼠标移动到首页、收银台、会员功能等模块上时,会由原先的蓝底变为白底的效果进行设置。5.1.4首页中利用JQuery 对图片自动切换设计1)内容设计:内容只需要6张大图片,对6张图片的命名要有规律分别为: ad1.jpg、ad2.jpg、ad3.jpg、ad4.jpg、ad5.jpg、ad6.jpg,并且在同一目录下,这样可以减少JQuery程序语言编写的难度。把内容通过HTML代码嵌入到页面中主要通过三个标签具体代码查看index.php,之后需要在中自定义一个”data”属性,每一个中data属性的值按顺序为0、1、2、3、4、5因为在程序中将它们存入一个数组中方便调用。2)排版设计:大体分左右两部分。因为两个部分都各自放在一个中处于同级,这样对两个容器进行CSS中 浮动设置便可让内容分为左右两部分。再给两个容器及容器中图片进行大小设置以到达规定效果3)设计思想:a) 图片能够自动的按顺序自上而下循环切换。b) 当鼠标移动到左边图片时,图片切换必须停止。c) 当鼠标移动到右边图片时,必须切换至相应的图片,切换之后立即停止。d) 当切换至下一张图片时,左部分图片也要同时更新。e) 当某张图片成为当前图片时,通过程序对右边的图片设置成特殊CSS样式,将其加以突出,同时其它图片设置成普通的CSS样式。运用JQuery 必须将程序写在$(function() );的大括号中,基于以上五点。我们程序如下:var adqh = 创建对象、由于对象属性设置比较多,这里不列出,具体可查看xiala.js文件中32-51行1. function picqh() /图片自动切换函数if(adqh.auto = 1); /该auto属性值为1停止自动切换else/当图片切换至第6张时,返回每一张if(adqh.actNum = 5)adqh.actNum = 0;elseadqh.actNum +;/切换图片至下一张picqh1(); /图片切换的具体变化设置/用setTimeout()函数设置每1500毫秒调用自身一次,即1.5秒执行一次图片切换setTimeout(picqh,1500); 2. $(.adcontent a).hover();利用该语句监听左边图片,当鼠标在其上时设置adqh.auto = 1;停止图片切换,离开时adqh.auto = 0;继续图片切换。具体代码见xiala.js中14-20行。3. $(.adqh li).hover();利用该语句监听右边图片,当鼠标在其上时设置adqh.auto = 1; 及设置adqh.actNum= $(this).attr(data);通过以上在中自定义的data属性获取鼠标是在哪一个图片上;之后调用picqh1();完成图片切换及4、5点的变化 。具体代码查看xiala.js 22-32、66-73行。首页设计界面如下图图4:首页效果图首页可放6张图片,可根据需要放置不同类型的图片:例如宣传图片,最新优惠活动,流行发型,优秀员工等。5.1.5 javaScript对各个页面中的表单检查/检查表单输入function check1(obj,type) if(type = 1) /输入只能为数字/用正则表达式匹配不为数字的字符,并替换为空obj.value = obj.value.replace(/d/,);if(type = 2) /输入最多只有一个点,第一个不能为点/用正则表达式匹配不为数字和点的字符,并替换为空obj.value = obj.value.replace(/d./,); /若匹配出第一个为点则将点替换为空obj.value = obj.value.replace(/./,); /将匹配出所有点,并替换为一个点obj.value = obj.value.replace(/.2,/g,.); if(type = 3) /输入只能为字母数字划线/用正则表达式匹配不为字母数字划线字符,并替换为空obj.value = obj.value.replace(/w/,);if(type = 4) /过滤非法字符/用正则表达式匹配下列设置的特殊字符,并替换为空obj.value = obj.value.replace(/.()*%$&+/g,);通过以上代码对表单的检查,防止用户的错误输入,以及减少个别人通过表单注入SQL语句破坏系统。5.2 MySQL 数据库的设计要实现以上主要功能模块,必须建立相对应的数据库。采用B/S体系架构,核心业务进行封装,用户通过浏览器进行访问;编程语言采用PHP语言,数据库采用MySql;服务器采用基于Windows系统。5.2.1 可进行登录人员信息实体图管理者idemail最后登录日期姓名密码用户名类型登录IP图5:登录人员信息实体图5.2.2 用户类型及权限信息实体图用户类型权限级别权限信息类型名称图6:用户类型及权限信息实体图5.2.3 会员信息实体图会员QQ密保问题最后消费日期姓名密码用户名类型生日金额性别会员卡号答案图7:会员信息实体图5.2.4 账单信息记录实体图账单id打折信息顾客姓名发型师当前管理员消费卡号单号消费类型时间消费金额图8:账单信息记录实体图5.2.3 数据结构E-R图会员消费账单管理者/员工管理/剪发收银/业绩管理者类型职能图9:数据结构E-R图5.2.5 数据表的设计(1)表 rd_admin:表1:rd_admin-管理员/员工信息表编号字段名字段类型是否为主键备注信息1idInt(10) unsigned是自动编号2UsertypeInt(3) unsigned否管理员类型3UseridChar(30)否管理员用户名4PwdChar(32)否密文密码5UnameChar(20)否管理员姓名6TpwdChar(30)否明文密码(测试用)7EmailChar(30)否Email8TypeidText否类型介绍9LogintimeInt(10) unsigned否最后合登录时间10LoginipVarchar(20)否登录IP (2)表 rd_admintype:表1:rd_admintype-管理员/员工分类表编号字段名字段类型是否为主键备注信息1RankInt(3)是权限级别2TypenameVarchar(30)否管理员级别3PurviewsText否级别功能(3)表 rd_member:表1:rd_member-会员工信息表编号字段名字段类型是否为主键备注信息1midInt(8) unsigned是自动编号2mtypeVarchar(20)否会员类型3UseridChar(20)否会员用户名4PwdChar(32)否密码5UnameChar(36)否会员姓名6SexEnum(男,女,保密)否性别7CardidVarchar(10)否会员卡号8QQVarchar(11)否QQ号9MobileVarchar(11)否手机号10MoneyMediumint(8)unsigned否金额11ScoresMediumint(8)unsigned否积分12SafequestionChar(30)否密保问题13SafeanswerChar(30)否答案14JointimeInt(10)usigned否注册时间15LogintimeInt(10) unsigned否消费时间16BirthdayVarchar(20)否生日(4)表 rd_moneycard_record:表1:rd_moneycard_record-账单信息表编号字段名字段类型是否为主键备注信息1AidInt(11)是自动编号2ctidInt(11)是单号3CardidVarchar(10)否会员卡号4UidInt(11)否操作员5IsexpSmallint(6)否消费类型6BarberInt(4)否发型师7ConsumerVarchar(20)否顾客姓名8MtimeInt(11)否php时间戮9DazeVarchar(4)否打折数10MoneyFloat(10,2)否消费金额11NumInt(11)否数量12MdateVarchar(30)否时间6.系统功能详细设计与实现6.1 MySQL的操作为了更有效率的对MySQL操作,非常有必要创建一个数据库对象,里面封装一些我们常用的方法,更能减少我们的代码量还增强可读性。具体代码从data目录下common.inc.php开始查看。function _construct(); 初始化对象里面配置数据库存信息,用户名、密码等function Open($pconnect=false)打开数据库,当参数为true时永久性打开连接数据库;当参数为flause时间断性打开连接,即使用时打开连接,不使用时关闭连接,默认为false 这样可以减少服务器的压力。function sqlQuery($sql)取得传入SQL语句的执行后的结果function result($sql)返回通过 fetch_array()函数获得的结果function num_rows()返回结果数量function close() 返回数据库是否关闭function error()返回数据库存错误信息模块功能若需要连接数据库或调用以上经过这些封装的sql函数的必须在文件中添加以下代码require_once /data/common.inc.php; /导入数据库配置6.2登录模块6.2.1登录界面用户登录界用户名需输入用户名和密码进行登录,若用户名或密码输入错误则系统不能进入。用户登录界面如图10所示:登录页面设计如下:图10登录界面效果6.2.2设计思想1)登录模块程序在login.php 1个文件中,登录状态的识别是借助Session全局变量保存$_SESSIONuserid管理员的用户名。当登录时,页面将表单信息传回本页面进行系统登录。是否已登录是否通过验证注销进入系统开始登入界面是否注销图11:登录模块设计思想流程图2) 判断是否有$_SESSIONuserid变量,若变量存在则说明用户已经登录,执行第三步;若不在在说明未登录,执行第4步。程序如:If(!isset($_SESSIONuserid)else。3)用户已登录,判断是否有注销标识符,且值为logout,则进行注销执行8,否则3秒后返回之前页面。程序结构如:if(isset($_GETaction)else。4)判断是否有用户名,密码变量传入,若有执行5;否则执行7。程序结构如:if(isset($_POSTsubmit)else。5)查询数据库rd_admin表中是否有相对应的用户名密码,其中密码用MD5()加密后的值,若有且只有一条查询结果执行6;否则执行7。$sql = SELECT id,userid,usertype,uname FROM rd_admin WHERE userid = $user_usernameAND pwd = $user_password;6)继续查询,取得用户id,用户名,用户姓名,用户类型,用户权限级别。并用SeSSION全局变量进行保存。执行9。$sql = SELECT typename FROM rd_admintype WHERE rank = $usertype;$_SESSION=$row。7)在当前输出信息:请检查您的用户名及密码。8)注销所有SeSSION变量,注销成功,unset($_SESSION); session_destroy();9)跳转至主页,登录成功,$home_url = /index.php; header(Location: .$home_url);/此函数之前不能有任何输出。6.3收银模块6.3.1模块介绍1)该模块必须管理员类型用户才能进行访问。2)记录必要的数据3)结账需要效率和准确性,一些信息系统自动生成,减少操作员输入;对输入信息要严格检查,防止出错。4)要反馈收银信息给用户,结账公开透明5)该模块包含两个php文件,一个前台文件shouyintai.php,一个后台处理文件syt.php。6)界面设计图12:收银台效果图6.3.2设计思想1) 收银台未登录用户不能访问,所以进行登录状态识别:if(!isset($_SESSIONuserid) /识别是否存在登录用户ID$home_url = /login.php;header(Location: .$home_url);/识别不成功跳至登录界面。2) $sql = SELECT aid,ctid FROM rd_moneycard_record order by aid DESC limit 1;查询单号自动增加3) $sql = SELECT id,uname FROM rd_admin where usertype 10 limit 0,20;列出发型师,因为usertype = 10为超级管理员,所以其他都可以做发型师,以后可以根据更多职们进行扩展。4) 会员卡默认为100000 设定100000为非会员,所有非会员顾客信息都记录到这个卡里。5) 对表单的规范例如单号选项代码如下:input type=text id=ctid name=ctid value= readonly=true/它的默认值通过php程序从数据调出最后的一个单号并增加1,为此账单单号; 再将此表的只读属性设置成true 因此对于这个表单用户不可更改。6) 收银-折扣-找零功能,此功能主要用javaScript实现。公式,实收金额=应收金额*折扣;找零=收取金额-实收金额。当在收取金额表单和应收金额表单第一次输入数据时,都会执行以上两个公式,之后将得到的值在左侧以高亮显示;主要调用表单的”onkeyup”事件,和语句以下document.getElementById(money_ss).innerHTML = money1;document.getElementById(money_re).innerHTML = money_re.value - money;具体代码查看/js/inputcheck.js function showMoney()和function returnMoney();6.4会员功能模块6.4.1模块介绍1)该模块必须管理员类型用户才能进行访问。2)有两项功能:会员注册和和会员消费记录。3)对注册时输入的信息要严格检查,防止出错,保证系统安全。4)对两次密码输入进行检查是否合法,是否一致。5)该模块包含两个php文件,一个前台文件member.php,一个后台处理文件memberhoutai.php。6.4.2设计思想1) 该模块未登录用户不能访问,所以进行登录状态识别:if(!isset($_SESSIONuserid) /识别是否存在登录用户ID$home_url = /login.php;header(Location: .$home_url);/识别不成功跳至登录界面。2) 通过js脚本检查必填信息是否输入完整,当鼠标移至注册按钮时对表单检查,若输入信息不完整则提示用户。以下为实现函数:function checksub1() 具体代码见/js/inputcheck.js 62-73行; 3) 当两次密码输入结束后,立即对其检查,若发现密码不一致,则提示用户。以下为实现函数:function checkpw()具体代码见/js/inputcheck.js 52-60行4) 用户提交信息至后台memberhoutai.php此页。5) 后台通过数据库查询,该用户注册的用户名是否已经被注册。若已被注册,则程序不往下执行,设置注册失败代号,提示用户$sql = SELECT userid FROM rd_member where userid = $userid limit 1;/查询用户名为变量$userid的值的SQL语句$row = $
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业无人机租赁服务平台的用户需求与满意度调查报告
- 房屋拆除工程防护方案(3篇)
- 农业无人机植保作业效率2025年提升策略及案例分析报告
- 东莞亮化工程方案(3篇)
- 安全教育常培训课件
- 安全教育工作培训课件
- 安全教育家长培训课件
- 农业品牌建设2025年资金申请流程与注意事项报告
- 辽宁国企面试题库及答案
- 乐亭二中面试题库及答案
- 医院内肺炎预防与控制操作规程
- 医院新入职员工礼仪培训
- 学校课后延时服务费分配细则
- 儿科停水停电应急预案演练脚本
- 2025年专业医疗机构感染控制与消毒作业外包服务合同书
- 高档小区宠物管理办法
- 2024注册安全工程师《历年计算题型》
- 2025年江苏省开发区运行现状及投资战略研究报告
- 少儿口才培训教案 课件
- 2024年药品监管业务知识技能竞赛考试题库(含答案)
- 试油hse管理制度
评论
0/150
提交评论