Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 29.03.2012
Сообщений: 40
1

Телефонная книга

16.10.2013, 00:38. Показов 563. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Pascal
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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
uses crt;
const n=101;
      m=15;
 
 type tk=record
    phn: array [1..m] of string[50];
    fio: string[50];
    adr: string[50];
    end;
 
  Var  abns: array [1..n] of tk;
  data,str,phone,txt,p: string;
  f: text;
  o,i,z,j,k,y: integer;
 
 Procedure addabn;
Var i,o: integer;
  begin
       inc(k);
 append(f);
 Writeln(f,p);
     Writeln('‚ўҐ¤ЁвҐ Ё¬п ');
      Readln(data); Write(f,data,' ');
      Writeln('‚ўҐ¤ЁвҐ *¤аҐб');
      Readln(data); Write(f,data,' ');
      Writeln('‘Є®«мЄ® ⥫Ґд®**ле *®¬Ґа®ў ўл е®вЁвҐ ўўҐбвЁ?');
      Read(o);
       Writeln('‚ўҐ¤ЁвҐ ⥫Ґд®**л© *®¬Ґа ');
     For i:=1 to o do
    begin  Readln(data); Write(f,data,' '); end;
 close(f);
end;
 
 Procedure LIST;
 begin
Reset(f);
  repeat
 Readln(f,txt);
 Writeln(txt);
 Until eof(f);
 Close(f);
  readkey;
  end;
 
  Procedure close;
 begin
  append(f);
  inc(z);
   Writeln(f,k);
 
 end;
 
   Procedure deleteab;
   var i,max,maxi,prior: integer;
    v:char;
 begin
    Writeln('‚ўҐ¤ЁвҐ Ё¬п ');
      Readln(abns[101].fio);
      Writeln('‚ўҐ¤ЁвҐ *¤аҐб ');
      Readln(abns[101].adr);
       Writeln('‚ўҐ¤ЁвҐ ⥫Ґд®**л© *®¬Ґа');
       Readln(abns[101].phn[1]);
      max:=0; maxi:=0;
      for i:=1 to k do
     begin
     prior:=0;
    For o:=1 to m do
    If (abns[i].phn[o]=abns[101].phn[1]) then
        inc(prior);
     if   (abns[i].fio=abns[101].fio) then
      inc(prior);
       If (abns[i].adr=abns[101].adr) then
       inc(prior);
        If prior>max then
         begin
         max:=prior;
         maxi:=i;
         end;
         end;
          If max<>0 then
         begin
       For o:=1 to m do
       Writeln(abns[maxi].phn[o]);
         Write(abns[maxi].fio,' ');
         Write(abns[maxi].adr,' ');
        end;
     Writeln('—в® **¤® Ё§¬Ґ*Ёвм? n-*®¬Ґа, f-Ё¬п, a-*¤аҐб');
     v:=readkey;
     Case v of
     'n':
     begin
 Writeln('‚ўҐ¤ЁвҐ *®¬Ґа, Є®в®ал© **¤® Ё§¬Ґ*Ёвм ');
 Read(phone);
      for o:=1 to m do
 If (abns[maxi].phn[o]=phone)  then
  begin
   Writeln('‚ўҐ¤ЁвҐ *®ўл© *®¬Ґа  ');
   Read(abns[maxi].phn[o]);
   end else
   Writeln('’*Є®Ј® *®¬Ґа* *Ґ бгйҐбвўгҐв ');
     end;
     'f':
     Begin
     Writeln('‚ўҐ¤ЁвҐ *®ў®Ґ Ё¬п  ');
     Read(abns[maxi].fio);
     end;
     'a':
     Begin
     Writeln('‚ўҐ¤ЁвҐ *®ўл© *¤аҐб  ');
     Read(abns[maxi].adr);
     end;
     end;
 end;
 
  Procedure x;
   var max,maxi,i,prior: integer;
 begin
     Writeln('‚ўҐ¤ЁвҐ Ё¬п ');
      Readln(abns[101].fio);
      Writeln('‚ўҐ¤ЁвҐ *¤аҐб ');
      Readln(abns[101].adr);
       Writeln('‚ўҐ¤ЁвҐ ⥫Ґд®**л© *®¬Ґа ');
      Readln(abns[101].phn[1]);
      max:=0; maxi:=0;
      for i:=1 to k do
     begin
     prior:=0;
 For o:=1 to m do
    If (abns[i].phn[o]=abns[101].phn[1])  then inc(prior);
           if (abns[i].fio=abns[101].fio) then inc(prior);
           If (abns[i].adr=abns[101].adr) then inc(prior);
        If prior>max then
         begin
         max:=prior;
         maxi:=i;
         end;
     end;
     abns[maxi].fio:='';
     abns[maxi].adr:='';
    For o:=1 to 15 do
    abns[maxi].phn[o]:='';
       end;
 
 
 Procedure search;
 var q,max,maxi,i,prior: integer;
 begin
      Writeln('‚ўҐ¤ЁвҐ Ё¬п ');
      Readln(abns[101].fio);
      Writeln('‚ўҐ¤ЁвҐ *¤аҐб ');
      Readln(abns[101].adr);
      Writeln('‚ўҐ¤ЁвҐ ⥫Ґд®**л© *®¬Ґа ');
      Readln(abns[101].phn[1]);
      max:=0; maxi:=0;
      for i:=1 to k do
     begin
     prior:=0;
    For o:=1 to m do
    If (abns[i].phn[o]=abns[101].phn[1])   then  inc(prior);
           if (abns[i].fio=abns[101].fio) then inc(prior);
           If (abns[i].adr=abns[101].adr) then inc(prior);
        If prior>max then
         begin
         max:=prior;
         maxi:=i;
         end;
     end;
         If max<>0 then
         begin
         For o:=1 to m do
         Write(abns[maxi].phn[o],' ');
         Write(abns[maxi].fio,' ');
         Write(abns[maxi].adr,' ');
         end;
      readkey;
          end;
 
Procedure keydown;
var key:char;
  begin
  key:=readkey;
    case Key of
  #9: addabn;
  'x': x;
   'l': LIST;
    #27: close;
     'd': deleteab;
        's': search;
    end;
     end;
 
 
    Procedure loading;
 begin
   Reset(f);
{ Repeat
 Read(f,str);
 For i:=1 to k do
  While str[j]<>' ' do Begin inc(j);  abns[i].fio:=abns[i].fio+str[j]; end;
  While str[j]<>' ' do Begin inc(j);  abns[i].adr:=abns[i].adr+str[j]; end;
 For o:=1 to m do
  While str[j]<>' ' do
   abns[i].phn[o]:=abns[i].phn[o]+str[j];
   Until eof(f);       }
For i:=1 to k do
Begin
Read(f,abns[i].fio);
Read(f,abns[i].adr);
o:=0;
Repeat
Inc(o);
Read(f,abns[i].phn[o]);
Until eoln(f);
 end;
 end;
 
 begin
 assign(f,'phonesbook.txt');
 Reset(f);
 Read(f,k);
  Repeat
 clrscr;
  loading;
 Writeln('„«п ўў®¤* *Ў®*Ґ*в* **¦¬ЁвҐ Є«*ўЁиг TAB');
   Writeln('„«п Їа®б¬®ва* бЇЁбЄ* *Ў®*Ґ*в®ў **¦¬ЁвҐ Є«*ўЁиг l');
    Writeln('„«п ўл室* Ё§ Їа®Ја*¬¬л **¦¬ЁвҐ Є«*ўЁиг  ESC');
       Writeln('„«п Ё§¬Ґ*Ґ*Ёп ¤***ле *Ў®*Ґ*в* ўўҐ¤ЁвҐ Ї®«*®Ґ Ё¬п *Ў®*Ґ*в* Ё **¦¬ЁвҐ Є«*ўЁиг d');
        Writeln('„«п г¤*«Ґ*Ёп *Ў®*Ґ*в* ўўҐ¤ЁвҐ Ї®«*®Ґ Ё¬п *Ў®*Ґ*в* Ё **¦¬ЁвҐ Є«*ўЁиг x');
         Writeln('„«п Ї®ЁбЄ* *Ў®*Ґ*в* ўўҐ¤ЁвҐ «оЎго Ё*д®а¬*жЁо Ї®б«Ґ **¦*вЁп Є«*ўЁиЁ s');
 keydown;
Until z<>0;
  end.
Извините за сбитую кодировку, суть программы видна и без них.
Надо, используя текстовой файл, куда будут сохраняться Имя Адрес и Телефоны абонента, составить массив записей с которым происходят операции редактирования, удаления, создания нового.

Программа нормально работает без использования файлов, но не получается нормально её использовать с файлами. 1) Не могу записать в одну строку несколько номеров.
2) Не работает теперь ни одна операция с редактированием пользовательских данных
3) Процедура loading вроде как работает неправильно.

Срок сдачи послезавтра, буду благодарен за любую помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2013, 00:38
Ответы с готовыми решениями:

Телефонная книга
Есть .txt файл в котором на каждой строке написаны имя и телефон человека разделённые...

Телефонная книга
Здравствуйте! Есть такое задание: по списку содержащему фамилии, имена и отчества, рабочий и...

Телефонная книга (массив записей)
Необходимо написать программу «Телефонная книга». Требования к программе: Программа должна...

Работа с типизированным файлом - телефонная книга
Создать базу данных состоящую из записей след типа ФИО №телефона Адрес Создать программу...

0
16.10.2013, 00:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2013, 00:38
Помогаю со студенческими работами здесь

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

Как лучше реализовать функцию удаления контакта (программа телефонная книга)
Делаю итоговую работу. Нужно написать телефонную книгу, в которую можно будет добавлять контакты,...

Телефонная книга
Здравствуйте уважаемые, прошу вашей помощи,в весьма тривиальной задаче, которая тем не менее...

Телефонная книга
import pickle import sys address_book_data = {} #создаем словарь def...

Телефонная книга
Вася решил записать телефоны всех своих друзей, чтобы потом автоматизировать поиск нужного номера....

Телефонная книга
Телефонная книга. Коля стал замечать, что иногда в его телефонную книгу попадают номера в...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru