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

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

Войти
Регистрация
Восстановить пароль
 
Argentum21
1 / 1 / 0
Регистрация: 05.03.2014
Сообщений: 75
#1

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

24.04.2014, 14:59. Просмотров 419. Ответов 0
Метки нет (Все метки)

Друзья, подскажите, пожалуйста, в чем может быть ошибка?
Задача такова: создать линейный односвязный список, упорядоченный по фамилиям продавцов в алфавитном порядке
Вот код:

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ИНННННННННННННННННННННННННКНННННННННННј");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2014, 14:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать линейный односвязный список, упорядоченный по фамилиям продавцов в алфавитном порядке (C++):

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

Создать односвязный линейный список - C++
Доброго времени суток! Помогите пожалуйста с кодом программы: Нужно создать односвязный линейный список, считывание значений элементов...

Создать линейный односвязный и двухсвязный список - C++
Нужна помощь,задание: Создать линейный односвязный список.Из списка удалить элемент стоящий перед минимальным элементом, затем элементы...

Создать линейный односвязный (двухсвязный) список - C++
Помогите пожалуйста решить задачу: Создать линейный односвязный (двухсвязный) список. Из списка удалить последнюю пару соседних...

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2014, 14:59
Привет! Вот еще темы с ответами:

Односвязный линейный список (Описать тип данных, который отвечает такому представлению многочленов, и создать логическую функцию) - C++
Многочлен P(x)=anxn+an-1xn-1+...+a1x+a0 можно представить в виде списка . Если аi=0, то соответствующая запись не заносится в список....

Упорядоченный односвязный список - C++
Товарищи, всем доброго времени суток! Есть такая вот задача: &quot;Для класса &quot;упорядоченный по убыванию односвязный список&quot; определить...

Односвязный линейный список - C++
Текст помощи для не которой программы организован в виде линейного списка Каждая компонента текста помощи содержит термин (слово) и...

Линейный односвязный список - C++
List *begin = NULL; begin = new List; List *begin1 = NULL; begin1 = new List; List *begin2 = NULL; begin2 = new List; List...


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

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

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