Форум программистов, компьютерный форум CyberForum.ru

Сортировка по фамилии - C++

Восстановить пароль Регистрация
 
Мака94
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 31
07.10.2013, 07:29     Сортировка по фамилии #1
Задание: Разработать классы для описанных ниже объектов.
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
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
#include <conio.h> 
#include <string.h> 
#include <iostream> 
using namespace std;
struct date // дата 
{int day; 
int year; }; 
//======= class File ================= 
 
class File{ 
char name[30]; //private 
date t; 
int obrash; int razmer;
public: 
File(); 
char *getalf();
int getrazmer(); 
int getobrash(); 
void show(); 
}; 
File::File() 
{cout<<"Vvedite imya faila: "; cin>>name; 
cout<<"Vvedite datu obrasheniya\n"; 
cout<<"Den: "; cin>>t.day; 
cout<<"God: "; cin>>t.year; 
cout<<"Vvedite razmer: "; cin>>razmer; 
cout<<"Vvedite kol-vo obrasheniy: "; cin>>obrash; 
cout<<"\n";
} 
void File::show() 
{ 
cout<<"Imya faila: "<<name<<endl; 
cout<<"Data obrasheniya: "<<t.day<<'.'<<t.year<<endl; 
cout<<"Razmer: "<<razmer<<endl; 
cout<<"Kol-vo obrasheniy: "<<obrash<<endl; 
cout<<"\n";
} 
char *File::getalf() { return name; }
int File::getrazmer() { return razmer; } 
int File::getobrash() { return obrash; } 
void spisalf(File spis[],int n)//список файлов по алфавиту
{char name[20]; 
cout<<"Spisok failov v alfavitnom poryadke:";  
for(int i=0;i<n;i++) 
if(strcmp(spis[i].getalf(),name)>0)spis[i].show(); 
}
void spisrazmer(File spis[],int n)//список файлов заданного размера
{int razm; 
cout<<"Vvedite razmer: "; cin>>razm; 
for(int i=0;i<n;i++) 
if(spis[i].getrazmer() > razm)spis[i].show(); 
} 
void spisobrash(File spis[],int n) 
//список файлов по дате обращения
{int obr; 
cout<<"Vvedite kol-vo obrasheniy: "; cin>>obr; 
for(int i=0;i<n;i++) 
if (spis[i].getobrash()> obr)spis[i].show(); 
} 
//========= main ================ 
void main() 
{ File *spis; 
int n; 
cout<<"Vvedite kol-vo failov: "; cin>>n; 
spis=new File [n]; 
for(int i=0;i<n;i++) { 
cout<<"=============================="<<endl; 
 
spis[i].show(); 
 
} 
spisalf(spis,n);
spisrazmer(spis,n); 
spisobrash(spis,n); 
delete [] spis; 
cout<<"Dlya prodoljeniya najmite lubyu knopku" ;
while(!kbhit()); 
}
не могу вывести в алфавитном порядке
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2013, 07:29     Сортировка по фамилии
Посмотрите здесь:

сортировка по фамилии C++
C++ Сортировка по фамилии
сортировка по фамилии пузырьком C++
C++ Фамилии
C++ Сортировка по фамилии в структуре
C++ Используя класс list, в котором храняться фамилии студентов группы, организовать поиск по фамилии
C++ Сортировка по фамилии и имени
Получить из БД фамилии и упорядочить их C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VEINHORN
542 / 91 / 22
Регистрация: 16.12.2011
Сообщений: 317
07.10.2013, 12:23     Сортировка по фамилии #2
Добавил вам метод setalf() и переделал метод spisalf(). Сортировка: пузырекю.

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
#include <conio.h> 
#include <string.h> 
#include <iostream> 
using namespace std;
struct date // дата 
{int day; 
int year; }; 
//======= class File ================= 
 
class File {
    char name[30]; //private 
    date t; 
    int obrash;
    int razmer;
public: 
    File(); 
    char *getalf();
    void setalf(char *);
    int getrazmer(); 
    int getobrash(); 
    void show(); 
};
 
File::File() {
    cout<<"Vvedite imya faila: "; cin>>name; 
    cout<<"Vvedite datu obrasheniya\n"; 
    cout<<"Den: "; cin>>t.day; 
    cout<<"God: "; cin>>t.year; 
    cout<<"Vvedite razmer: "; cin>>razmer; 
    cout<<"Vvedite kol-vo obrasheniy: "; cin>>obrash; 
    cout<<"\n";
}
 
void File::show() { 
    cout<<"Imya faila: "<<name<<endl; 
    cout<<"Data obrasheniya: "<<t.day<<'.'<<t.year<<endl; 
    cout<<"Razmer: "<<razmer<<endl; 
    cout<<"Kol-vo obrasheniy: "<<obrash<<endl; 
    cout<<"\n";
}
 
char *File::getalf() { return name; }
int File::getrazmer() { return razmer; } 
int File::getobrash() { return obrash; }
void File::setalf(char *inp_name) {
    strcpy(name, inp_name);
}
//список файлов по алфавиту
void spisalf(File spis[],int n) {
    cout<<"Spisok failov v alfavitnom poryadke:";  
    for(int i = 0; i < n; i++) {
        for(int j = n - 1; j > i; j--) {
            if(strcmp(spis[j].getalf(), spis[j - 1].getalf()) < 0) {
                char name[30];
                strcpy(name, spis[j].getalf());
                spis[j].setalf(spis[j - 1].getalf());
                spis[j - 1].setalf(name);
            }
        }
    }
}
 
//список файлов заданного размера
void spisrazmer(File spis[],int n) {
    int razm; 
    cout<<"Vvedite razmer: ";
    cin>>razm; 
    for(int i=0;i<n;i++) 
    if(spis[i].getrazmer() > razm)
        spis[i].show(); 
} 
 
//список файлов по дате обращения
void spisobrash(File spis[],int n) {
    int obr; 
    cout<<"Vvedite kol-vo obrasheniy: "; cin>>obr; 
    for(int i=0;i<n;i++) 
        if (spis[i].getobrash()> obr)
            spis[i].show(); 
} 
 
//========= main ================ 
int main() {
    File *spis; 
    int n; 
    cout<<"Vvedite kol-vo failov: ";
    cin>>n; 
    spis = new File [n]; 
 
    spisalf(spis,n);
    for(int i=0;i<n;i++) {
        cout<<"=============================="<<endl; 
        spis[i].show(); 
    } 
    //spisrazmer(spis,n); 
    //spisobrash(spis,n); 
    delete [] spis; 
    cout<<"Dlya prodoljeniya najmite lubyu knopku" ;
    while(!kbhit()); 
}
Мака94
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 31
22.12.2013, 23:41  [ТС]     Сортировка по фамилии #3
огромнейшее спасибо
Yandex
Объявления
22.12.2013, 23:41     Сортировка по фамилии
Ответ Создать тему
Опции темы

Текущее время: 23:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru