Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dota
3 / 3 / 0
Регистрация: 20.09.2010
Сообщений: 100
#1

В файловой системе каталог файлов организовать как линейный список - C++

20.02.2011, 13:19. Просмотров 1424. Ответов 1
Метки нет (Все метки)

Вот такое задание : в файловой системе каталог файлов организован как линейный список.Для каждого файла в каталоге содержатся следующие сведения :
1)имя файла ; 2)дата создания ;3)количество обращений к файлу.
Нужно составить программу , которая обеспечивает начальное формирование списка,вывод каталога файлов,удаление и добавление файлов,выборку файла с наибольшим количеством обращений .
Если кто-то знает или когда-то сам выполнял такого рода задания , помогите плиз. Заранее благодарю.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2011, 13:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос В файловой системе каталог файлов организовать как линейный список (C++):

Вставить в линейный список перед элементом с заданным значением другой линейный список - C++
Как можно вставить в линейный список перед элементом с заданным значением другой линейный список? Как один элемент вставлять, я знаю, а вот...

Как получить размер блока в файловой системе - C++
Си+ linux. Пытаюсь вывести размер блока файловой системы struct stat buf; i = stat("имя файла", &buf); printf("Размер блока...

Теория о файлах и файловой системе - C++
Подскажите пожалуйста сайт или книгу где можно взять хорошую теория о файлах и файловой системе в языке C++? Прошу не отвечать типа гугл...

Управление каталогом в файловой системе - C++
Собственно есть задание, написать модель файловой системы ну и совершать с ней там всякие штуковины. вопрос вот в чем у меня есть...

Восстановление удалённых данных в файловой системе FAT и FAT32 - C++
Прошу помощи! Дословно задача стоит такая: написать программу, выполняющую восстановление удалённых файлов для форматов FAT и FAT32....

Описать картотеку в бюро обмена квартир, которая организована как линейный список - C++
Картотека в бюро обмена квартир организована как линейный список. Сведения о каждой квартире содержат: • количество комнат; • этаж;...

1
ForEveR
В астрале
Эксперт С++
7992 / 4751 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
20.02.2011, 14:29 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
dota, А в чем проблема-то? Примерный вариант. Но File я бы сделал классом без прямого доступа к элементам.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
struct File
{
    File(std::string name_="", Date dt_=Date(), long num_=0)
    :name(name_), dt(dt_), num(num_)
    {
    }
    std::string name;
    Date dt;//Date - свой класс, реализуете сами.
    long num;//Кол-во обращений
};
 
class Linear_List
{
private:
    struct Node
    {
        Node(File elem_=File()):elem(elem_), next(0)
        {
        }
        Node* next;
        File elem;
    };
    Node* head;
    Node* tail;
};
Добавлено через 35 минут
Если неаккуратно то примерно так.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <iostream>
#include <string>
 
struct Date
{
    Date(int year_=0, int month_=0, int day_=0)
        :year(year_), month(month_), day(day_)
    {
    }
    int year, month, day;
};
 
std::istream& operator >>(std::istream& is, Date& one)
{
    is>>one.year>>one.month>>one.day;
    return is;
}
 
std::ostream& operator <<(std::ostream& os, const Date& one)
{
    os<<"Date: "<<one.day<<'/'<<one.month<<'/'<<one.year<<'\n';
    return os;
}
 
struct File
{
    File(std::string name_="", Date dt_=Date(), long num_=0)
    :name(name_), dt(dt_), num(num_)
    {
    }
    std::string name;
    Date dt;//Date - свой класс, реализуете сами.
    long num;//Кол-во обращений
};
 
std::istream& operator >>(std::istream& is, File& one)
{
    is>>one.name;
    is>>one.dt;
    is>>one.num;
    return is;
}
 
std::ostream& operator <<(std::ostream& os, const File& one)
{
    os<<"Name: "<< one.name <<'\n'
        << one.dt
        <<"Num: " << one.num <<'\n';
    return os;
}
 
class Linear_List
{
    struct Node
    {
        Node(File elem_=File()):elem(elem_), next(0)
        {
        }
        Node* next;
        File elem;
    };
public:
    Linear_List():head(0), tail(0)
    {
    }
    void push_back(const File& one)
    {
        Node* new_node=new Node(one);
        if(head == 0)
        {
            head=new_node;
            tail=new_node;
        }
        tail->next=new_node;
        tail=new_node;
    }
    void erase(Node* er)
    {
        Node* tmp=er;
        er=er->next;
        delete tmp;
    }
    File max_num()
    {
        long nm=0;
        int max=head->elem.num;
        for(Node* tmp=head; tmp; tmp=tmp->next)
            if(tmp->elem.num > max)
                max=tmp->elem.num;
        File el;
        for(Node* tmp=head; tmp; tmp=tmp->next)
            if(max == tmp->elem.num)
            {
                el=tmp->elem;
                break;
            }
        return el;
    }
    friend std::ostream& operator <<(std::ostream&, const Linear_List&);
    friend std::istream& operator >>(std::istream&, Linear_List&);
private:
    Node* head;
    Node* tail;
};
 
std::ostream& operator <<(std::ostream& os, const Linear_List& Lst)
{
    for(Linear_List::Node* tmp=Lst.head; tmp; tmp=tmp->next)
        os<<tmp->elem<<'\n';
    return os;
}
 
std::istream& operator >>(std::istream& is, Linear_List& Lst)
{
    File one;
    while(is >> one)
    {
        Lst.push_back(one);
        std::cout<<'\n';
    }
    return is;
}
 
int main()
{
    Linear_List Lst;
    std::cin>>Lst;
    std::cout<<Lst;
    std::cout<<Lst.max_num()<<'\n';
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2011, 14:29
Привет! Вот еще темы с ответами:

Как организовать поиск файлов по расширению? - C++
У меня есть директория, в которой файлы с расширением *.txt! И мне надо что бы программа сама их нашла все... Помогите! Я не знаю как такое...

Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке - C++
Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке.

Список: Как организовать перемещение объекта по списку? - C++
Работаю с двухсвязным списком и при сортировке, когда объекты в списке меняются местами нужно же передавать всё по ссылке, верно? Не...

Организовать новый список из различных элементов заданного, включив в информационную часть узла количество его вхождения в первоначальный список - C++
Организовать новый список из различных элементов заданного, включив в информационную часть узла количество его вхождения в первоначальный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru