Exemplo n.º 1
0
// print data
void printdat(node *r){
  int i,c;
  node *p = r;
  num = countList(r);
  printf("\t\t Data :\n");
  if(num < 11 )
    for (i = 0; i < num; i++) {
      printf("%-3d %-40s | %-3d gb | %-3.1f '' |%-10d VND\n",i+1,p->element.model,p->element.size,p->element.screen,p->element.price);
      p = p ->next;
    } else {
    int cc,z = 0 ;

    for(;;){

      int k = PAGE + z*PAGE;
      k = (k < num)?k:num;
      printf("\t\t Page %d\n",z+1);
      for (i = z*PAGE; i < k; i++) {
        if(p == NULL) break;
        printf("%-3d %-40s | %-3d gb | %-3.1f '' |%-10d VND\n",i+1,p->element.model,p->element.size,p->element.screen,p->element.price);
        p = p ->next;

      }
      if(PAGE > num) return;
      if(z == 0) {if(navi(1,0)== 1) z++;else return ;}
      else if(z*PAGE + PAGE > num) {
        if(navi(0,1)==1) {
          z--;
          int j;
          for(j = 0 ; j  < PAGE ; j++) p = pevNode(r,p);
          for(j = 0 ; j  < PAGE ; j++) p = pevNode(r,p);
        }
        else return;
      }
      else {
        if((c=navi(1,1)) ==1 ) {
          z--;
          int j;
          for(j = 0 ; j  < PAGE ; j++) p = pevNode(r,p);
          for(j = 0 ; j  < PAGE ; j++) p = pevNode(r,p);
        }
        else if(c ==2) z++;
        else  return ;
      }
    }
  }
}
Exemplo n.º 2
0
//__________________________________________________________________________________________________
void TestTrackerHierarchy::dumpAlignments(const edm::EventSetup& setup,
					  AlignableTracker *aliTracker) const
{
  edm::ESHandle<Alignments> alignments;
  setup.get<TrackerAlignmentRcd>().get(alignments);
  if (alignments->empty()) {
    edm::LogWarning("TrackerAlignment") << "@SUB=dumpAlignments"
					<< "No TrackerAlignmentRcd.";
  } else {
    AlignableNavigator navi(aliTracker);
    edm::LogInfo("TrackerAlignment") << "@SUB=dumpAlignments"
				     << "Start dumping alignments.";
    unsigned int nProblems = 0;
    for (std::vector<AlignTransform>::const_iterator iAlign = alignments->m_align.begin(),
	   iEnd = alignments->m_align.end(); iAlign != iEnd; ++iAlign) {
      const align::ID id = (*iAlign).rawId();
      const AlignTransform::Translation pos((*iAlign).translation());
      edm::LogVerbatim("DumpAlignable") << (*iAlign).rawId() << "  |  " << pos;

      AlignableDetOrUnitPtr aliPtr = navi.alignableFromDetId(id);
      if (!aliPtr.isNull()) {
	const Alignable::PositionType &aliPos = aliPtr->globalPosition();
	double dR = aliPos.perp() - pos.perp();
	double dRphi = (aliPos.phi() - pos.phi()) * pos.perp();
	double dZ = aliPos.z() - pos.z();
	if (dR*dR + dRphi*dRphi + dZ*dZ) { 
	  ++nProblems;
	  edm::LogWarning("Alignment") 
	    << "@SUB=analyze" << "Delta r,rphi,z: " << dR << " " << dRphi << " " << dZ
	    << "\nPos r,phi,z: " << pos.perp() << " " << pos.phi() << " " << pos.z();
	}
      } else {
	++nProblems;
	edm::LogWarning("Alignment") << "@SUB=dumpAlignments" << "No Alignable for Id " << id;
      }
    } // ending loop

    if (nProblems) {
      edm::LogWarning("TrackerAlignment") 
	<< "@SUB=dumpAlignments" << "Ending: " << nProblems << " Alignments with problems.";
    } else {
      edm::LogInfo("TrackerAlignment") << "@SUB=dumpAlignments" << "Ending without problem.";
    }
  }
}
Exemplo n.º 3
0
void search(node *r,int mode){
  int num = countList(r);
  if(root == NULL) {
    printf("\t\tList hasn't create !!\n");
    return;
  }
  if ( mode == 1){ // search model
    int i,c = 0;
    node *p = root;
    char s[100];
    printf("\t\tSearch by model :");scanf("%[^\n]",s);mfflush();


    for (i = 0; i < num; i++) {
      if(!strcmp(s,p->element.model)) c++;
    }
    if(c != 0){
      p = root;
      c = 0;
      printf("\t\tSearch result : \n");
      for (i = 0; i < num; i++) {
        if(!strcmp(s,p->element.model)) printf("%-3d %-40s | %-3d gb | %-3.1f '' |%-10d VND\n",c+1,p->element.model,p->element.size,p->element.screen,p->element.price);
        p = p ->next;
      }
    } else {
      printf("\t\tNot found !!\n");
    }
  } else {
    int i,c = 0,z = 0,sum = 0;
    long d;
    printf("\t\tSearch product slow than price :");scanf("%ld",&d);mfflush();

    node *p = root;

    for (i = 0; i < num; i++) {
      if(p->element.price < d && p->element.price != -1) {
        c++;
      }
      p = p ->next;
    }
    if(c != 0 ){
      printf("\t\tSearch result : \n");
      p = root;
      sum = c;
      i = 0;


      for(;;){
        c = z*PAGE;

        int k = PAGE + z*PAGE;
        k = (k < sum)?k:sum;
        printf("\t\t Page %d\n",z+1);
        for (;c < k;) {
          if(p == NULL) break;
          if(p->element.price < d && p->element.price != -1) {
            printf("%-3d %-40s | %-3d gb | %-3.1f '' |%-10d VND\n",c+1,p->element.model,p->element.size,p->element.screen,p->element.price);
            c++;
          }
          p = p ->next;
        }

        if(PAGE > sum ) return ;
        if(z == 0) {
          if(navi(1,0)== 1) z++;
          else return ;
        } else if(z*PAGE + PAGE > sum) {
          if(navi(0,1)==1) {
            z--;
            int j;
            for(j = 0 ; j  < PAGE ; j++) p = pevNode(root,p);
            for(j = 0 ; j  < PAGE ; j++) p = pevNode(root,p);
          } else return;
        } else {
          if((c=navi(1,1)) ==1 ) {
            z--;
            int j;
            for(j = 0 ; j  < PAGE ; j++) p = pevNode(root,p);
            for(j = 0 ; j  < PAGE ; j++) p = pevNode(root,p);
          }
          else if(c ==2) z++;
          else  return ;
        }
      }
    } else {
      printf("\t\tNot Found !! \n");
    }
  }
}