Телефонный справочник - Pascal (10956)

Узнай цену своей работы

Формулировка задачи:

Создать массив записей типа TPhoneRecord размером 10 элементов. Запись TPhoneReocrd должна содержать след. поля: name: string; surname:string; phone:longint; Создать функции добавления, удаления и изменения элементов записи TPhoneRecord. Программа должна выводить на экран возможные действия: 1. Добавить запись в массив 2. Удалить запись из массива 3. Изменить запись в массиве 4. Вывести записи на экран 5. Выход По результатам нажатия цифры программа должна отработать выбранное задание и заново вернуться в меню выбора. пс: я просто болел и поэтому не могу сделать на экзамен её, говорят она очень большая ;[ мб есть у кого заготовки или решённая уже...

Решение задачи: «Телефонный справочник»

textual
Листинг программы
uses crt;
const max=50;
      b=['A'..'Z','a'..'z'];{допустимые буквы}
      cf=['0'..'9'];{цифры}
type
TPhoneRecord=record
             name:string;
             surname:string;
             phone:string;{сделаем строкой, вдруг в номере, с учетом например кода
                            цифр больше 10, или первая из 10 цифр болше 2}
             end;
mas=array[1..max] of TPhoneRecord;
 
procedure ProvNam(st:string;var f:byte);{проверка букв}
var i:byte;
begin
f:=0;
for i:=1 to length(st)do
if not(st[i] in b) then{если не буква}
 begin
  writeln('Error!');
  f:=1;
  break;
 end;
end;
 
procedure ProvNom(st:string;var f:byte);{проверка цифр}
var i:byte;
begin
f:=0;
for i:=1 to length(st)do
if not(st[i] in cf) then{если не цифра}
 begin
  writeln('Error!');
  f:=1;
  break;
 end;
end;
 
procedure Add(var t:mas;var n:byte);
var i,f:byte;
begin
clrscr;
writeln('Добавить запись.');
n:=n+1;
repeat
write('Name: ');readln(t[n].name);
ProvNam(t[n].name,f);{проверка}
until f=0;{пока не введем правильно}
repeat
write('Surname: ');readln(t[n].surname);
ProvNam(t[n].surname,f);
until f=0;
repeat
write('Phone: ');readln(t[n].phone);
ProvNom(t[n].phone,f);
until f=0;
write('Press Enter...');
readln;
end;
 
procedure Del(var t:mas;var n:byte;k:byte);
var i:byte;
begin
clrscr;
repeat
write('Удалить запись № ');
readln(k);
if k>n then writeln('В массиве нет ',k,' записей. Повторите ввод.');
if k<1 then writeln('Некорректное число. Повторите ввод.');
until k in [1..max];
for i:=k to n-1 do
t[i]:=t[i+1];
n:=n-1;
write('Press Enter...');
readln;
end;
 
procedure Change(var t:mas;n:byte;k:byte);
var f:byte;
begin
clrscr;
repeat
write('Заменить запись № ');
readln(k);
if k>n then writeln('В массиве нет ',k,' записей. Повторите ввод.');
if k<1 then writeln('Некорректное число. Повторите ввод.');
until k in [1..max];
writeln('Введите новые данные:');
repeat
write('Name: ');readln(t[k].name);
ProvNam(t[k].name,f);
until f=0;
repeat
write('Surname: ');readln(t[k].surname);
ProvNam(t[k].surname,f);
until f=0;
repeat
write('Phone: ');readln(t[k].phone);
ProvNom(t[k].phone,f);
until f=0;
write('Press Enter...');
readln;
end;
 
procedure Print(var t:mas;n:byte);
var i:byte;
begin
clrscr;
writeln('Список абонентов:':30);
writeln;
writeln('-----------------------------------------');
writeln('|    Фамилия    |    Имя    |  Телефон  |');
writeln('-----------------------------------------');
for i:=1 to n  do
 begin
  gotoXY(1,whereY);  write('| ',t[i].name);
  gotoXY(17,whereY); write('| ',t[i].surname);
  gotoXY(29,whereY); write('| ',t[i].phone);
  gotoXY(41,whereY); write('| ');
  writeln;
 end;
writeln('-----------------------------------------');
write('Press Enter...');
readln
end;
var a:mas;
    n,i,k,f:byte;
    w:char;
begin
clrscr;
n:=10;
writeln('Введите данные:');
for i:=1 to n do
 begin
  writeln('Запись ',i);
  repeat
  write(' Name: ');readln(a[i].name);
  ProvNam(a[i].name,f);
  until f=0;
  repeat
  write(' Surname: ');readln(a[i].surname);
  ProvNam(a[i].surname,f);
  until f=0;
  repeat
  write(' Phone: ');readln(a[i].phone);
  ProvNom(a[i].phone,f);
  until f=0;
 end;
write('Press Enter...');
readln;
clrscr;
repeat
clrscr;
writeln('Выберите действие:');
writeln;
writeln('1-Добавить запись');
writeln('2-Удалить запись');
writeln('3-Изменить запись');
writeln('4-Вывести записи на экран');
writeln('другие-Выход');
writeln;
w:=readkey;
case w of
'1':Add(a,n);
'2':Del(a,n,k);
'3':Change(a,n,k);
'4':Print(a,n);
else exit;
end;
until not(w in ['1'..'4']);
end.

Объяснение кода листинга программы

Этот код написан на языке Pascal и представляет собой программу для работы с телефонным справочником. Он содержит несколько процедур, которые выполняют различные действия: добавление записи, удаление записи, изменение записи и вывод записей на экран. Для начала, объявляются переменные max, b, cf и тип TPhoneRecord. Переменная max определяет максимальное количество записей в справочнике (50 в данном случае). Переменная b содержит допустимые буквы (от A до Z, а также от a до z). Переменная cf содержит допустимые цифры (от 0 до 9). Тип TPhoneRecord определяет структуру записи в справочнике: имя, фамилия и телефон. Далее, создается массив mas типа TPhoneRecord, который будет содержать все записи справочника. Затем, определяются процедуры ProvNam и ProvNom, которые проверяют правильность ввода имени и фамилии соответственно. Если введенная буква или цифра не соответствует допустимым, то выводится сообщение об ошибке и переменная f устанавливается в значение 1, что означает, что ввод некорректен. Процедура Add добавляет новую запись в справочник. Она запрашивает у пользователя ввод имени, фамилии и телефона, затем проверяет их на корректность. Если все введено правильно, то добавляется новая запись в массив mas. Процедура Del удаляет запись из справочника. Пользователю предлагается ввести номер записи, которую он хочет удалить. Если введенный номер некорректен или не существует, то выводится соответствующее сообщение. Процедура Change изменяет запись в справочнике. Пользователю предлагается ввести номер записи, которую он хочет изменить, а затем ввод новых данных для имени, фамилии и телефона. Если введенные данные некорректны или не существуют, то выводится сообщение об ошибке. Процедура Print выводит все записи справочника на экран. Она запрашивает у пользователя ввести номер записи, которую он хочет вывести, а затем выводит информацию о выбранной записи. В конце программы пользователь может выбрать одно из четырех действий: добавить, удалить, изменить или вывести все записи на экран. В зависимости от выбранного действия, программа выполняет соответствующую операцию. Таким образом, данный код позволяет управлять содержимым телефонного справочника, добавлять, удалять и изменять записи в нем.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

13   голосов , оценка 3.769 из 5
Похожие ответы