| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3352 人关注过本帖
标题:[求助]商品货架管理!急
取消只看楼主 加入收藏
旷野乡人
Rank: 1
等 级:新手上路
威 望:1
帖 子:111
专家分:0
注 册:2006-12-18
收藏
 问题点数:0 回复次数:3 
[求助]商品货架管理!急
1、问题描述
一超市货架以栈的方式摆放商品,生产日期越靠近栈底;出货时从栈顶取货,一天营业结束,如果货架不满,则需上货。如果直接将商品摆放到货架上,则会使生产日期越近的商品越靠近栈顶。这样就需要倒货架,仍使生产日期越近的越靠近栈底。
假设该超市由专人根据电脑销售数据随时进行上货,某种商品每件次“取货”平均时间为TX1,每件次“上货” 平均时间为TX2,该商品每天销售件数为NX(每天销售总件数据为N,K为商品种类数,N=N1+~+NK),该员工该商品上货工作时间为TX(每天工作总时间为T,T=T1+~+TK),
2、要求
设计一个算法,每一次上货后始终保持生产日期越近的商品越靠近栈底。求货架上剩余货物M、每天销售件数N、员工每天上货工作时间T,三者之间有何关系及T的最小值。



搜索更多相关主题的帖子: 商品 货架 超市 员工 
2006-12-20 10:05
旷野乡人
Rank: 1
等 级:新手上路
威 望:1
帖 子:111
专家分:0
注 册:2006-12-18
收藏
得分:0 

课程设计已经结束,下边是一些代码,还存在很多问题希望大家指正


#include<iostream.h>
#include<string.h>
#include<fstream.h>
const int N=10; // 每个货架可放商品的数目
const int K=5; // 货架数目

class xinxi
{
public:
char pinzhong; //商品名称
int shouchu;
xinxi * getmessage();
xinxi *next;
xinxi()
{
pinzhong='\0';
shouchu=0;
}
~xinxi()
{
}
};
class times
{
public:
int totaltime; //工作总时间
int pjget,pjput; //放货与取货时间
times()
{
totaltime=0;
pjget=0;
pjput=0;

}
~times(){}
};
class link:public times
{
public:
long stack[N]; //虚拟货架
char pinzhong;
int counter; //记录该商品的销售量
link *next;
link()
{
counter=0;
pinzhong='\0';
for(int t=0;t<N;t++)
stack[t]=0;
}
~link()
{
}
link *inilink();
};

link *hlink;
int M=0;
link *link::inilink() //初始化货架
{
link *q,*s;
int i=1;
q=hlink=new link;
cout<<"总共有"<<K<<"个货架"<<endl;
while(i<=K)
{
s=new link;
s->next=NULL;
cout<<"输入第"<<i<<"个货架的商品名称代号(为一个字符) :";
cin>>s->pinzhong;
cout<<"该商品平均取货时间:";
cin>>s->pjget;
cout<<"该商品平均上货时间:";
cin>>s->pjput;
for(int j=0;j<N;j++)
{
cout<<"输入第"<<j+1<<"件货物的日期,格式如“20051020”表示2005年10月20日";
cin>>s->stack[j];
}

q->next=s;
q=s;
i++;
}
return hlink;
}
xinxi *xinxi::getmessage() //获取销售信息串
{
xinxi *p,*a,*q;
char ch;
int count;
q=p=new xinxi;
cout<<"请输入商品的销售情况,如果结束输入,则在商品名称处输入 “ # ”回车既可"<<endl;
cout<<"商品名称:";
cin>>ch;
while(ch!='#')
{
link *s=hlink->next;
a=new xinxi;
a->next=NULL;
a->pinzhong=ch;
cout<<"售出数量:";
cin>>count;
M+=count;
while(s!=NULL)
{
if((a->pinzhong)==(s->pinzhong)) //计算出现在信息串中的每种商品的销售数量
{
s->counter+=count;
break;
}
s=s->next;
}
a->shouchu=count;
q->next=a;
q=a;
cout<<endl;
cout<<"商品名称:";
cin>>ch;

}
return p;
}

void shanghuo(xinxi *a) //上货操作
{
int i,j=0;
int get=0;
link *p;
xinxi *q;
q=a->next;
p=hlink->next;
while(q!=NULL)
{

while(p!=NULL)
{

if((q->pinzhong==p->pinzhong)) //扫描信息串中与货架中的商品名称相同时进行上货取货操作
{
long tempstack[N];
int x=q->shouchu;
for(i=0;i<N-x;i++)
{
tempstack[i]=p->stack[i];
get++;
}
cout<<"请输入上货的货物的生产日期:"<<endl;
for(;i<N;i++)
{
cout<<"请输入商品"<<q->pinzhong<<"上货的第"<<i+1<<"件的生产日期"<<endl;
cin>>tempstack[i];
}
for(i=0;i<N;i++) //日期由大到小排列
for(int j=i+1;j<N;j++)
{
if(tempstack[i]<tempstack[j])
{
long temp;
temp=tempstack[i];
tempstack[i]=tempstack[j];
tempstack[j]=temp;
}
}
for(i=0;i<N;i++)
{
p->stack[i]=tempstack[N-i-1];
cout<<"第"<<i+1<<"件商品的生产日期是: "<<p->stack[i]<<endl;
}

p->totaltime=p->pjget*get+p->pjput*N; //计算完成该次上货与取货所花去的总时间
get=0;
break;
}
else
p=p->next;
}
p=hlink->next;
q=q->next;
}

}


void main()
{
xinxi *xx,*a;
link *p,*q,*hlinks;
int totime=0,totaltime=0;
char get;
cout<<"假设总共有放5种不同商品的货架,且每种货架都可容纳10件商品,商品存放位子编号自上到下依次增大!";
hlinks=p->inilink();
B: a=xx->getmessage();
shanghuo(a);
q=hlinks->next;
while(q!=NULL)
{
totime+=q->totaltime;
q=q->next;
}
cout<<"是否停止今天的营业,并且进行统计,y/n?"<<endl;
cin>>get;
if((get=='n')||(get=='N'))
goto B;
else
{
cout<<"员工工作总花费的时间是:"<<totime<<" 销售商品总量是:"<<M<<endl;
link *s=hlinks->next;
while(s!=NULL)
{
cout<<"商品"<<s->pinzhong<<" 销售的总量为"<<s->counter<<endl;
s=s->next;

}
}
cout<<"今天所有商品的销售总量为:"<<M<<endl;

}

2007-01-08 14:36
旷野乡人
Rank: 1
等 级:新手上路
威 望:1
帖 子:111
专家分:0
注 册:2006-12-18
收藏
得分:0 

呵呵,这太菜了,不值得一提,还请各位高手多指点

2007-08-17 19:00
旷野乡人
Rank: 1
等 级:新手上路
威 望:1
帖 子:111
专家分:0
注 册:2006-12-18
收藏
得分:0 
其实这段代码是一个女生叫我帮写的,呵呵,其实乱写的!!!

[此贴子已经被作者于2007-8-24 8:21:17编辑过]


2007-08-17 19:02
快速回复:[求助]商品货架管理!急
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033311 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved