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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как сделать ИЛИ в ИФЕ http://www.cyberforum.ru/cpp-beginners/thread1156205.html
Привет форумчане. Прошу помочь с ИФ. Как сделать ИЛИ
C++ Структура Карточка спортсмена, реализовать считывание данных из файла пытался переделать программу, но компилятор виснет намертво Задача:На каждого из спортсменов, заявленных на областных соревнованиях по легкой атлетике представлена карточка со следующим данными: регистрационный номер спортсмена (3 цифры), город, фамилия и инициалы, возраст (лет), рост (см), код вида соревнований (не более четырех видов: прыжки в высоту, бег на 100м и т.п.) Требуется составить и... http://www.cyberforum.ru/cpp-beginners/thread1156196.html
Даны 2 файла целых чисел. Определить равны ли они C++
Даны 2 файла целых чисел. Определить равны ли они. Программа не запускается совсем, а файлы находятся в той же папке, что и программа. Подскажите, пожалуйста, в чем у меня ошибка? #include "stdafx.h" #include <fstream> #include <iostream> using namespace std; void main() { int n,q,w; int k1=0, k2=0;
C++ Написать функции для включения, исключения и поиска элемента кругового списка с заголовком и без
Может быть кто-нибудь решал подобную задачу? Написать и протестировать функции для включения, исключения и поиска элемента кругового списка для: а) списка без заголовка; б) списка с заголовком (заголовок может содержать некоторую информацию о списке, например, число элементов в списке).
C++ Какова причина исключения bad_alloc http://www.cyberforum.ru/cpp-beginners/thread1156180.html
При выделении памяти оператором new выскакивает исключение bad_alloc по какой причине оно может выпрыгивать ? Я выделяю достаточно много памяти много раз, это может как-то связано с нехваткой памяти или с чем ?
C++ Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах. Для хранения координат используйте три поля: типа int для числа градусов, типа float для числа минут и типа char для указания направления (N, S, W или E). Разработайте методы для ввода данных о корабле, о выводе его координат (с указанием полушария), метод для вычисления расстояния между кораблями. подробнее

Показать сообщение отдельно
denya_pervov
0 / 0 / 0
Регистрация: 04.04.2014
Сообщений: 6
28.04.2014, 10:52  [ТС]     Организовать двунаправленный список для хранения элементов структуры, содержащей сведения о фамилии, дате рождения
если кому нужно будет вот решение:
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
#include <iostream>
#include <conio.h> 
#include <stdio.h>
#include <string.h>
#include <windows.h>
struct node {
char data[12];
char fam[20];
node *next, *prev;
};
node* first=NULL;
node* tail=NULL;
void add(char s[20],char s1[12]){
    node* newnode=new node;
    strcpy(newnode->fam,s);
    strcpy(newnode->data,s1);
    newnode->prev=tail;
    newnode->next=NULL;
    if (tail) tail->next=newnode;
    tail=newnode;
    if (! first) first =tail;
}
void find(char w[12]){
    node* cur=first;
    while (cur && strcmp(cur->data,w))
    cur = cur->next;
    puts(cur->fam);     
}
void del(char s[20]){
    node* q;
    node* cur=first;
    while (cur && strcmp(cur->fam,s))
    cur = cur->next;
    q=cur;
    if (first==q){
        first=q->next; //удаляем первый элемент
        if (first) first->prev=NULL;
        else tail=NULL; //удалили единственный элемент
    }
    else {
        node* q1=q->prev;
        node* q2=q->next;
        q1->next=q->next;
        if (q->next) q2->prev=q->prev;
        else tail=NULL; //удалили последний элемент
    }
    delete q;
}
void show()  
{ 
    node* cur = first; 
    while(cur) 
    { 
        puts(cur->fam);
        puts(cur->data);
        cur = cur->next; 
    }
}
 
void main()
{   
    setlocale(0,"");
    SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
    int a=0;
    char s[20];
    char w[20];
    char s1[12];
 
while (a!=5){
printf("\nВыбирите действие: \n 1-добавить один элемент  \n 2-выполнить поиск по дате \n 3-вывести \n 4-удалить по фамилии \n5-завершить работу \n ");
scanf("%i",&a);
fflush(stdin);
switch (a){
case 1: printf("\nвведите фамилию  "); gets(s);printf("\nвведите дату ");gets(s1);add(s,s1);break;
case 2: printf("\nвведите дату рождения ");gets(s1);find(s1);break;
case 3: show(); break;
case 4: printf("\nвведите фамилию  "); gets(s); del(s); break;
default: break;
}
}
    getch();
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru