̲ͲÑÒÅÐÑÒÂÎ ÎѲÒÈ ² ÍÀÓÊÈ ÓÊÐÀ¯ÍÈ
ÍÀÖ²ÎÍÀËÜÍÈÉ ÒÅÕͲ×ÍÈÉ ÓͲÂÅÐÑÈÒÅÒ
"ÕÀÐʲÂÑÜÊÈÉ ÏÎ˲ÒÅÕͲ×ÍÈÉ ²ÍÑÒÈÒÓÒ"
Êàôåäðà Îá÷èñëþâàëüíî¿ òåõí³êè òà ïðîãðàìóâàííÿ
ÇÀÒÂÅÐÄÆÓÞ
Çàâ³äóâà÷ êàôåäðè ÎÒÏ
__________ /xxxxxxxxx./
"___" __________ 2007ð.
Ñïåöèô³êàö³ÿ
ËÈÑÒ ÇÀÒÂÅÐÄÆÅÍÍß
Xxxxxxxx
Ðîçðîáíèêè Êåð³âíèê ïðîåêòó __________ /äîö. xxxxxxx./ "___" __________ 2007 ð. Âèêîíàâåöü __________ /ñòóä. xxxxxxx./ "___" __________ 2007 ð. |
2007
ÓÇÃÎÄÆÅÍÎ
xxxxxxxxxxxxxx
Ñïåöèô³êàö³ÿ
xxxxxxxxxxxxx
2007
Ôîðìàò | Ïîçíà÷åííÿ | Íàéìåíóâàííÿ | ʳëüê³ñòü | Ïðèì³òêà |
À4 | Xxxxxxxxxxx-01 81 ÒÇ | Òåõí³÷íå çàâäàííÿ | 2 | |
À4 | Xxxxxxxxxxx-01 81 ÏÇ | Ïîÿñíþâàëüíà çàïèñêà | 6 | |
À4 | Xxxxxxxxxxx-01 81 ÎÏ | Ïðîãðàìà òà ìåòîäèêà ³ñïèò³â | 2 | |
À4 | Xxxxxxxxxxx-01 81 ÒÏ | Òåêñò ïðîãðàìè | 4-6 |
̲ͲÑÒÅÐÑÒÂÎ ÎѲÒÈ ² ÍÀÓÊÈ ÓÊÐÀ¯ÍÈ
ÍÀÖ²ÎÍÀËÜÍÈÉ ÒÅÕͲ×ÍÈÉ ÓͲÂÅÐÑÈÒÅÒ
"ÕÀÐʲÂÑÜÊÈÉ ÏÎ˲ÒÅÕͲ×ÍÈÉ ²ÍÑÒÈÒÓÒ"
Êàôåäðà Îá÷èñëþâàëüíî¿ òåõí³êè òà ïðîãðàìóâàííÿ
ÇÀÒÂÅÐÄÆÓÞ
Çàâ³äóâà÷ êàôåäðè ÎÒÏ
__________ /xxxxxxxxx./
"___" __________ 2007ð.
Òåõí³÷íå çàâäàííÿ
ËÈÑÒ ÇÀÒÂÅÐÄÆÅÍÍß
Xxxxxxxxxxx-01 81 01-1-ËÇ
Ðîçðîáíèêè Êåð³âíèê ïðîåêòó __________ /äîö. xxxxxxx./ "___" __________ 2007 ð. Âèêîíàâåöü __________ /ñòóä. xxxxxxxx./ "___" __________ 2007 ð. |
2007
1. Âñòóï
Ó äàíîìó ðîçðàõóíêîâîìó çàâäàíí³ ðîçãëÿíóòèé ïîë³ìîðôíèé ñïèñîê îá'ºêò³â. Òåõí³÷í³ îñîáëèâîñò³ ïðîãðàìè ðîçãëÿíóò³ íèæ÷å.
2. ϳäñòàâà äëÿ ðîçðîáêè
ϳäñòàâîþ äëÿ ðîçðîáêè ïðîãðàìè º îòðèìàííÿ çàâäàííÿ çà òåìîþ «²íôîðìàö³éíî-äîâ³äêîâà ñèñòåìà».
3. Ìåòà ³ ïðèçíà÷åííÿ ðîçðîáêè
Ìåòà ðîáîòè – çàñâî¿òè ïðèíöèï âèêîðèñòàííÿ ïîë³ìîðôíèõ ñïèñê³â îá'ºêò³â ³ ðåàë³çóâàòè ðîáîòó ïðîãðàìíîãî çàáåçïå÷åííÿ , ùî âèêîðèñòîâóº ö³ ïðèíöèïè. Ïðîãðàìà ïðèçíà÷àºòüñÿ äëÿ îáðîáêè òàáëèöü äàíèõ.
4. Âèìîãè äî ðîçðîáêè
Ðîçðîáëåíà ïðîãðàìà ïîâèííà âèêîíóâàòè òàê³ ïóíêòè:
- Ñòâîðåííÿ ïîë³ìîðôíîãî ñïèñêó îá’ºêò³â;
- Âèâ³ä éîãî íà åêðàí;
- Çàíåñåííÿ ó ôàéë;
- Ç÷èòóâàííÿ ç ôàéëó;
- Ïîøóê çàïèñó;
- Ðåäàãóâàííÿ çàïèñó;
- Âñòàâêà íîâîãî çàïèñó;
- Çíèùåííÿ çàïèñó;
- Âèêîíàííÿ çàäà÷³;
- Âèõ³ä.
5. Ñòà䳿 òà åòàïè ðîçðîáêè
1. Ñòâîðåííÿ êëàñ³â;
2. Çàñòîñóâàííÿ ïîë³ìîðô³çìó;
3. Ñòâîðåííÿ äâîíàïðàâëåíîãî ñïèñêó òà ðîáîòà ç íèì;
4. Âò³ëåííÿ ìîæëèâîñòåé äëÿ äàíî¿ ïðîãðàìè, ðîçãëÿíóòèõ ó ï.4;
5. Ââ³ä òà âèâ³ä ³íôîðìàö³¿.
6. Ïîêàç ðåçóëüòàò³â.
6. Ïîðÿäîê êîíòðîëþ òà ïðèéîìêè
Ðîçðîáëåíå ïðîãðàìíå çàáåçïå÷åííÿ ïîâèííî:
- âèêîíóâàòè àñîö³àòèâíèé ïîøóê äàíèõ íà îñíîâ³ ðîçðîáëåíîãî àëãîðèòìó;
- ëåãêî àäàïòóâàòèñÿ ïðè ìîäèô³êàö³¿ ñòðóêòóðè äàíèõ;
- çàáåçïå÷óâàòè äðóæí³é ³íòåðôåéñ ³ç êîðèñòóâà÷åì ³ ìîæëèâ³ñòü íàñòðîþâàííÿ ïàðàìåòð³â äåðåâà â ä³àëîãîâîìó ðåæèì³.
³äìîâëåííÿ ÅÎÌ ó ðîáîò³ íå ïîâèííèé ïðèâîäèòè äî çíà÷íèõ âòðàò ³íôîðìàö³¿.
Ðîçðîáëþâàëüíå ïðîãðàìíå çàáåçïå÷åííÿ ìຠôóíêö³îíóâàòè â ñåðåäîâèù³ MS-DOS òà Windows ³ ïîâèííèé áóòè íàïèñàíèé ìîâîþ C++/Ñ.
7. Ïðîãðàìíà äîêóìåíòàö³ÿ
Äëÿ ðîçðîáëþâàëüíîãî âèðîáó ïîâèíí³ áóòè ñêëàäåí³ ïðîãðàìí³ äîêóìåíòè:
- Ñïåöèô³êàö³ÿ;
- Òåõí³÷íå çàâäàííÿ;
- Ïîÿñíþâàëüíà çàïèñêà;
- Ïðîãðàìà òà ìåòîäèêà ³ñïèòó;
- Òåêñò ïðîãðàìè.
̲ͲÑÒÅÐÑÒÂÎ ÎѲÒÈ ² ÍÀÓÊÈ ÓÊÐÀ¯ÍÈ
ÍÀÖ²ÎÍÀËÜÍÈÉ ÒÅÕͲ×ÍÈÉ ÓͲÂÅÐÑÈÒÅÒ
"ÕÀÐʲÂÑÜÊÈÉ ÏÎ˲ÒÅÕͲ×ÍÈÉ ²ÍÑÒÈÒÓÒ
Êàôåäðà Îá÷èñëþâàëüíî¿ òåõí³êè òà ïðîãðàìóâàííÿ
ÇÀÒÂÅÐÄÆÓÞ
Çàâ³äóâà÷ êàôåäðè ÎÒÏ
__________ /Xxxxxxxxxxx./
"___" __________ 2007ð.
Ïîÿñíþâàëüíà çàïèñêà
ËÈÑÒ ÇÀÒÂÅÐÄÆÅÍÍß
Xxxxxxxxxxx-01 81 01-1-ËÇ
Ðîçðîáíèêè Êåð³âíèê ïðîåêòó __________ /äîö. Xxxxxxxxxxx./ "___" __________ 2007 ð. Âèêîíàâåöü __________ /ñòóä. Xxxxxxxxxxx./ "___" __________ 2007 ð. |
2007
Àíîòàö³ÿ
Ó äàíîìó ðîçðàõóíêîâî-ãðàô³÷íîìó çàâäàíí³ äîêëàäíî ðîçãëÿäàºòüñÿ àëãîðèòìè ïîë³ìîðôíèõ ñïèñê³â îá’ºêò³â, ðîçðîáëåíà ïðîãðàìà, ùî ðåàë³çóº àëãîðèòì ïîë³ìîðôíèõ ñïèñê³â îá’ºêò³â òà ³íòåðôåéñíà ÷àñòèíà ïðîãðàìè ìîâîþ C++.
Ïîÿñíþâàëüíà çàïèñêà ì³ñòèòü äîñòàòíüî ïðèêëàä³â òà òåîðåòè÷íó ÷àñòèíó äëÿ ñàìîñò³éíîãî ðîçãëÿäó òà îïàíóâàííÿ òåìè «Ïîë³ìîðôí³ ñïèñêè îá’ºêò³â».
Àííîòàöèÿ
 äàííîì ðàñ÷åòíî-ãðàôè÷åñêîì çàäàíèè ïîäðîáíî ðàññìàòðèâàåòñÿ àëãîðèòìû ïîëèìîðôíûõ ñïèñêîâ îáúåêòîâ, ðàçðàáîòàííàÿ ïðîãðàììà, êîòîðàÿ ðåàëèçóåò àëãîðèòì ïîëèìîðôíûõ ñïèñêîâ îáúåêòîâ è èíòåðôåéñíàÿ ÷àñòü ïðîãðàììû ÿçûêîì C++.
