示例#1
0
文件: 220.C 项目: 13436120/Cgames
void report2()
{

int sher;
      clrscr();
      bbox();
      textcolor(WHITE);
      gotoxy(21,3);
      printf("\xDB\xDB\xDB\xDB\xB2  REPORT OF SALES / PURCHASE  \xB2\xDB\xDB\xDB\xDB");
      gotoxy(5,5);
      printf("\tTHIS SECTION IS VIEWING SALES, PURCHASE and PROFIT REPORTS ");
      gotoxy(10,7);
      printf("  *********  ENTER THE OPTION WHICH SUITS YOU. **********\n");
      gotoxy(12,10);
      printf("\xDB\xDB\xB2  1.SALES.");
      gotoxy(12,12);
      printf("\xDB\xDB\xB2  2.PURCHASE.");
      gotoxy(12,14);
      printf("\xDB\xDB\xB2  3.PROFIT.");
      gotoxy(14,17);
      printf("\xDB\xDB\xB2  OPTION:");
      sher=toupper(getch());


  switch(sher)
  {
      case '1':
      report();
      break;

      case '2':
      pur();
      break;

      case '3':
      report3();
      break;

      default:
	gotoxy(9,20);
	textcolor(RED);
	cprintf("\a\xDB\xB2  WRONG ENTRY : PRESS ENTER TO GO TO MAIN MENU....");
	getche();

    }

 }
示例#2
0
int
main(int argc, char **argv)
{
   IloEnv env;
   try {
      IloInt  i, j;

      IloNum      rollWidth;
      IloNumArray amount(env);
      IloNumArray size(env);

      if ( argc > 1 )
         readData(argv[1], rollWidth, size, amount);
      else
         readData("../../../examples/data/cutstock.dat",
                  rollWidth, size, amount);

      /// CUTTING-OPTIMIZATION PROBLEM ///

      IloModel cutOpt (env);

      IloObjective   RollsUsed = IloAdd(cutOpt, IloMinimize(env));
      IloRangeArray  Fill = IloAdd(cutOpt,
                                   IloRangeArray(env, amount, IloInfinity));
      IloNumVarArray Cut(env);

      IloInt nWdth = size.getSize();
      for (j = 0; j < nWdth; j++) {
         Cut.add(IloNumVar(RollsUsed(1) + Fill[j](int(rollWidth / size[j]))));
      }
      
      IloCplex cutSolver(cutOpt);

      /// PATTERN-GENERATION PROBLEM ///

      IloModel patGen (env);

      IloObjective ReducedCost = IloAdd(patGen, IloMinimize(env, 1));
      IloNumVarArray Use(env, nWdth, 0.0, IloInfinity, ILOINT);
      patGen.add(IloScalProd(size, Use) <= rollWidth);

      IloCplex patSolver(patGen);

      /// COLUMN-GENERATION PROCEDURE ///

      IloNumArray price(env, nWdth);
      IloNumArray newPatt(env, nWdth);

      /// COLUMN-GENERATION PROCEDURE ///

      for (;;) {
         /// OPTIMIZE OVER CURRENT PATTERNS ///
       
         cutSolver.solve();
         report1 (cutSolver, Cut, Fill);
       
         /// FIND AND ADD A NEW PATTERN ///
       
         for (i = 0; i < nWdth; i++) {
           price[i] = -cutSolver.getDual(Fill[i]);
         }
         ReducedCost.setLinearCoefs(Use, price);
       
         patSolver.solve();
         report2 (patSolver, Use, ReducedCost);
       
         if (patSolver.getValue(ReducedCost) > -RC_EPS) break;
       
         patSolver.getValues(newPatt, Use);
         Cut.add( IloNumVar(RollsUsed(1) + Fill(newPatt)) );
      }

      cutOpt.add(IloConversion(env, Cut, ILOINT));

      cutSolver.solve();
      cout << "Solution status: " << cutSolver.getStatus() << endl;
      report3 (cutSolver, Cut);
   }
   catch (IloException& ex) {
      cerr << "Error: " << ex << endl;
   }
   catch (...) {
      cerr << "Error" << endl;
   }

   env.end();

   return 0;
}