#pragma hdrstop #pragma argsused #include #include #include #include #include struct TMass { char *date; int len; int beg,end; }; int CheckIt(TMass*name) { int i; int n=name->len; for (i = 0; i < n; i++) { if (name->date[i]!=NULL) { return 1; } } return 0; } void InitialList (int n, TMass*name) { int i; name->date=new char[n]; name->len=n; name->beg=500; name->end=500; for (i = 0; i < n; i++) { name->date[i]=NULL; } } void CreateList (TMass*name) { int i,k=0; char s1[20]; char s2[3]; char s3[3]; char s4[3]; int ls1,ls2,ls3,ls4; int n=name->len; printf("Введите название товара (или ** для создания пустого списка)\n:"); scanf("%s",s1); if (strcmp(s1,"**")==0){ printf("Пустой список создан\n"); printf("Клац по фасту эни кею\n"); getch(); return; } else{ printf("Введите час,минуту и секунду прибытия через ENTRE \n(не больше 2 цифр в каждой)\n"); scanf("%s",s2); scanf("%s",s3); scanf("%s",s4); //======================проверка===================================== if (atoi(s2)==NULL || atoi(s3)==NULL || atoi(s4)==NULL ) { printf("Время не должно содиржать символов, список не создан"); getch(); return; } if (atoi(s2)>99 || atoi(s3)>99 || atoi(s4)>99 || atoi(s2)<0 || atoi(s3)<0 || atoi(s4)<0 ) { printf("Время вводится в формате xx:xx:xx, список не создан"); getch(); return; } if (strlen(s2)!=2 || strlen(s3)!=2 || strlen(s4)!=2 ) { printf("Время вводится в формате xx:xx:xx, список не создан"); getch(); return; } //=========================проверка================================== else{ for (i = 500; i<(ls1=500+strlen(s1)) ; i++) { name->date[i]=s1[i-500]; } for (i = ls1+3; i<(ls2=ls1+strlen(s2)+3); i++) { (name->date[i]=s2[i-ls1-3]); } for (i = ls2+1; i<(ls3=ls2+strlen(s3)+1); i++) { (name->date[i]=s3[i-ls2-1]); } for (i = ls3+1; i<(ls4=ls3+strlen(s4)+1); i++) { (name->date[i]=s4[i-ls3-1]); } name->date[ls1]=' '; name->date[ls1+1]='-'; name->date[ls1+2]=' '; name->date[ls2]=':'; name->date[ls3]=':'; name->date[ls4]='\n'; } name->beg=500; name->end=(ls4+1); printf("Cоздан список из одной позиции\n"); } getch(); return; } void ShowList(int p,TMass*name) { int i; int n=name->len; int first=name->beg; int last=name->end; if (!p) { printf ("Список пуст"); return; } else{ for (i = 1; i < n ; i++) { if (name->date[i]!=NULL) { printf("%c",name->date[i]); } } } } void addElem(int z,TMass*name) { int i,k=0; char s1[20]; char s2[3]; char s3[3]; char s4[3]; int ls1,ls2,ls3,ls4,start; int n=name->len; int first=name->beg; int last=name->end; printf("Введите название товара"); scanf("%s",s1); printf("Введите час,минуту и секунду прибытия через ENTRE \n(не больше 2 цифр в каждой)\n"); scanf("%s",s2); scanf("%s",s3); scanf("%s",s4); //длинна на которую отличается это (length+12) //======================проверка===================================== if (atoi(s2)==NULL || atoi(s3)==NULL || atoi(s4)==NULL ) { printf("Время не должно содиржать символов, список не создан"); getch(); return; } if (atoi(s2)>99 || atoi(s3)>99 || atoi(s4)>99 || atoi(s2)<0 || atoi(s3)<0 || atoi(s4)<0 ) { printf("Время вводится в формате xx:xx:xx, список не создан"); getch(); return; } if (strlen(s2)!=2 || strlen(s3)!=2 || strlen(s4)!=2 ) { printf("Время вводится в формате xx:xx:xx, список не создан"); getch(); return; } //================================================================== //z=0 в начало z=-1 в конец z >1 произвол if (z=0) { for (i=(start=first-strlen(s1)-12); i<(ls1=start+strlen(s1)) ; i++) { name->date[i]=s1[i-start]; } for (i = ls1+3; i<(ls2=ls1+strlen(s2)+3); i++) { (name->date[i]=s2[i-ls1-3]); } for (i = ls2+1; i<(ls3=ls2+strlen(s3)+1); i++) { (name->date[i]=s3[i-ls2-1]); } for (i = ls3+1; i<(ls4=ls3+strlen(s4)+1); i++) { (name->date[i]=s4[i-ls3-1]); } name->date[ls1]=' '; name->date[ls1+1]='-'; name->date[ls1+2]=' '; name->date[ls2]=':'; name->date[ls3]=':'; name->date[ls4]='\n'; name->beg=start; } if (z=-1) { for (i=(start=last+1); i<(ls1=start+strlen(s1)) ; i++) { name->date[i]=s1[i-start]; } for (i = ls1+3; i<(ls2=ls1+strlen(s2)+3); i++) { (name->date[i]=s2[i-ls1-3]); } for (i = ls2+1; i<(ls3=ls2+strlen(s3)+1); i++) { (name->date[i]=s3[i-ls2-1]); } for (i = ls3+1; i<(ls4=ls3+strlen(s4)+1); i++) { (name->date[i]=s4[i-ls3-1]); } name->date[ls1]=' '; name->date[ls1+1]='-'; name->date[ls1+2]=' '; name->date[ls2]=':'; name->date[ls3]=':'; name->date[ls4]='\n'; name->end=ls4; } printf("Элемент добавлен\n"); getch(); return; } int main(){ SetConsoleOutputCP(1251); SetConsoleCP(1251); const n=1000; TMass name; InitialList (n,&name); CreateList(&name); addElem(0,&name); int p=CheckIt(&name); ShowList(p,&name); getch(); } //сохраняет в неправильном порядке