Код:
void DelItem(ITEM **ppBegin, int n)
{
if (*ppBegin == NULL)
return;
ITEM *pDel;
// если удаляем первый эл-т
if (n == 0)
{
pDel = *ppBegin;
*ppBegin = pDel->pNext;
}
else
{
// ищем эл-т под номером n - 1
ITEM *pPrev = GetItem(*ppBegin, n - 1);
if ((pPrev == NULL) || (pPrev->pNext == NULL))
return;
pDel = pPrev->pNext;
// у него меняем связь pNext
pPrev->pNext = pDel->pNext;
}
delete pDel;
}
void Print(ITEM *pBegin)
{
for(ITEM *p = pBegin; p != NULL; p = p->pNext){
printf("element = %d\n", p->nAge);
printf("etel = %d\n", p->phone);
printf("day = %d\n", p->birthday);}
}
void plusItem(ITEM *pBegin)
{
int nomer;
int nAge;
char name[MAX_NAME];
char surname[MAX_SURNAME];
char birthday[MAX_BIRTHDAY];
float group;
int phone;
union
{
int year_army;
char hobby[MAX_HOBBY];
};
nomer=0;
nomer++;
group=1.1;
phone=8921434345;
system("cls");
nAge=12;
printf("Name, please: ");
rewind(stdin);
scanf("%s", name);
printf("Surname, please: ");
rewind(stdin);
scanf("%s", surname);
printf("Birthday, please(in format dd.mm.yy), please: ");
rewind(stdin);
scanf("%s", birthday);
// printf("Group, please(for exemple 1088.2) : ");
// rewind(stdin);
// scanf("%f", group);
// rewind(stdin);
//printf("Home phone number, please: ");
// rewind(stdin);
//scanf("%d", phone);
/*
printf("Sex, please(male - 1, female - 2): \n");
rewind(stdin);
scanf("%d", &c);
if(c == 1)
{
NewItem.g=MALE;
printf("Year of recruitment, please: ");
rewind(stdin);
scanf("%d", &NewItem.year_army);
}
else
{
NewItem.g=FEMALE;
printf("Hobby, please(no more than 100 characters).\n ");
printf("Don't use spaces. Instead, use the symbol '_' : ");
rewind(stdin);
scanf("%s",NewItem.hobby);
}
*/
AddItem(&pBegin, NewItem(nomer,nAge,name,surname,birthday,group,phone,MALE));
printf("Successful! Press any key.");
getc(stdin);
}
void menu(ITEM *pBegin) // главное меню программы
{
setlocale(LC_ALL, "rus");
int nKey; ;
system("cls");
printf("Выбирите дальнейшее действие: \n"); // выбор режима работы
printf("1. Добавить новую запись\n");
printf("2. Поиск\n");
printf("3. Удалить запись\n");
printf("4. Редактировать запись\n");
printf("5. Просмотр всех записей \n");
printf("6. Сохранить и выйти\n");
printf("\nВвод: ");
do{
rewind(stdin); //Очистка буфера клавиатуры
scanf("%d", &nKey);
switch(nKey) {
case 1: plusItem(pBegin); // добавление
break;
/* case 2: search(pBegin); // поиск
break;
case 3: remove(pBegin); // удаление
break;
case 4: editing(pBegin); // редактирование
break;*/
case 5:
system("cls");
Print(pBegin);; // просмотр всех записей
break;/*
case 6: save_and_exit(pBegin); // выход и сохранение всех данных в файл
break;
default: printf("Error! Re-enter, please:\n");
break;
*/ }
}while(nKey<1 || nKey>6);
getc(stdin);
}
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "rus");
ITEM *pBegin = NULL;
/*
AddItem(&pBegin, NewItem(10,"sfdsdfd","gaga","21.12.34",12,MALE));
AddItem(&pBegin, NewItem(10,"sdsfdsfd","loka","12.12.43",12,MALE));
AddItem(&pBegin, NewItem(11,"fdssd","mama","12.12.32",12,MALE));
AddItem(&pBegin, NewItem(12,"sdfsdd","papa","12.12.12",12,MALE));
DelItem(&pBegin, 2);
*/
printf("Start list:\n");
Print(pBegin);
printf("After del list:\n");
Print(pBegin);
/*
int nKey, t, new_size = 0;
//struct ITEM *pBegin = NULL;
do
{
system("cls");// очистка экрана
printf("\nБаза Студентов ИБКС 2012! \n\n");
printf("Выберите режим работы БД: \n\n"); // выбор режима работы
printf("1. Создать новую \n");
printf("2. Загрузить из файла \n");
printf("\nВвод: ");
rewind(stdin); //Очистка буфера клавиатуры
scanf("%d", &nKey);
switch(nKey)
{
case 1:
system("cls");
menu(&pBegin);
case 2:
system("cls");
FILE* f;
f=fopen(IFILE,"r");
if((f = fopen(IFILE, "r")) == NULL)
{
perror("Загрузка из файла");
getch();
exit(1);
}
fscanf(f,"%d",&new_size);
fclose(f);
//load_from_file(pBegin);
break;
default: printf("\n\nError! Re-enter, please:\n");
Sleep(900);
break;
}
} while(nKey<1 || nKey>2);
*/
menu(pBegin);
menu(pBegin);
Sleep(300);
menu(pBegin);
menu(pBegin);
getc(stdin);
getch();
system("pause");
return 0;
}