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

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

Восстановить пароль Регистрация
 
Argentum21
1 / 1 / 0
Регистрация: 05.03.2014
Сообщений: 75
24.04.2014, 14:59     Создать линейный односвязный список, упорядоченный по фамилиям продавцов в алфавитном порядке #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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
struct prodavec
{ char FIO[25];
  int ipr; //nomer pr-ca
  int kol_ves;
  int kol_shtuk;
  float time; //obchee vremya na obsluz.odnim pr-om vseh pokupatele
  float sr_time;
}
pr;
 
 
struct list
{
prodavec pr;
list*next;
} *first=NULL;
 
FILE*A;
 
void create_list (list**first)
{
A=fopen("prodavec.dat", "rb+");
while (fread (&pr, sizeof(pr), 1, A))
 {
   list*newel=new list;
   (*newel).pr=pr;
   (*newel).next=NULL;
  if (*first==NULL)
   *first=newel;
  else
   {
    list*tek, *pred;
    tek=*first;
    pred=NULL;
    while (tek!=NULL && strcmp (tek->pr.FIO, (*newel).pr.FIO)<0)
     {
       pred=tek;
       tek=tek->next;
     }
if (pred==NULL)
{
newel->next=*first;
*first=newel;
}
else
{
pred->next=newel;
newel->next=tek;
}
}
}
}
 
 
void input ()
{ prodavec pr;
char filename[100];
int vsego_pr=0, vsego=0;
printf ("\nViberite deystvie\n");
printf ("\n1). Sozdat` file\n");
printf ("\n2). Otkrit` file\n");
fflush (stdin);
char d=getche ();
FILE *A;
if (d=='1')
{
printf ("\nVvedite imya dlya novogo faila\n");
gets (filename);
A=fopen (filename, "wb+");
}
if (d=='2')
{
printf ("\nVvedite imya faila\n");
gets (filename);
A=fopen (filename, "rb+");
if (A)
printf ("\nFile sushestvuet!\n");
else
{ printf ("File ne sushestvuet!\n");
printf ("\nViberite deistvye:\n");
printf ("\n1). Sozdat file\n");
printf ("\n2). Vyhod!\n");
d=getche ();
if (d=='1')
{
printf ("\nVvedite imya dlya novogo faila\n");
gets (filename);
A=fopen (filename, "wb+");
}
if (d=='2')
return;
}
}
{
do
{ fflush (stdin);
printf ("\nVyberute deistvie: \n");
printf ("\n 1). Dobavit dannye\n");
printf ("\n2). Posmotret` dannye \n");
printf ("\n3). Sozdat file zanovo \n");
printf ("\n4). Posmotret rastoropnogo prodavca \n");
printf ("\n5). Sortirovka po indeksam \n");
printf ("\n6). Sortirovka po alfavitu \n");
printf ("\n7). Sortirovka po alfavitu (SPISOK) \n");
printf ("\n8). Vyhod!\n");
if (d=='7')
{
A=fopen (filename, "rb");
vsego=0;
rewind (A);
list **first=(list**)malloc(vsego*sizeof(list));
for (int i=0; i<vsego; i++)
first[i]=(list*)malloc(vsego*sizeof(list));
while (fread (&pr, sizeof (pr), 1, A))
vsego=vsego+1;
rewind (A);
fread (first, sizeof (list), vsego, A);
create_list (first); //вызов функции
printf ("\nЙНННННННННННННННННННННННННЛННННННННННН»");
printf ("\nє  FAMILIA IMY OTCHESTVO  є SRED. TIMEє");
printf ("\nМНННННННННННННННННННННННННОННННННННННН¶");
for (i=0; i<vsego; i++)
{
printf ("\nє %-24sє", pr1[i].FIO);
printf ("   %-8.1fє", pr1[i].sr_time);
}
printf ("\nИНННННННННННННННННННННННННКНННННННННННј");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2014, 14:59     Создать линейный односвязный список, упорядоченный по фамилиям продавцов в алфавитном порядке
Посмотрите здесь:

C++ Линейный односвязный список
Односвязный линейный список C++
[C++] Отсортировать данные по фамилиям студентов в алфавитном порядке C++
Упорядоченный односвязный список C++
Линейный односвязный список C++
Сформировать и ввести упорядоченный односвязный список без использования list C++
C++ Односвязный линейный список (Описать тип данных, который отвечает такому представлению многочленов, и создать логическую функцию)
C++ Линейный односвязный список

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

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

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