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

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

Восстановить пароль Регистрация
 
PolApelcina
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 31
28.11.2013, 12:06     Сортировка по алфавиту #1
Ребят, нужна помощь.
Суть задания: сформировать список книг и отсортировать его по ФИО автора. Сам список я создал, но помогите написать сортировку этого списка по алфавиту по ФИО автора.Заранее спасибо.
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <locale.h>
 
struct element 
{
    char Famil[30];
    char Name[30];
    char Patr[30];
    char NameB[30];
    char Izdat[30];
    int god;
    int nums;
};
struct Spisok
{
    struct element *kniga;
    struct Spisok *pNext;
    struct Spisok *pPred;
};
struct Spisok *First(struct element *kniga,struct Spisok *ptrnext)
{
    ptrnext=new struct Spisok;
    if (ptrnext==NULL)
        return NULL;
    ptrnext->pNext=NULL;
    ptrnext->pPred=NULL;
    ptrnext->kniga= kniga;
    return ptrnext;
    delete [] ptrnext;
}
void next(struct element *kniga,struct Spisok *lol)
{
    struct Spisok *ptrnext;
    for(lol;lol->pNext != NULL;)
    {
        lol = lol->pNext;
    }
    ptrnext=new struct Spisok;
    if (ptrnext==NULL) return;
    ptrnext->pNext=NULL;
    lol->pNext = ptrnext;
    ptrnext->pPred=lol;
    ptrnext->kniga=kniga;
}
void print (struct Spisok *print)
{
    int i=1;
    do
    {
        printf("\n%d) Ф.И.О автора: %s %s %s",i, print->kniga->Famil, print->kniga->Name,print->kniga->Patr);
        printf("\nНазвание: %s\t Издательство: %s \nКол-во страниц: %d\t год: %d",print->kniga->NameB,print->kniga->Izdat,print->kniga->nums,print->kniga->god);
        print=print->pNext;
        ++i;
    }
    while(print->pNext);
    printf("\n%d) Ф.И.О автора: %s %s %s",i, print->kniga->Famil, print->kniga->Name,print->kniga->Patr);
    printf("\nНазвание: %s\t Издательство: %s \nКол-во страниц: %d\t год: %d\n",print->kniga->NameB,print->kniga->Izdat,print->kniga->nums,print->kniga->god);
    
}
struct Spisok *first = NULL;
void main()
{
    setlocale ( LC_ALL, "rus" );
    int n,i,k;
    char *Famman[8]={"Сидоров","Плюшкин","Комаров","Смирнов","Бурченко","Абдулов","Гончаров","Горбачев"};
    char *Imyaman[8]={"Даниил","Аркадий","Николай","Григорий","Анатолий","Евгений","Андрей","Денис"};
    char *Patrman[8]={"Владимирович","Петрович","Иванович ","Аркадиевич","Николаевич","Егорович","Андреевич","Максимович"};
    char *izdatel[5]={"Москва","Восход","Экватор","Курабейн","Гейзер"};
    char *NameBook[5]={"Горбатая Гора","Дирижабль","АБВГДейка","Механика","Дикий Запад"};
    struct element *knigastr;
    printf ("Введите кол-во книг: ");
    scanf("%d",&n);
    knigastr=new struct element;
    srand ((int)time(NULL));
    k=rand() % 8;
    strcpy(knigastr->Famil,Famman[k]);
    k=rand() % 8;
    strcpy(knigastr->Name,Imyaman[k]);
    k=rand() % 8;
    strcpy(knigastr->Patr,Patrman[k]);
    k=rand() % 5;
    strcpy(knigastr->Izdat,izdatel[k]);
    k=rand() % 5;
    strcpy(knigastr->NameB,NameBook[k]);
    knigastr->god = rand() %213 + 1700;
    knigastr->nums = rand () %600 + 1;
    first=First(knigastr,first);
    if(first == NULL) exit(1);
    for(i=1; i < n; i++)
    {
        knigastr=new struct element;
        k=rand() % 8;
        strcpy(knigastr->Famil,Famman[k]);
        k=rand() % 8;
        strcpy(knigastr->Name,Imyaman[k]);
        k=rand() % 8;
        strcpy(knigastr->Patr,Patrman[k]);
        k=rand() % 5;
        strcpy(knigastr->Izdat,izdatel[k]);
        k=rand() % 5;
        strcpy(knigastr->NameB,NameBook[k]);
        knigastr->god = rand() %213 + 1700;
        knigastr->nums = rand () %600 + 1;
        next(knigastr, first);
    }
    print(first);
    delete [] knigastr;
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 12:06     Сортировка по алфавиту
Посмотрите здесь:

Сортировка по алфавиту C++
C++ Сортировка по алфавиту
сортировка по алфавиту C++
C++ Сортировка по алфавиту
Сортировка по алфавиту C++
C++ Сортировка по алфавиту
Сортировка по алфавиту C++
C++ Сортировка по алфавиту

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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