#pragma hdrstop
#pragma argsused
#include <tchar.h>
#include <stdio.h>
#include <windows.h>
#include <iostream>
#include <conio.h>
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();
} //сохраняет в неправильном порядке