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

Структуры данных "Абонент" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевод букв в нижний регистр http://www.cyberforum.ru/cpp-beginners/thread554399.html
Как перевести все буквы строки введенной с клавиатуры в нижний регистр?
C++ Определить частоту вхождений символов алфавита в строку. Здравствуйте! Пишу курсовую. Уже который день подряд не могу додуматься как реализовать последнюю функцию свой программы. Задание: определение частоты повторений каждого символа алфавита в целом по массиву строк. #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <iostream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread554392.html
Неправильно считает значение по модулю C++
#include "stdafx.h" #include <conio.h> #include <math.h> #include <stdlib.h> #include <iostream> using namespace std; int main() {int i,j; const int n=8,m=10; float a;
Переделать класс в шаблонный класс C++
Как данный процесс проделать? Я попробовал так по синтаксису из учебника: #include <iostream> #include <fstream> using namespace std;
C++ Считывание и запись чисел в gmp библиотеке http://www.cyberforum.ru/cpp-beginners/thread554384.html
Скачал отсюда библиотеку static GMP library and header file for Visual C++ поместил gmp.h в VC и gmp.lib в VC/lib, настроил Visual Studio для работы с библиотекой, разобрался как работать с большими числами при помощи руководства(умножать делить логарифмы брать и т.д.) НО понял как это делать только путём считывания числа из файла, т.е. одно число в одном файле, другое в другом, умножил -...
C++ Наследование дескриптора семафора другими процессами Доброго времени суток, проблема в следующем: пишу приложение, которое использует семафоры. Мне нужно, чтобы дескриптор семафора мог наследоваться другими процессами, т.е если я 1 раз создал семафор в программе и не убил его, то при открытии другой копии этой программы она могла получить доступ к уже созданному семафору. HANDLE WINAPI CreateSemaphore( __in_opt LPSECURITY_ATTRIBUTES... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
15.05.2012, 17:08     Структуры данных "Абонент"
MAZUR777, если совсем по простому можно так
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
#include <conio.h>
#include <fstream>
#include <iostream>
using namespace std;
 
struct Abonent
{
    char Family[32];
    int  SetYear;
    int Number;
    char Adress[32];
};
 
long LoadBase(Abonent * list, bool &bRead);//Функция загружает БД
bool ReadField(ifstream &ifs, Abonent &pst);//Считывает поле структуры
 
//Функции обработчики меню
void Item1(Abonent * list, long nCount);//Фамилии абонентов и номера их телефонов
void Item2(Abonent * list, long nCount);//Список номеров и адреса абонентов
void Item3(Abonent * list, long nCount);//Номера телефонов установленных в заданном году
 
int main()
{
    system("chcp 1251 >> null");
    Abonent * list = NULL;
    bool bMenu = true;
    long count = LoadBase(NULL, bMenu);
    try
    {
        list = new Abonent[count];
    }
    catch(bad_alloc &e)
    {
        cout<<"Ошибка выделения памяти : "<<e.what()<<endl;
        list = NULL;
    }
    if(!list)
        cout<<"База данных не загружена\n";
    else
        count = LoadBase(list, bMenu);
    while(bMenu)
    {
        system("cls");
        cout<<"\t***МЕНЮ ПРОГРАММЫ***\n";
        cout<<"1 - Фамилии абонентов и номера их телефонов\n";
        cout<<"2 - Список номеров и адреса абонентов\n";
        cout<<"3 - Номера телефонов установленных в заданном году\n";
        cout<<"Другой символ - выход из программы\n";
        switch(_getch())
        {
        case '1':
            Item1(list, count);
            break;
        case '2':
            Item2(list, count);
            break;
        case '3':
            Item3(list, count);
            break;
        default:
            bMenu = false;
            break;
        }
        system("pause");
    }
    if(list)
        delete [] list;
    return 0;
}
 
long LoadBase(Abonent * list, bool &bRead)
{
    long count = 0;
    Abonent pst= {0};
    ifstream ifs("data.txt");
    if(!(bRead = ifs.is_open()))
        cout<<"Ошибка открытия data.txt\n";
    else
    while(!ifs.eof() && bRead)
    {
        bRead = ReadField(ifs, pst);
        if(list)
            list[count] = pst;
        count++;
    }
    ifs.close();
    return count;
}
 
bool ReadField(ifstream &ifs, Abonent &pst)
{
    if(!ifs.bad())
        ifs>>pst.Family;
    if(!ifs.bad())
        ifs>>pst.Number;
    if(!ifs.bad())
        ifs>>pst.SetYear;
    if(!ifs.bad())
        ifs>>pst.Adress;
    bool bRead = !ifs.bad();
    return bRead;
}
 
void Item1(Abonent * list, long nCount)
{
    for(long i = 0; i < nCount; i++)
    {
        cout<<list[i].Family<<" ## "
            <<list[i].Number<<endl;
    }
}
 
void Item2(Abonent * list, long nCount)//Список номеров и адреса абонентов
{
    for(long i = 0; i < nCount; i++)
    {
        cout<<list[i].Number<<" - "
            <<list[i].Adress<<endl;
    }
}
 
void Item3(Abonent * list, long nCount)
{
    int i, iYear = 0;
    cout<<"Bведите год установки : ";
    if(!(cin>>iYear) || cin.get() != '\n')
    {
        cin.clear();
        cin.sync();
        cout<<"Ошибка ввода\n";
    }
    else
    for(i = 0; i < nCount; i++)
    {
        if(list[i].SetYear == iYear)
            cout<<"Фамилия : "<<list[i].Family<<endl
                <<"## тел  : "<<list[i].Number<<endl
                <<"Адрес   : "<<list[i].Adress<<endl;
    }
}
data.txt
Фамилия1 0621112233 2001 Адрес1
Фамилия2 0622223344 2011 Адрес2
Фамилия3 0624445566 2010 Адрес3
Фамилия4 0620002233 2008 Адрес4
Фамилия5 0627772233 2001 Адрес5
Фамилия6 0628882233 2001 Адрес6
Миниатюры
Структуры данных "Абонент"  
 
Текущее время: 02:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru