С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 62
1

Список: прокоментировать программу

12.12.2014, 22:46. Показов 486. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем помогите прокомментировать как можно больше строк в коде. Это единственный пример списка который я нашел. Прокоментируйте пожалуйста кто сколько сможет строк что бы понять как это всё работает.

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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
 
 
struct BILET 
{
  char Nomer[7;]
  char NazvSeansa[30];
  char DataTime[17];
  char Row[5];
  char Place[5];
  struct BILET *next;  
};
 
//struct Node{
 
 
struct BILET *start;
struct BILET *last; 
 
void enter(void);
void search(void);
void list(void);
 
//____________Поиск адреса_______________
 
struct BILET *find( char *Nomer)
{
  struct BILET *info;
  info = start ;//
  while(info) {
    if(!strcmp(Nomer, info->Nomer)) return info;
    info = info->next;   
  }
  return NULL; 
}
 
//__________________Создание  списка______________________
void SozdSpiska(struct BILET *i,struct BILET **start, struct BILET **last)
{
  struct BILET *old, *p;
  p = *start;
  if(!*last) {
    i->next = NULL; 
    *last = i;
    *start = i;
    return;
  }
  old = NULL;
 
  while(p) 
  {
      i->next = p;
      *start = i;
      return;
  }
  (*last)->next = i; 
  i->next = NULL; 
  *last = i; 
}
 
 
 
//___Функция выполняет вывод на экран____
void display(struct BILET *info)
{   
    printf("Номер билета: ");
    puts(info->Nomer);
    printf("Название сеанса: ");
    puts(info->NazvSeansa);
    printf("Дата и время сеанса: ");
    puts(info->DataTime);
    printf("Номер ряда: ");
    puts(info->Row);
    printf("Номер места: ");
    puts(info->Place);
    printf("\n");
}
 
 
 
int menu()
{
  char s[80];
  int c;
  printf("1. Ввод информации\n");
  printf("2. Отображение содержимого списка\n");
  printf("3. Поиск\n");
  printf("4. Выход\n");
  do {
    printf("\nВаш выбор: ");
    gets(s);
    c = atoi(s);
  } while(c<0 || c>4);
  return c;
}
 
 
 
 
 
int main()
{
  setlocale(LC_ALL,"rus");
  last = NULL;  // инициализация указателей на начало и конец
  for(;;) 
  {
    switch(menu()) {
      case 1: enter();                 // Ввод информации о билете 
        break;
      case 2: list();                  // отображение списка
        break;
      case 3: search();                // поиск билета по номеру
        break;
      case 4: exit(0);
    }
  }
  return 0;
}
 
 
//__Ввод данных о билете_
void enter(void)
{
  BILET *info;
  int n;
  printf("Введите количество записей: ");
  scanf("%d",&n);
  fflush(stdin);
  for(int i=0;i<n;i++) 
  {
    fflush(stdin);
    info = (BILET *)malloc(sizeof(BILET));
    printf("Введите номер билета (целое шестизначное число): ");   gets(info->Nomer);
    printf("Введите название сеанса: ");                           gets(info->NazvSeansa);
    printf("Введите дату и время (в формате дд.мм.гггг чч:мм): "); gets(info->DataTime);
    printf("Введите ряд: ");                                       gets(info->Row);
    printf("Введите место: ");                                     gets(info->Place);
    SozdSpiska(info,&start, &last); 
  }
}
 
//__Поиск билета в списке__
void search(void)
{
  char Nomer[7];
  BILET *info;
  printf("Введите номер билета: ");
  gets(Nomer);
  info = find(Nomer);
  if(!info) printf("Не найдено\n");
  else display(info);
}
 
//__Отобразить список___
void list(void)
{
  BILET *info;
  info = start;
  while(info) 
  {
    display(info);
    info = info->next;  
  }
  printf("\n");
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.12.2014, 22:46
Ответы с готовыми решениями:

Прокоментировать программу LinkedList
Ребят, прошу заранее камни не кидать. Новичек еще, ответьте пожалуйста на вопросы. class...

Как прокоментировать программу
// Подключение заголовочных файлов языка C++ #include&lt;iostream&gt; #include &lt;cstdlib&gt; //...

Нужно прокоментировать программу
#include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; class Matrix{ int m; public: Matrix(int=0); void...

Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят в список L1 но не входят в список L2
Составить программу, которая формирует список L, включив в него по одному разу элементы, которые...

1
0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 10
24.12.2014, 11:08 2
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
 
 
struct BILET // создание списка
{
  char Nomer[7;]
  char NazvSeansa[30];
  char DataTime[17];
  char Row[5];
  char Place[5];
  struct BILET *next;  
};
 
//struct Node{
 
 
struct BILET *start;  //указатель на начало списка
struct BILET *last;   //указатель на конец списка
 
// прототипы функций
void enter(void);
void search(void);
void list(void);
 
//____________Поиск адреса_______________
 
struct BILET *find( char *Nomer)
{
  struct BILET *info;
  info = start ;
  while(info) {
    if(!strcmp(Nomer, info->Nomer)) return info; //ищет совпадающее значение пробегая по списку
    info = info->next;   
  }
  return NULL; 
}
 
//__________________Создание  списка______________________
void SozdSpiska(struct BILET *i,struct BILET **start, struct BILET **last)
{
  struct BILET *old, *p;
  p = *start; //указатель на начало списка
 
  if(!*last) {  //если нет элементов
    i->next = NULL; //следующий нулевой
    *last = i; //текущий ссылается на значение
    *start = i; //и начало тоже
    return;
  }
  old = NULL;
 
  while(p) //пока в списке
  {
      i->next = p; //переходим на следующий элемент
      *start = i;  //тут непонятно. Зачем циклически задавать началу указывать на одно значение
      return;
  }
  (*last)->next = i; 
  i->next = NULL; 
  *last = i; 
}
 
 
 
//___Функция выполняет вывод на экран____
void display(struct BILET *info)
{   
    printf("Номер билета: ");
    puts(info->Nomer);
    printf("Название сеанса: ");
    puts(info->NazvSeansa);
    printf("Дата и время сеанса: ");
    puts(info->DataTime);
    printf("Номер ряда: ");
    puts(info->Row);
    printf("Номер места: ");
    puts(info->Place);
    printf("\n");
}
 
 
 
int menu()
{
  char s[80];
  int c;
  printf("1. Ввод информации\n");
  printf("2. Отображение содержимого списка\n");
  printf("3. Поиск\n");
  printf("4. Выход\n");
  do {
    printf("\nВаш выбор: ");
    gets(s);
    c = atoi(s);
  } while(c<0 || c>4);
  return c;
}
 
 
 
 
 
int main()
{
  setlocale(LC_ALL,"rus");
  last = NULL;  // инициализация указателей на начало и конец
  for(;;) 
  {
    switch(menu()) {
      case 1: enter();                 // Ввод информации о билете 
        break;
      case 2: list();                  // отображение списка
        break;
      case 3: search();                // поиск билета по номеру
        break;
      case 4: exit(0);
    }
  }
  return 0;
}
 
 
//__Ввод данных о билете_
void enter(void)
{
  BILET *info;
  int n;
  printf("Введите количество записей: ");
  scanf("%d",&n);
  fflush(stdin);
  for(int i=0;i<n;i++) 
  {
    fflush(stdin);
    info = (BILET *)malloc(sizeof(BILET));
    printf("Введите номер билета (целое шестизначное число): ");   gets(info->Nomer);
    printf("Введите название сеанса: ");                           gets(info->NazvSeansa);
    printf("Введите дату и время (в формате дд.мм.гггг чч:мм): "); gets(info->DataTime);
    printf("Введите ряд: ");                                       gets(info->Row);
    printf("Введите место: ");                                     gets(info->Place);
    SozdSpiska(info,&start, &last); 
  }
}
 
//__Поиск билета в списке__
void search(void)
{
  char Nomer[7];
  BILET *info;
  printf("Введите номер билета: ");
  gets(Nomer);
  info = find(Nomer);
  if(!info) printf("Не найдено\n");
  else display(info);
}
 
//__Отобразить список___
void list(void)
{
  BILET *info;
  info = start;
  while(info) //печатает текущий элемент и переходит к следующему пока не кончится список
  {
    display(info);
    info = info->next;  
  }
  printf("\n");
}
Ну, чем смог
0
24.12.2014, 11:08
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.12.2014, 11:08
Помогаю со студенческими работами здесь

Составить базу данных об учащихся. Составить программу позволяющую выводить полный список учащихся, список выбравших предмет, список лучших учеников
Составить базу данных об учащихся, предусмотрев поля: Ф.И.О., предметы по выбору, экзаменационные...

Прокоментировать код
объясните код. int size = 0; for(int i = 0; i &lt; rows; i++) ...

Прошу прокоментировать..
Уважаемые пользователи и админы , прокоментируйте пожалуйста данную задачу :) Заранее благодарен:)...

Прокоментировать 2 строки
graphics32 bmp32Main:tbitmap32; Прокоментируэти эти 2 строки Как они влияют на скорость...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Блоги программистов
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­­­­­­­­­­­­­х­р­о­н­­н­­­ы­­й счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru