Форум программистов, компьютерный форум 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

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

13.04.2014, 20:23. Просмотров 891. Ответов 0
Метки (Все метки)

Ребята, напишите до конца программу. Не могу понять, как сделать сортировку. Нужно, чтобы после каждого пункта был вывод. Т.е. нужно вести улицу, я ввожу и он сразу распечатывает людей, который живут на этой улице. По телефону также. Исправьте ошибки в программе. если они конечно есть и сделайте, как она должна работать программа.

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

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");
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru