📄 sell.cpp
字号:
// 销售登记。根据代号和简称查找文件。如果找到,用销售数修改库存量。
#include "begin.h"
void basic::sell(fstream f)
{ int choice ; bargain peijian ;
static double totalmoney;
char answer; double factmoney;
char key1[10]; char key2[15]; long num ;
f.seekp( 0, ios::end ) ;
long posEnd = f.tellp() ; // 记录文件末尾位置
cout << "********** 销售管理 **********\n" ;
while (1)
{ cout << "请选择操作:\n"
<< "1--销售登记 0--退出\n" ;
cin >> choice ;
switch ( choice )
{ case 1:
AAA:
{
f.seekp( 0, ios::beg ); // 从文件头开始检索
cout << "请输入代号和简称:\n?代号: " ; cin>>key1 ;// 输入代号和简称进行查找
cout <<"?简称:"; cin >>key2;
do // 按代号和简称查找,读数据赋给结构变量peijian
{ f.read((char *) & peijian, sizeof(struct bargain)) ;
} while (strcmp( peijian.id,key1) && strcmp(peijian.jiancheng,key2) && f.tellg() != posEnd ) ;
if (!strcmp(key1,peijian.id) && !strcmp(key2 ,peijian.jiancheng) ) // 找到记录
{cout <<setiosflags(ios::left)<<setw(10)
<<peijian.id<<setw(12)<<peijian.name<<setw(30)
<<peijian.jiancheng<<setw(10)<<peijian.type <<setw(3)
<<setprecision(2)<<resetiosflags(ios::left)
<<setiosflags(ios::fixed|ios::showpoint)<<peijian.account<<setw(11)
<<peijian.price<<endl;
BBB: cout << "销售数量:\n? " ; cin >> num ;
if ( num>=0 && peijian.account >=num )
{peijian.account -= num ; // 修改库存量
totalmoney+=peijian.price * num;
} //价钱累加
else { cout << "库存数量不足,请重新输入!\n" ; goto BBB; }
f.seekp( -long( sizeof( bargain ) ), ios::cur ); // 文件指针复位
f.write( (char *) & peijian , sizeof( bargain ) ) ; // 修改文件记录
cout << "现库存量:" << peijian.account << endl ;
if(peijian.account==0)cout<<"!!!该商品没有库存了,请进行进货登记!!!"<<endl;
cout << "是否继续销售商品?(Y或N)";
cin >>answer;
if(toupper( answer ) == 'Y')goto AAA;
else { if(totalmoney==0)return;
else{
cout<<"这些商品的总价钱是:"<<totalmoney<<endl;
cout<<"实收款(元):";
cin >>factmoney;
cout<<"应找还:"<<(factmoney-totalmoney)<<"元"<<endl;
}
}
}
else cout << "代号或简称输入错误或不存在该商品!\n" ;
f.close();
break ;
}
case 0 : return ;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -