Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Radik93
0 / 0 / 0
Регистрация: 30.05.2012
Сообщений: 4
1

Файл содержит информацию о фамилиях и номерах телефонов 10 человек

29.06.2012, 21:18. Просмотров 1149. Ответов 4
Метки нет (Все метки)

Пожалуйста помогите доработать программу. Вот задание:
Создать текстовый файл с записями фиксированной длины.
Файл содержит информацию о фамилиях и номерах телефонов 10 человек.
Написать программу, реализующую следующие функции:
1.Определение телефона некоторого человека. Если телефон есть, то выводит его на экран, иначе выдает соответствующее сообщение;
2.Определение человека с заданным номером телефона. Если такой человек есть, то выводит информацию о нем на экран, иначе выдает соответствующее сообщение;
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
41
42
43
44
45
46
# include <stdio.h>
# include <conio.h>
# include <string.h>
struct abonent
{
char fio[20];
int nomer[8];
};
main()
{
struct abonent name[5];
int i,n,s;
FILE*f;
clrscr();
f=fopen("abonent.txt","r");
if(f==NULL)
{
puts("Fail ne naiden!");
 
}
puts("\n Vvod dannuh");
for(i=0;i<5;i++)
{
printf("\n Nomer:");
scanf("%d",&name[i].nomer);
printf ("\n Familia:");
scanf("%s",&name[i].fio);
}
printf("\n Vvedite nomer telefona-");
scanf("%d",&name[i].nomer);
 for(i=0;i<5;i++)
 
  s==name[i].nomer;
 {
 if(s==1)
 printf("\nThis people have!");
 printf("\n Information the people:");
 printf("\nFamilia the piople: %s",&name[i].fio);
 }
 
  if(s==0)
 {
 printf("\n Takogo people net!");
 }
 getch();
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2012, 21:18
Ответы с готовыми решениями:

Структуры данных (создание, просмотр, дополнение и извлечения данных из файла, содержащего информацию о номерах телефонов сотрудников учреждения,ФИО)
Нужно создать программу, которая бы обеспечивала создание, просмотр, дополнения...

Текстовый файл, который содержит номера телефонов сотрудников
A. Сформировать текстовый файл, который содержит номера телефонов сотрудников...

Файл input.txt содержит следующую информацию:
Файл input.txt содержит следующую информацию: 1 строка - количество элементов...

Файлы: вывести информацию об абитуриентах, проживающих в деревнях с населением выше 30 человек
9. Ведомость абитуриентов содержит ФИО, населенный пункт проживания, суммарный...

Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым
Добрый день, помогите пожалуйста сделать вот такую программу. Даны натуральное...

4
Doctor_
236 / 235 / 142
Регистрация: 03.02.2011
Сообщений: 1,436
30.06.2012, 00:58 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
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
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <string.h>
 
int main() {
    struct abonent {
        char fio[20];
        int nomer;
        };
    FILE *fp;
    abonent fail;
    int num, x = 0;
    char fioo[20];
    do {
        system("cls");
        printf("1. Dobavitj zapisj\n");
        printf("2. Prosmotretj spisok\n");
        printf("3. Iskatj cheloveka po nomeru telefona\n");
        printf("4. Iskatj cheloveka po imeni\n");
        printf("5. Vyjti\n");
        scanf("%d",&x);
        switch(x) {
                  case 1:
                       system("cls");
                       printf("Zapolnite trebujemje!\n");
                       printf("Nomer telefona: ");
                       scanf("%d",&fail.nomer);
                       printf("Familija: ");
                       scanf("%s",&fail.fio);
                       fp=fopen("abonent.txt","a");
                       fwrite(&fail,sizeof(fail),1,fp);
                       fclose(fp);
                  break;
                  case 2:
                       system("cls");
                       fp=fopen("abonent.txt","r");            
                       while(fread(&fail,sizeof(fail),1,fp)) {
                           printf("%9d |%12s ",fail.nomer,fail.fio);  
                       printf("\n------------------------------\n");                           
                       }
                       fclose(fp);
                       getche();
                  break;
                  case 3:
                       system("cls");
                       printf("Vvedite nomer telefona: ");
                       scanf("%d",&num);
                       system("cls");
                       printf("Vy vveli nomer %10d\n",num);
                       fp=fopen("abonent.txt","r");      
                       while(fread(&fail,sizeof(fail),1,fp)) {
                           if(num==fail.nomer) {
                               printf("%9d |%12s ",fail.nomer,fail.fio);  
                               printf("\n------------------------------\n");
                               }
                               else {
                                    printf("Cheloveka s takim nomerom net\n");
                                    }
                        }
                        fclose(fp); 
                        getch();
                  break;
                  case 4:
                       system("cls");
                       printf("Vvedite nomer telefona: ");
                       scanf("%s",&fioo);
                       system("cls");
                       printf("Vy vveli fio %10s\n",fioo);
                       fp=fopen("abonent.txt","r");      
                       while(fread(&fail,sizeof(fail),1,fp)) {
                           if(strstr(fioo,fail.fio)) {
                               printf("%9d |%12s ",fail.nomer,fail.fio);  
                               printf("\n------------------------------\n");
                               }
                               else {
                                    printf("Cheloveka s takim nomerom net\n");
                                    }
                        }
                        fclose(fp); 
                        getch();
                  break;     
                  }
        }
        while(x!=5);
}
1
David Sylva
1296 / 958 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
30.06.2012, 12:59 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
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
#include <iostream> 
#include <string> 
#include <fstream> 
using namespace std; 
 
struct abonent   // структура абоенент
{ 
    string name; // фамилия 
    int number;   // номет телефона
}; 
 
int main() 
{   
    setlocale(0, "rus");
    const int size = 10; //количество абонентов
    abonent ab[size];  // 
    ofstream outfile("Text.txt");  // текстовый файл в который будем записывать данные
    int var;  // переменная на меню
    string sur; // переменная для ввода фамилии
    int tel;    // переменная для ввода телефона
    int i = 0;  // счётчик количества абонентов
    bool flag = false;  // флаги совпадений в поиске
    bool flag1 = false; 
 
    while(true)  
    {
 
    cout << "         Меню         " << endl; 
    cout << "1 Ввести данные абонента ( английский язык ) " << endl; 
    cout << "2 Поиск абонента по фамилии " << endl;  
    cout << "3 Поиск телефона по номеру телефона " << endl; 
    cout << "4 Вывести весь список абонентов " << endl;
    cout << "5 Выход из программы " << endl; 
    cout << "Введите ваш вариант " << endl; 
    cin >> var; 
 
    switch(var) 
    { 
    case 1: 
        cout << "Введите фамилию абонента " << endl; // вводим информацию
        cin >> ab[i].name; 
        cout <<"Введите номер абонента " << endl; 
        cin >> ab[i].number; 
        outfile << ab[i].name << " " << ab[i].number << endl; // сохраняем информацию в текстовый файл
        i++;  
        break;
    case 2: 
        cout << "Введите фамилию для поиска  " << endl; 
        cin >> sur;  
        for ( int j = 0; j < i; j++)  // поиск
            if(sur == ab[j].name)  
            {
                cout <<" Номер абонента с такой фамилией " <<  ab[j].number << " ";   
                cout << endl;
                flag = true;   // если найдено ставим флаг тру
            }  
            if( flag == false)  
                cout << "Абонента с такой фамилией нет в списке " << endl << endl;  
               break;
 
    case 3: 
        cout << "Введите номер телефона " << endl; 
        cin >> tel; 
        for ( int j = 0; j < i; j++)  
            if( tel == ab[j].number) // поиск номера телефона
            { 
                cout <<"Фамилия абонента с данным номером " << ab[j].name << " ";  
                cout << endl;
                flag1 = true; 
            }  
            if(flag1 == false)  
                cout << "Такого номера в списке нет "<< endl;  
                break; 
 
    case 4: 
        for ( int j = 0; j < i; j++)  // выводим весь список
            cout << ab[j].name << " " << ab[j].number << endl;  
            cout << endl;
            break; 
 
    case 5:  
        cout << "До свидания " << endl; // выход
        exit(1);
        break; 
    default: 
        cout << "Не коретный ввод данных  " << endl; // при некоретнеом вводе
 
    }   
 
    }
    return 0;
}
2
Radik93
0 / 0 / 0
Регистрация: 30.05.2012
Сообщений: 4
01.07.2012, 14:42  [ТС] 4
system("cls")-извини, а что означает это???)
0
Петррр
6161 / 3462 / 897
Регистрация: 28.10.2010
Сообщений: 5,926
01.07.2012, 14:48 5
clear screen
0
01.07.2012, 14:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2012, 14:48

Составить программу, которая содержит информацию о сотрудниках
Язык С или С++ Составить программу, которая содержит информацию о сотрудниках...

Список внутренних телефонов организации с разбивкой по отделам.Количества отделов и телефонов внутри отдела задать самостоятельно.
Список внутренних телефонов организации с разбивкой по отделам.Количества...

Создайте класс, который содержит информацию об имени и адресе
Создайте класс, который содержит информацию об имени и адресе. Храните всю эту...


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

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

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