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

Автоматическое изменение префикса телефонного номера в зависимости от страны. Класс Person. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Построить однонаправленный список из элементов файла http://www.cyberforum.ru/cpp-beginners/thread1188363.html
Помогите составить программу, которая строит однонаправленный список из элементов файла. Элементы списка вывести на экран.
C++ Траектория движения фигуры Подскажите,пожалуйста, нужно написать алгоритм программы, кторая задает определенную границу, за которую нельзя выходить, и внутри этой границы должна быть фигура, которая движется не выходя за границы, и при касании границы отталкивается от неё. Подскажите алгоритм или источник где можно об этом почитать http://www.cyberforum.ru/cpp-beginners/thread1188360.html
C++ Найти произведение элементов числового массива
параллельное программирование Всем привет,подскажите пожалуйста правильный ли код Найти произведение элементов числового массива #include <iostream> #include <functional> #include <algorithm>
C++ Вывод числа в ASCII
Здравствуйте, помогите пожалуйста не могу понять в чём ошибка, программа считывает символ, и выводит на экран код этого символа в ASСII и 16 ричной системе, вроде бы код правильный , но программа не работает , помогите понять в чём проблема? Вот код: #include <conio.h>//getch #include <iostream> using namespace std; int main(){
C++ Объявить класс Triangle, который бы находил периметр треугольника по его трем сторонам http://www.cyberforum.ru/cpp-beginners/thread1188331.html
1 . Подключить необходимые файлы заголовков. 2 . Объявить класс triangle . В качестве открытых элементов задайте конструктор класса, функцию присвоения значений соответствующим сторонам setSide, функцию вывода на экран результата программы printP, т. е. периметру. Значение сторон должны относиться к типу float . В качестве закрытых элементов класса задайте три стороны треугольника a, b, c . ...
C++ Поиск подстроки (Кнут-Моррис-Пратт) Добрый день! Начал реализацию КМП Текст задачи: В первой строке входного файла INPUT.TXT записана строка S, во второй строке записана строка T. Обе строки состоят только из латинских букв. Длины строк больше 0 и меньше 50 000. Входные данные: ababbababa aba Вывод: 0 5 7 подробнее

Показать сообщение отдельно
katkat95
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 11
26.05.2014, 10:58     Автоматическое изменение префикса телефонного номера в зависимости от страны. Класс Person.
Есть класс Person. Так же пару функций. Одно из заданий не работает:
Если номер телефона начинается с 0 и страна «Украина» добавить вначале телефона +38
Эта функция у меня в коде называется test_ph. Помогите найти в чем ошибка
Кликните здесь для просмотра всего текста

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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
class Person
{
private:
string fname, lname;
int age, height, weight;
string gender, country, city, phone;
public:
    void in();
    void show();
    void set_h(int height1)
    {if(height1<150 || height1>250)
    throw "wrong";
    else 
    height=height1;}
    int get_h()
    {return height;}
    void set_city(string c1)
    {city=c1;}
    string get_city()
    {return city;}
    void set_w(int weight1)
    {if(weight1<35 || weight1>150)
    throw "wrong";
    else weight=weight1;}
    void set_cou(string c)
    {country=c;}
    string get_cou()
    {return country;}
    void set_ph(string phone1)
    {phone=phone1;}
    string get_ph()
    {return phone;}
    int test_ph(string, string);
    bool tall(int);
    bool wdl(string country1);
    Person();
    Person(string,string,int,int,int,string,string,string,string);
};
Person::Person()
 
{string fname="unnamed";
 string lname="unnamed";
 age=0;
 height=0;
 weight=0;
 gender="unknown";
 string city="unknown";
 string country="unknown";
 string phone="no phone";
}
Person::Person(string a,string b,int height1,int weight1,int age1,string gender1, string c,string ci,string ph)
{fname=a;
lname=b;
set_h(height1);
set_w(weight1);
age=age1;
gender=gender1;
country=c;
city=ci;
phone=ph;
}
 
 
int Person::test_ph(string ph1, string country1)
{ ph1=get_ph();
if(ph1[0]==0 && (country1.compare("Ukraine")))
{
ph1="+38"+ph1;
}
(cout<<"Tелефон был изменен: "<<ph1);
return true;
}
 
 
 
bool Person::tall(int ab)
{if(ab>200)
return true;
else 
return false;
}
bool Person::wdl(string country1)
{int x = country1.find("Ukraine");
if(x>=0)
return true;
else 
return false;
}
void Person::show()
{ cout<<"\n Имя и Фамилия "<<fname<<" "<<lname;
  cout<<"\n Рост "<<height<<" см, Вес "<<weight<<" кг";
  cout<<"\n Возраст "<<age;
  int x=gender.find("female");
 int y=gender.find("male");
 int z=gender.find("unknown");
 if(z>=0)
 {cout<<" unknown ";goto m1;}
 if(x>=0)
 cout<<" Женский "; 
 else  
 cout<<" Мужской ";       
 m1: cout<<" \n Страна "<<country;
  cout<<"\n Город "<<city;
  cout<<"\n Телефон "<<phone;
}
void Person::in()
{
 cout<<"\n Страна "; getline(cin,country);
  cout<<"\n Город "; getline(cin,city);
  cout<<"\n Телефон "; getline(cin,phone);
  cout<<"\n Пол "; getline(cin,gender);
  cout<<"\n Имя "; cin>>fname; cout<<" Фамилия "; cin>>lname;   
  cout<<"\n Рост "; cin>>height; cout<<" Вес "; cin>>weight;
  cout<<"\n Возраст "; cin>>age;
}
void menu()
{   cout<<endl;cout<<endl;
    cout<<"\n 'a' Выше ли 200 см?";
    cout<<"\n 'b' Живет ли в Украине?";
    cout<<"\n 'c' Проверить номер телефона";
}
int main()
{
setlocale( LC_ALL,"Russian" );
Person b; 
b.in();
b.show();
cout<<endl<<" Для дополнительных вопросов нажмите 'y' ";
char c; c=getch();
if(c=='y')
{char k;
    do
{
menu();
 k=getch();
switch(k)
{
case 'a' :
    system("cls"); if(b.tall(b.get_h())==1)
    cout<<"Да ";
    else
    cout<<"Нет";
break;
case 'b': system("cls"); 
    if(b.wdl(b.get_cou())==1)
    cout<<"\n Да";
    else cout<<" \n Нет "; break;
case 'с': system("cls");  if(b.test_ph(b.get_ph(), b.get_cou())==1)
              cout<<endl;
          else cout<<"  "; break; 
}
}
while(k!='n');
}       
else
{b.in();
cout<<endl;
system("cls");
b.show();
cout<<endl;
}
_getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru