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

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

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

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

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

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

Задание звучит так : нужно создать каталог файлов в виде линейного списка. Вроде создал , программа работает , но нужно кое-что подкорректировать . Нужно задать имя файла как строку символов, которая вводится с клавиатуры(а то у меня что-то не получается - можно ввести только 1 символ) , ну и задать вывод файла с наибольшим количеством обращений. Надеюсь на вашу помощь . Вот сама прога :
Код:
#include <iostream>
#include <windows.h>
#include <string.h>
using namespace std;
const int l_name=30; 
struct Node
{		
        char name[l_name];		
		int chislo;
		int mesyac;
		int god;
		int kol_vo_obrash;
        Node* next;
}file;
 
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[l_name];
						int chislo =-1;
						int mesyac =-1;
						int god =-1;
						int kol_vo_obrash=-1 ;
						
						
					
                        russia("Ââåäèòå íàçâàíèå ôàéëà: ");
                        cin>>name[l_name];
						ptr->name[l_name]=name[l_name];                        
                        ptr->next = NULL;
						cout<<"\n";
						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 == NULL)
                        {
                                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[l_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;
                }
doter вне форума Ответить с цитированием
Старый 28.02.2011, 19:55   #2
doter
Пользователь
 
Регистрация: 25.09.2010
Сообщений: 34
По умолчанию

Код:
if (action == 3)
                {
                        Node* ptr = NULL;
                        char key[l_name];
                        system("CLS");
                        if (head == NULL)
                        {
                                russia("\t!!! ÑÏÈÑÎÊ ÏÓÑÒ !!!\n\n");
                                system("PAUSE");
                                system("CLS");
                                continue;
                        }
                        russia("Ââåäèòå Ýëåìåíò Äëÿ Ïîèñêà: ");
                        cin>>key[l_name];
                        ptr = head;
                        while (1)
                        {
                                if (strcmp(key,ptr->name)==0)
                                {
                                        russia("\n\t!!! ÝËÅÌÅÍÒ ÍÀÉÄÅÍ !!!\n");
										cout<<ptr->name[l_name]<<"\t"<<ptr->chislo<<"."<<ptr->mesyac<<"."<<ptr->god<<"\t"<<"\t"<<ptr->kol_vo_obrash<<"\n"<<" ";
                                        break;
                                }
                                if (ptr->next == NULL)
                                {
                                        russia("\n\t!!! ÝËÅÌÅÍÒ ÍÅ ÍÀÉÄÅÍ !!!\n");
                                        break;
                                }
                                ptr = ptr->next;
                        }
                        system("PAUSE");
                        system("CLS");
                        continue;
                }
 
                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 > 4)
                {
                        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 21.02.2011 20:19
Копирование файлов(каталог-а) с ProgressBar KurtWagner Общие вопросы Delphi 9 23.03.2009 03:22
Как задать команду загрузки файлов данных на кнопку если каталог и имена файлов известны??? Andbuba Microsoft Office Excel 2 28.12.2008 17:28
Копирование файлов в каталог SANTA_KLAUD Общие вопросы Delphi 10 13.05.2008 18:30