Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2011, 19:02   #1
doter
Пользователь
 
Регистрация: 25.09.2010
Сообщений: 34
По умолчанию Каталог файлов

Задание звучит так : нужно создать каталог файлов в виде линейного списка. Вроде создал , программа работает , но нужно кое-что подкорректировать . Нужно задать имя файла как строку символов, которая вводится с клавиатуры , ну и задать вывод файла с наибольшим количеством обращений. Надеюсь на вашу помощь . Вот сама прога :
Код:
#include <iostream>
#include <windows.h>
using namespace std;


struct Node
{
char name;
int chislo;
int mesyac;
int god;
int kol_vo_obrash;
Node* next;
};

void russia(const char*);

void main()
{

Node* head = NULL;
Node* lastPtr = NULL;
short action = -1;
while (1)
{
russia("1. Добавить Элемент\n");
russia("2. Просмотр Списка\n");
russia("3. Поиск Элемента\n");
russia("4. Удалить Элемент\n");
russia("0. Выход\n\n");
russia("Ваш Выбор: ");
cin>>action;
if (action == 0)
{
system("CLS");
break;
}

if (action == 1)
{
system("CLS");
Node* ptr = new Node;
char name=-1;
int chislo = -1;
int mesyac = -1;
int god = -1;
int kol_vo_obrash = -1;


russia("Введите название файла: ");
cin>> name;
ptr->name= name; 
ptr->next = NULL;
russia("Введите дату создания файла :");
cin>>chislo>>mesyac>>god;
ptr->chislo = chislo;
ptr->next = NULL;
ptr->mesyac = mesyac;
ptr->next = NULL;
ptr->god= god;
ptr->next = NULL;
russia("Количество обращений к файлу :");
cin>>kol_vo_obrash;
ptr->kol_vo_obrash = kol_vo_obrash;
ptr->next = NULL;




if (head == 0)
{
head = ptr;
lastPtr = ptr;
system("CLS");
continue;
}
lastPtr->next = ptr;
lastPtr = ptr;
system("CLS");
continue;
}

if (action == 2)
{
Node* ptr = NULL;
system("CLS");
if (head == NULL)
{
russia("\t!!! СПИСОК ПУСТ !!!\n\n");
system("PAUSE");
system("CLS");
continue;
}
russia("* * * * * СПИСОК * * * * *\n\n");
ptr = head;
while (1)
{
cout<<ptr->name<<"\t"<<ptr->chislo<<"."<<ptr->mesyac<<"."<<ptr->god<<"\t"<<"\t"<<ptr->kol_vo_obrash<<"\n"<<" ";
if (ptr->next == 0)
break;
ptr = ptr->next;
}
cout<<"\n\n";
system("PAUSE");
system("CLS");
continue;
}

if (action == 3)
{
Node* ptr = NULL;
int key = -1;
system("CLS");
if (head == NULL)
{
russia("\t!!! СПИСОК ПУСТ !!!\n\n");
system("PAUSE");
system("CLS");
continue;
}
russia("Введите Элемент Для Поиска: ");
cin>>key;
ptr = head;
while (1)
{
if (key == ptr->name)
{
russia("\n\t!!! ЭЛЕМЕНТ НАЙДЕН !!!\n");
break;
}
if (ptr->next == NULL)
{
russia("\n\t!!! ЭЛЕМЕНТ НЕ НАЙДЕН !!!\n");
break;
}
ptr = ptr->next;
}
system("PAUSE");
system("CLS");
continue;
}
doter вне форума Ответить с цитированием
Старый 01.03.2011, 19:03   #2
doter
Пользователь
 
Регистрация: 25.09.2010
Сообщений: 34
По умолчанию

Код:
if (action == 4)
{
system("CLS");
Node* ptrDelete = NULL; 
if (head == NULL)
{
russia("\t!!! СПИСОК ПУСТ !!!\n\n");
system("PAUSE");
system("CLS");
continue;
}
if (head->next == NULL)
{
head = NULL;
delete head;
continue;
}
ptrDelete = head;
head = ptrDelete->next;
delete ptrDelete;
continue;
}



if (action > 5)
{
system("CLS");
russia("\t!!! НЕВЕРНЫЙ ВЫБОР. ПОВТОРИТЕ ВВОД !!!\n\n");
system("PAUSE");
system("CLS");
continue;
}
} 
}

void russia(const char* rus)
{
char word[100];
CharToOem(rus, word);
cout<<word;
}
doter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Каталог файлов doter Общие вопросы C/C++ 1 28.02.2011 19:55
Каталог файлов doter Общие вопросы C/C++ 1 21.02.2011 20:19
Как задать команду загрузки файлов данных на кнопку если каталог и имена файлов известны??? Andbuba Microsoft Office Excel 2 28.12.2008 17:28
Копирование файлов в каталог SANTA_KLAUD Общие вопросы Delphi 10 13.05.2008 18:30