
25.09.2008, 18:20
|
|
Участник форума
Регистрация: 30.08.2008
Сообщений: 128
Провел на форуме: 668329
Репутация:
106
|
|
Сообщение от AnOcToJI
Нужны исходники простого, можно и сложного телефонного справочника)
желательно на C++ но приветствуется и Delphi
Заранее очень ОГРОМНОЕ спасибо и по возможности +++
Функции:
- добавить запись;
- удалить запись;
- посмотреть;
uses crt;
const N = 50; {maksimalnoe kolvo zapisei v baze}
type PData = ^TData; {ukazatel na zapis}
TData = record {zapis}
name : string[20]; {name}
adress: string[30]; {adress}
tel : extended; {telefon}
end;
var base : array [1..N] of PData; {Massiv ukazatelei (indeksov)}
R: integer; {R - tekushee kolvo zapisei}
select: integer;
var f: file of TData; {file}
P,S,Snext : PData; {ukazatel}
procedure add (var base: array of Pdata; var R: integer); {dobavit zapis}
var select: char;
begin
new(p); {inicializaciya novogo ukazatelya}
R:=R+1; {tekushee kolvo ukazatelei}
write('ь ',R,' ”?Ћ [1..20] : '); readln(P^.name);
write('Ђ¤аҐб [1..30] : '); readln(P^.adress);
write('’Ґ«Ґд®* [1..11] : '); readln(P^.tel);
base[R]:=P; {zapisali v massiv ukazatelei}
end;
procedure del (var base: array of Pdata; var R: integer); {udalit zapis}
var select,L: integer;
tmp: Pdata;
begin
write('“Є*¦ЁвҐ *®¬Ґа г¤*«пҐ¬®© §*ЇЁбЁ ®в 1 ¤® ',R); readln(select);
for L:=select to R-1 do base[L]:=base[L+1];
R:=R-1; {udalili odnu zapis}
end;
procedure print (const base: array of Pdata; const R: integer); {vivod po indeksam}
var L: integer;
begin
clrscr;
gotoxy( 5,1); write('”?Ћ'); gotoxy(25,1); write('Ђ„ђ…‘'); gotoxy(55,1); write('’…‹…”ЋЌ');
for L:=1 to R do
begin
gotoxy( 1,L+2); write('#',L);
gotoxy( 5,L+2); write(base[L]^.name,' ');
gotoxy(25,L+2); write(base[L]^.adress);
gotoxy(55,L+2); write(base[L]^.tel:10:0);
end;
writeln; writeln;
end;
begin {telo programmi}
clrscr;
while select <> 7 do
begin {menu na ekran}
writeln('0.Џа®б¬®ва бЇа*ў®з*ЁЄ*');
writeln('1.„®Ў*ўЁвм §*ЇЁбм');
writeln('2.“¤*«Ёвм §*ЇЁбм');
writeln('3.‚л室');
readln(select);
case select of
0: print(base,R); {vivod bazi na ekran}
1: add(base,R); {dobavit zapis}
2: del(base,R); {udalit zapis}
4: select:=7; {vihod}
end;
write('Ќ*¦¬ЁвҐ «оЎго Є«*ўЁиг '); readkey; clrscr;
end;
end.
Если с отображением русского шрифта в Паскале проблемы, используй другой компилятор, например, FreePascal 7.0. Аналогично и для Delphi и C/C++.
Суть телефонного справочника в том, что он работает не на массивах элементов, а на массивах указателей на записи, или на списках записей. При работе с записями, сортировка данных производится быстрее.
Нужны дополнительные функции : сортировка данных, открыть/сохранить в файл? пиши.. добавлю =)
|
|
|