#include
#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
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
else
top--;
}
elemtype gettop()
{
if(top==0)
cout
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
{
cout
cout
cout
Node store[20];
char year,month;
int count; //货架上第i 种商品的数目
int x,d,m,y; //x为第i 种商品的序号
cout
cout>x>>y>>year>>m>>month>>d>>count>>Txs[i]>>Txq[i];
Nx[i]=maxsize-count;
cout
Tx[k]=Txs[i]*(maxsize+count)+2*Txq[i]*count;
cout
cout
cin>>yn;
if(yn=='Y'||yn=='y ')
{
int numbers,nian,yue,ri;
cout
cin>>numbers>>nian>>yue>>ri;
if(numbers>maxsize-count)
{
cout
cin>>numbers>>nian>>yue>>ri;
}
for(int j=1;j
{
}
}
N+=Nx[i];
T+=Tx[i];
}
cout
cout
}
课程设计已经结束,下边是一些代码,还存在很多问题希望大家指正
#include
#include
#include
const int N=10; // 每个货架可放商品的数目
const int K=5; // 货架数目
class xinxi
{
public:
char pinzhong; //商品名称
int shouchu;
xinxi * getmessage();
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
stack[t]=0;
}
~link()
{
}
link *inilink();
};
int M=0;
link *link::inilink() //初始化货架
{
link *q,*s;
int i=1;
q=hlink=new link;
cout
while(i
{
s=new link;
s->next=NULL;
cout
cin>>s->pinzhong;
cout
cin>>s->pjget;
cout
cin>>s->pjput;
for(int j=0;j
{
cout
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
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
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
{
tempstack[i]=p->stack[i];
get++;
}
cout
for(;i
{
coutpinzhong
cin>>tempstack[i];
}
for(i=0;i
for(int j=i+1;j
{
if(tempstack[i]
{
long temp;
temp=tempstack[i];
tempstack[i]=tempstack[j];
tempstack[j]=temp;
}
}
for(i=0;i
{
p->stack[i]=tempstack[N-i-1];
coutstack[i]
}
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
hlinks=p->inilink();
B: a=xx->getmessage();
shanghuo(a);
q=hlinks->next;
while(q!=NULL)
{
totime+=q->totaltime;
q=q->next;
}
cout
cin>>get;
if((get=='n')||(get=='N'))
goto B;
else
{
cout
link *s=hlinks->next;
while(s!=NULL)
{
coutpinzhongcounter
s=s->next;
}
}
cout
}
#include
#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
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
else
top--;
}
elemtype gettop()
{
if(top==0)
cout
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
{
cout
cout
cout
Node store[20];
char year,month;
int count; //货架上第i 种商品的数目
int x,d,m,y; //x为第i 种商品的序号
cout
cout>x>>y>>year>>m>>month>>d>>count>>Txs[i]>>Txq[i];
Nx[i]=maxsize-count;
cout
Tx[k]=Txs[i]*(maxsize+count)+2*Txq[i]*count;
cout
cout
cin>>yn;
if(yn=='Y'||yn=='y ')
{
int numbers,nian,yue,ri;
cout
cin>>numbers>>nian>>yue>>ri;
if(numbers>maxsize-count)
{
cout
cin>>numbers>>nian>>yue>>ri;
}
for(int j=1;j
{
}
}
N+=Nx[i];
T+=Tx[i];
}
cout
cout
}
课程设计已经结束,下边是一些代码,还存在很多问题希望大家指正
#include
#include
#include
const int N=10; // 每个货架可放商品的数目
const int K=5; // 货架数目
class xinxi
{
public:
char pinzhong; //商品名称
int shouchu;
xinxi * getmessage();
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
stack[t]=0;
}
~link()
{
}
link *inilink();
};
int M=0;
link *link::inilink() //初始化货架
{
link *q,*s;
int i=1;
q=hlink=new link;
cout
while(i
{
s=new link;
s->next=NULL;
cout
cin>>s->pinzhong;
cout
cin>>s->pjget;
cout
cin>>s->pjput;
for(int j=0;j
{
cout
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
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
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
{
tempstack[i]=p->stack[i];
get++;
}
cout
for(;i
{
coutpinzhong
cin>>tempstack[i];
}
for(i=0;i
for(int j=i+1;j
{
if(tempstack[i]
{
long temp;
temp=tempstack[i];
tempstack[i]=tempstack[j];
tempstack[j]=temp;
}
}
for(i=0;i
{
p->stack[i]=tempstack[N-i-1];
coutstack[i]
}
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
hlinks=p->inilink();
B: a=xx->getmessage();
shanghuo(a);
q=hlinks->next;
while(q!=NULL)
{
totime+=q->totaltime;
q=q->next;
}
cout
cin>>get;
if((get=='n')||(get=='N'))
goto B;
else
{
cout
link *s=hlinks->next;
while(s!=NULL)
{
coutpinzhongcounter
s=s->next;
}
}
cout
}