Delphi ортасында тестілеу бағдарламасын құру жобасы

Автор работы: Пользователь скрыл имя, 15 Марта 2014 в 05:10, курсовая работа

Краткое описание

Тест оқушы білімінің деңгейін ғана анықтап қана қоймайды, оның ойын жүйелеп, жылдам есептеуіне, логикалық ойлау, есептеу дағдыларының қалыптасуына, тез шешім қабылдау қасиетінің дамуына тиімді әсер етеді. Тест оқушының білім дәрежесін қандай екендігін анықтайтын және ол білімді түрлі жағдайларда қолдана білуін тексеруге мүмкіндік беретін тиімді жол.

Содержание

Кіріспе.............................................................................................
Тест бағдарламасын құру кезеңдері....................................................
Тестілеу процесінің кезеңдері..............................................................
Delphi ортасымен танысу......................................................................
Delphi бағдарламасының құрылымы...................................................
Delphi бағдарламалау тілінің негізгі түсініктері................................
Кластың құрушылары...........................................................................
Delphi ортасының меню жолы.............................................................
Delphi ортасының компоненттер тақтасы...........................................
Бағдарламаның құрылымдық сипаттамасы........................................
Объектілер тармағының терезесі.........................................................
Программалар коды терезесі................................................................
Тест бағдарламаның блок-схема алгоритмін өңдеу........................
Тестілеу жүйесін құру..........................................................................
Тестілеу бағдарламасының орындалуы..............................................
Жобаның техника-экономикалық негіздемесі....................................
Жұмыстың қысқаша сипаттамасы және оның тағайындалуы.........................................................................................
Бағдарламаның өнімді құрудағы шығындарды анықтау..................
Қорытынды..........................................................................................
Қолданылған әдебиеттер...................................................................
Қосымшалар…………………………………………………………...

Вложенные файлы: 1 файл

delfi_rabota.doc

— 1.91 Мб (Скачать файл)

DELPHI тіліндегі қолданбалы программалар  немесе қосымшалар IDE (Integrated Development Environment)- дамып отыратын құрылымдық ортада  орындалады. IDE ортасы көптерезелік жүйе деп саналады және оның жүктелгеннен кейінгі көрінісі төмендегі түрде болуы мүмкін (1.1-сурет).

 

Сурет 1.1  IDE терезесі

 

Интерфейстің құрамына 4 терезе кіреді

1.Негізгі терезе (Projegt1.dpr);

2.Объектілер бақылаушысының терезесі (Object Inspector);

3.Форманың құрастырушының терезесі (Form1.dfm);

4.Программа кодының терезесі (Unit1.pas).

DELPHI бірқұжаттық орта, яғни бір  мезгілде тек қана бір қолданбалы  программамен жұмыс атқаруға  болады. Программа жобасының атауы  негізгі терезесінің жоғарғы қатарында көрсетіледі.

  Форманың терезесінен Unit кодына жөне одан кері өту F12 пернесі арқылы орындалады.

 

 

1.5 Delphi бағдарламасының құрылымы

 

Delphi ортасы – программист жұмысының  өте жоғары тиімділігін қамтамасыз  ететін орта.

Delphi ортасын шақырғаннан кейін  ортаның жұмысын басқаратын алты  негізгі терезе шығады.

    1. Негізгі терезе(Delphi7);
    2. Объектілер тармағының терезесі(Form 1);
  1. Объектілер инспекторының терезесі немесе объектілер қасиеттері редакторының терезесі (Object Inspector);
    1. Броузер (көру) терезесі(Object TreeView);
    2. Программа кодының терезесі(Unit 1.pas);

Программа кодының терезесін көру үшін Ғ12 пернесін басу жеткілікті. Delphi – ді алаш шақырғаннан кейін «Delphi» терезесі барлық терезенің үстіне шығады. Осы терезенің көмегімен Inprise коорпороциясының WEB – беттеріне кіругемүмкіндік туады.

Негізгі терезе. Негізгі терезе құрылатын программаның жобаларын басқаратын негізгі қызметті атқарады. Бұл терезе экранда барлық уақытта болады және ең жоғарғы бөлігінде орналасады. Негізгі терезеде Delphi ортасының бас менюі, пиктографиялық командалық батырмалар жиынтығы, компоненттер палитрасы орналасқан.

Бас меню жобаны басқаруға арналған барлық қажетті командалардан тұрады. Бас менюдің барлық опциялары екінші деңгейде ашылатын опциялар тақырыбын қамтиды.

Бас терезенің барлық элементтері арнайы панельдерде орналасқан, оның сол жақ бөлігінде басқару батырмалары бар. Бас менюден басқа кез келген панельді терезеден алып тастауға болады.

