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

Написать программу – электронную базу данных, хранящую информацию об абонентах телефонной компании - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как получить число типа int, если имеется указатель на строку с этим числом? http://www.cyberforum.ru/cpp-beginners/thread1147354.html
допустим у меня есть строка " 45"; и указатель на нее string *str; как получить из нее число 45 в виде int?
C++ Дана последовательность из М целых чисел. Определить полусумму всех чисел в интервале от 0 до 5 и кол-во отрицательных Порядок выполнения работы 1.Изучите теоретическое обоснование и проанализируйте приведенные выше примеры программ с циклами типа for, while. 2. Составьте программы циклической структуры по своему варианту (таблица 3.1). Первую задачу реализуйте двумя способами, используя операторы for и while. Задание: 1) Дана последовательность из М целых чисел. Определить полусумму всех чисел в... http://www.cyberforum.ru/cpp-beginners/thread1147352.html
Цепочка слов C++
Прошу помощи в решении задачи. Пусть слово – это последовательность от 1 до 8 символов, не включающая пробелов. Вводится n слов s1, ..., sn. Можно ли их упорядочить так, чтобы получилась «цепочка», в которой первая буква каждого слова si предыдущего слова, а последняя буква последнего слова совпадает с первой буквой первого слова? В цепочку должны входить все n слов без повторений....
В порядке возрастания напечатать те целые числа из диапазона 1..10000, которые можно представить в указанном виде C++
Задача №2. Множества В порядке возрастания напечатать те целые числа из диапазона 1..10000 , которые можно представить в виде . {n}^{2}+{m}^{2},n,m\geq 0
C++ Напечатать сначала цифры, а потом малые латинские буквы в строке http://www.cyberforum.ru/cpp-beginners/thread1147321.html
Дана строка символов St длиной не более 72, которая может состоять из цифр, малых латинских букв и знаков '+','-','*','/','.','(', ')' и пробела. Строка задается либо в диалоговом режиме, либо в виде константы. Напечатать сначала цифры, а потом малые латинские буквы, имеющиеся в этой строке. Пример: AppLe 17-9=8 WhILe K19 Print(c485) End
C++ Нарисовать рисунок Нарисовать рисунок с помощью этого кода. #include<conio.h> #include<graphics.h> #include<iostream.h> #include<stdio.h> main() { int n,i,j,*a; cout<<"vvod"; подробнее

Показать сообщение отдельно
Pavel_2011
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 66
13.04.2014, 20:23     Написать программу – электронную базу данных, хранящую информацию об абонентах телефонной компании
Ребята, напишите до конца программу. Не могу понять, как сделать сортировку. Нужно, чтобы после каждого пункта был вывод. Т.е. нужно вести улицу, я ввожу и он сразу распечатывает людей, который живут на этой улице. По телефону также. Исправьте ошибки в программе. если они конечно есть и сделайте, как она должна работать программа.

Условие программы:

1. Написать программу – электронную базу данных, хранящую информацию об абонентах телефонной компании. Каждый абонент компании описывается следующими полями: номер телефона, фамилия, имя, отчество, улица, дом, квартира. Программа должна выполнять следующие действия:
• ввод с клавиатуры данных не менее чем о 8 людях (в массив структур);
• вывод данных об абонентах, чей номер начинается с заданных четырех цифр (цифры вводятся с клавиатуры);
• вывод данных о людях, проживающих на улице, название которой вводится пользователем с клавиатуры;
• упорядочить данные массива по номерам телефонов в порядке возрастания и вывести все данные массива на экран.

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
#include <iostream>
#include <windows.h>
#include <string.h>
#include <iomanip>
using namespace std;
 
const int nmax=100;
struct person //Объявление структуры
{
    char   fam[30], //Фамилия
               name[25], //Имя
               otch[25], //отчество
               street[30], //Улица
               phone[12];
    int   house, flat;//номер дома, квартиры, номер телефона
};
 
int vvod(person spisok[], int n)
{ 
  int  i=0;
  cout<<"Введите фамилию абонента: ";
  while(cin>>spisok[i].fam,strcmp(spisok[i].fam,"end")!=0&&i<n)
   {
     cout<<"Введите имя: "; SetConsoleCP(1251); cin>>spisok[i].name; SetConsoleCP(866);
     cout<<"Введите отчество: "; SetConsoleCP(1251); cin>>spisok[i].otch;SetConsoleCP(866);
     cout<<"Введите улицу: "; SetConsoleCP(1251); cin>>spisok[i].street; SetConsoleCP(866);
     cout<<"Введите номер дома: ";SetConsoleCP(1251); cin>>spisok[i].house; SetConsoleCP(866);
     cout<<"Введите номер квартиры: ";SetConsoleCP(1251); cin>>spisok[i].flat;SetConsoleCP(866);
     cout<<"Введите номер телефона: ";SetConsoleCP(1251); cin>>spisok[i].phone;SetConsoleCP(866);
     i++;
     if(i<n) cout<<"Введите следующую фамилию: ";
     else break;
   }
  if (i<=n) return i;
  return n;
 }
 
void print(person spisok[], int n)
 
{SetConsoleCP(866);
 cout<<"Исходная информация об абонентах"<<endl;
 cout<<setw(13)<<left<<"Фамилия"<<setw(13)<<"Имя"<<
 setw(13)<<"Отчество"<<setw(12)<<"Улица"<<setw(7)<<"Дом"<<
 setw(8)<<"Квартира"<<setw(5)<<"Телефон"<<endl;
 for (int i=0; i<n; i++)
 {
    cout<<setw(13)<<spisok[i].fam<<setw(13)<<
  spisok[i].name<<setw(13)<<spisok[i].otch<<setw(12)<<spisok[i].street<<setw(7)<< spisok[i].house <<setw(8)
 << spisok[i].flat<<setw(5)<< spisok[i].phone <<endl;   
 }
}
 
 
//Функция выводит данные об абонентах, проживающих на улице, 
//название которой вводится с клавиатуры
void dataStreet(char streetname[],person spisok[], int n)
{SetConsoleCP(866);
for (int i=0;i<n; i++)
    if (strcmp(spisok[i].street, streetname)==0) 
        cout<<setw(25)<<spisok[i].fam<<setw(20)<<spisok[i].name<<setw(25)
        <<spisok[i].otch<<setw(30)
        <<spisok[i].street<<setw(4)<<spisok[i].house<<setw(4)
        <<spisok[i].flat<<setw(10)<<spisok[i].phone<<endl;
}
 
//Функция сортировки данных массива по телефону 
void sortPhone(person spisok[], int n) //порядке (пузырек)
{ person z;
 bool fl;
 do
    { fl=1; //Флаг поднять
      for  (int i=0; i<n-1;i++)
        if(strcmp(spisok[i].phone,spisok[i+1].phone)>0)
    //Если они расположены не верно, то переставляем их местами
        {   
            z=spisok[i];
            spisok[i]=spisok[i+1];
            spisok[i+1]=z;
            fl=0; //Флаг опустить
            }
    }
    while (!fl); //Если флаг не опускался, то массив отсортирован
}
 
void printNumber(person spisok[], int n, char phonenum[])
{
    char search[4];
    for (int i=0;i<n; i++){
        for (int j=0;j<4;j++) search[j]=spisok[i].phone[j];
    if (strcmp(search, phonenum)==0) 
        cout<<
        setw(25)<<spisok[i].fam<<setw(20)<<spisok[i].name<<setw(25)<<spisok[i].otch<<setw(30)<<spisok[i].street<<setw(4)<<spisok[i].house<<setw(4)<<spisok[i].flat<<setw(10)<<spisok[i].phone<<endl;
    }
}
 
void main()
{
  setlocale(LC_ALL, "Russian");
  const int nmax=100; //Максимальный размер массива 
  person spisok[nmax];
  int i=0, n; //Число абонентов
  cout<<"Введите число абонентов от 1 до "<<nmax<<endl;
  cin>>n;
  int k= vvod(spisok,n);
  SetConsoleCP(866);
  print(spisok,k);
  char streetname[30],phonenum[4]; 
  cout<<"Введите первые 4 цифры"<<endl;
  cin>>phonenum;
  printNumber(spisok, k,phonenum);
  cout<<"Введите название улицы для поиска абонентов"<<endl;
  cin>>streetname;
  cout<<" Абоненты, проживающие на улице "<<streetname<<endl;
  dataStreet(streetname, spisok, k);
  
    //сортировка массива данных по Телефону
  sortPhone(spisok,k);
    //Вывод отсортированного массива на экран
  print(spisok,k);
  system ("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru