图上的表格就是要读取的数据,程序如下,主要是我不太清楚数据文件格式是什么,程序应该没错
#include
#include
#include"stdio.h"
#include
#include
using namespace std;
#include"time.h"
#include"math.h"
float demand[101],tlead[101],qua,ord;
float maxt,CLOCK;
float teout,test,iest,est,arr,costo,costs;
void ss1();
void ss2();
void main()
{float tcosts,tcost,ax,tcosto;
srand(time(NULL));
cout<<"输入!\n";
cout<<"初始库存是:";cin>>iest;
cout<<"单位保管费是:";cin>>costs;
cout<<"缺料损失费是:";
cin>>costo;
LOOP:cout<<"订货量是:";cin>>qua;
if(qua>0){cout<<"临界库存量是:";cin>>ord;
cout<<"最大仿真时间是:";cin>>maxt;est=iest;
arr=999999;
teout=0.00;
test=0.00;
cout<<"订货量是:"< cout cout cout cout cout getchar();
cout cout for(CLOCK=1;CLOCK {ss2();}
tcosto=costo*teout;tcosts=costs*test;tcost=tcosto+tcosts;
cout cout cout ax=tcost/maxt;
cout goto LOOP;}}
void ss1()
{ FILE*fp;
int i,is,ie,id;
fp=fopen("demand.txt","r");
while(!feof(fp))
{fscanf(fp,"%d%d%d",&is,&ie,&id);
cout getchar();
for(i=is;i {demand[i]=id;}}
fclose(fp);
fp=fopen("days.txt","r");
while(!feof(fp))
{fscanf(fp,"%d%d%d",&is,&ie,&id);
cout getchar();
for(i=is;i {tlead[i]=id;}}
fclose(fp);
return;}
void ss2()
{int nr;
float bst,bdem,eout,xi;
if(CLOCK>=arr)
{bst=est+qua;
arr=999999;}
else
bst=est;
nr=rand()%100;
nr=nr+1;
bdem=demand[nr];
if(bst>bdem)
{eout=0.00;
est=bst-bdem;}
else
{eout=bdem-bst;
est=0.00;}
teout=teout+eout;
test=test+est;
float p;
p=0.00;
if(est<=ord)
{if(arr>=999999)
{nr=rand()%100;
nr=nr+1;
p=tlead[nr];
arr=p+CLOCK;}}
if(CLOCK<=20)
{xi=costo*eout+costs*est;
cout<<setw(8)<<CLOCK
<<setw(8)<<bst<<setw(8)<<bdem;
cout<<setw(8)<<est<<setw(8)<<eout<<setw(8)<<p<<setw(10)<<arr<<setw(10)<<xi<<endl;}return;}
楼主fopen打开文件失败?(检查文件名,当前目录一般是工程目录,而不是EXE所在目录,写上完整路径试试)
还是说能打开的,只是代码有问题(建议单步调试)
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
帮楼主整理了下格式:
#include<iostream>
#include<cmath>
# include"stdlib.h"
#include"stdio.h"
#include<iostream>
#include<iomanip>
using namespace std;
#include"time.h"
#include"math.h"
float demand[101],tlead[101],qua,ord;
float maxt,CLOCK;
float teout,test,iest,est,arr,costo,costs;
void ss1();
void ss2();
void main()
{
float tcosts,tcost,ax,tcosto;
srand(time(NULL));
cout<<"输入!\n";
cout<<"初始库存是:";cin>>iest;
cout<<"单位保管费是:";cin>>costs;
cout<<"缺料损失费是:";
cin>>costo;
LOOP:cout<<"订货量是:";
cin>>qua;
if(qua>0){
cout<<"临界库存量是:";
cin>>ord;
cout<<"最大仿真时间是:";cin>>maxt;est=iest;
arr=999999;
teout=0.00;
test=0.00;
cout<<"订货量是:"<<qua<<endl;
cout<<"临界库存量是:"<<ord<<endl;
cout<<"最大仿真时间是:"<<maxt<<endl;
cout<<"初始库存是:"<<est<<endl;
cout<<"缺料损失费是:"<<costo<<endl;
cout<<"单位保管费是:"<<costs<<endl;
getchar();
cout<<" 时钟 可供数 需求库存";
cout<<" 缺料数 到货天数 到货日期 每日费用"<<endl;
for(CLOCK=1;CLOCK<=maxt;CLOCK++)
{
ss2();
}
tcosto=costo*teout;tcosts=costs*test;tcost=tcosto+tcosts;
cout<<"总缺货费是:"<<endl;
cout<<"总保管费是:"<<endl;
cout<<"总费用是:"<<tcost<<endl;
ax=tcost/maxt;
cout<<"日平均费用是:"<<ax<<endl;
goto LOOP;}}
void ss1()
{
FILE*fp;
int i,is,ie,id;
fp=fopen("demand.txt","r");
while(!feof(fp))
{
fscanf(fp,"%d%d%d",&is,&ie,&id);
cout<<is<<""<<ie<<""<<id<<endl;
getchar();
for(i=is;i<=ie;i++)
{
demand[i]=id;}}
fclose(fp);
fp=fopen("days.txt","r");
while(!feof(fp))
{
fscanf(fp,"%d%d%d",&is,&ie,&id);
cout<<is<<""<<ie<<""<<id<<endl;
getchar();
for(i=is;i<=ie;i++)
{
tlead[i]=id;}}
fclose(fp);
return;
}
void ss2()
{
int nr;
float bst,bdem,eout,xi;
if(CLOCK>=arr)
{
bst=est+qua;
arr=999999;}
else
bst=est;
nr=rand()%100;
nr=nr+1;
bdem=demand[nr];
if(bst>bdem)
{
eout=0.00;
est=bst-bdem;}
else
{
eout=bdem-bst;
est=0.00;}
teout=teout+eout;
test=test+est;
float p;
p=0.00;
if(est<=ord)
{if(arr>=999999)
{nr=rand()%100;
nr=nr+1;
p=tlead[nr];
arr=p+CLOCK;}}
if(CLOCK<=20)
{
xi=costo*eout+costs*est;
cout<<setw(8)<<CLOCK
<<setw(8)<<bst<<setw(8)<<bdem;
cout<<setw(8)<<est<<setw(8)<<eout<<setw(8)<<p<<setw(10)<<arr<<setw(10)<<xi<<endl;
}
return;
}