Панельде көрінетін батырмалардың құрамын өзгерту үшін оған курсорды келтіріп, тышқанның сол жақ батырмасын басу жеткілікті. Бұдан кейін ашылған көмекші меню терезесінде барлық панельдердің аттары келтірілген және олардың статусы көрсетілген (жалаушалар). Олардың ішінен Customize – ды (настройка, баптау) таңдағаннан кейін баптау терезесі пайда болады.. енді қажет емес батырмаларды алып тастауға да болады, Commands терезесіндегі тізімнен қажетті батырмаларды таңдап, оны экранға тасып апаруға болады.

Негізгі терезеге жиі пайдаланылатын пиктограммаларды орналасырған ыңғайлы:Project\Syntax Chek – программа командаларының синтаксисін тексеру; View/Debug Windows/Watches – отклаткалық режимді бақылау терезесіне кіру жжәне т.б.;

Delphi – дегі кез келген программа  жоба файлынан (файлдың заты .dpr) және  бір немесе бірнеше модульдерден (заты .pas) тұрады. Әрбір осындай файлдар Object Pascal – дың программалық бірлігін сипаттайды.

 

 


 

Сурет 1.2  Delphi бағдарламасының құрылымы

 

 

      1.6 Delphi бағдарламалау тілінің негізгі түсініктері

 

Кластар – бұл күрделі программаларды жеңілдету және оның сапасын арттыру үшін ойластырылған программистердің ерекше өнер табысы. Кластардың негізінде үш іргелі принцип жатыр, олар инкапсуляция, мұрагерлік және полиморфизм.

Класс – өрістер, әдістер мен қасиеттер деп аталатынүш маңызды ұғымның бірлігін береді. Осы үш маңызды ұғымды бір бүтінге біріктіру инкапсуляция деп аталады. Көпшілік жағдайда, инкапсуляция класты программаның қалған бөліктерінен оқшаулауға мүмкіндік береді, нақты бір есепті шешудің «өзіндік жеткіліктілігін» арттырады. Нәтижесінде класс қандай да бір басқарушылықты арттырады. Мысалы, Tform класы  Windows – терезесін құруға қажеттілерден, Tmemo класы – толық басқарылатын мәтіндік редактор жұмысын, Ttimer класы программа жұмысын таймермен қамтамасыз ететін құралдарды қамтиды (немесе инкапсуляциялайды).

Сонымен инкапсуляция дайын программалық жабдықтаумен жұмыс істеуге арналған қуатты құрал болып табылады. Delphi жүйесінің кластар кітапханасы – бұл программа құруға арналған Borland фирмасының программистері құрған кірпіштер жиынтығы екен.

Кез келген класс басқа кластан туындайды. Ол үшін оны хабарлағанда ата- ана кластың аты көрсетіледі:

 

TchildClass = class (TParentClass)

 

Туындаған кластан автоматты түрде өзінің ата- анасының өрісі, әдісі және қасиеті шығады және олардың жаңамен толықтырылуы мүмкін. Сөйтіп, мұрагерлік принципі күрделі кластарды кезеңмен құруды және өзінің жеке кластар кітапханасын жасауға мүмкіндік береді.

Object Pascal – дың барлық кластары  жалғыз ата – ана ТObject  класынан  туындаған. Бұл кластың өрісі және қасиеттері жоқ, бірақ өзіне кез – келген объектілердің барлық өмірлік қасиеттерін қамтитын жалпы тағайындалудың әдістерін қамтиды. Программист ТObject  класы ата – ана болмаитын класс құра алмайды. Оған төмендегідей бейнелеулер тән:

 

TaClass = Class  (ТObject )

 

TaClass = Class

 

Мұрагерлік принципі ТObject  класынан оның ұрпақтарына қарай дами отырып, біртіндеп кеңейетін тармақтар кластар құруға әкеледі. әрбір ұрпақ өзінің ата – анасының мүмкіндіктерін толықтырып, оны өзінің ұрпақтарына беріп отырады.

Delphi –дегі кластар тармағы қарайтырайық. TPersistent класы өзінің Тobject ата- анасының мүмкіндіктерін кеңейтеді: ол мәліметтерді файлға сақтап , оны одан қайтадан ала алады, нәтижесінде оның барлық ұрпақтары осы мүмкіндіктерді орындай алады. TComponent класы өз кезегінде, класты құрушының ортасымен әрекеттесіп, оны өзінің ұрпақтарына бере алады.

TControl класы файлдармен және класты  құрушының ортасымен жұмыс істеп  қоймай, сонамен бірге экранда  көрінетін бейнелерді құруға  және оның қызметін орындауға қабілетті, ал оның ұрпағы TWinControl Windows терезелерін де құра алады және т.б. «3-сурет».

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сурет 1.3    Delphi –дегі кластар тармағы    

 

Полиморфизм – бұл мағынасы ұқсас мәселелердің әр түрлі тәсілмен шешетін кластар қасиеті. Object Pascal – дың шеңберінде кластардың қасиеті оған кіретін әдістердің жиынтығымен анықталады. Класс ұрпақтарындағы қандай да бір әдістің алгоритмін өзгерте отырып, программист бұл ұрпаққа ата- анасында жоқ ерекше қасиетті бере алады. Әдісті өзгерту үшін оны сол ұрпақта жабу қажет, яғни ұрпақта бір атаулы әдісті хабарлап, оған қажетті әрекетті жүзеге асыру қажет. Нәтижесінде объект – ата – ана мен объект – ұрпақта әр түрлі алгоритмдік негізі бар, объектілерге әр түрлі қасиет беретін екі бір атаулы әдіс жұмыс істейтін болады.

Object Pascal  тілінде полиморфизм  тек жоғарыда сипатталған мұрагерлік  механизмі мен ата-ананың әдісін  жабумен шектелмейді, сондай-ақ оларды  виртуалдандыруда жүзеге асады.

 

  •  Кластың құрушылары
  •  

    Өріс деп кластағы инкапсуляцияланған мәліметтерді айтады. Өріс кез келген типті болуы мүмкін, оның ішінде класта болуы мүмкін;

    Мысалы:

    Type

    TMyClass=class

    AIntField:Integer;

    AstrField:String;

    AObjectField:TObject;

    ……………………….

    End;

    Әрбір объект өрістер жиынтығын алады, бірақ осы кластың барлық объектілері үшін жалпы қасиеттер мен әдістер жиынтығы бар. Инкапсуляцияның іргелі принципі өріске кластың әдістері мен қасиеттерінің көмегі арқылы қатынас жасау керектігін талап етеді. Бірақ   Object Pascal  тілінде өріске тікелей шығуға рұқсат етіледі.

    Type

    TMyClass=class

    FIntField:Integer;

    FstrField:String;

    ………………….

    End;

    Var aObject:TMyClass;

    Begin

    ………………..

    AObject.FintField:=0;

    AObject.FStrtField:=’символдар жолы’;

    ……………………….

    End;

    Класс – ұрпақ өзінің барлық аталарынан барлық өрістерді ала алады және оны өзінікімен толықтырады, бірақ алдын-ала анықтай алмайды. Сөйтіп, тармақ иерархиясында класс қаншалықты төмен орналасса, соншалықты оның объектілерінен мәліметтер ала алады.

    Класта инкапсуляцияланған процедуралар мен функциялар әдістер деп аталады. Олар әдеттегі қосалқы программалар тәрізді хабарланады:

    Type TMyClass=class

    Function MyFunc(aPar:Integer):integer;

    Procedure MyProc;

    End;

    Кластың әдістеріне кіру оның өрістеріне кіргендей құрама атаулардың көмегімен жүзеге асырылады.

    Var

    AObject:TmyClass;

    Begin

    ……………………

    AObject:MyProg;

    …………………..

    End;

    Жоғарыда айтылғандай кластың әдістері ұрпақтарында жабылып тұруы мүмкін. Мысалы,

    Type

    TparentClass=Class

    Procedure DOWork;

    End;

    TChildClass=Class (TParent Class);

    Procedure DOWork;

    End;

     

    Екі класстың ұрпақтары да DOWork процедурасының атауы бойынша ұқсас әрекеттерді орындауы мүмкін. Бірақ, бұл жалпы жағдайда әртүрлі орындалады. Мұндағы әдістерді ауыстыру статикалық деп аталады, яғни копмильятормен программаны жүргізу кезеңінде әдістерді динамикалық ауыстыру жиі пайдаланылады. Мұны жүзеге асыру үшін аталық класта орналасқан әдіс динамикалық немесе виртуалды түрде хабарлануы тиіс. Осындай хабарлауды кездестіргеннен кейін компилятор екі кесте құрады. DMT (Dynamic Method Table) және VMT (Virtual Method Table) оларды сәйкес динамикалық немесе виртуалды әдістердің кіру нүктесіндегі адреске орналастырады. Әрбір ауыстырылатын әдіске оралған компилятор сәйкес кестелердің бірінен қосалқы программаға кіру нүктесінің адресін шығаруға мүмкіндік беретін кодты кояды.

    Класс ұрпағында әдісті алмастыру override (жабу) директивасымен хабарланады. Осы нұсқауды алғаннан кейін, компилятор программаны жүргізу кезеңінде ата – аналық кестесіне класс – ұрпақ әдісінің кіру нүктесін орналастырады, ал аталыққа жаңа әдістің көмегімен қажетті әрекетті орындауға мүмкіндік береді.

    Динамикалық және виртуалдық әдістердің арасындағы айырмашылығы – динамикалық әдістер кестесінде осы класта тек dynamic ретінде хабарланған әдістер адрестері болады, ал виртуалдың кестесінде сол кластың виртуалдың әдістерімен қатар, оның барлық аталықтарының да адрестері сақталады. Көлемі айтарлықтай VMTкестесі жылдам іздеуді жүзеге асырады, сондай-ақ, динамикалық әдіске оралғанда программа алдымен DMT объектінің кестесін қарап шығады, одан кейін аталық класын қажетті кіру нүктесі табылғанша іздейді.

    Динамикалық жабылатын әдістер ешнәрсе орындамауы мүмкін. Мұндағы әдістер абстрактылы әдістер деп аталады, олар ұрпақтарында жабылуға міндетті. Программист adatract директивасымен хабарлау арқылы абстрак әдісті шақыруға тосқауыл қоя алады. Мысалы:

    Type

    TvisualObject=class (TWinControl)

    Procedure DRAW (IsSHOW:Boolean);

        Virtual; abstract; end;

    TvisualChildObject=class(TWinControl)

    Procedure DRAW (IsSHOW:Boolean):override;

    End;

    Var

        aVisualObject:TvisualObject;

        aVisualChild: TvisualChildObject;

    begin

    aVisualObject. SHOW; {қате / Абстракт әдіс шақырылды}

    aVisualObject. SHAW         {Шақыру дұрыс. TvisualChildObject класындағы  DRAW әдісі жабылған}

    …  End;

        Жабылмаған абстракт әдісті шақыру орындалу барысында қате болып есептеледі. Сауатты құрылған программада абстракт әдіс шақырылмайды. Кез келген класстың құрамына екі арнайы әдіс кіреді: конструктор және деструктор. Tobject класында бұл әдістер Create және  Destroy деп аталады. Конструктор динамикалық жадыда объектілерді үлестіреді және жадының осы адресіне  SELF айнымалысын  орналастырады, ал автоматты түрде класта хабарланады. Конструктор және деструктор процедура болып табылады, бірақ Constructor және destructor қызметші сөздерінің көмегімен хабарланады:

    Type

         TMyClass=class

    InField:Integer;

         Constructor Create (Value:integer);

         Destructor Destroy;

       End;

    Көптеген конструкторлар объектінің дұрыс жұмыс істеуіне қажетті қандай да бір әрекетті орындайды. Сондықтан класс ұрпақ конструкторында алдымен өзініңаталық конструкторын шақыру қажет, одан кейін қосымша әрекеттер жүзеге асырылады. Аталық кластағы кез келген әдісті шақыру Inherited (мұрагер) қызметші сөзінің көмегімен жүзеге асырылады:

    Constructor TMyClass.Create (Value:Integer);

    Begin

    Inherited Create; //Мұрагер конструкторды шақыру

    Inherited:= Value //Қосымша әрекетті орындау

    End;

    Кейбір әдістер объектіні құрмай және инициализация жасамай-ақ шақырылу мүмкін. Мұндағый әдістер кластың әдістері деп аталады, олар class қызметші сөзінің көмегімен шақырылады.

    Type

    TMyClass=class (TObject)

    Class Function GetClassName:String;

    End;

    Var

    S:string;

      Begin

         S:=TMyClass.GetClassName;

       End;

    Кластың әдістері өрістерін шақыра алмайды, жалпы жағдайда объект құрмай-ақ шақырылады. Әдетте класс туралы қызметші ақпаратпен шектеледі: класс аты, аталық класс аты, әдістәң адресі және т.б.

    Қасиеттер-бұл өріске кіру мүмкіндігін реттейтін кластардың арнайы механизмі. Қасиеттер property, read және write қызметші сөздерінің көмегімен хабарланады (read және write сөздері тек қасиетті хабарлау контексінде пайдаланатын қызметші сөздер). Әдетте қасиет қандай да бір өріспен байланысты болады және осы өріске жазуда немесе одан оқуда пайдаланатын кластың әдістерін көрсетеді.

         Мысалы:

                   Type

                        TaClass=Class

                         IntField: integer;

                         Function.GetField:integer;

                         Procedure SetField (Value: integer);

                         Property IntegerValue:integer read

                         GetField write SetField;

                   End;

    Программа контексінде қасиет өзін әдеттегі өріс ретінде көрсетеді.      Сондай-ақ, төмендегідей операторларды жазуға болады:

                        Var

                            aClass:TaClass;

    Информация о работе Delphi ортасында тестілеу бағдарламасын құру жобасы