Аннотация
Курстық жұмыс С++ бағдарламалау тілінде орындалды.
Бұл курстық жұмыс «Динамикалық тізімдермен
Курстық жұмыс 3 бөлімнен тұрады:Олар С++
Мазмұны
Кіріспе................................................................................................................ 5
1 С++ бағдарламалау тілі................................................................................... 6
1.1 Динамикалық құрылымдар……………………………….8
1.2 Тізімдермен жұмыс........................................................
2 Бағдарламаны жобалау..................................................................................20
2.1 Есептің шешілу әдісі ........ ....................................................................20
2.2 Бағдарламаның алгоритмі .......... .........................................................20
3 Құжаттау…………………………………………………………………….21
3.1 Қолданушыға нұсқау………………………………………………….21
3.2 Бағдарламалаушыға нұсқау…………………………………………..21
Қорытынды........................................................................................................22
Қолданылған әдебиеттер .................................................................................23
Қосымша ...........................................................................................................................24
Кіріспе
Бұл курстық жұмыс «Бағдарламалау технологиясы»
Курстық жұмыстың тақырыбы «Динамикалық тізімдермен жұмыс».
1 С++ бағдарламалау тілі
Қазіргі кезде кеңінен қолданылатын программалау
1972 жылы AT&T атаулы Американың корпорациясы
Тілге жылдам орындалатын, жеке биттермен операция
Си тілі бірте-бірте дамытылып, қазіргі кезде
Олардың MS DOS, Windows операциялық жүйелерінде
C++ тілі де процедуралық тіл, бірақ
объект - құрылымы класс типі арқылы
оқиға - объект жағдайының өзгеруі; қасиеттер
класс - пайдаланушы анықтайтын тип. Тип
Тілде жадпен жұмыс істеуге арналған арнайы
Мысал үшін фигуралық объектілерді қарастырайық. Мұндағы
1.2 Динамикалық құрылымдар
Динамикалық құрылымдар анықтамасы бойынша жадыда құрылым
Динамикалық құрылымның элементтері жадының алдын-ала айта
Ақпараттық өріс немесе деректер өрісі, мұнда
Байланысу өрісі, берілген элементті құрылымның басқа
Деректерді байланысты көрсетудің артықшылығы – құрылымның
Құрылымның өлшемі машиналық жадының қол жетерлік
Құрылым элементтерінің логикалық тізбегін өзгерту кезінде
Құрылымның иілгіштігі.
Сонымен бірге, байланысты көрсетудің кемшіліктері де
Байланыс өрістеріне қосымша жады шығындалады;
Байланысқан құрылым элементтеріне қатынас уақыт бойынша
Соңғы кемшілігі едәуір қиындықтар туғызатындықтан, деректерді
1.3 Тізімдермен жұмыс
Динамикалық құрылымдардан бағдарламада сызықтық тізімдер жиі
Кез келген деректердің динамикалық құрылымы
struct Node{
Data d; // Data
}:
Элементтер жиынын байланыстырудың ең қарапайым тәсілі
Тізімнің әрбір элементі кілттен тұрады. Кілт
Тізімдерге келесі амалдарды орындауға болады:
тізімді бастапқы қалыптастыру (алғашқы элементті құру);
тізімнің соңына элементті қосу;
берілген кілтімен элементті оқу;
тізімнің берілген орнына элементті қою (берілген
берілген кілтімен элементті жою;
кілт бойынша тізімді реттеу.
Екібағытты сызықтық тізімді қарастырайық. Тізімді қалыптастырып,
struct Node{
int d;
Node *next;
Node *prev;
}:
Төменде 5 саннан тұратын тізім құрып,
#include
struct Node{
int d;
Node *next;
Node *prev;
}:
Node * first(int d);
void add(Node **pend, int d);
Node * find(Node * const pbeg,
bool remove(Node **pbeg, Node **pend, int
Node * insert(Node * const pbeg,
int main(){
Node *pbeg = first(l); // Тізімнің
Node *pend = pbeg; // Тізім
for (int i - 2; inext = 0;
pv->prev = *pend;
(*pend)->next = pv;
*pend = pv;}
// Кілт бойынша элементті іздеу
Node * find(Node * const pbeg,
{ Node *pv = pbeg; while
if(pv->d == d)break; pv = pv->next;
}
return pv;
}
// Элементті жою
bool remove(Node **pbeg, Node **pend, int
{ if(Node *pkey = find(*pbeg, key)){
if (pkey == *pbeg){
*pbeg = (*pbeg)->next;
(*pbeg)->prev = 0;}
else if (pkey == *pend)
{ *pend = (*pend)->prev;
(*pend)->next = 0;}
else{
(pkey->prev)->next = pkey->next;
(pkey->next)->prev = pkey->prev;}
delete pkey;
return true;
}
return false;
}
// Элементті қою
Node * insert(Node * const pbeg,
if(Node *pkey = find(pbeg, key))
{ Node *pv = new Node;
pv->d = d;
pv->next = pkey->next;
pv->prev = pkey;
pkey->next = pv;
if( pkey != *pend) (pv->next)->prev =
else *pend = pv;
return pv;
}
return 0; }
Бағдарлама жұмысының нәтижесі: 1 2 200
Функцияның ішінде өзгертілмейтін барлық параметрлер const
Тізімнен элементті жою функциясы remove. Оның
Тізімнен жою элементтің тізімнің басында, ортасында
Егер жойылатын элемент тізімнің соңында болса
Егер жою тізімнің ортасында орындалатын болса,
Байланысқан тізімді сұрыптау элементтер арасындағы байланыстарды
2 БАҒДАРЛАМАНЫ ЖОБАЛАУ
С++ тілінде динамикалық тізімдермен жұмысты жүзеге
2.1 Есептің шешілу әдісі
Берілген есепті шешу үшін біз С++
2.2 Бағдарламаның алгоритмі
Берілген бағдарламаның алгоритмі: бағдарламаның басы, берілгендері,
3 ҚҰЖАТТАУ
3.1 Қолданушыға нұсқау
Жалпы мағлұматтар
Бұл программа C++ тілінде жазылған.
Қолданылатын техникалық жобдықтар
Программаны жазып тексеру үшін компьютер, ал
3.2 Бағдарламаушыға нұсқау
Программаның шақырылуы мен жүктелуі
а) компьютерді қосамыз
ә) С++ немесе Турбо С++ программасын
Открыть командасын басамыз.
Менюінде құжатты ашу үшін тағы бір
б) программаны орындау-Ctrl+F9
в) нәтижесін көру-Alt+F5
г) программаны сақтау-F2
Прораммада құжатты сақтау үшін бес команда
Save (Сохранить)
Save a copy (Схранить копию)
Save as…(Сохранить как)
Save for Web (Сохранить для Web
GIF 89 a Export…(Экспорт GIF 89
Егер құжатты істеп отырған файлда сақтау
-файлды қайта сақтайтындығын көрсету;
-файл атын көрсету;
-файл кеңейтілуін көрсету;
д) программадан шығу Alt+
ҚОРЫТЫНДЫ
Курстық жұмыстың тақырыбы «Динамикалық тізімдермен жұмыс».
Қорыта келгенде, оқушылар мен студенттерге C++
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
1. П. Лукас. С++ под рукой.
2. Г. Шилдт. Теория и практика
3. А.И. Голуб. Правила программирования на
4. Т. Бадд. Объектно-ориентированное программирование в
5. Дж. Круглински. Основы Visual C++.
6. C++Builder 5. Руководство разработчика. В2
7. Г. Буч Объектно-ориентированный анализ и
8. Э. Гамма, Р. Хелм, Р.
14