2.4 Структурная и функциональная схема

Рис.1 Структурная схема


Рис.2 Функциональная схема


ЗАКЛЮЧЕНИЕ

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

После тщательного изучения предметной области и задания полученного на данный проект были выдвинуты основные требования к программному продукту, которые в последующем и были реализованы в программе.

Стоит отметить, что данный программный продукт обладает несложным интерфейсом. Благодаря этому качеству, программу сможет использовать каждый пользователь, имеющий простейшие навыки работы на компьютере. А для пользователей умеющих программировать на языке Паскаль программа может послужить базой для написания более сложных систем или стать наглядным пособием написания и использования процедур и функций в данной среде, так как данная программа хорошо демонстрирует практическую реализацию их использования.


CПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1) Алексеев В. Е., Ваулин А.С., Петрова Г. Б. – Вычислительная техника и программирование. Практикум по программированию: Практ. пособие/ –М.: Высш. шк. , 1991. – 400 с.

2) Абрамов С.А., Зима Е.В. – Начала программирования на языке Паскаль. – М.: Наука, 1987. –112 с.

3) Турчак Л.И. – Основы численных методов – М.: «Наука», 1987-31 с.

4) Вычислительная техника и программирование: Учеб. для техн. вузов/ А.В. Петров, В.Е. Алексеев, А.С. Ваулин и др. – М.: Высш. шк., 1990 – 479 с.

5) Меженный О.А. – самоучитель Turbo Pascal. – М.: 2003-75 с.

6) Марченко А.И., Марченко Л.А. – Программирование в среде Turbo Pascal 7.0 – К.: ВЕК+, М.: Бином Универсал, 1998. – 496 с.

7) Немнюгин С.А. TurboPascal

8) Прайс Д. Программирование на языке паскаль. Практическое руководство.

9) Меженный О.А. – самоучитель Turbo Pascal. – М.: 2003-198 с.


ГРАФИЧЕСКАЯ ЧАСТЬ

Лист 1. Функциональная схема


Лист 2. Структурная схема


ПРИЛОЖЕНИЕ А

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

1 Введение

Настоящее практическое задание распространяется на разработку программы создания и обработки тестовых данных, предназначенной для использования любых пользователей.

Отличительной особенностью данной программной продукции является дополнительная программа, позволяющая изменять вопросы и варианты вопросов тестирования. Оно имеет сравнительно лёгкий пользовательский интерфейс, ориентированный на пользователя, имеющего навыки в работе с вычислительной техникой.

Разрабатываемая программа позволяет легко и просто протестировать пользователя на знание определённой области, заключённой в тестовых вопросах.

2 Основание для разработки

В соответствии с полученным заданием проекта на практику.

3 Назначение

Пользователями данной программы могут выступать: завучи, заведующие кафедры любого направления. Основным назначением данной программы более удобный способ вести личные дела учащихся в тех или иных учебных заведениях.


4 Требование к программе или программному изделию

4.1 Требование к функциональным характеристикам.

4.1.1Программный продукт должен обеспечивать возможность выполнения следующих операций:

 -имеются ли однофамильцы;

-имеются ли однофамильцы на одном курсе;

- в каких группах более 10 учащихся;

- на сколько человек больше на I-м курсе, чем на IV-м курсе.

4.1.2. Исходные данные:

-аналитическое задание данных.

4.2. Требования к надёжности программы:

4.2.1. Предусмотреть контроль вводимых данных.

4.2.2. Предусмотреть блокировку некорректных действий пользователя при работе с системой.

4.3 Требования к составу и параметрам технических средств

4.3.1 Система должна работать на IBM совместимых персональных компьютерах.

4.3.2 Минимальная конфигурация:

-тип процессора Pentium;

-объём оперативного запоминающего устройства не менее 16Мб;

-тип монитора VGA или SVGA.

4.4 Требования к информационной программной совместимости

- Система работает под управлением операционных систем семейства Windows (Windows95, Windows98,Windows2000,WindowsNT и т.п.), а также дисковых операционных системах MS-DOS.

5 Требования к программной документации

5.1Разрабатываемые программные модули должны быть самодокументированы, то есть тексты программ должны содержать все необходимые комментарии;

5.2 Разрабатываемая программа должна включать справочную информацию об основных терминах соответствующего раздела программы и подсказки пользователю;

5.3 В состав сопровождающей документации должны входить:

5.3.1 Пояснительная записка на 25-30 листах, содержащая описание разработки и все необходимые комментарии;

5.3.2 Листинг программы;

6 Стадии и этапы разработки

№ этапа Дата выполнения Названия этапов
1 Изучение предметной области решаемой задачи
2 Общая постановка решаемой задачи
3 Анализ входных и выходных документов
4 Создание окон пользовательского интерфейса
5 Создание кода программы
6 Отладка программы
7 Тестирование программного обеспечения
8 Редактирование всей необходимой документации

Таблица А1-Стадии и этапы разработки.


ПРИЛОЖЕНИЕ Б

ЛИСТИНГ ПРОГРАММЫ

(Листинг основной программы)

program Baza;

uses crt, REGUNIT;

begin{Baza Dannyh}

zastavka; {Запуск заставки}

user; {Выбор пользователя}

menus; {Открытие меню}

end.{Baza Dannyh}

(Листинг Unit программы)

{******************************************************************}

{ Zastavka - Процедура заставки }

{ Makeramka - Рисование рамок }

{ Lines - Рисование линий }

{ Archieve - Процедура архива }

{ User - Процедура выбора пользователя }

{ Menus - Процедура меню }

{ Password - Процедура запроса пароля, требует только у Админа }

{******************************************************************}

Unit REGUNIT;

Interface

uses crt;

const

illcount=100;

NameProg='Baza dannyh';

PasswordX='password';

Line1='ННННННННННННННННННСННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН';

 mmenu:array [1..5] of string[16]=(' Novoe delo ',

' Архив... ',' Поиск... ',' Пользователь...',

' ‚Выход ');

menunew:array [1..2] of string[16]=(' ‘®еа ­Ёвм ',

' Ћв¬Ґ­ ');

menuarch:array [1..3] of string[16]=(' ‘®еа ­Ёвм ',

 ' ‡ Јаг§Ёвм ',' Ћв¬Ґ­ ');

 menufind:array [1..2] of string[16]=(' Ќ ©вЁ ',

' Ћв¬Ґ­ ');

menuuser:array [1..2] of string[40]=

(' Ђ¤¬Ё­Ёбва в®а ',

' Џ®«м§®ў вҐ«м ');

simvV : set of char =

['A'..'Z','a'..'z','0'..'9','_','\',':',

 '(',')','!','#','%','^','~','-','''','&','@'];

simvN : set of char = ['A'..'Z','a'..'z','Ђ'..'џ',' '..'п'];

simvD : set of char = ['0'..'9','.'];

simvDIG : set of char = ['0'..'9'];

krifind: array [1..8] of string[8]=('number','sur','name','otch',

'dateburn','surdoc','namedoc','otchdoc');

type

ill = record

number: integer;{­®¬Ґа Є ав®зЄЁ}

sur: string[20];{д ¬Ё«Ёп}

name: string[20];{Ё¬п}

otch: string[20];{®взҐбвў®}

dateburn: string[20];{¤ в ஦¤Ґ­Ёп}

surdoc: string[20];{д ¬Ё«Ёп ўа з }

namedoc: string[20];{Ё¬п ўа з }

otchdoc: string[20];{®взҐбвў® ўа з }

end;

masi = array[1..illcount] of ill;

fff = file of ill;

max = array[1..3,1..28] of integer;

var

pass, flag, open, admin: boolean;

m: max;

numb, numfind, illind, posx, simv, sim, i: integer;

tempmas: array[1..9] of string;

masill: masi;

fileill: fff;

Procedure menucl;

Procedure Screen(color:byte);

Function GotoCen(s:string):integer;

Procedure lines(color:byte);

Procedure space(n:byte);

Procedure clear;

Procedure MakeRamka(x0,y0:integer; s:string; x,y:integer;color,fon:byte);

Procedure field;

Procedure archieve;

Procedure menuarchh;

Procedure menunewkar;

Procedure menufinder;

Procedure user;

Procedure menus;

Procedure zastavka;

Procedure password;

Implementation

procedure menucl;

var

i:integer;

begin{menucl}

textbackground(blue);

for i:=1 to 20 do

begin

gotoxy(2,i+2);

writeln(' ');

end;

end;{menucl}

Procedure Screen(color:byte);

Var

i:integer;

begin{screen}

textbackGround(color);

for i:=1 to 25 do

writeln(' ');

gotoXY(1,1);

end;{screen}

Function GotoCen(s:string):integer;

begin{gotocen}

GotoCen:=(80-length(s)) div 2;

end;{gotocen}

Procedure lines(color:byte);

var

i:byte;

begin{lines}

textcolor(color);

gotoXY(gotocen(nameprog),1);writeln(NameProg);

write(line1);

for i:=3 to 25 do

begin

gotoxy(19,i);

write('і');

end;

textcolor(yellow);

end;{lines}

Procedure space(n:byte);

Var

i:byte;

begin{space}

for i:=1 to n do

write(' ');

end;{space}

Procedure Clear;

var

x,y:byte;

begin{clear}

textbackground(blue);

For y:=3 to 24 do

For x:=20 to 80 do

Begin

gotoxy(x,y);

write(' ');

end;

end;{clear}

Procedure MakeRamka(x0,y0:integer; s:string; x,y:integer;color,fon:byte);

var

i,j:integer;

begin {MakeRamka}

textbackground(fon);

textcolor(color);

gotoxy(x0,y0);write('Й');

for i:=x0+1 to x-1 do

begin

gotoxy(i,y0);

write('Н');

end;

Write('»');

gotoxy(10+gotocen(s),y0);

textcolor(white);

write(s);

for i:=y0+1 to y-1 do

begin

j:=x0;

textcolor(color);

gotoxy(j,i);

write('є');

textcolor(white);

for j:=x0+1 to x-1 do

write(' ');

TextColor(color);

write('є');

end;

gotoxy(x0,y);

write('И');

for i:=x0+1 to x-1 do

write('Н');

write('ј');

textcolor(yellow);

end; {MakeRamka}

procedure field;

var

i:integer;

begin{field}

MakeRamka(22,3,'Delo uchschegosya',78,24,white,cyan);

textcolor(black);

gotoxy(24,5);

write('№ Dela ');

gotoxy(24,7);

write('” Фамилия ');

gotoxy(24,9);

write('Имя ');

gotoxy(24,11);

write('Отчество ');

gotoxy(24,13);

write('Дата рождения ');

gotoxy(24,15);

write('Familiya kuratora ');

gotoxy(24,17);

write('Imya kuratora ');

gotoxy(24,19);

write('Otchestvo kuratora ');

gotoxy(24,23);

write('Клавиша F8 - Удаление дела');

textbackground(black);

textcolor(white);

for i:=1 to 9 do

begin

gotoxy(50,3+i*2);

write(' ');

end;

end;{field}

procedure archieve;

var

i:integer;{Ї а ¬Ґва жЁЄ« }

begin{archieve}

MakeRamka(22,3,'‘®еа ­Ґ­ЁҐ/‡ Јаг§Є ',78,24,white,cyan);

textcolor(black);

textbackground(cyan);

gotoxy(30,13);

write('?¬п д ©« ');

{‚лў®¤ ЇаҐ¤гЇаҐ¦¤Ґ­Ёп}

gotoxy(30,15);

write('‚­Ё¬ ­ЁҐ! “Є § ў Ё¬п бгйҐбвўго饣® д ©« ');

gotoxy(30,16);

write('ЇаЁ б®еа ­Ґ­ЁЁ ¤ ­­ле, ‚л Џ…ђ…‡ЂЏ??…’…');

gotoxy(30,17);

write('ҐЈ® ᮤҐа¦Ё¬®Ґ!');

textbackground(black);

textcolor(white);

gotoxy(40,13);

write(' ');

end;{archieve}

procedure menuarchh;

var

io, pos, i, ii, ind: integer;

ch: char;

s: string;

begin{menuarchh}

s:='';

menucl;

ind:=1;

pos:=41;

ii:=1;

archieve;

repeat

repeat

for i:=1 to 3 do

begin

if i=ind

then

begin

textbackground(white);

textcolor(black);

end

else

begin

textcolor(white);

textbackground(black);

end;

gotoxy(2,i*2+1);

write(menuarch[i]);

end;

ch:=readkey;

gotoxy(30,19);

textbackground(cyan);

write(' ');

textcolor(white);

case ch of

#8:{backspace}

if (s<>'')

then

begin

dec(ii);

delete(s,ii,1);

textbackground(black);

textcolor(white);

gotoxy(40,13);

write(' ');

gotoxy(40,13);

write(s);

end;

#80:

if ind<>3

then

inc(ind);

#72:

if ind<>1

then

dec(ind);

else

if chr(ord(ch)) in simvv

then

if ii<=8

then

begin

gotoxy(40,13);

s:=s+chr(ord(ch));

textbackground(black);

textcolor(white);

write(s);

inc(ii);

end;

end;

until ch=#13;

assign(fileill,s+'.dat');

case ind of

1: begin

rewrite(fileill);

for i:=1 to illcount do

write(fileill,masill[i]);

close(fileill);

ind:=3;

end;

2: begin

{$i-}

reset(fileill);

io:=ioresult;

{$i+}

If io = 0

then

begin

for i:=1 to illcount do

read(fileill,masill[i]);

close(fileill);

end;

end;

end;

if (ind = 2)

then

if (io = 0)

then

ind:=3

else

begin

textcolor(red);

textbackground(cyan);

gotoxy(30,19);

write('” ©« ­Ґ ­ ©¤Ґ­!');

end;

until ind=3;

clear;

end;{menuarchh}

procedure menunewkar;

var

numerr, tmp, code,ii, posy, i, ind:integer;

ch:char;

tempm:array [1..9] of string[20];

s,ss:string[20];

sd: char;

errd, flagg:boolean;

begin{menunewkar}

menucl;

ind:=1;

field;

posy:=1;

ii:=1;

s:='';

if flag

then

numb:=numfind

else

for i:=illcount downto 1 do

if (masill[i].number = 0)

then

numb:=i;

{+++++++++++++++++++++}

gotoxy(50,posy*2+3);

write(numb);

if flag

then

begin

str(numb,ss);

tempm[1]:=ss;

tempm[2]:=masill[numb].sur;

tempm[3]:=masill[numb].name;

tempm[4]:=masill[numb].otch;

tempm[5]:=masill[numb].dateburn;

tempm[6]:=masill[numb].surdoc;

tempm[7]:=masill[numb].namedoc;

tempm[8]:=masill[numb].otchdoc;

for i:=1 to 8 do

begin

gotoxy(50,i*2+3);

write(' ');

gotoxy(50,i*2+3);

write(tempm[i]);

end;

end

else

begin

tempm[1]:='';

tempm[2]:='';

tempm[3]:='';

tempm[4]:='';

tempm[5]:='';

tempm[6]:='';

tempm[7]:='';

tempm[8]:='';

tempm[9]:='';

end;

repeat

repeat

for i:=1 to 2 do

begin

if i=ind

then

begin

textbackground(white);

textcolor(black);

end

else

begin

textcolor(white);

textbackground(black);

end;

gotoxy(2,i*2+1);

write(menunew[i]);

end;

gotoxy(50,posy*2+5);

ch:=readkey;

errd:=false;

case ch of

#66:

if admin

then

begin

masill[numb].number:=0;

masill[numb].sur:='';

masill[numb].name:='';

masill[numb].otch:='';

masill[numb].dateburn:='';

masill[numb].surdoc:='';

masill[numb].namedoc:='';

masill[numb].otchdoc:='';

ch:=#13;

ind:=2;

end;

#9: begin

textbackground(black);

textcolor(white);

s:='';

if posy = 8

then

posy:=1

else

inc(posy);

ii:=1;

end;

#83: {delete}

if admin

then

{if ch=chr(0)

{ then }

begin

gotoxy(50,posy*2+5);

write(' ');

s:='';

ii:=1;

end;

#8:{backspase}

if admin

then

if (s<>'')

then

begin

dec(ii);

delete(s,ii,1);

textbackground(black);

textcolor(white);

gotoxy(50,posy*2+5);

write(' ');

gotoxy(50,posy*2+5);

write(s);

end;

#80:

if ind=1

then

inc(ind);

#72:

if ind=2

then

dec(ind);

else

if admin

then

begin

if (posy=4) or (posy=8)

then

flagg:=true

else

flagg:=false;

if ((chr(ord(ch)) in simvN) and not(flagg)) or

((chr(ord(ch)) in simvD) and flagg)

then

if ii<=15

then

begin

if flagg

then

begin

case ii of

1,2,4,5,7,8,9,10:

if not((chr(ord(ch)) in simvdig))

then

errd:=true;

3,6:

if (ch<>'.')

then

errd:=true;

else

errd:=true;

end;

end;

if not(errd)

then

begin

s:=s+chr(ord(ch));

tempm[posy+1]:=s;

textbackground(black);

textcolor(white);

gotoxy(50,posy*2+5);

write(' ');

gotoxy(50,posy*2+5);

write(s);

inc(ii);

end;

end;

end;

end;

until ch=#13;

case ind of

1: if admin

then

begin

if flag

then

numb:=numfind;

masill[numb].number:=numb;

masill[numb].sur:=tempm[2];

masill[numb].name:=tempm[3];;

masill[numb].otch:=tempm[4];

masill[numb].dateburn:=tempm[5];

masill[numb].surdoc:=tempm[6];

masill[numb].namedoc:=tempm[7];

masill[numb].otchdoc:=tempm[8];

ind:=2

end;

2: begin

dec(numb);

ind:=2

end;

end;

until ind=2;

tempm[posy+1]:=s;

s:='';

clear;

flag:=false;

end;{menunewkar}

procedure menufinder;{+++++++++++++++++++++++++++++++++++++++++}

var

t, code, tt, tmp, ii, posy, i, ind:integer;

ch:char;

tempm:array [1..8] of string[20];

s:string[20];

flagg:boolean;

begin{menufinder}

menucl;

ind:=1;

field;

posy:=1;

ii:=1;

s:='';

for i:=1 to 8 do

tempm[i]:='';

repeat

repeat

for i:=1 to 2 do

begin

if i=ind

then

begin

textbackground(white);

textcolor(black);

end

else

begin

textcolor(white);

textbackground(black);

end;

gotoxy(2,i*2+1);

write(menufind[i]);

end;

gotoxy(50,posy*2+3);

ch:=readkey;

case ch of

#9:

begin

s:='';

if posy = 9

then

posy:=1

else

inc(posy);

for tmp:=1 to 9 do

begin

gotoxy(50,tmp*2+3);

write(' ');

end;

ii:=1;

end;

#8:{backspase}

if (s<>'')

then

begin

dec(ii);

delete(s,ii,1);

textbackground(black);

textcolor(white);

gotoxy(50,posy*2+3);

write(' ');

gotoxy(50,posy*2+3);

write(s);

end;

#80:

if ind=1

then

inc(ind);

#72:

if ind=2

then

dec(ind);

else

begin

if (posy=1) or (posy=5) or (posy=9)

then

flagg:=true

else

flagg:=false;

if ((chr(ord(ch)) in simvN) and not(flagg)) or

((chr(ord(ch)) in simvD) and flagg)

then

if ii<=15

then

begin

gotoxy(50,posy*2+3);

s:=s+chr(ord(ch));

textbackground(black);

textcolor(white);

write(s);

inc(ii);

end;

end;

end;

until ch=#13;

if ind=1

then

begin

MakeRamka(22,3,'‘ЇЁб®Є ­ ©¤Ґ­­ле:',78,24,white,cyan);

tt:=1;

for tmp:=1 to illcount do

begin

flag:=false;

val(s,t,code);

case posy of

1: if ((masill[tmp].number = t) and (t<>0)) then flag:=true;

2: if (masill[tmp].sur = s) then flag:=true;

3: if (masill[tmp].name = s) then flag:=true;

4: if (masill[tmp].otch = s) then flag:=true;

5: if (masill[tmp].dateburn = s) then flag:=true;

6: if (masill[tmp].surdoc = s) then flag:=true;

7: if (masill[tmp].namedoc = s) then flag:=true;

8: if (masill[tmp].otchdoc = s) then flag:=true;

end;

if s=''

then

flag:=false;

if flag

then

begin

textcolor(black);

textbackground(cyan);

gotoxy(40,tt+5);

write('ь: ',masill[tmp].number);

gotoxy(47,tt+5);

write('” ¬Ё«Ёп: '+masill[tmp].sur);

inc(tt);

end;

end;

textcolor(black);

textbackground(cyan);

gotoxy(24,4);

write('‚ўҐ¤ЁвҐ ­®¬Ґа п祩ЄЁ:');

textcolor(white);

textbackground(black);

gotoxy(24,5);

write(' ');

gotoxy(24,5);

s:='';

flag:=false;

repeat

ch:=readkey;

if chr(ord(ch)) in simvdig

then

begin

s:=s+chr(ord(ch));

flag:=true;

val(s,t,code);

if ((t>100) or (t<0) or (s='00'))

then

begin

s:='';

gotoxy(24,5);

write(' ');

flag:=false;

end;

gotoxy(24,5);

write(' ');

gotoxy(24,5);

write(s);

end;

until ((ch=#13) or (ch=#27));

if ch=#27

then

begin

ind:=2;

flag:=false

end

else

if ((ch=#13) and flag)

then

begin

ind:=2;

val(s,t,code);

numfind:=t;

end;

end;

until ind=2;

clear;

end;{menufinder}

procedure user;

var

ind:shortint;

ch:char;

begin {user}

ind:=1;

MakeRamka(22,8,'‚лЎҐаЁвҐ Ї®«м§®ў вҐ«п:',78,13,white,cyan);

repeat

for i:=1 to 2 do{Їа®аЁб®ўлў Ґ¬ Їг­Євл ¬Ґ­о ўлЎ®а }

begin

if i=ind

then

begin

textcolor(black);

textbackground(white)

end

else

begin

textcolor(white);

textbackground(black)

end;

gotoxy(30,9+i);

write(menuuser[i]);

end;

ch:=readkey;

if ((ch=#80) and (ind=1))

then

inc(ind);

if ((ch=#72) and (ind=2))

then

dec(ind);

until ch=#13;{­ ¦ в ‚‚Ћ„}

if ind=1

then

password

else

admin:=false;

clear;

end; {user}

procedure menus;

var

i, ind:integer;

ch:char;

begin{menus}

flag:=false;

ind:=1;

menucl;

numb:=0;

repeat

repeat

for i:=1 to 5 do

begin

if i=ind

then

begin

textbackground(white);

textcolor(black);

end

else

begin

textcolor(white);

textbackground(black);

end;

gotoxy(2,i*2+1);

write(mmenu[i]);

end;

ch:=readkey;

if ((ch=#80) and (ind<>5))

then

inc(ind);

if ((ch=#72) and (ind<>1))

then

dec(ind);

until ch=#13;

case ind of

1: if admin

then

menunewkar;

2: if admin

then

menuarchh;

3: menufinder;

4: user;

end;

if flag then

menunewkar;

until ind=5;

end;{menus}

procedure zastavka;

var

mart, mart2: boolean;

schmart: integer;

begin{zastavka}

mart:=false;

mart2:=false;

schmart:=0;

TextBackGround(Black);

TextColor(Green);

Randomize;

Clrscr;

sim:=0;

repeat

if schmart=80 then mart:=true;

if schmart=100 then mart2:=true;

if schmart=200 then

begin

mart:=false;

mart2:=false;

schmart:=0;

end;

if sim<25 then

begin

repeat

posx:=random(27)+1

until m[1,posx]=0;

if mart

then

case posx of

9: simv:=84;

10, 23: simv:=72;

11: simv:=69;

12: simv:=95;

13: simv:=66;

14, 16: simv:=65;

15: simv:=90;

17, 18, 19: simv:=33;

else

simv:=random(24)+97

end

else

simv:=random(24)+97;

m[1,posx]:=posx;

m[2,posx]:=simv;

m[3,posx]:=m[3,posx]+1;

sim:=sim+1;

end;

delay(7000);

for i:=1 to 27 do

begin

if m[1,i]<>0

then

if not((m[3,i]=12) and mart2 and (m[1,i]>8) and (m[1,i]<20))

then

begin

gotoxy(m[1,i]*3-2,m[3,i]);

write(chr(m[2,i]));

gotoxy(m[1,i]*3-2,m[3,i]-1);

write(' ');

gotoxy(m[1,i]*3-2,m[3,i]);

m[3,i]:=m[3,i]+1;

end;

if m[3,i]>25

then

begin

m[1,i]:=0;

m[2,i]:=0;

m[3,i]:=0;

gotoxy(m[1,i]*3-2,m[3,i]);

write(chr(m[2,i]));

sim:=sim-1;

end;

end;

inc(schmart);

until keypressed;

screen(blue);

lines(white);

end;{zastavka}

procedure password;

var

s:string[16];

i,ii:integer;

ch:char;

begin{password}

MakeRamka(22,8,'‚ўҐ¤ЁвҐ Ї а®«м ¤«п ¤®бвгЇ Є Ў §Ґ ¤ ­­ле:',78,14,white,cyan);

textcolor(white);

textbackground(black);

gotoxy(42,11);

writeln(' ');

gotoxy(42,11);

ii:=0;

s:='';

admin:=false;

repeat

ch:=readkey;

case ch of

#72:;

#75:;

#77:;

#80:;

#8:{backspase}

if (s<>'')

then

begin

delete(s,ii,1);

dec(ii);

textbackground(black);

textcolor(white);

gotoxy(42,11);

write(' ');

gotoxy(42,11);

for i:=1 to ii do

write('*');

end;

else

if (chr(ord(ch)) in simvV)

then

if ii<=15

then

begin

gotoxy(42,11);

s:=s+chr(ord(ch));

textbackground(black);

textcolor(white);

inc(ii);

for i:=1 to ii do

write('*');

end;

end;

until ((ch=#13) or (ch=#27));

if ch=#27 {­ ¦ в Esc}

then

admin:=false

else

if s=PasswordX

then

admin:=true

else

begin

s:='';

textcolor(red);

textbackground(cyan);

gotoxy(42,13);

write('‚ўҐ¤Ґ­ ­ҐўҐа­л© Ї а®«м!');

gotoxy(42,11);

textcolor(white);

textbackground(black);

write(' ');

gotoxy(42,11);

ch:=readkey;

password;

end;

clear;

end;{password}


ПРИЛОЖЕНИЕ В

ПРИМЕРЫ ПРОГРАММЫ

Рис.1 Пример заставки, при её создании использовалась таблица ASCII

Рис.2 Пример защиты программы паролем ( по умолчанию: password )


Рис.3 Пример меню программы

Рис.4 Создание нового дела учащегося


Рис.5 Пример Сохранения\Загрузки архива

Рис.6 Пример Поиска по различным критериям, в данном случае по фамилии куратора


Рис.7 Пример результата поиска учащегося по какой либо из критерий

Рис.8 Пример смены пользователя, например из «Пользователя» в «Администратора» после чего программа потребует пароль


ПРИЛОЖЕНИЕ Г

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Запускаете файл Reg.exe, при запуске будет запущена заставка программы - нажмите любую клавишу для продолжения.

Далее выйдет окно запроса пароля (или выбора пользователя): а) Введите пароль для выбора учётной записи «Администратор» (по умолчанию:password); б) нажмите клавишу “Esc” для выбора учётной записи «Пользователь».

Далее следует меню, состоящее из подпунктов: Новое дело, Архив, Поиск, Выбор пользователя, Выход. Если будет выбран «Администратор», тогда вы можете завести новые дела на учащихся, сохранять изменение (создавать) базы данных или загружать уже существующие базы, далее можете воспользоваться поиском тех или иных учащихся для удаления или корректировки данных, выбор пользователя – замена пользователя, допустим с «Администратора» на «Пользователя», выход – из данной программы. Клавиши и подпункты: (для перемещения по подпунктам используются клавиши: Вверх, влево, вправо, вниз. Для перемещения по ячейкам данных используется клавиша «TAB». Для удаления конкретного дела учащегося используйте клавишу «F8». Клавиша для принятия «Enter».


Информация о работе «Разработка базы данных "Учащиеся"»
Раздел: Информатика, программирование
Количество знаков с пробелами: 47674
Количество таблиц: 3
Количество изображений: 12

Похожие работы

Скачать
59749
15
11

... основании данных содержащихся в карточке клиента. -  Подпрограмма редактирования таблиц служит для изменения данных в таблицах о стоимости на производство работ и цен на материалы. С помощью этой подпрограммы можно вносить дополнения ко всем базам данных содержащимся в разработке. Алгоритм работы этой подпрограммы показан на рис. 2.4.   ...

Скачать
31167
0
11

... данных, подключает библиотеку Borland Database Engine (BDE), которая, в свою очередь, использует конфигурационный файл, содержащий информацию о всех зарегистрированных в системе псевдонимах. Псевдоним базы данных может быть создан (зарегистрирован) при помощи утилиты BDE Administrator. Эта же утилита позволяет изменить каталог, связанный с псевдонимом. База данных — это набор файлов (таблиц), в ...

Скачать
37135
10
2

... сущностей реализуется с помощью отношения. Мощность связи – один-ко-многим (1: М). 1 М М 1 Взаимодействие сущностей   2.2. Связи между сущностями инфологической модели Разработку информационного обеспечения АРМ проведем на базе системы управления базами данных (СУБД) Access XP из состава выбранного интегрированного пакета Microsoft Office XP. СУБД Access предназначена для ...

Скачать
35006
10
7

... компиляция концептуальной модели предметной области в схему БД). Второй вариант - прямая реализация СУБД, основанная на какой либо семантической модели данных. 2. Создание базы данных «Деканат: дистанционного обучения КТИ» 2.1 Краткая характеристика предметной области Предполагаемый деканат дистанционного образования Калмыцкого Технологического Института, именуемый в дальнейшем "ДДО КТИ ...

0 комментариев


Наверх