Автор работы: Пользователь скрыл имя, 15 Марта 2014 в 05:10, курсовая работа
Тест оқушы білімінің деңгейін ғана анықтап қана қоймайды, оның ойын жүйелеп, жылдам есептеуіне, логикалық ойлау, есептеу дағдыларының қалыптасуына, тез шешім қабылдау қасиетінің дамуына тиімді әсер етеді. Тест оқушының білім дәрежесін қандай екендігін анықтайтын және ол білімді түрлі жағдайларда қолдана білуін тексеруге мүмкіндік беретін тиімді жол.
Кіріспе.............................................................................................
Тест бағдарламасын құру кезеңдері....................................................
Тестілеу процесінің кезеңдері..............................................................
Delphi ортасымен танысу......................................................................
Delphi бағдарламасының құрылымы...................................................
Delphi бағдарламалау тілінің негізгі түсініктері................................
Кластың құрушылары...........................................................................
Delphi ортасының меню жолы.............................................................
Delphi ортасының компоненттер тақтасы...........................................
Бағдарламаның құрылымдық сипаттамасы........................................
Объектілер тармағының терезесі.........................................................
Программалар коды терезесі................................................................
Тест бағдарламаның блок-схема алгоритмін өңдеу........................
Тестілеу жүйесін құру..........................................................................
Тестілеу бағдарламасының орындалуы..............................................
Жобаның техника-экономикалық негіздемесі....................................
Жұмыстың қысқаша сипаттамасы және оның тағайындалуы.........................................................................................
Бағдарламаның өнімді құрудағы шығындарды анықтау..................
Қорытынды..........................................................................................
Қолданылған әдебиеттер...................................................................
Қосымшалар…………………………………………………………...
DELPHI тіліндегі қолданбалы
Сурет 1.1 IDE терезесі
Интерфейстің құрамына 4 терезе кіреді
1.Негізгі терезе (Projegt1.dpr);
2.Объектілер бақылаушысының терезесі (Object Inspector);
3.Форманың құрастырушының
4.Программа кодының терезесі (Unit1.pas).
DELPHI бірқұжаттық орта, яғни бір
мезгілде тек қана бір
Форманың терезесінен Unit кодына жөне одан кері өту F12 пернесі арқылы орындалады.
1.5 Delphi бағдарламасының құрылымы
Delphi ортасы – программист
Delphi ортасын шақырғаннан кейін
ортаның жұмысын басқаратын
Программа кодының терезесін көру үшін Ғ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 класы файлдармен және класты
құрушының ортасымен жұмыс
Сурет 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(
…
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 ортасында тестілеу бағдарламасын құру жобасы