Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Руководство пользователя
Для того чтобы начать работу в программе, необходимо запустить файл ATS.exe. После этого на экране появится загрузочный экран программы (рис.3.2.1).
Рис.3.2.1 Загрузочный экран программы «Телефонная база»
Затем на экране отобразится главное окно программы (рис.3.2.2). Рис.3.2.2. Внешний вид главного окна программы
В верхней части окна отображается главное меню, состоящее из пунктов, которые в свою очередь делятся на подпункты. Во время работы, программа автоматически сохраняет все изменения данных, поэтому пользователь может не волноваться о потере данных во время работы. Основные компоненты программы (обе таблицы и поле ввода информации) имеют собственное контекстное меню.
1)Меню для поля ввода информации содержит в себе два пункта: ü Очистить поле ü Справка 2)Меню для таблицы вывода всех абонентов содержит в себе четыре пункта: ü Открыть ü Сохранить как ü Очистить ü Справка 3)Меню для таблицы вывода абонентов с задолженностью содержит в себе три пункта ü Показать список ü Очистить ü Справка
При помощи круговой диаграммы программа демонстрирует две категории абонентов: ü Абоненты, у которых нет задолженности ü Абоненты, имеющие задолженность
Работа программы основывается на нескольких основных функциях и процедурах, которые используются в основном коде. 1)Функция StringisNumber – проверяет является ли символ строки, находящейся в файле цифрой. function StringIsNumber(Data:String): Boolean; var start, i: Integer; res: Boolean; begin res:= true; if Length(Data) = 0 then res:= false else begin start:= 1; if (Data[start] = '-') then start:= 2; for i:= start to Length(Data) do begin if not (Data[i] in ['0'..'9']) then begin res:= false; break; end; end; end; Result:= res; end; 2)Процедура Grafik – отвечает за постройку графика в прогармме.
procedure Grafik (SG:TStringGrid; res: TPieSeries);[2] var neg,pos1:integer; begin neg:=0; pos1:=0; for i:=1 to SG.RowCount-1 do if strtoint(SG.cells[3,i])<40 then inc(neg) else inc(pos1); if pos1+neg>0 then With res do begin Clear; Add(pos1,'Нет долгов',clYellow); Add(neg,'Имеется долг',clBlue); end; end;
3) Процедура spisok – формирует строку, выводящуюся в справку.[5]
procedure spisok(SG:TStringGrid); var row:integer; ind,nomer,MTP,balance,ost,s:string; begin row:=SG.row; ind:='Выделен абонент с номером: '+SG.cells[0,row]+#13#10+#13#10; nomer:='Номер телефона: ' + SG.cells[0,row]+#13#10; MTP:='Расходы на МТР: ' +SG.cells[1,row]+' р'+#13#10; balance:='Внесённая сумма: ' +SG.cells[2,row]+' р'+#13#10; ost:='Остаток на счёте: ' +SG.cells[3,row]+' р'+#13#10; s:=ind+nomer+MTP+balance+ost; ShowMessage(s); end;
3)Процедура AddNumber – отвечает за добавление новых строк в файл.[2]
procedure AddNumber(FileName:String; NewLine:String); var OTable1: TextFile; begin AssignFile(OTable1, FileName); Append(OTable1); Writeln(OTable1, NewLine); CloseFile(OTable1); end;
4)Процедура ReplaceNumber – отвечает за замену, существующей строки в файле. Замена происходит при повторном введении одинаковых телефонных номеров, если пользователь согласится на неё.[5,6]
procedure ReplaceNumber(FileName:String; Position:Integer; NewLine:String); var i: Integer; OTable1: TextFile; NewText, OldLine: String; begin AssignFile(OTable1, FileName); Reset(OTable1); i:= 0; NewText:= ''; while not eof (OTable1) do begin Readln(OTable1, OldLine); if i = Position then NewText:= NewText + NewLine + #13#10 else NewText:= NewText + OldLine + #13#10; inc(i); end; CloseFile(OTable1); Rewrite(OTable1); Write(OTable1, NewText); CloseFile(OTable1); end;
5)Функция CheckNumber – проверяет сколько “групп” цифр находится в строке. Программа работает с четырьмя “группами” цифр (номер телефона, баланс, МТР, остаток).[2] function CheckNumber(FileName:String; Phone:String): Integer; var position, i: Integer; OTable1: TextFile; strTemp: String; List: TStrings; begin AssignFile(OTable1, FileName); Reset(OTable1); i:= -1; position:= -1; while not eof (OTable1) do begin Readln(OTable1, strTemp); List:= TStringList.Create; ExtractStrings(['|'], [], PChar(strTemp), List); inc(i); if List.Count > 0 then if List[0] = Phone then begin position:= i; break; end; end; CloseFile(OTable1); Result:= position; end; 6) Процедура DeleteNumber – служит для удаления выделенной строки из файла.[6,5] procedure DeleteNumber(FileName:String; Position:Integer); var i: Integer; OTable1: TextFile; NewText, OldLine: String; begin AssignFile(OTable1, FileName); Reset(OTable1); i:= 0; NewText:= ''; while not eof (OTable1) do begin Readln(OTable1, OldLine); if i <> Position then NewText:= NewText + OldLine + #13#10; inc(i); end; CloseFile(OTable1); Rewrite(OTable1); Write(OTable1, NewText); CloseFile(OTable1); end; 7)Функция LoadDataInGrid – данная функция загружает выбранный пользователем файл в таблицу.[6] function LoadDataInGrid(FileName:String; SG: TStringGrid): Boolean; var i, k, t: Integer; OTable1: TextFile; strTemp: String; List: TStrings; res: Boolean;
begin res:=true; AssignFile(OTable1, FileName); k:= 1; Reset(OTable1);
while not eof (OTable1) do begin Readln(OTable1, strTemp); if strTemp <> '' then begin List:= TStringList.Create; ExtractStrings(['|'], [], PChar(strTemp), List);
if List.Count < 4 then res:= false else begin for t:= 1 to 3 do if not StringIsNumber(List[t]) then begin res:= false; break; // конец цикла for t:= 1 to 3 do end; end; if res then begin
if k > SG.RowCount - 1 then SG.RowCount:= k + 1;
for i:= 0 to 3 do SG.Cells[i, k]:= List[i]; inc(k); end else break; // конец цикла while not eof (OTable1) do end; end; CloseFile(OTable1); Result:= res; end;
|