Îáúÿñíèòåëüíàÿ çàïèñêà ñîäåðæèò äîñòàòî÷íî ïðèìåðîâ è òåîðåòè÷åñêóþ ÷àñòü äëÿ ñàìîñòîÿòåëüíîãî ðàññìîòðåíèÿ è îâëàäåíèå òåìû «Ïîëèìîðôíûå ñïèñêè îáúåêòîâ».
In the given settlement-graphic task in details is described algorithms of polymorphic lists of the objects, the developed program which realizes algorithm of polymorphic lists of objects and the interface part of the program language C++.
The explain annotation contains enough examples and a theoretical part for independent consideration and mastering of a theme « polymorphic lists of objects».
Çì³ñò
1. Âñòóï
2. Ïðèçíà÷åííÿ
3. Òåõí³÷í³ õàðàêòåðèñòèêè
4. Îòðèìàí³ ðåçóëüòàòè
5. Ñïèñîê âèêîðèñòàíî¿ ë³òåðàòóðè
Ñ++ - öå ñïðîáà ð³øåííÿ ðîçðîáëþâà÷àìè ìîâè Ñ çàâäàíü îᢺêòíî- îð³ºíòîâàíîãî ïðîãðàìóâàííÿ (Object Oriented Programming, OOP). Ïîáóäîâàíèé íà òâåðäîìó ôóíäàìåíò³ Ñ, Ñ++ êð³ì ÎÎÐ ï³äòðèìóº áåçë³÷ ³íøèõ êîðèñíèõ ³íñòðóìåíò³â, í³ æåðòâóþ÷è ïðè öüîìó í³ ì³ööþ, í³ åëåãàíòí³ñòþ, í³ ãíó÷ê³ñòþ Ñ. Ñ++ ñòàâ óí³âåðñàëüíîþ ìîâîþ äëÿ ïðîãðàì³ñò³â óñüîãî ìèðó. Ñàìå íà ìîâ³ Ñ++ ïðîâîäèòüñÿ íàâ÷àííÿ ñòóäåíò³â ó âóçàõ âèùèõ íàâ÷àëüíèõ çàêëàä³â äëÿ ï³äãîòîâêè ïîäàëüøî¿ áàçè äëÿ ãàðíîãî ïðàöåâëàøòóâàííÿ. Ñ++ ì³ñòèòü çðó÷íèé ³íòåðôåéñ äëÿ êîðèñòóâà÷à ïî÷àòê³âöÿ äëÿ ðîçðîáêè ïðîñò³øèõ çàäà÷ àëå ìຠòàêîæ ³ ìîæëèâîñò³ äëÿ ðîçðîáêè ñêëàäíèõ ïðîãðàì.
Ó äàí³é ðîáîò³ øèðîêî âèêîðèñòîâóºòüñÿ ïîë³ìîðô³çì òà äâîíàïðÿìëåíèé ñïèñîê êëàñ³â.
1. Ïðèçíà÷åííÿ òà îáëàñòü âèêîðèñòàííÿ
Ïðèçíà÷åííÿ äàíî¿ ïðîãðàìè – çáåðåæåííÿ ³íôîðìàö³¿ î ìóçè÷íèõ àëüáîìàõ: íàçâà, ð³ê âèïóñêó, ê³ëüê³ñòü òðåê³â, ê³ëüê³ñòü áîíóñíèõ òðåê³â òà äîâãîòè çâó÷àííÿ.
Ðîçðîáëåíà ïðîãðàìà ïîâèííà âèêîíóâàòè:
- Ñòâîðåííÿ ïîë³ìîðôíîãî ñïèñêó îá’ºêò³â;
- Âèâ³ä éîãî íà åêðàí;
- Çàíåñåííÿ ó ôàéë;
- Ç÷èòóâàííÿ ç ôàéëó;
- Ïîøóê çàïèñó;
- Ðåäàãóâàííÿ çàïèñó;
- Âñòàâêà íîâîãî çàïèñó;
- Çíèùåííÿ çàïèñó;
- Çíàõîäæåííÿ çàïèñó íàéìåíøîþ ê³ëüê³ñòþ òðåê³â ó çàäàíîìó ä³àïàçîí³ ðîê³â
- Âèõ³ä.
Âèêîðèñòîâóâàòè äàíó ïðîãðàìó ìîæíà äëÿ âèâ÷åííÿ ïðèíöèïó ðîáîòè ç³ ïîë³ìîðô³çìîì òà ñïèñêîì.
Ïðè ðîáîò³ ç³ ñïèñêàìè íà ïðàêòèö³ ÷àñò³øå óñüîãî ïðèõîäèòüñÿ âèêîíóâàòè íàñòóïí³ îïåðàö³¿:
- çíàéòè åëåìåíò ç çàäàíèìè âëàñòèâîñòÿìè;
- çíàéòè ïåðøèé åëåìåíò ó ë³í³éíîìó ñïèñêó;
- âñòàâèòè åëåìåíò äî òà ï³ñëÿ âêàçàíîãî âóçëà;
- âèäàëèòè êîíêðåòíèé åëåìåíò ³ç ñïèñêó;
- óïîðÿäêóâàòè âóçëè ñïèñêó ó êîíêðåòíîìó ïîðÿäêó.
2. Òåõí³÷í³ õàðàêòåðèñòèêè
Ôóíêö³îíóâàííÿ ñèñòåìè ö³ëêîì çàáåçïå÷óºòüñÿ ñòàíäàðòíîþ êîíô³ãóðàö³ºþ IBM ñóì³ñíèõ ïåðñîíàëüíèõ ÅÎÌ. Äëÿ åêñïëóàòàö³¿ ñèñòåìè íåîáõ³äíèé IBM/PC AT ç CPU òèïó k286 ÷è âèùå, îáñÿãîì îïåðàòèâíî¿ ïàì'ÿò³ 4 Ìáàéò ³ íàêîïè÷óâà÷åì íà HARD äèñêó îáñÿãîì íå ìåíø 200 Ìáàéò.
Ùî ñòîñóºòüñÿ äàíî¿ ïðîãðàìè, òî âõ³äíèìè äàíèìè º ³íôîðìàö³ÿ òèïó int òà char. Âèõ³äí³ äàí³ º òèïàìè öèõ æå òèï³â. Îñíîâí³ ôóíêö³¿ âñòàíîâëþþòü ³íôîðìàö³þ àáî âèâîäÿòü ¿¿ íà åêðàí.
Íèæ÷å ïðèâåäåí³ ñõåìè àëãîðèòìó ãîëîâíî¿ ôóíêö³¿ void main().(Äèâèñü ìàëþíîê 1.1)
3. Î÷³êóâàí³ òåõí³êî-åêîíîì³÷í³ ïîêàçíèêè
Äàíà ïðîãðàìà çàéìຠì³í³ìàëüíèé îá’ºì ïàì’ÿò³. Ïîøèðåíà ³íôîðìàö³ÿ ùîäî âèìîã çàçíà÷åíà âèùå. Åêîíîì³÷í³ ïðèáóòêè íå ðîçãëÿäàþòüñÿ, îñê³ëüêè äàíà ïðîãðàìà º îá’ºêòîì äëÿ íàâ÷àííÿ. ª ìîæëèâ³ñòü ùîäî âèêîðèñòàííÿ ¿¿ ÿê ïîñ³áíèêà äëÿ íàñòóïíèõ êóðñ³â.
4. Ðîçðîáêà
Ó ïðîãðàì³ âèêîðèñòîâóºòüñÿ ïîë³ìîðô³çì, ³íêàïñóëÿö³ÿ òà óñïàäêóâàííÿ, ÿñêðàâî ïðåäñòàâëåíî ÎÎÏ. Ïðè çâåðíåí³ äî áàòüê³âñüêîãî êëàñó, âèêëèêàþòüñÿ ôóíêö³¿ íàñë³äíèõ êëàñ³â(ïîë³ìîðô³çì).Ïðè óñïàäêóâàíí³ íàñë³äí³ êëàñè ìàþòü äîñòóï äî ïîë³â áàòüê³âñüêîãî êëàñó. Âèêîðèñòàíî â³ðòóàëüí³ ôóíêö³¿ òà ïîë³ìîðôíèé ñïèñîê îá’ºêò³â.
²íêàïñóëÿö³ÿ äîçâîëÿº «çàõîâàòè» çì³íí³-åëåìåíòè êëàñó.
Îïèñ êëàñ³â
album
Çì³ííà | Ïðèçíà÷åííÿ | Ìåòîäè | Ïðèçíà÷åííÿ |
Nazv God | Íàçâà àëüáîìó гê âèïóñêó | virtual void input() virtual void output() | Âîä òà âèâîä ³íôîðìàö³¿ |
àlbum1
Çì³ííà | Ïðèçíà÷åííÿ | Ìåòîäè | Ïðèçíà÷åííÿ |
Trek | ʳëüê³ñòü òðåê³â | --//-- int getTrek() void setTrek() | --//-- Âñòàíîâëåííÿ çíà÷åííÿ trek |
àlbum
Çì³ííà | Ïðèçíà÷åííÿ | Ìåòîäè | Ïðèçíà÷åííÿ |
Time | Ïðîòÿæí³ñòü çà ÷àñîì | --//-- int getTime() void setTime() | --//-- Âñòàíîâëåííÿ çíà÷åííÿ time |
album3
Çì³ííà | Ïðèçíà÷åííÿ | Ìåòîäè | Ïðèçíà÷åííÿ |
Bonus | ʳëüê³ñòü áîíóñíèõ òðåê³â | --//-- Int getBonus(), void setBonus() | --//-- Âñòàíîâëåííÿ çíà÷åííÿ bonus |
Tool
Çì³ííà | Ïðèçíà÷åííÿ | Ìåòîäè | Ïðèçíà÷åííÿ |
T *d *right *left | Çì³ííà ñïèñêó Óêàç. íà îá’ºêòÓêàç. íà îá’ºêò->Óêàç. íà îá’ºêò<- |
Trst
Çì³ííà | Ïðèçíà÷åííÿ | Ìåòîäè | Ïðèçíà÷åííÿ |
*head *tail *current | Óêàç. íà ãîëîâóÓêàç. íà õâ³ñòÓêàç. íà òåêóù³é | Void add(int type, int vvod) | Äîäàâííà íîâèõ åëåìåíò³â ñïèñêó |
Êëàñ àlbum – öå áàçîâèé (áàòüê³âñüêèé) êëàñ, ùî ì³ñòèòü äâà ³íôîðìàö³éíèõ ïîëÿ: íàçâó àëüáîìó (ñòðîêîâèé òèï) òà ð³ê âèïóñêó (ö³ëî÷èñëîâèé òèï). ³í ìຠäâ³ â³ðòóàëüí³ ôóíêö³¿ (ââîäó/âèâîäó), òà êîíñòðóêòîð ç äåñòðóêòîðîì.
Êëàñ àlbum1 – öå êëàñ-íàùàäîê êëàñó àlbum, â³í ì³ñòèòü ³íôîðìàö³éíå ïîëå, ùî íåñå ³íôîðìàö³þ î ê³ëüêîñò³ òðåê³â ó àëüáîì³. ³í òàêîæ ìຠâ³ðòóàëüí³ ôóíêö³¿ (ââîäó/âèâîäó) òà êîíñòðóêòîð ç äåñòðóêòîðîì, àëå ùå â³í ìຠäâ³ ôóíêö³¿ ùî ñòâîðþþòü ïîëå trek, òà ïîâåðòàþòü çíà÷åííÿ öüîãî ïîëÿ.
Êëàñ àlbum2 – öå êëàñ-íàùàäîê êëàñó àlbum1, â³í ì³ñòèòü ³íôîðìàö³éíå ïîëå, ùî íåñå ³íôîðìàö³þ î ïðîòÿæíîñò³ àëüáîìó çà ÷àñîì. ³í òàêîæ ìຠâ³ðòóàëüí³ ôóíêö³¿ (ââîäó/âèâîäó) òà êîíñòðóêòîð ç äåñòðóêòîðîì, àëå ùå â³í ìຠäâ³ ôóíêö³¿ ùî ñòâîðþþòü ïîëå time, òà ïîâåðòàþòü çíà÷åííÿ öüîãî ïîëÿ.
Êëàñ àlbum3 – öå êëàñ-íàùàäîê êëàñó àlbum2, â³í ì³ñòèòü ³íôîðìàö³éíå ïîëå, ùî íåñå ³íôîðìàö³þ î ê³ëüêîñò³ áîíóñíèõ òðåê³â ó àëüáîì³. ³í òàêîæ ìຠâ³ðòóàëüí³ ôóíêö³¿ (ââîäó/âèâîäó) òà êîíñòðóêòîð ç äåñòðóêòîðîì, àëå ùå â³í ìຠäâ³ ôóíêö³¿ ùî ñòâîðþþòü ïîëå bonus, òà ïîâåðòàþòü çíà÷åííÿ öüîãî ïîëÿ.
Êëàñ Tool – öå êëàñ ÿêèé º äâîíàïðÿìëåíèì ñïèñêîì îá’ºêò³â êëàñó àlbum òà éîãî íàùàäê³â. Ôóíêö³ÿìè äàíîãî êëàñó º êîíñòðóêòîð òà äåñòðóêòîð ùî â³äïîâ³äíî ñòâîðþþòü ïîë³ìîðôíèé ñïèñîê îá’ºêò³â òà âèâ³ëüíÿþòü ïàì'ÿòü â³äâåäåíó ï³ä íüîãî.
Êëàñ Trist º äðóæí³ì äî êëàñó Tool.³í âì³ùຠôóíêö³þ äîäàâàííÿ íîâèõ îá’ºêò³â äî ñïèñêó. Íîâ³ îá’ºêòè äîäàþòüñÿ ó ê³íåöü(õâ³ñò) ñïèñêó ³ ìîæóòü áóòè îäíîãî ç òèï³â àlbum, àlbum1, àlbum2 òà àlbum3.
Ôóíêö³ÿ int get….() ïîâåðòຠçíà÷åííÿ äàíîãî ïîëÿ äëÿ îá’ºêòó.
Ôóíêö³ÿ int set….() ñòâîðþº ïîëå îá'ºêòà à ñàìå âñòàíîâëþº â³äïîâ³äí³ñòü(çàíîñèòü ó ïîëå ³íôîðìàö³þ) ç ³íôîðìàö³ºþ ùî ââîäèòü êîðèñòóâà÷ ïðè çàïîâíåí³ òàáëèö³.
Ôóíêö³¿ virtual void output() òà virtual void input() ÿâëÿþòüñÿ ÿñêðàâèìè ïîêàæ÷èêàìè ïîë³ìîðô³çìó áî º â³ðòóàëüíèìè ôóíêö³ÿìè. Âîíè ñëóãóþòü äëÿ âèâîäó íà åêðàí àáî çàïîâíåííÿ îá’ºêòó ïðè ðîáîò³ ç òàáëèöåþ.
6. Ñïèñîê âèêîðèñòàíî¿ ë³òåðàòóðè
· Øèëäò Ã. Ñàìîó÷èòåëü Ñ++. – Ñàíêò-Ïåòåðáóðã, 2007.
· Ìàòåð³àëè ëîêàëüíî¿ ñ³òêè ÍÒÓ "Õϲ".
̲ͲÑÒÅÐÑÒÂÎ ÎѲÒÈ ² ÍÀÓÊÈ ÓÊÐÀ¯ÍÈ
ÍÀÖ²ÎÍÀËÜÍÈÉ ÒÅÕͲ×ÍÈÉ ÓͲÂÅÐÑÈÒÅÒ
"ÕÀÐʲÂÑÜÊÈÉ ÏÎ˲ÒÅÕͲ×ÍÈÉ ²ÍÑÒÈÒÓÒ
Êàôåäðà Îá÷èñëþâàëüíî¿ òåõí³êè òà ïðîãðàìóâàííÿ
ÇÀÒÂÅÐÄÆÓÞ
Çàâ³äóâà÷ êàôåäðè ÎÒÏ
__________ /Xxxxxxxxxxx./
"___" __________ 2007ð.
Ïðîãðàìà òà ìåòîäèêà ³ñïèò³â
ËÈÑÒ ÇÀÒÂÅÐÄÆÅÍÍß
Xxxxxxxxxxx-01 51 01-1-ËÇ
Ðîçðîáíèêè Êåð³âíèê ïðîåêòó __________ /äîö. Xxxxxxxxxxx./ "___" __________ 2007 ð. Âèêîíàâåöü __________ /ñòóä. Xxxxxxxxxxx./ "___" __________ 2007 ð. |
2007
ÓÇÃÎÄÆÅÍÎ
Xxxxxxxxxxx-01 51 01-1-ËÇ
Ïðîãðàìà òà ìåòîäèêà ³ñïèò³â
Xxxxxxxxxxx-01 51 01-1
2007
1. Îá’ºêò ³ñïèò³â
Ïðîãðàìà ÿâëÿº ñîáîþ ìîäóëü, ùî ñêëàäàºòüñÿ ç òðüîõ ôàéë³â:
- RGZ.cpp (Îñíîâíèé ôàéë, ì³ñòèòü ôóíêö³þ main( ) );
- RGZ_DSC.cpp (Ôàéë, ùî ì³ñòèòü îïèñ ôóíêö³é êëàñ³â) ;
- RGZ.Í (Ôàéë, ùî ì³ñòèòü îïèñ êëàñ³â)
Îá’ºêòîì ³ñïèò³â º íèæ÷å ïðèâåäåíà ïðîãðàìà.
2. Ìåòà ³ñïèò³â
Ìåòà ³ñïèò³â – öå âïåâíèòèñÿ ó ïðàâèëüíîñò³ ðîáîòè äàíî¿ ïðîãðàìè òà îö³íèòè ¿¿ åôåêòèâí³ñòü.
Òåñòè, êîòð³ ïåðåâ³ðþþòü ïðàâèëüí³ñòü ðîáîòè ïðîãðàìè ïðèâåäåí³ ó ïóíêò³ «Çàñîáè òà ïîðÿäîê âèïðîáóâàíü».
3. Âèìîãè äî ïðîãðàìè òà ïðîãðàìíîãî äîêóìåíòà
Ôóíêö³îíóâàííÿ ñèñòåìè ö³ëêîì çàáåçïå÷óºòüñÿ ñòàíäàðòíîþ êîíô³ãóðàö³ºþ IBM ñóì³ñíèõ ïåðñîíàëüíèõ ÅÎÌ.
Îñíîâíà âèìîãà äî ïðîãðàìè – öå ÷³òêå äåìîíñòðóâàííÿ ïîë³ìîðô³çìó òà ïðàâèëüí³ñòü ðîáîòè, à òàêîæ, âò³ëåííÿ îñíîâíî¿ çàäà÷³.
4. Çàñîáè òà ïîðÿäîê ³ñïèò³â
Çàñîáîì ³ñïèò³â º ââåäåííÿ ³íôîðìàö³¿ çà ï³äêàçêàìè, ÿê³ ç’ÿâëÿþòüñÿ ó ïðîöåñ³ ðîáîòè ïðîãðàìè. Øëÿõîì ïîð³âíÿííÿ ôàêòè÷íîãî ðåçóëüòàòó ðîáîòè ïðîãðàìè ç ïðîãíîçîâàíèìè ðåçóëüòàòàìè, âñòàíîâëþºòüñÿ â³ðí³ñòü ðîáîòè ïðîãðàìè.
Ðîçãëÿíåìî âèêîíàííÿ ïðîãðàìè ïî ïóíêòàõ:
· Ïåðåä êîðèñòóâà÷åì ç'ÿâëÿºòüñÿ ïîâ³äîìëåííÿ: "Vvedite nomer operatsii".
· ßêùî âè íàòèñíåòå êëàâ³øó "1", òî âèêîíàºòå íàñòóïí³ ä³¿:
Sozdanie tablizi dannih
Vvedite N: 3
Vvedite tip zapisi [0..2]: 2
Vvedite nazvanie alboma: qqq
Vvedite god vipuska: 1889
Vvedite kl-vo trekov v albome: 11
Vvedite prodolzitelnost alboma po vremeni: 60
Vvedite kolichestvo bonus trekov: 2
Vvedite tip zapisi [0..2]: 0
Vvedite nazvanie alboma: www
Vvedite god vipuska: 1990
Vvedite kl-vo trekov v albome: 12
Vvedite tip zapisi [0..2]: 1
Vvedite nazvanie alboma: eee
Vvedite god vipuska: 1991
Vvedite kl-vo trekov v albome: 13
Vvedite prodolzitelnost alboma po vremeni: 58
· Ïðè íàòèñêàíí³ íà êëàâ³øó "2" íà åêðàí³ ç'ÿâèòüñÿ òàáëèöÿ ÿêó âè çàïîâíèëè âèùå:
Vivod na ekran
|Nazv |God |Treki |Vremya |Bonus+
-------------------------------------------------------
qqq 1889 11 60 2
www 1990 12
eee 1991 13 58
Vivod na ekran zavershen.
· ßêùî âè íàòèñíåòå "3", òî íà åêðàí³ ç'ÿâèòüñÿ ïîâ³äîìëåííÿ:
Vvedite nomer operatsii:3
Vivod v fail a.dat
Vivod v fail uspeshno zavershen.
· ßêùî âè íàòèñíåòå "4", òî íà åêðàí³ ç'ÿâèòüñÿ ïîâ³äîìëåííÿ:
Vvedite nomer operatsii:4
Chtenie iz faila a.dat
Chtenie iz faila uspeshno zavershena.
· Ïðè íàòèñêàíí³ íà êëàâ³øó "5" íà åêðàí³ ç'ÿâèòüñÿ ïîâ³äîìëåííÿ òà âè âèêîíàºòå íàñòóïí³ ä³¿:
Vvedite nomer operatsii:5
Poisk obyekta
Vvedite kluch dlya poiska(nazvanie alboma): www
Zapis bila naidena.
|Nazv |God |Treki |Vremya |Bonus+
-------------------------------------------------------
www 1990 12
· ßêùî âè íàòèñíåòå "6", òî íà åêðàí³ ç'ÿâèòüñÿ ïîâ³äîìëåííÿ òà âè âèêîíàºòå íàñòóïí³ ä³¿:
Vvedite nomer operatsii:6
Redaktirovanie zapisi
Vvedite nomer zapisi: 2
vedite nazvanie alboma: rrr
vedite god vipuska: 1234
vedite kl-vo trekov v albome: 13
vedite prodolzitelnost alboma po vremeni: 56
Redaktirovanie uspeshno zaversheno.
· Ðåçóëüòàòîì âàøèõ ä³é áóäå òå, ùî îäèí çàïèñ ó òàáëèö³ çì³íèòüñÿ:
Vivod na ekran
|Nazv |God |Treki |Vremya |Bonus+
-------------------------------------------------------
qqq 1889 11 60 2
www 1990 12
rrr 1234 13 56
Vivod na ekran zavershen.
· Ïðè íàòèñêàíí³ íà êëàâ³øó "7" íà åêðàí³ ç'ÿâèòüñÿ ïîâ³äîìëåííÿ òà âè âèêîíàºòå íàñòóïí³ ä³¿:
Vvedite nomer operatsii:7
Vstavka novoi zapisi
Vvedite tip novoy zapisi [0..2]: 2
vedite nazvanie alboma: zzz
vedite god vipuska: 1534
Vvedite kl-vo trekov v albome: 13
Vvedite prodolzitelnost alboma po vremeni: 222
Vvedite kolichestvo bonus trekov: 1
Vstavka zapisi uspeshno zaversena.
· Ðåçóëüòàòîì âàøèõ ä³é áóäå òå ùî îäèí çàïèñ ó òàáëèö³ çì³íèòüñÿ:
Vivod na ekran
|Nazv |God |Treki |Vremya |Bonus+
-------------------------------------------------------
qqq 1889 11 60 2
www 1990 12
rrr 1234 13 56
zzz 1534 11 222 1
Vivod na ekran zavershen.
· ßêùî âè íàòèñíåòå "8" òî íà åêðàí³ ç'ÿâèòüñÿ ïîâ³äîìëåííÿ òà âè âèêîíàºòå íàñòóïí³ ä³¿:
Vvedite nomer operatsii:8
Udalenie zapisi
Vvedite nomer zapisi dlya udalenia:1
Zapis bila udalena.
· Ðåçóëüòàòîì âàøèõ ä³é áóäå òå, ùî îäèí çàïèñ ó òàáëèö³ áóäå çíèùåíî:
Vivod na ekran
|Nazv |God |Treki |Vremya |Bonus+
-------------------------------------------------------
qqq 1889 11 60 2
rrr 1234 13 56
zzz 1534 11 222 1
Vivod na ekran zavershen.
· Ïðè íàòèñêàíí³ íà êëàâ³øó "9" íà åêðàí³ ç'ÿâèòüñÿ ïîâ³äîìëåííÿ òà âè âèêîíàºòå íàñòóïí³ ä³¿:
Vvedite nomer operatsii:9
Poisk obyekta s minimalnim kl-vom trekov v zadannom diapazone let
Vvedite leviy predel poiska(god): 1
Vvedite praviy predel poiska(god): 1600
Zapis bila naidena.
|Nazv |God |Treki |Vremya |Bonus+
-------------------------------------------------------
zzz 1534 11 222 1
· Ïðè íàòèñêàíí³ íà êëàâ³øó "10" ïðîãðàìó áóäå çàâåðøåíî.
Êîæíèé îòðèìàíèé ðåçóëüòàò â³äïîâ³äຠïîñòàâëåí³é çàäà÷³.
Îòðèìàíí³ ðåçóëüòàòè çá³ãàþòüñÿ ç ïðîãíîçàìè, ùîäî â³ðíîñò³ ðîáîòè äàíî¿ ïðîãðàìè, òîáòî çàäà÷à âèêîíàíà â³ðíî.
̲ͲÑÒÅÐÑÒÂÎ ÎѲÒÈ ² ÍÀÓÊÈ ÓÊÐÀ¯ÍÈ
ÍÀÖ²ÎÍÀËÜÍÈÉ ÒÅÕͲ×ÍÈÉ ÓͲÂÅÐÑÈÒÅÒ
"ÕÀÐʲÂÑÜÊÈÉ ÏÎ˲ÒÅÕͲ×ÍÈÉ ²ÍÑÒÈÒÓÒ
Êàôåäðà Îá÷èñëþâàëüíî¿ òåõí³êè òà ïðîãðàìóâàííÿ
ÇÀÒÂÅÐÄÆÓÞ
Çàâ³äóâà÷ êàôåäðè ÎÒÏ
__________ /Xxxxxxxxxxx./
"___" __________ 2007ð.
Òåêñò ïðîãðàìè
Xxxxxxxxxxx-01 12 01-1-ËÇ
Ðîçðîáíèêè Êåð³âíèê ïðîåêòó __________ /äîö. Xxxxxxxxxxx./ "___" __________ 2007 ð. Âèêîíàâåöü __________ /ñòóä. Xxxxxxxxxxx./ "___" __________ 2007 ð. |
2007
ÓÇÃÎÄÆÅÍÎ
Xxxxxxxxxxx-01 81 01-1-ËÇ
Òåêñò ïðîãðàìè
Xxxxxxxxxxx-01 12 01-1
2007
Òåêñò ïðîãðàìè
//Çàãîëîâêîâèé ôàéë
#include <string.h>
class album
{
public:
album() {}
virtual void input();
virtual void output();
char nazv[4];//Íàçâà
int god;//гê âèïóñêó
~album() {}
};
class album1: public album
{ protected:
int trek;//ʳëüê³ñòü òðåê³â
public:
album1();
virtual void input();
virtual void output();
int getTrek()
{
return trek;
}
void setTrek(int c)//ô-ö³ÿ ñòâîðåííÿ ïîëÿ
{
trek=c;
}
~album1();
};
class album2: public album1
{
protected:
int time;//×àñ çâó÷àííÿ
public:
album2();
virtual void input();
virtual void output();
int getTime()
{
return time;
}
void setTime(int c)
{
time=c;
}
~album2();
};
class album3: public album2
{
protected:
int bonus;//ʳëüê³ñòü áîíóñ òðåê³â
public:
album3();
virtual void input();
virtual void output();
int getBonus()
{
return bonus;
}
void setBonus(int c)
bonus=c;
}
~album3();
};
class Tool
{
public:
album *d;
int t;
friend class Trist;//îá'ÿâëåííÿ äðóæíüîãî êëàñó
Tool *right,*left;
};
class Trist
{
public:
Tool *head,*tail;
Tool *current;
Trist(int type,int vvod);//Êîíñòðóêòîð
void add(int type, int vvod);//ô_ö³ÿ äîáàâëåííÿ îá’ºêò³â
~Trist();//Äåñòðóêòîð
};
//Îïèñíèé ôàéë
#include "RGZ.h"
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#include <iomanip.h>
void album::input()//ô-ö³ÿ ââîäó
{
cout << "Vvedite nazvanie alboma: ";
cin >> nazv;
nazv[3]=NULL;
cout << "Vvedite god vipuska: ";
cin >> god;
}
void album::output()//ô-ö³ÿ âèâîäó
{
cout << endl<< setw(10) << setiosflags(ios::left) << nazv
<< setw(10) << setiosflags(ios::left) << god;
}
album1::album1():album() {}//êîíñòðóêòîð
album1::~album1(){ album::~album(); }//äåñòðóêòîð
void album1::input()
{
album::input();
cout << "Vvedite kl-vo trekov v albome: ";
cin >> trek;
}
void album1::output()
{
album::output();
cout<< setw(10) << setiosflags(ios::left) << trek;
}
album2::album2():album1() {}
album2::~album2() { album1::~album1(); }
void album2::input()
{
album1::input();
cout << "Vvedite prodolzitelnost alboma po vremeni: ";
cin >> time;
}
void album2::output()
{
album1::output();
cout << setw(12) << setiosflags(ios::left) << time;
}
album3::album3():album2() {}
album3::~album3() { album2::~album2(); }
void album3::input()
{
album2::input();
cout << "Vvedite kolichestvo bonus trekov: ";
cin >> bonus;
}
void album3::output()
{
album2::output();
cout << setw(10) << setiosflags(ios::left) << bonus;
}
void caption()//çàãîëîâêîâà ô-ö³ÿ
{
cout << endl << setw(10) << setiosflags(ios::left) << "|Nazv"
<< setw(10) << setiosflags(ios::left) << "|God"
<< setw(10) << setiosflags(ios::left) << "|Treki"
<< setw(10) << setiosflags(ios::left) << "|Vremya"
<< setw(10) << setiosflags(ios::left) << "|Bonus+"<< endl;
cout << "-------------------------------------------------------";
}
Trist::Trist(int type, int vvod)//Ñòâîðåííÿ ñïèñêó îá'ºêò³â
{
album1 *pr;
album2 *sp;
album3 *fl;
head = new Tool;
head->t = type;
if (head->t == 0)
{
pr = new album1;
if (vvod)
pr->input();
head->d=pr;
} else
if (head->t == 1)
{
sp = new album2;
if (vvod)
sp->input();
head->d=sp;
} else
if (head->t == 2)
{
fl = new album3;
if (vvod)
fl->input();
head->d=fl;
}
head->right=NULL;
head->left=NULL;
tail=head;
current=head;
}
Trist::~Trist()//Âèñâîáîäæåííÿ ïàìÿò³
{
Tool *h;
h=head;
while (h!=0)
{ head=head->right;
head->left=NULL;
delete h;
h=head;
}
}
void Trist::add(int type, int vvod)//äîäàâàííÿ íîâîãî îá’ºêòà ó ñïèñîê
{
Tool *q = new Tool;
album1 *pr;
album2 *sp;
album3 *fl;
q->t = type;
switch (q->t)
{
case 0:
pr = new album1;
if (vvod)
pr->input();
q->d=pr;
break;
case 1:
sp=new album2;
if (vvod)
sp->input();
q->d=sp;
break;
case 2:
fl=new album3;
if (vvod)
fl->input();
q->d=fl;
break;
}
if (current==tail)
{
q->right=NULL;
q->left=current;
current->right=q;
tail=q;
current=q;
} else
{ q->right=current->right;
current->right->left=q;
current->right=q;
q->left=current;
current=q;
}
}
//Ãîëîâíèé ôàéë
#include "RGZ_dsc.cpp"
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <fstream.h>
void sozdan(Trist *&a, int n);//ñòâîðåííÿ
void output(Trist *&a);//âèâ³ä íà åêðàí
void output_file(Trist *&a, int n);//âèâ³ä äî ôàéëó
void input_file(Trist *&a);//÷èòàííÿ ç ôàéëó
Tool* pois(Trist *&a, char* nazv);//ô-ö³ÿ ïîøóêó
Tool* zadacha(Trist *&a,int godL,int godR);//âèêîíàííÿ çàäà÷³
void main()//Ãîëîâíà ïðîãðàìà
{
int i,N=5,k;
Trist *a = NULL;
clrscr();
randomize();
while (1)
{
cout << "\n\n############################";
cout << "\n# 1 - Sozdanie bazi dannih #";
cout << "\n# 2 - Vivod na ekran #";
cout << "\n# 3 - Vivod v fail #";
cout << "\n# 4 - Chtenie iz faila #";
cout << "\n# 5 - Poisk #";
cout << "\n# 6 - Redaktirovanie zapisi #";
cout << "\n# 7 - Vstavka novoi zapisi #";
cout << "\n# 8 - Udalenie zapisi #";
cout << "\n# 9 - Vipolnrnie zadachi #";
cout << "\n# 10 - Vihod #";
cout << "\n\n############################";
cout << "\n Vvedite nomer operatsii:";
cin >> k;
switch (k)
{
case 1:
cout << "\n Sozdanie tablizi dannih";
cout << "\n Vvedite N: ";
cin >> N;
sozdan(a,N);
cout << "\n Tabliza dannih sozdana.";
getch();
break;
case 2:
cout << "\n Vivod na ekran ";
output(a);
cout << "\n Vivod na ekran zavershen.";
getch();
break;
case 3:
cout << "\n Vivod v fail a.dat ";
output_file(a,N);
cout << "\n Vivod v fail uspeshno zavershen.";
getch();
break;
case 4:
cout << "\n Chtenie iz faila a.dat ";
input_file(a);
cout << "\n Chtenie iz faila uspeshno zavershena.";
getch();
break;
case 5:
cout << "\n Poisk obyekta ";
cout << "\n Vvedite kluch dlya poiska(nazvanie alboma): ";
char *nazv;
cin >> nazv;
Tool *n;
// n=NULL;
n = pois(a,nazv);
if (n==NULL) cout << "\n Zapis ne naidena.";
else
{
cout << "\n Zapis bila naidena.";
caption();
n->d->output();
}
delete nazv;
getch();
break;
case 6:
cout << "\n Redaktirovanie zapisi ";
cout << "\n Vvedite nomer zapisi: ";
int c;
cin >> c;
a->current=a->head;
for (i=0;a->current!=NULL;i++)
{
if (i==c)
{
a->current->d->input();
break;
}
a->current=a->current->right;
}
cout << "\n Redaktirovanie uspeshno zaversheno.";
getch();
break;
case 7:
cout << "\n Vstavka novoi zapisi ";
cout << "\n Vvedite tip novoy zapisi [0..2]: ";
int p = 0;
cin >> p;
a->current=a->tail;
a->add(p,1);
cout << "\n Vstavka zapisi uspeshno zaversena.";
getch();
break;
case 8:
cout << "\n Udalenie zapisi ";
cout << "\n Vvedite nomer zapisi dlya udalenia: ";
int j = 0;
cin >> j;
a->current=a->head;
for (i=0;a->current!=NULL;i++)
{
if (i==j)
{
Tool *q = a->current;
if (q->left!=NULL) q->left->right = q->right;
if (q->right!=NULL) q->right->left = q->left;
if (q==a->head) a->head=q->right;
if (q==a->tail) a->tail=q->left;
delete q;
a->current = a->tail;
break;
}
a->current=a->current->right;
}
cout << "\n Zapis bila udalena.";
getch();
break;
case 9:
cout << "\n Poisk obyekta s minimalnim kl-vom trekov v zadannom diapazone let";
cout << "\n Vvedite leviy predel poiska(god): ";
int godL,godR;
cin >> godL;
cout << "\n Vvedite praviy predel poiska(god): ";
cin >> godR;
Tool *k;
k = zadacha(a,godL,godR);
if (n==NULL) cout << "\n Zapis ne naidena.";
else
{
cout << "\n Zapis bila naidena.";
caption();
k->d->output();
}
getch();
break;
case 10:
delete a;
exit(0);
break;
}
}
}
void sozdan(Trist *&a, int n)
{
if (a!=NULL)
delete a;
cout << "\nVvedite tip zapisi [0..2]: ";
int k;
cin >> k;
a = new Trist(k,1);
for (int i=1;i<n;i++)
{
cout << "\nVvedite tip zapisi [0..2]: ";
cin >> k;
a->add(k,1);
}
}
void output(Trist *&a)
{
caption();
a->current=a->head;
while (a->current!=NULL)
{
a->current->d->output();
a->current=a->current->right;
}
}
void output_file(Trist *&a, int n)
{
ofstream file("a.dat",ios::out|ios::binary);
if (!file)
{
cerr << "\nOshibka vivoda v fail!\n";
getch();
exit(1);
}
file.seekp(0);
file.write((char*)&(n),sizeof(n));
a->current=a->head;
while (a->current!=NULL)
{
file.write((char*)&(a->current->t),sizeof(a->current->t));
file.write(a->current->d->nazv,sizeof(a->current->d->nazv));
switch (a->current->t)
{
case 0:
album1 *obj1;
obj1=(album1*)a->current->d;
int trek = obj1->getTrek();
file.write((char*)&(trek),sizeof(trek));
break;
case 1:
album2 *obj2;
obj2=(album2*)a->current->d;
trek = obj2->getTrek();
int time = obj2->getTime();
file.write((char*)&(trek),sizeof(trek));
file.write((char*)&(time),sizeof(time));
break;
case 2:
album3 *obj3;
obj3=(album3*)a->current->d;
trek = obj3->getTrek();
time = obj3->getTime();
int bonus = obj3->getBonus();
file.write((char*)&(trek),sizeof(trek));
file.write((char*)&(time),sizeof(time));
file.write((char*)&(bonus),sizeof(bonus));
break;
}
a->current=a->current->right;
}
file.close();
}
void input_file(Trist *&a)
{
ifstream file("a.dat",ios::in);
if (!file)
{
cerr << "\nOshibka chtenia faila!\n";
getch();
exit(1);
}
int n;
file.read((char*)&(n),sizeof(n));
int i;
delete a;
for (i=0;i<n;i++)
{
int t;
file.read((char*)&(t),sizeof(t));
if (i==0) a=new Trist(t,0); else a->add(t,0);
file.read((char*)&(a->current->d->nazv),sizeof(a->current->d->nazv));
switch (t)
{
case 0:
album1 *obj1;
obj1=(album1*)a->current->d;
int trek = 0;
file.read((char*)&(trek),sizeof(trek));
obj1->setTrek(trek);
break;
case 1:
album2 *obj2;
obj2=(album2*)a->current->d;
trek = 0;
int time = 0;
file.read((char*)&(trek),sizeof(trek));
file.read((char*)&(time),sizeof(time));
obj2->setTrek(trek);
obj2->setTime(time);
break;
case 2:
album3 *obj3;
obj3=(album3*)a->current->d;
trek = 0;
time = 0;
int bonus = 0;
file.read((char*)&(trek),sizeof(trek));
file.read((char*)&(time),sizeof(time));
file.read((char*)&(bonus),sizeof(bonus));
obj3->setTrek(trek);
obj3->setTime(time);
obj3->setBonus(bonus);
break;
}
}
file.close();
}
Tool* pois(Trist *&a, char* nazv)
{
Tool *n = NULL;
a->current=a->head;
while (a->current!=NULL)
{
n = a->current;
if (strcmp(n->d->nazv,nazv)==0) break;
else n=NULL;
a->current=a->current->right;
}
return n;
}
Tool* zadacha(Trist *&a,int godL,int godR)
{
Tool *k = NULL;
a->current=a->head;
int max=1000;
while (a->current!=NULL)
{
k = a->current;
if(k->d->god>godL)
if(k->d->god<godR)
if(k->d->trek<min) break;
else k=NULL;
a->current=a->current->right;
}
return k;