⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buy.cpp

📁 摩托车销售管理系统 功能: 1--进货管理
💻 CPP
字号:
//buy.cpp    
// 进货管理。 追加记录或修改记录。如果是新产品,在文件末尾追加一条记录,如果是 
// 旧产品,则增加库存数
#include "begin.h"

void basic::buy( fstream f ) 
{ int choice ;    bargain peijian ;     char key1[a];  char key3[b];
char key2[c] ;    long num ;
const char *s="end";	   
f.seekp( 0, ios::end ) ;		// 读指针移到文件末尾
  long posEnd = f.tellp() ;		// 记录文件尾位置
  cout << "********** 进货管理 **********\n" ;
  while (1)
  { cout <<"请选择操作:\n "
         <<"1--增加新产品      2--旧产品      0--退出 \n?" ;
    cin >> choice ;
    switch ( choice )
	{ case 1:	// 追加新记录
        { cout << "请依次输入产品'代号,名称,简称,类型,数量,原价,售价':\n" ;     
AAA:
		  cout << "?代号(以end结束输入):";
		  cin>>key1;

		  while(strcmp(key1,s)!=0){
		  cout << "?名称:"; 
		  cin>>key3;
            f.seekg( 0, ios::beg );   // 读指针移到文件开头  
            do  { f.read((char *) & peijian, sizeof(bargain)) ; 
	     }  while ((strcmp( peijian.id,key1) || strcmp(peijian.name,key3) )&& f.tellg() != posEnd ) ;
          if( !strcmp(key1,peijian.id) && !strcmp(key3 ,peijian.name))
		  {cout<<"该纪录已经存在,请重新输入!\n";goto AAA;}
		  else {strcpy(peijian.id,key1);
		        strcpy(peijian.name,key3);}

		  cout << "?简称:";
          cin >>peijian.jiancheng;

		  cout << "?类型:";           
          cin >>peijian.type;
		  
		  cout << "?数量:";          
		  cin >>peijian.account  ;
		  cout << "?原价:";           
		  cin >>peijian.buyprice ;
		  cout << "?价格:"; 
          cin >>peijian.price ;
		  
		  f.seekp( 0, ios::end ) ;		// 读指针移到文件末尾
		  f.write( (char *) & peijian , sizeof(struct bargain) ) ;	// 写入文件

		  cout << "请依次输入产品'代号 , 名称 ,简称,类型 ,数量,价格':\n";     
		  cout << "?代号(以end结束输入):";
		  cin>>key1;
		  }
		  
		  break ;
       };
case 2:	// 修改记录
   {  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)
			  <<"代号"<<setw(12)<<"名称"<<setw(30)
			  <<"简称"<<setw(10)<<"类型"<<setw(10)<<"数量"
			  <<setw(10)<<"原价"<<setw(10)<<"售价"<<endl 
			  <<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.buyprice <<setw(11)<<peijian.price<<endl;
              cout << "入库数量:\n? " ;        cin >> num;
              if ( num>0 ) peijian.account += num ;		// 修改库存量
	       else  { cout << "数量输入错误\n" ;    continue;  }
              f.seekp( -long( sizeof(struct bargain) ), ios::cur );	// 指针复位
              f.write( (char *) & peijian, sizeof(struct bargain ) );	// 写入文件
              cout << "现库存量:\t\t" << peijian.account << endl ;
	  }
        else   cout << "代号或简称错误或不存在该产品!\n" ;     break ;
     }
  case 0 :return;
}
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -