| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3352 人关注过本帖
标题:[求助]商品货架管理!急
只看楼主 加入收藏
旷野乡人
Rank: 1
等 级:新手上路
威 望:1
帖 子:111
专家分:0
注 册:2006-12-18
收藏
 问题点数:0 回复次数:8 
[求助]商品货架管理!急
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
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-12-22
收藏
得分:0 

#include<iostream.h>
#include"string.h"
#include"stdio.h"
const int maxsize=100; //每种商品的最大上货量
const int k=10; //商品种类
#define elemtype char
typedef struct
{
int Month;
int Day;
int Year;
}DATE;
typedef struct
{
int num; //商品代号
DATE date;
} Node;

class seqstack
{
public:
Node stack[maxsize];
int top;

void inistack()
{
top=0;
}

void push(int x,int day,int month,int year)
{
if(top==maxsize)
cout<<"货架已满"<<endl;
else
{
top++;
stack[top].num=x;
stack[top].date.Day=day;
stack[top].date.Month=month;
stack[top].date.Year=year;

}
}

void pop()
{
if(top==0)
cout<<"货架已空"<<endl;
else
top--;
}


elemtype gettop()
{
if(top==0)
cout<<"货架已空"<<endl;
else
return top;
}


bool empty()
{
return top==0;
}
};


void main()
{
seqstack c[k+1]; //存放k种商品的数组,用c[0]来做中介货架
int Txq[k+1]; //第i种取货用的时间
int Txs[k+1]; //第i种上货用的时间
int Nx[k+1]; //第i种每天的销售数量
int N=0; //每天销售总量
int Tx[k+1]; //第i种每天上货的总时间
int T=0; //每天上货用的总时间
char yn='Y';
for(int i=1;i<=k;i++)
{
cout<<" ******************************"<<endl;
cout<<" 商品货架管理系统"<<endl;
cout<<" ******************************"<<endl;
Node store[20];
char year,month;
int count; //货架上第i种商品的数目
int x,d,m,y; //x为第i种商品的序号
cout<<"请输入货架上第"<<i<<"种货物的详细信息:"<<endl;
cout<<"(序号,生产日期(年、月、日如2006.2.13),现在货架上的存货数目,上货用时和取货用时)"<<endl;
cin>>x>>y>>year>>m>>month>>d>>count>>Txs[i]>>Txq[i];
Nx[i]=maxsize-count;
cout<<"货架上还需上"<<i<<"货物"<<Nx[i]<<"件"<<endl;
Tx[k]=Txs[i]*(maxsize+count)+2*Txq[i]*count;
cout<<"该货架满货需要用时"<<Tx[k]<<endl;
cout<<"是否要上货?(Y/N)"<<endl;
cin>>yn;
if(yn=='Y'||yn=='y')
{
int numbers,nian,yue,ri;
cout<<"请输入要上货物的数目及生产日期(年、月、日)"<<endl; //上的是同一日期生产的货物
cin>>numbers>>nian>>yue>>ri;
if(numbers>maxsize-count)
{
cout<<"要上的货物数目超出了货架的最大容量,请重新输入"<<endl;
cin>>numbers>>nian>>yue>>ri;
}
for(int j=1;j<=numbers;j++)
{
}

}
N+=Nx[i];
T+=Tx[i];
}
cout<<"每天销售总量为:"<<N<<endl;
cout<<"每天上货用的总时间为:"<<T<<endl;
}




未完……………………………………………………………………
…………………………………………………………………………

2006-12-22 10:42
万物自然
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-12-22
收藏
得分:0 
2006-12-22 10:49
旷野乡人
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
_RRR_
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-1-6
收藏
得分:0 
good
2007-01-10 23:01
小小R
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-6-29
收藏
得分:0 
借去了喔~
2007-06-29 15:14
zouren
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-7-11
收藏
得分:0 
2007-07-11 16:41
旷野乡人
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.013804 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved