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

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

Восстановить пароль Регистрация
 
Radik93
0 / 0 / 0
Регистрация: 30.05.2012
Сообщений: 4
29.06.2012, 21:18     Файл содержит информацию о фамилиях и номерах телефонов 10 человек #1
Пожалуйста помогите доработать программу. Вот задание:
Создать текстовый файл с записями фиксированной длины.
Файл содержит информацию о фамилиях и номерах телефонов 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();
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2012, 21:18     Файл содержит информацию о фамилиях и номерах телефонов 10 человек
Посмотрите здесь:

Составить программу, которая содержит текущую информацию о книгах в библиотеке C++
C++ Текстовый файл, который содержит номера телефонов сотрудников
C++ Список внутренних телефонов организации с разбивкой по отделам.Количества отделов и телефонов внутри отдела задать самостоятельно.
C++ Составить программу, которая содержит текущую информацию о заявках на авиабилеты
C++ Создайте класс, который содержит информацию об имени и адресе
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Doctor_
 Аватар для Doctor_
232 / 232 / 69
Регистрация: 03.02.2011
Сообщений: 1,405
30.06.2012, 00:58     Файл содержит информацию о фамилиях и номерах телефонов 10 человек #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);
}
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
30.06.2012, 12:59     Файл содержит информацию о фамилиях и номерах телефонов 10 человек #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;
}
Radik93
0 / 0 / 0
Регистрация: 30.05.2012
Сообщений: 4
01.07.2012, 14:42  [ТС]     Файл содержит информацию о фамилиях и номерах телефонов 10 человек #4
system("cls")-извини, а что означает это???)
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
01.07.2012, 14:48     Файл содержит информацию о фамилиях и номерах телефонов 10 человек #5
clear screen
Yandex
Объявления
01.07.2012, 14:48     Файл содержит информацию о фамилиях и номерах телефонов 10 человек
Ответ Создать тему
Опции темы

Текущее время: 12:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru