Курстық жұмыс н тарму 11/1 53-2018



бет4/4
Дата20.11.2022
өлшемі347.43 Kb.
#465294
1   2   3   4
Серикболсын Жолдык процедуралар мен функциялар

struct құрылымдық типтің атауы
{элементтерді анықтау};
Мысалы: 2 студент туралы 5 өрістен тұратын мәлімет берілсін: Студенттің тегі, туған жылы, факультеті, курсы, студент билетінің нөмірі. Сипаттаған кезде құрылымның және оның элементтерінің (яғни өрістердің) атауларын оқуға ыңғайлы етіп, түсінікті түрде таңдап алған жөн. Сонда Student жазбасын былайша сипаттауға болады:
struct Student
{char Fam[20];
int God_r;
char Fak[10];
int Kurs;
char Nom_b;};
Сонан соң, Student құрылымдық типін қолданып, S1, S2 екі айнымалыны анықтауға болады.
Student S1, S2;
Құрылымдық шаманың кез келген элементі (өрісі) былайша көрсетіледі:
құрылымдық типтің аты. элемент атауы;
Мысалы: S1. Fam -1-студенттің тегі
S2. Fak -2-студенттің факультеті
S2. God_r -2- студенттің туған жылы т.б.
Құрылым элементтерінің мәнін енгізуге, яғни меншіктеуге болады.
Құрылымды typedef қызметші сөзі және #define директивасы арқылы сипаттау
Құрылымдық типті басқаша сипаттауға да болады. Бұл жағдайда typedef қызметші сөзі қолданылады.
Жалпы түрі төмендегіше жазылады:
typedef struct
{элементтерді анықтау}
құрылымдық типтің атауы;
Бұл жағдайды қолдануға мысал қарастырайық.
Мысал. Студент тегі мен жасы берілген. Жасы берілген жастан үлкен болатын студенттер тізімін шығаратын бағдарлама құрыңдар.
main()
{ int i,n;
typedef struct
{char fam[15];
int jas;} Student;
Student st[5];
for (i=0; i<5; i++)
cin>>st[i].fam>>st[i].jas;
cout<<"\n жасты енгіз"; cin>>n;
for (i=0; i<5; i++)
if (st[i].jas>n) cout<<"\n студент тегі="<}
Құрылымды #define директивасы арқылы да сипаттауға болады. Бұл жағдайда құрылымды сипаттаудың жалпы түрі былайша жазылады:
#define құрылымдық типтің атауы struct
{элементтерді анықтау;}
Мысал. Студенттің аты мен тегі берілген. Тегі “А” әрпінен басталатын студенттер тізімін шығаратын бағдарлама құрыңдар.
#include
#include
#define Student struct\
{char ati[15];\
char fam[20];}
main()
{ int i;
Student st[3];
for (i=0; i<3; i++)
cin>>st[i].fam>>st[i].ati;
for (i=0; i<3; i++)
if (st[i].fam[0]=='A') cout<<"\n fam="<getch();
}
Ескерту. Құрылымды #define директивасы арқылы да анықтағанда әрбір жолдан кейін “\” жалғастыру символы қойылады.
2 ТӘЖІРИБЕЛІК БӨЛІМ

2.1 Есептің алгоритмін құру


Студенттердің жеке іс қағаздарын шатастырмау үшін реттейтін бағдарлама құруды жөн көрдім. Енді оларды алдымен курстар бойынша, ал курс ішінде аты-жөні бойынша реттеу қажеттілігі ескерілді


Кіріс деректері
Бірінші жолда N (1 ≤ n ≤ 1000) саны – жеке істер саны берілген. Бұдан әрі әрбір студент үшін келесі мәліметтер (әрқайсысы өз жолында): тегі мен аты, курсы, туған күні. Тегі мен аты-20 символдан аспайтын жолдар, курсы – санынан (1-ден 4-ге дейін) және латын әрпінен ("A" - дан "Z" - ге дейін) тұратын жол, туған күні- "ДД.ММ.ЖЖ". Бір курстың ішінде тегі бірдей студент жоқ екеніне кепілдік беріледі және тексеріледі.
Шығу мәліметтері
Шығыс файлына бір студентке деректер жазылған N жолды шығару талап етіледі. Жолдар алдымен курстар бойынша, содан кейін Тегі бойынша ретке келтірілуі тиіс.
Бірінші student деп аталатын құрылым құрылды

struct student {


string name, surname;
char letter;
int Class;
string date;
};

Студенттерді реттеу үшін келесі бөлім қарастырылды


bool operator > (const student &a, const student &b) {


bool res = false;
if (a.Class > b.Class) res = true;
else if (a.Class == b.Class) {
if (a.letter > b.letter) res = true;
else if (a.letter == b.letter) {
if (a.surname > b.surname) res = true;
}
}
return res;
};

Негізгі бағдарламада бірінші студент санын сұрайды, соған сәйкес студенттерді енгіземіз.


cout<<"Student sany -";
cin >> n;
student *a = new student[n];
for (int i = 0; i < n; i++) {
cout<<"namber # "< cout<<"Surname: "; cin >> a[i].surname;
cout<<"Name: "; cin>> a[i].name ;
cout<<"Cours: "; cin>> a[i].Class ;
cout<<"a/b/c: "; cin>> a[i].letter ;
cout<<"birthday: "; cin>> a[i].date;
}


2.2 Бағдарламаның орындалуы және есептің шешімінің нәтижесін талдау

Бағдарламаға байланысты келесі нәтижеге қол жеткізілді.


Кіріс деректері
Бірінші жолда N (1 ≤ n ≤ 1000) саны – жеке істер саны берілген. Бұдан әрі әрбір студент үшін келесі мәліметтер (әрқайсысы өз жолында): тегі мен аты, курсы, туған күні. Тегі мен аты-20 символдан аспайтын жолдар, курсы – санынан (1-ден 4-ге дейін) және латын әрпінен ("A" - дан "Z" - ге дейін) тұратын жол, туған күні- "ДД.ММ.ЖЖ". Бір курстың ішінде тегі бірдей студент жоқ екеніне кепілдік беріледі және тексеріледі.



Шығу мәліметтері


Шығыс файлына бір студентке деректер жазылған N жолды шығару талап етіледі. Жолдар алдымен курстар бойынша, содан кейін Тегі бойынша ретке келтірілуі тиіс.

for (int k = 2; k <= n; k++) {


for (int i = 0; i <= n - k; i++) {
if (a[i] > a[i + 1]) {
swap(a[i], a[i + 1]); }
} }
for (int i = 0; i < n; i++) {
cout<<"--------------------------------------------------------------"< cout << a[i].Class << a[i].letter << " " << a[i].surname << " " << a[i].name << " " << a[i].date << endl;
}
getch();
return 0;}

ҚОРЫТЫНДЫ


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


Менің тақырыбым графикада мәтінді қозғалту болғандықтан мен жұмысымда осы тақырыпқа байланысты графикаға кішігірім тоқталып, сипаттама бере кеттім. Жұмысымның бірінші бөлімінде С++ графикалық мүмкіндіктерін , соның ішінде экрандағы нүктелердің координатын, экрандағы нүктелердің орналасуын, экранның типтік рұқсаттарын жаздым бейнелермен жұмыс, экран обьектілеріне сипаттама беріп, қысқаша тоқталдым.
Ал жұмысымның екінші бөлімінде ең қызықты тақырыпты алдым, ол- анимация құру болып табылады. Бұл бөлімде мен анимацияны қалай құру керектігін, сонымен қатар осыған өте қызықты мысалдар келтірдім. Функция графигін тұрғызу, экранда қозғалысты бейнелеу сияқты тақырыптарға тоқталдым. Бұл бөлімде жұмыстың өзекті мәселелері қарастырып, тереңдей қарастырдым .
Өз курстық жұмысымның тақырыбы бойынша осы бөлімде жете, әрі нақты мысалдар келтіріледі. Сонымен қатар экранда мәтінді ғана қозғалтып қана қоймай, әрі экран обьектілерін де қозғалту, жылжыту туралы да баяндадым.
Координат құрылысының ауысуы және видеобеттермен қалай жұмыс істеу керектігін жаздым. Бұл бөлімде мен әр түрлі сурет фазасын қайталанатын әр түрлі видеобет көмегі арқылы экранға шығаруды үйреніп, білімімді ары қарай дамыта түстім.
Осы курстық жұмысымды жүргізгенде маған тиген пайдасы көп болды. Өйткені программа құрып соның нәтижесін көріп қуанудың өзі бір ғанибет. Осымен соңғы сөзімді: жүргізген жұмысым бойынша алған білімімді түйіндей келе, С++ тілінде графикада бейнені, мәтінді қалай қолдану керек екендігін толықтай меңгердім деп айта аламын. Жұмысымның сондай қызық болғаны соншалық, бірнеше программаларды құрастырып, графикада бейнелердің, мәтіндердің қалай қозғалатынын байқадым. Курстық жұмыс барысында көптеген қызықты жәйттарға тап болып, графикада бірнеше бейнелердің қозғалуын байқадым.
Қазіргі таңдағы нарықтық экономикалық даму кезеңдегі кино өнерінің дамуына байланысты қызығып жүрген кадрларды рет-ретімен құруды үйреніп, графикада анимация, кішігірім мультфильмдерді құрастырудың бастамаларын үйреніп келешекте өз жұмысыма , әрі өмірімде қажеті тиеді деген сенімдемін.

ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ


Негізгі


  1. Бөрібаев Б. С++ тілінде программалау. 2014. - 288 б.

  2. 1. Теория и реализация языков программирования/ В.А.Серебряков, М.П.Галочкин, Д.Р.Гончар, М.Г.Фуругян – М.: Национальный Открытый Университет “ИНТУИТ”, 2016

Қосымша:

  1. Культин Н.Б. С/С++ в задачах и примерах. - СПб.: БХВ-Петербург, 2010. - 288 б.

  2. Муртазина А.У., Тусупова Б.Б. Основы программирования на языках Паскаль и Си. Методические указания к лабораторным работам по курсу «Языки и технология программирования». Часть 3. - Алматы:, 2011.

  3. 2. Сиддхартха Рао. Освой самостоятельно C++ за 21 день, 7-е издание (C++11) = Sams Teach Yourself C++ in One Hour a Day, 7th Edition. — М.: «Вильямс», 2013. — 688 с. — ISBN 978-5-8459-1825-3.

  4. 3. Стивен Прата. Язык программирования C++ (C++11). Лекции и упражнения = C++ Primer Plus, 6th Edition (Developer’s Library). — 6-е изд. — М.: Вильямс, 2012. — 1248 с. — ISBN 978-5-8459-1778-2.

  5. Дейтел Х, Дейтел П. Как программировать на С: Третье издание. Пер. с англ. - М.: Бином-Пресс, 2010 г. - 1168 б.

  6. Уинер Р.Язык Турбо Си: Пер. с англ. - М.: Мир, 2010. - 384 б.

  1. Муртазина А.У., Тусупова Б.Б. Основы программирования на языках Паскаль и Си. Методические указания к лабораторным работам по курсу «Языки и технология программирования». Часть 2. – Алматы, 2009.

Интернет-ресурстары:

  1. Ақпараттық технологиялар сайты – http:// www.ixbt.com

  2. IT-индустриядағы жоғарғы технологиялар сайты – http://citforum.ru


Достарыңызбен бөлісу:
1   2   3   4




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет