Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.84
MR_Andrew
12 / 12 / 2
Регистрация: 19.12.2009
Сообщений: 115
#1

Работа с файлами. Телефонная книга - C++

07.04.2010, 00:24. Просмотров 3221. Ответов 2
Метки нет (Все метки)

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

Начал с А. И сразу споткнулся.
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
#include <iostream>
#include <fstream.h>
#include <string.h>
#include <stream.h>
 
 
struct phone
{
int num;
};
 
struct imya
{
char name;
};
 
 
struct year
{
int god;
};
 
 
int main()
{
phone ph1;  //определение номера
//получить данные от пользователя
 
cout <<"\nVvedite Nomer ";
cin >>ph1.num;
 
 
imya nh1;
 
cout <<"\nVvedite Imya ";
cin >>nh1.name;
 
year yh1;
 
cout <<"\nVvedite God ";
cin >>yh1.god;
 
cout <<"\nfamiliya: "<< nh1.name <<" Telefon: "<< ph1.num <<" God ustanovki"<< yh1.god;
 
ofstream file("C:\\1.txt");
file << nh1.name;
file << ph1.num;
file << yh1.god;
return 0;
}
В блоке
Код
cout <<"\nVvedite God ";
cin >>yh1.god;
оно просто перескакивает через cin. Причем дело не в самом блоке, переставлял местами - перескакивает именно на последнем. В файл пишет. И еще фокус: из фамилии запоминает только первую букву. Номер нормально, и в файл пишет. А тут только 1-ю. Что это оно так? И еще надо огранизовать, чтоб много фамилий вводить. Но, думаю, просто в цикл While загнать, но как реализовать еще не придумал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2010, 00:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с файлами. Телефонная книга (C++):

Работа с файлами: телефонная книга - C++
Здравствуйте участники форума! Помогите, если сможете, разобраться какие ошибки в программе. Задание такое: составить программу...

Телефонная книга - C++
помогите найти хоть пример кода программа телефонная книга,имеет менюшку ее функционал:добавление\удаление абонента,его редактирование ...

Телефонная книга - C++
В общем, ребят, мне надо сделать подобие телефонной книги. Для записи контактов определить структуру: {Фамилия,Имя,Адрес,Номер телефона}....

Класс Телефонная Книга - C++
Доброго времени суток форумчане! Получил следующее задание, но столкнулся с проблемой.. 1) опишите класс &quot;контакт&quot;, описывающий имя,...

Телефонная книга сортировка пузырьком - C++
Сортировка массива записей (телефонной книги) методом Пузырька. Записи считываются из текстового файла, каждая запись состоит из двух...

Не обращается к функции из класса. Проект телефонная книга - C++
Здравствуйте! Прошу помощи так как проект нужно сдавать уже на днях :( В данном проекте функции уже написаны, но существует следующая...

2
ureman
2 / 2 / 0
Регистрация: 27.01.2010
Сообщений: 17
07.04.2010, 08:23 #2
я конечно тоже не мастер, но не проще ли было бы объявисть целую стурктуру и писать все сразу в нее.
а первый символ потому что массив char у тебя на 1 символ. я не прав?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
struct book
{
char name [50];
int num;
int god;
};
int main()
{
book user[5]; //5 структур типа book, типа 5 записей в книжке
    for (int i=0;i<5;i++)
        {
              cout <<"\nVvedite Nomer ";
              cin >>user[i].num;
 
             cout <<"\nVvedite Imya ";
             cin >>user[i].name;
 
             cout <<"\nVvedite God ";
             cin >>user[i].god;
         }
ну а дальше по желанию
1
MR_Andrew
12 / 12 / 2
Регистрация: 19.12.2009
Сообщений: 115
09.04.2010, 20:32  [ТС] #3
Все готово

Если кого интересует - коды, может еще понадобиться кому-то.
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
#include <iostream.h>
#include <fstream.h>
 
class Klient
{
    public:
    float num;
    char* name;
    int year;
        
    Klient(){};
    
    void Getvalue(){
       cin>>name>>num>>year;
       }
 
    ~Klient(){}
  };
 
//__________________________________________________________
 
void main(){
 int n, i;
 cout<<"Vvedit' kil'kist' korystuvachiv";
 cin>>n;
 
   ofstream File("c:\\BAZA1.txt");
 
 Klient **A=new Klient* [n];
 
 for (i=0;i<n;i++){
   cout<<"\nInput surname, number, year of "<<(i+1)<<" user\n";
   A[i]=new Klient();
   A[i]->Getvalue();
 
   File<<A[i]->num<<"\t"<<A[i]->name<<"\t"<<A[i]->year<<"\n";
   }
 
 File.close();
}
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
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <conio.h>
 
 
class Klient
{
    public:
    float num;
    char* name;
    int year;
 
    Klient(){}
    ~Klient(){}
  };
 
//__________________________________________________________
 
int main(){
 
 int n,k, i=0, l=0, search1;
 char *search;
 
 cout<<"Vyberit' sposib poshuku (1-surname, year-another number )\n\n";
 cin>>k;
 if (k==1){cout<<"Input surname ";
 
       cin>>search;
       }
 else{    cout<<"Input year ";
 
      cin>>search1;
       }
 
 ifstream File("c:\\BAZA1.txt");
 
 Klient *A[50];
 
 switch (k){
   case 1:
   while(!File.eof()){
 
     A[i]=new Klient();
 
     File>>A[i]->num>>A[i]->name>>A[i]->year;
     if (strcmp(A[i]->name,search)==0){
       cout<<"\n"<<A[i]->num<<"\t"<<A[i]->name<<"\t"<<A[i]->year<<"\n";
       
       }
     i++;
 
     }  break;
   case 2:
   while(!File.eof()){
 
     A[i]=new Klient();
 
     File>>A[i]->num>>A[i]->name>>A[i]->year;
     if ((A[i]->year)>=search1) l++;
     i++;
     }
    cout<<"k-t' telefoniv z "<<search1<<" roku "<<l;
    break;
     }
  File.close();
getch();
return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2010, 20:32
Привет! Вот еще темы с ответами:

Телефонная книга: просмотр, поиск, добавление записей - C++
Доброго вечера. Такая проблема. Завтра в универ нужно сдать программу, с которой вышла полная запара, т.к. не имею представления как...

Телефонная книга: подскажите алгоритм быстрого поиска контактов - C++
привет всем! какой самый быстрий алгоритм поиска контактов.и какие вы предлагайте допустим у нас имена Anton Aren Arsen Arkadi ...

Структура "Телефонная книга", файловый ввод/вывод - C++
#define _CRT_SECURE_NO_WARNINGS #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstdlib&gt; #include &lt;tchar.h&gt; #include &lt;conio.h&gt; ...

Написал класс "Телефонная книга". Но при работе вылетает ошибка. помогите разобраться. - C++
Доброго времени суток! Пацаны, дайте подсказку. Пишу телефонную книгу с классами и у меня возникла проблемка (чтение из файла по полям...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru