1、加权平均法是指标综合的基本方法,具有两种形式,分别为加法规则与乘法规则。
2、存货的加权平均单位成本=(月初结存存货成本+本月购入存货成本)/(月初结存存货数量+本月购入存货数量)
加权平均法月末库存存货成本=月末库存存货数量×存货加权平均单位成本
本期发出存货的成本=本期发出存货的数量×存货加权平均单位成本
或
=期初存货成本+本期收入存货成本-期末存货成本
3、加权平均法,在市场预测里,就是在求平均数时,根据观察期各资料重要性的不同,分别给以不同的权数加以平均的方法。
#include<iostream>#include<cstring>
#include<fstream>
#include<stdlib.h>//system("cls")//清屏
#include<conio.h>//getche()
using namespace std
//全局变量
int i=0//已录入商品总个数
char ch//cin>>ch
int n//case(n)
char code[10]
char name[10]
char unit[10]
int amount
float unitprice
float total=0//总价
ofstream f1("./test.txt")
ofstream f2("./sell.txt")//构建输出流,没有文件就建立
class Goods
{
private:
char code[10]//代码
char name[10]//名称
char unit[10]//单位
int amount//总数
float unitprice//单价
public:
Goods()
Goods(char co[10],char na[10],char un[10],int am,float unpr)//构造函数
void f_write()// 录入
void f_change()//改变
void f_delete()//删除
void display()//显示全部商品信息
void s_buy()//买入
}
//构造函数
Goods::Goods(){}
Goods::Goods(char co[10],char na[10],char un[10],int am,float unpr)
{
strcpy(code,co)
strcpy(name,na)
strcpy(unit,un)
amount=am
unitprice=unpr
}
Goods *g[50]
//商品信息录入
void Goods::f_write()
{
cout<<"请输入第"<<i+1<<"件商品代码:"<<endl
cin>>code
cout<<"请输入第"<<i+1<<"件商品名称:"<<endl
cin>>name
cout<<"请输入第"<<i+1<<"件商品计量单位:"<<endl
cin>>unit
cout<<"请输入第"<<i+1<<"件商品总数:"<<endl
cin>>amount
cout<<"请输入第"<<i+1<<"件商品单价:"<<endl
cin>>unitprice
g[i]=new Goods(code,name,unit,amount,unitprice)
i++
cout<<"信息录入成功!(继续录入按y,返回上一层按n)"<<endl
cin>>ch
if(ch=='y')
{
f_write()
}
}
//改变商品信息
void Goods::f_change()
{
cout<<"请输入要改变的商品代码:"
cin>>code
for(int h=0h<ih++)
{
if(0 == strcmp(g[h]->code,code))
{
cout<<"商品信息如下:"<<endl
cout<<"代码 名称 单价 总数 单位"<<endl
cout<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<"\t"<<g[h]->unit<<endl
char newco,newna,newun
int newam
float newunpr
cout<<"你想要修改:1、代码;2、名称;3、单价;4、总数;5、单位。"<<endl
cin>>n
switch(n)
{
case 1:
cout<<"请输入修改后的商品代码:"
cin>>newco
g[h]->code[10]=newco
cout<<"修改成功!"<<endl
break
case 2:
cout<<"请输入修改后的商品名称:"
cin>>newna
g[h]->name[10]=newna
cout<<"修改成功!"<<endl
break
case 3:
cout<<"请输入商品单价:"
cin>>newunpr
g[h]->unitprice=newunpr
cout<<"修改成功!"<<endl
break
case 4:
cout<<"请输入修改后的商品总数:"
cin>>newam
g[h]->amount=newam
cout<<"修改成功!"<<endl
break
case 5:
cout<<"请输入修改后的商品单位:"
cin>>newun
g[h]->unit[10]=newun
cout<<"修改成功!"<<endl
break
}
break
}//if
}//for循环
cout<<"是否继续修改?(y/n)"<<endl
cin>>ch
if(ch=='y')
{
f_change()
}
}
//删除信息
void Goods::f_delete()
{
cout<<"请输入要删除的商品代码:"
cin>>code
for(int h=0h<ih++)
{
if(0 == strcmp(g[h]->code,code))
{
for(int k=hk<ik++)
{
g[k]=g[k+1]
i--
}
}
}
cout<<"删除成功!"<<endl
cout<<"是否继续删除?(y/n)"<<endl
cin>>ch
if(ch=='y')
{
f_delete()
}
}
//打印信息
void Goods::display()
{
system("cls")
cout<<""<<endl
cout<<"-----------全部商品信息如下-------------------"<<endl
cout<<""<<endl
cout<<"代码 名称 单价 总数 单位"<<endl
f1<<""<<endl
f1<<"---------------全部商品信息如下--------------"<<endl
f1<<""<<endl
f1<<"代码 名称 单价 总数 单位"<<endl
if(i==0)
{
cout<<"系统未曾录入任何商品信息,或记录被删除!"
}
for(int k=0k<ik++)
{
cout<<g[k]->code<<"\t"<<g[k]->name<<"\t"<<g[k]->unitprice
<<"\t"<<g[k]->amount<<"\t"<<g[k]->unit<<endl
f1<<g[k]->code<<"\t"<<g[k]->name<<"\t"<<g[k]->unitprice
<<"\t"<<g[k]->amount<<"\t"<<g[k]->unit<<endl
}
cout<<endl
}
//买入
void Goods::s_buy()
{
float price=0//单个商品价格
cout<<"请输入想要买的商品代码:"
cin>>code
for(int h=0h<ih++)
{
if(0 == strcmp(g[h]->code,code))
{
cout<<"请输入想要购买的商品数量:"
cin>>amount//当前要购买的数量
price=amount*g[h]->unitprice
g[h]->amount=g[h]->amount-amount
cout<<endl
cout<<"代码 名称 单价 数量 小计"<<endl
cout<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<g[h]->unit<<"\t"<<price<<endl
f2<<"代码 名称 单价 数量 小计"<<endl
f2<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<g[h]->unit<<"\t"<<price<<endl
total=total+price
break
}
}
cout<<"按1继续购买,按2结束。"<<endl
cin>>n
if(n==2)
{
cout<<endl
cout<<"购买结束,总计:"<<total<<"元!"<<endl
}
else
{
s_buy()
}
}
//类外函数
//第一部分 *** 作显示
void f_screen()
{
system("cls")
Goods g
cout<<"按相应键 *** 作:"<<endl
cout<<"0.录入信息1.更改信息2.删除信息3.返回上一层"<<endl
cin>>n
switch(n)
{
case 0:
g.f_write()
if(ch=='n'||ch=='N')
f_screen()
break
case 1:
g.f_change()
if(ch=='n'||ch=='N')
f_screen()
break
case 2:
g.f_delete()
if(ch=='n'||ch=='N')
f_screen()
break
}
}
//第二部分 *** 作显示
void s_screen()
{
Goods g
g.display()
cout<<endl
g.s_buy()
}
//初始屏幕显示
void screen()
{
system("cls")
cout<<""<<endl
cout<<"-----------------商品销售统计系统---------------"<<endl
cout<<""<<endl
f2<<""<<endl
f2<<"----------------商品销售统计系统--------------"<<endl
f2<<""<<endl
cout<<"更改商品信息请按1,进行销售统计请按-1。"<<endl
cin>>ch
if(ch=='1')
{
f_screen()
if(n==3)
screen()
}
else if(ch=='-1')
{
s_screen()
}
else
{
cout<<"输入错误,系统重新启动!"
screen()
}
}
int main()
{
screen()
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)