// 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 ; } } } }
//__________________________________________________________________________________________________ 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."; } } }
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"); } } }