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

Создать список, содержащий информацию о жителях города - C++

Восстановить пароль Регистрация
 
cayz
 Аватар для cayz
1 / 1 / 0
Регистрация: 09.02.2013
Сообщений: 26
16.10.2013, 23:49     Создать список, содержащий информацию о жителях города #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
#include "StdAfx.h"
#include<iostream>
#include<string>
using namespace std;
 
struct element
{
int vik;
string adres;
string name;
};
void AddStruct(element*z)
{
cout <<"\nVvedit name: "; cin>>z->name;
cin.ignore();
cout << "\nVvedit adres: "; getline(cin,z->adres);
cout <<"\nVvedit vik: "; cin>>z->vik;
}
struct list
{
element elem;
list*next;
};
 
typedef list * ptr;
void prints(element* z)
{
cout<<z->adres <<endl;
cout<<z->name <<endl;
cout<<z->vik <<endl;
}
ptr AddElem(ptr head, element elem)
{
ptr x;
x = (list*)malloc(sizeof(list));
x->elem=elem;
x->next = head;
head = x;
return head;
}
 
void Print(ptr head)
{
for(ptr x = head; x!=NULL; x=x->next)
prints(&head->elem);
cout<<endl;
}
 
/*ptr Init(ptr head, int n)
{
int elem;
cout«"Enter number\n";
for(int i = 0; i<n; i++)
{
cin»elem;
head = AddElem(head, elem);
}
return head;
}*/
 
int main()
{
ptr head;
head = NULL; 
element A;
cout<<"Vvedit dani!\n";
AddStruct(&A);
while(A.name.compare("#")!=0)
{
head = AddElem(head,A);
AddStruct(&A);
}
cout<<"\nNew List: ";
Print(head);
system("pause");
return 0;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2013, 23:49     Создать список, содержащий информацию о жителях города
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
17.10.2013, 20:36     Создать список, содержащий информацию о жителях города #2
cayz, примерно так. Проверял у себя, работает нормально. Адаптировать под свои библиотеки (ты же не на qt пишешь), думаю сможешь)

C++ (Qt)
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
#include <QTextStream>
 
struct element {
    QString name;
    int age;
    QString address;
    element* next;
};
 
class human_collection {
public:
    human_collection();
    ~human_collection();
    void add(QString,QString,int);
    void sort(int);
    void view();
private:
    element* head;
    element* end;
};
 
human_collection::human_collection()
{
    head = new element;
    head->next = NULL;
    end = head;
}
 
human_collection::~human_collection()
{
    element* temp;
    while (head->next != NULL)
    {
        temp = head->next;
        delete head;
        head = temp;
    }
    delete head;
}
 
void human_collection::view()
{
    QTextStream cout(stdout);
    element* temp = head;
    while (temp->next != NULL)
    {
        temp = temp->next;
        cout << "@ " << temp->name << "(" << temp->address << "). Age = " << temp->age << "." << endl;
    }
 
}
 
void human_collection::add(QString n_name, QString n_address, int n_age)
{
    element* temp = new element;
    temp->name = n_name;
    temp->address = n_address;
    temp->age = n_age;
    temp->next = NULL;
    end->next = temp;
    end = temp;
}
 
void human_collection::sort(int lvl)
{
    QTextStream cout(stdout);
    element* temp = head;
    element* prev;
    while (temp->next != NULL)
    {
        prev = temp;
        temp = temp->next;
        if (temp->age >= lvl)
        {
            cout << "@ " << temp->name << "(" << temp->address << "). Age = " << temp->age << "." << endl;
            prev->next = temp->next;
            delete temp;
            temp = prev;
        }
    }
}
 
int main(int argc, char *argv[])
{
    QTextStream cout(stdout);
    QTextStream cin(stdin);
    human_collection* facebook = new human_collection();
    int size;
    cout << "Count elements:"<< endl;
    cin >> size;
    for (int i=1;i<=size;i++)
    {
        QString name,address;
        int age;
        cout << endl << "Element[" << i << "]:" << endl;
        cout << "name:" << endl;
        cin >> name;
        cout  << "address:" << endl;
        cin >> address;
        cout  << "age:" << endl;
        cin >> age;
        facebook->add(name,address,age);
    }
    cout << "----------------------------" << endl;
    cout << "All humans:" << endl;
    facebook->view();
    cout << "----------------------------" << endl;
    cout << "Input age for sort:" << endl;
    cin >> size;
    facebook->sort(size);
    cout << "----------------------------" << endl;
    cout << "After sort:" << endl;
    facebook->view();
    delete facebook;
    return 0;
}
Вводится размер списка, затем заполнение, потом выводится весь список, затем производится отбор по возрасту, а в конце показывается измененный список (т.е после удалений элементов)
cayz
 Аватар для cayz
1 / 1 / 0
Регистрация: 09.02.2013
Сообщений: 26
23.10.2013, 22:55  [ТС]     Создать список, содержащий информацию о жителях города #3
о спасибо я кажется понял , спасибо ещё раз)))

Добавлено через 30 минут
нет сложно не могу понять QTextStream , мне нужно в среде c++ слишком много ошибок

Добавлено через 2 минуты
вот друго

Добавлено через 26 секунд
й исходник тут немного получалось


// lab16.cpp: определяет точку входа для консольного приложения.
//

#include "StdAfx.h"
#include<iostream>
#include<string>
using namespace std;

struct element
{
int vik;
string adres;
string name;
};

void AddStruct(element*z)
{
cout <<"\nVvedit name: "; cin>>z->name;
cin.ignore();
cout<< "\nVvedit adres: "; getline(cin,z->adres);
cout << "\nVvedit vik: "; cin>>z->vik;
}

struct list
{
element elem;
list*next;
};

typedef list * ptr;

void prints(element* z)
{
cout<<z->adres <<endl;
cout<<z->name <<endl;
cout<<z->vik <<endl;
}
ptr AddElem(ptr head, element elem)
{
ptr x;
x = new list;
x->elem=elem;
x->next = head;
head = x;
return head;
}

void Print(ptr head)
{
for(ptr x = head; x!=NULL; x=x->next)
prints(&head->elem);
cout<<endl;
}

/*ptr Init(ptr head, int n)
{
int elem;
cout«"Enter number\n";
for(int i = 0; i<n; i++)
{
cin»elem;
head = AddElem(head, elem);
}
return head;
}*/
ptr add(ptr head, ptr a, ptr b){
if (a==head) {
head=b;
b->next=a;
}
}
ptr sort(ptr head){
ptr a=head,b=head->next,t=a;
a->next=NULL;
while (b){
a=head;
while (a){
if (b->elem.name.compare(a->elem.name)>0) break;
t=a;
a=a->next;
}
head=add(head,t,b);

}
return head;
}
int main()
{
ptr head;
head = NULL;
element A;

cout<<"Vvedit dani!\n";

AddStruct(&A);
while(A.name.compare("#")!=0)
{ head = AddElem(head,A);
AddStruct(&A);
}
head=sort(head);


cout<<"\nNew List: ";
Print(head);

system("pause");
return 0;
}
Yandex
Объявления
23.10.2013, 22:55     Создать список, содержащий информацию о жителях города
Ответ Создать тему
Опции темы

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