超市收银系统人机分析
- 格式:ppt
- 大小:15.53 MB
- 文档页数:96


超市收银台人机学评析与改进设计——以北京家乐福超市为例1 引言1.1 选题的依据和意义超级市场目前已是人们生活中最主要的购物场所,超市货物相对集中,流通较快,基本能够满足人们的日用品需求,在超市选购商品方便、自由、快捷,价格透明、一站式的购物环境深得大家得认可与喜爱。
以北京为例,大中小型超市比比皆是,商品也大同小异,在商品同质化的市场状态下,如何能使顾客在最合理的时间、以最理想的状态满意的购物,显得越来越重要。
在超级市场购物,顾客的自由度、自主性较高,相对来说,最后的结帐构成是一个必须与超市工作人员交流,受约束较多的环节。
这个过程的舒适度、满意度是超市服务质量的一个重要体现。
在此,我们通过对收银台的物理尺寸分析、空间尺度分析、信息流通规划以及收银过程的效率分析,并提出适当的解决方案来提高顾客满意度,同时降低收银员的疲劳程度,提高工作效率。
因此,收银服务的各个细节将影响到整体的服务质量,如果这个过程能让消费者满意,将会提高超市的市场竞争力。
1.1本文拟解决的主要问题本文将通过以下方面对家乐福超市收银台人机系统进行分析:1)功能分析2)作业分析3)尺寸和布局分析4)环境分析通过以上的分析,拟解决的主要问题有:1)找出导致收银员疲劳的不合理因素,加以改进2)在设计中更多关注消费者心理因素,使收银环境更加人性化3)创建更加有效的导向系统,提高收银效率图1-1 北京家乐福超市(国展店)收银台图1-2 北京家乐福超市(国展店)收银台2人机分析2.1功能分析2.1.1收银台功能分析顾客购物完毕来到收银台前,根据收银台布置的不同,方式有以下几种:●单队单服务台●多队多服务台●单队多服务台类型功能单队多服务台(如图)单队单服务台(如图)等候区等候区没有规划;通道太窄,人员流通不畅,一旦最前端收银台结帐完毕,后面的顾客很难挤过来,或者不能预见各个收银台的工作状况,及时调整队列单一,但是没有提供顾客在结帐前的准备的空间;输入区条形码扫描器合理有效的放置,解放收银员双手,提高工作效率;(如上图D区)条形码扫描器合理有效的放置,解放收银员双手,提高工作效率;由于台体太长,收银员活动受限,对于那如图示:图2-1 狭小的装袋区图2-2 没有整理区,顾客收拾物品很不方便图2-3 手持小票签字的顾客图2-4 只能边走边看小票的顾客图2-5 混乱拥挤的结帐人群小结:通过上述优缺点的分析,单队多服务台适合放在五件以下商品快速结帐通道。
模拟超市的收银系统一、系统分析与设计。
随着运算机的进展,运算机技术差不多融入到社会生活的各个角落,把人们从往常繁琐的手工操作中解放出来,从而使信息的治理大大简便起来。
超市日常有大量的数据需要进行处理,包括收银员收银时输入的消费者购买信息、治理员输入的入库商品信息、治理员输入的人员信息、日常销售额的统计等等。
面对如此大的信息量,就需要有相应的运算机治理系统来提高工作的效率和系统治理的安全性。
通过如此的系统,超市就能够由收银员方便的在收银柜台进行销售额的录入,治理员也能够方便地进行治理,从而减小手工操作的工作量,本设计确实是为了模拟超市的收银系统。
从需求分析的角度来看,那个超市治理系统的需求如下所示:该系统的功能要紧是模拟超市的收银的过程,因此不需要设计数据库,当进入系统,就会显示仓库里的所有物资,当治理员输入物资编号〔索引号〕时,就会提示你需要买的数量,输入完成就会提示你购买成功。
再确实是付款。
依照系统需求,那个版本的超市治理系统是一个简单的治理系统,三、要紧程序清单〔见附录〕//************************************************************************//*main.cpp 系统主文件//************************************************************************#include "counter.h"//创建一个商店CStore* PrepareStore(){//创建一个空商店CStore *pStore = new CStore();//为商店配货CGoods *pGoods = new CGoods(1, "西瓜", 4.50);pStore->AddGoods(pGoods, 1000);pGoods = new CGoods(2, "鸡蛋", 5.00);pStore->AddGoods(pGoods, 1000);pGoods = new CGoods(3, "牛肉", 12.00);pStore->AddGoods(pGoods, 1000);pGoods = new CGoods(4, "香蕉", 4.10);pStore->AddGoods(pGoods, 1000);pGoods = new CGoods(5, "空调", 3000.00);pStore->AddGoods(pGoods, 100);pGoods = new CGoods(6, "大米", 1.00);pStore->AddGoods(pGoods, 10000);pGoods = new CGoods(7, "葡萄", 5.00);pStore->AddGoods(pGoods, 1000);pGoods = new CGoods(8, "面包", 6.00);pStore->AddGoods(pGoods, 1000);pGoods = new CGoods(9, "火腿", 15.00);pStore->AddGoods(pGoods, 1000);return pStore;}void usage(){cout<<"\n\n";cout.width(35);cout.fill('*');cout<<right<<"USAGE";cout.width(35);cout<<left<<"*"<<endl;cout<<"*请您按照请示来购买商品,祝您消费愉快!\n";cout<<"*输入\"-1\",完成购买,去收银台\n";cout.width(35);cout.fill('*');cout<<right<<"USAGE";cout.width(35);cout<<left<<"*"<<endl;cout.fill(' ');cout<<"\n\n";}void main(){//预备超市储藏室、购物篮、收银台CStore *pStore = PrepareStore(); //给超市配货CStore *pBasket = new CStore();CCounter Counter(pBasket);double dCash = 0.0;cout<<"------------------------欢迎光临\"美特好\" 超市------------------------\n\n"<<endl;cout<<"*******************本超市共有以下商品,欢迎您的选购*******************"<<endl;//打印商店的现有商品pStore->Print();usage();// iIndex---用户欲购买商品的索引, iNum----用户欲购买商品的数目int iIndex = 0, iNum = 0;do {cout<<"请输入商品索引号:";//非法输入if ( !(cin>>iIndex) ) {cout<<"\n\n你键入了非法的索引号,程序立即退出\n\n";goto CELEAN;}//购买完毕,退出if (iIndex == -1) {break;}//猎取iIndex所对应的商品PSTOREELEMENT pSE = pStore->GetGoods( iIndex );//没有此类商品if (pSE == NULL) {cout<<"\n专门抱歉,本商店没有索引号为\""<<iIndex<<"\" 的商品\n\n";continue;}//购买数量cout<<"请输入要购买数量:";//非法输入if ( !(cin>>iNum) ) {cout<<"\n\n你键入了非法的购买数目,程序立即退出\n\n";goto CELEAN;}//商品查询int iStoreNum = pStore->QueryGoods( iIndex );if (iStoreNum <= 0) {cout<<"专门抱歉,你要购买的\""<<pSE->pGoods->GetName()<<"\"商品差不多售完,请下次再来购买!\n";}else{if ( iNum > iStoreNum ) {cout<<"专门抱歉,本商店目前仅有\""<<pSE->pGoods->GetName()<<"\""<<iStoreNum<<"件,临时先购买这么多吧\n";CGoods *pMyGoods = pSE->pGoods->Clone();pBasket->AddGoods( pMyGoods, iStoreNum ); //加入购物篮pSE->iNum = 0; //卖光了}else{cout<<"恭喜你,成功购买:\n";cout<<"商品: "<<pSE->pGoods->GetName()<<" 件数: "<<iNum<<"\n"<<endl;CGoods *pMyGoods = pSE->pGoods->Clone();pBasket->AddGoods( pMyGoods, iNum ); //加入购物篮pSE->iNum = iStoreNum - iNum;//超市剩余}}} while(true);if (pBasket->GetAllGoods()->size() == 0) {cout<<"\n\n嗨,什么都没买到,白来一趟;(\n\n";goto CELEAN;}else{cout<<"\n\n购买完毕,今天收成不小啊,购买了如下商品:\n\n";pBasket->Print();}cout<<"\n\n您好,您本次共计消费"<<Counter.Bill()<<"元\n";cout<<"请交钱:";cin>>dCash;while ( Counter.Count(dCash) < 0 ) {cout<< "还差:" << -Counter.Count(0) <<"元\n";cout<<"请交钱:";cin >> dCash;}cout<<"\n\n共收取您现金:"<<Counter.GetCash()<<"元\n";cout<<" 应交纳金额:"<<Counter.Bill()<<"元\n";cout<<" 应找零:"<<Counter.Count(0)<<"元\n\n";cout<<"**********************欢迎您再次光临本店**********************\n";CELEAN:delete pStore;delete pBasket;return;// counter.cpp: implementation of the supermarket class.////////////////////////////////////////////////////////////////////////#include "counter.h"#include <assert.h>//************************************************************************//*商品类的成员函数定义//************************************************************************CGoods::CGoods( int iIndex, string strName, double dUnitPrice ) {// 初始化商品m_iIndex = iIndex;m_strName = strName;m_dUnitPrice = dUnitPrice;}CGoods::~CGoods(){}//attributes and operationsint CGoods::GetIndex(void) const {return m_iIndex;}string CGoods::GetName(void) const{return m_strName;}double CGoods::GetUnitPrice(void) const {return m_dUnitPrice;}void CGoods::SetUnitPrice(double dUnitPrice){m_dUnitPrice = dUnitPrice;}CGoods *CGoods::Clone(){return new CGoods(m_iIndex, m_strName, m_dUnitPrice); }//************************************************************************//*商品类的成员函数定义终止//************************************************************************//************************************************************************//*储藏室类的成员函数定义//************************************************************************CStore::CStore(){}CStore::~CStore(){DeleteAllGoods();}//往储藏室种添加物资bool CStore::AddGoods(CGoods *pGoods, int iNum){assert( pGoods != NULL );int size = m_vStore.size();bool bIsExist = false;for(int i=0; i<size; i++){PSTOREELEMENT pSE = m_vStore[i];assert(pSE != NULL);//假如差不多有了同类商品在储藏室,那么增加此商品的数目if ( pSE->pGoods != NULL && pSE->pGoods->GetIndex() == pGoods->GetIndex() ){bIsExist = true;pSE->iNum += iNum ;break;}}//储藏室没有同类商品,直截了当增加此类商品if ( !bIsExist ){PSTOREELEMENT p = new STOREELEMENT;p->pGoods = pGoods;p->iNum = iNum;m_vStore.push_back( p );}return true;}//清空整个储藏室void CStore::DeleteAllGoods(){int size = m_vStore.size();for(int i=0; i<size; i++){PSTOREELEMENT pSE = m_vStore[i];assert(pSE != NULL);if ( pSE->pGoods != NULL ){delete pSE->pGoods; //删除商品pSE->pGoods = NULL;}delete pSE; //删除储藏室元素pSE = NULL;}}//删除名为strName的物资,iNum为删除数量int CStore::DeleteGoods(const string &strName, int iNum){int size = m_vStore.size();for(int i=0; i<size; i++){PSTOREELEMENT pSE = m_vStore[i];assert(pSE != NULL);if ( pSE->pGoods != NULL && pSE->pGoods->GetName() == strName ){if ( iNum <= -1 || pSE->iNum <= iNum){delete pSE->pGoods;pSE->iNum = 0;delete pSE; //删除储藏室元素pSE = NULL;return 0;}else{pSE->iNum -= iNum;return pSE->iNum;}}}return 0;}//删除索引号为iIndex的物资,iNum为删除数量int CStore::DeleteGoods(int iIndex, int iNum){int size = m_vStore.size();for(int i=0; i<size; i++){PSTOREELEMENT pSE = m_vStore[i];assert(pSE != NULL);if ( pSE->pGoods != NULL && pSE->pGoods->GetIndex() == iIndex ){ if ( iNum <= -1 || pSE->iNum <= iNum){delete pSE->pGoods;pSE->iNum = 0;delete pSE; //删除储藏室元素pSE = NULL;return 0;}else{pSE->iNum -= iNum;return pSE->iNum;}}}return 0;}//猎取物资清单vector<PSTOREELEMENT>* CStore::GetAllGoods(void){return &m_vStore;}//猎取某类物资PSTOREELEMENT CStore::GetGoods(int iIndex){int size = m_vStore.size();for(int i=0; i<size; i++){PSTOREELEMENT pSE = m_vStore[i];assert(pSE != NULL);if ( pSE->pGoods != NULL && pSE->pGoods->GetIndex() == iIndex ){ return pSE;}}return NULL;}//猎取某类物资PSTOREELEMENT CStore::GetGoods(const string &strName){int size = m_vStore.size();for(int i=0; i<size; i++){PSTOREELEMENT pSE = m_vStore[i];assert(pSE != NULL);if ( pSE->pGoods != NULL && pSE->pGoods->GetName() == strName ){ return pSE;}}return NULL;}//查询物资int CStore::QueryGoods(const string &strName){int size = m_vStore.size();for(int i=0; i<size; i++){PSTOREELEMENT pSE = m_vStore[i];assert(pSE != NULL);if ( pSE->pGoods != NULL && pSE->pGoods->GetName() == strName ){ return pSE->iNum;}}return 0;}//查询物资int CStore::QueryGoods(int iIndex){int size = m_vStore.size();for(int i=0; i<size; i++){PSTOREELEMENT pSE = m_vStore[i];assert(pSE != NULL);if ( pSE->pGoods != NULL && pSE->pGoods->GetIndex() == iIndex ){ return pSE->iNum;}}return 0;}//打印水单void CStore::Print(){string strTitle[4];strTitle[0] = "索引号";strTitle[1] = "商品名";strTitle[2] = "数量";strTitle[3] = "单价";for (int i=0; i<4; i++){cout.width(16);cout<<left<<strTitle[i];}cout<<"\n"<<endl;//猎取商品种类int size = m_vStore.size();for (i=0; i<size; i++){cout.width(16);cout<<left<<m_vStore[i]->pGoods->GetIndex();cout.width(16);cout<<m_vStore[i]->pGoods->GetName();cout.width(16);cout<<m_vStore[i]->iNum;cout.width(16);cout.precision(2);cout<<fixed<<m_vStore[i]->pGoods->GetUnitPrice()<<"\n";}}//************************************************************************//*储藏室类的成员函数定义终止//************************************************************************//************************************************************************//*收银台类的成员函数定义//************************************************************************CCounter::CCounter(CStore *pBasket){m_pBasket = pBasket;m_dCash = 0.0;}CCounter::~CCounter(){}//猎取帐单double CCounter::Bill(void){double dTotalPrice = 0.0;vector<PSTOREELEMENT> *pvSE = m_pBasket->GetAllGoods();//猎取商品种类int size = pvSE->size();for (int i=0; i<size; i++){PSTOREELEMENT pSE = (*pvSE)[i];dTotalPrice += pSE->pGoods->GetUnitPrice() * pSE->iNum ;}return dTotalPrice;}//收钱及找零double CCounter::Count(double dCash){m_dCash += dCash;double dTotal = Bill();return m_dCash - dTotal;}//收取的现金数double CCounter::GetCash(){return m_dCash;}//************************************************************************//*收银台类的成员函数定义终止//************************************************************************}四、运行结果五、试验体会在这次的设计过程中,我采纳的是VC++,不仅使我对课程有了进一步的强化,还使我的开发能力得到了提高。
智能收银机市场分析报告1.引言1.1 概述智能收银机是一种应用了先进技术的自动化收银设备,通过整合计算机、通信、识别、检测等多种技术手段,实现智能化管理和服务,广泛应用于零售、餐饮、娱乐等行业。
随着消费者需求的不断提升和科技的不断发展,智能收银机市场也呈现出不断增长的趋势。
本报告旨在深入分析智能收银机市场的现状、趋势和竞争格局,为相关企业和投资者提供市场洞察和决策支持。
首先,我们将对智能收银机市场的现状进行全面梳理,包括市场规模、渠道结构、消费者需求等方面的分析;其次,我们将对智能收银机市场趋势进行深入探讨,包括技术创新、产品升级、应用拓展等方面的预测;最后,我们将对智能收银机市场的竞争格局进行分析,包括主要企业竞争优势、市场份额分布等方面的评估。
通过本报告的研究分析,我们旨在为智能收银机产业的发展提供参考和指导,为相关企业的战略决策提供支持,促进智能收银机市场的健康发展和持续创新。
1.2 文章结构文章结构部分的内容:本文主要分为引言、正文和结论三个部分。
在引言部分,我们将概述智能收银机市场的概况,说明本文的结构以及目的,并对整个报告进行总结。
在正文部分,我们将分析智能收银机市场的现状、趋势以及竞争格局,为读者呈现市场的全貌。
最后,在结论部分,我们将对市场现状进行总结,展望未来的发展趋势,并给出建议和展望,帮助读者对智能收银机市场有一个全面的了解。
1.3 目的文章的目的是通过对智能收银机市场进行全面的分析,了解市场的现状、趋势和竞争格局。
通过对市场现状的总结和分析,可以为行业内企业提供市场定位和发展战略的参考,同时也可以为投资者和相关利益相关者提供决策依据。
此外,文章还将展望未来智能收银机市场的发展趋势,为行业内企业提供发展建议和展望。
通过本报告的撰写,旨在为智能收银机行业的发展和未来发展提供有益的指导和参考。
1.4 总结:本报告对智能收银机市场进行了全面的分析和调研,从市场现状、趋势分析到竞争格局,都进行了深入的探讨和总结。
超市管理信息系统分析与点评这是一个超市的管理信息系统,作为该信息系统开发公司的调查人员,我谈谈应该如何调查此系统,采用何种方法调查,调查哪些内容。
首先,我从以下几方面进行调查:1.开发背景2.系统需求分析3.新系统的逻辑方案设计4.系统总体结构设计5.系统分类编码设计6.数据结构和数据库设计7.输入输出设计8.模块功能与处理过程设计9.系统界面图详细调查内容关于超市管理信息系统分析与点评1.1概述1.1.1开发背景某某连锁超市地处北京,成立于二十世纪九十年代初期。
连锁店采用统一采购,统一核算,统一配送的低成本的经营方式。
超市发展至今已经拥有十几家连锁店,一家配送中心。
我们研究的对象是该连锁超市的分店,其规模属于中型超市。
它占地面积约六百多平方米,拥有管理人员及职员一百人左右。
主要提供日用百货、烟酒食品、各种肉类、蔬菜、水果等商品,品种超过上千种。
因规模的扩大,业务的扩张,必须引进先进的管理思想、方法和技术,以提高企业的管理水平,使该店实现在五年内发展成为一个大型综合超市的远期目标。
为此,该连锁店提出,近期内要运用信息技术,建立起包括人事管理系统、库存管理系统的管理信息系统,以简化人事管理,提高商品库存效率,增加公司年度利润。
1.1.2系统目标和开发的可行性1、系统目标本系统开发混合运用结构化系统开发方法与面向对象开发方法,结合两种开发方法各自的优势进行系统开发。
系统计划实现后,计算机系统代替原来繁琐的人工档案管理,能完成以下功能:(1)档案查询;(2)档案更新;(3)档案输出。
对原来的库存管理系统进行改进,使之能为公司提供强大的管理支持和查询服务。
具体完成以下功能:(1)库存输入,(2)库存修改;(3)库存查询。
2、系统开发可行性技术可行性:开发本系统要求开发人员能够熟练运用VB、VF等编程语言。
目前技术人员已经掌握这些编程语言。
因此,本次系统开发在技术上是可行的。
时间可行性:开发时间需要两个月左右。