Ұсынылатын әдебиет
1. Программирование на Visul C++/ С.В. Глушаков, А.В. Коваль А.В., С.А. Черепнин;
Худож.-оформ.А.С. Юхтман.-М.:ООО «Издательство АСТ»; Харьков: «Фолио», 2003.-726
с.
2.Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++: Учебный
курс/Худож.- оформитель А,С.Юхтман. – Харьков: Фолио; М.: ООО «Издательство АСТ»,
2001.-500 с.
3.Харви Дейтел, Пол Дейтел, Как программировать на С++: Третье издание. Пер. с
англ.-М.: ЗАО «Издательство БИНОМ», 2001 г. -1152 с.: ил.
7 (1,3,10) тақырыбынан СДЖ-на арналған бақылау тапсырмалары
1. Енгізу-шығару кластарының кітапханасының құрамы.
2. Енгізу-шығарудың стандартты ағынының объектілері.
3. Форматталған ағындық шығарудың құралдары.
8 тақырып. С++ ортасында файлдармен жұмыс.
Дәріс жоспары:
1. Файлдар мен ағындар.
2. Тізбекті кіру мүмкіндігінің файлы.
3. Кездейсоқ кіру файлдары
Дәрістің қысқаша мазмұны
С++ те әрбір файл байттардан тізбектелген ағыны ретінде қарастырылады. Әрбір
файл немесе файл соңының маркерімен немесе қолданатын жүйедегі деректердің
қызметтік құрылымына жазылған байттардың көрсетілген санымен аяқталады. Файл
ашылғанда объект құрылады және ағын осы объектпен байланысады.Сонымен қатар
автоматты түрде төрт объект құрылады- cin, cout, cerr және clog. Осы объектпен
байланысқан ағындар программалар арасында байланыс каналдарын және жеке
файлдармен немесе құрылғылармен қамтамасыз етеді.
С++ тегі файлдарды өңдеу үшін және тақырыптық
файлдары қосылуы керек. файлы istream (файлдарды енгзу үшін),
ofstream(файлдарға шығару үшін) және fstream(файлдарды енгізу-шығару үшін)
ағындарының кластарының анықтамасын қосады. Файлдар осы ағындар кластардың
объекттерін құру жолымен ашылады. Бұо ағындардың кластары сәйкес istream,
ostream,iostream кластарынан алынған туынды болып табылады.Енгізу-шығару
ағындарына арналған функция-элементтер, операциялар және монипуляторлар, сонымен
қатар файлдардың ағындарына қолданылуы мүмкін. Файлдармен жұмыс істеу
функциясының сипаттамасы stdio.h кітапханасында орналасқан.
MFC кітапханасына файлдармен жұмыс істеуді қамтамасыз ету үшін бірнеше
кластар қосылған. Төменде қарастырылатын кластар файлдармен жұмыс істеуді
қамтамасыз ету үшін арналған Cfile базалық класынан мұрагерленген. Файлға кіру
мүмкіндігін алу үшін, алдымен CFile класының объектісін құру керек. Класс құраушысы
осы объектті құрғаннан кейін файлды ашуға рұқсат береді. Бірақ файлды кешіректеу
ашуға да болады, яғни Open әдісін қолдану арқылы. Open әдісінің прототипінің келесі
түрлері бар:
virtual BOOL Open(LPCTSTR lpszFileName,
UINT nOpenFlags, CFileException* pError=NULL);
Файлмен жұмыс істеуді аяқтағаннан кейін, оны жабу керек. CFile класы ол үшін
close арнайы әдісін иеленген. Егер CFile класының объектісі құрылса және файл
ашылса, содан кейін объект жойылса, онда онымен байланысты файл автоматты түрде
деструктор көмегімен жабылады.
Файлдарға кіру үшін CFile класының бірнеше әдістері арналған:CFile: Read,
ReadHuge, Write, WriteHuge, Flush. Методы Read және ReadHuge әдістері алдын ала
ашылған файлдағы деректерді оқу үшін арналған. 32-разрядтік операциондық жүйелерде
екі әдіс те файлдан 65535-тен астам байтты бір уақытта оқи алады.
Cfile класының әдісі файлдың жолын орнықтыруға мүмкіндік береді. Бұл әдіс
құрмайды, көшірмейді,файлдық атын өзгертпейді, ол тек Cfile класының объектісінде
деректердің сәйкес элементін толтырады.
CMemFile класы
МҒС кітапханасына Cfile базалық класын мұрагерленген CMemFile класы кіреді.
CMemFile класы файлды, операти втік жадта орналасқан, CMemFile класының
объектілерімен
көрсетеді,яғни CFile кластарының
объектілерімен
сияқты.
Айырмашылығыс сонда, CmemFile объектісімен байланысқан файл дискта емес,
компьютердің оперативті жадында орналасқан. Осындай файлмен операция жылдам
орындалады, қарапайым файлдарға қарағанда. CmemFile класының объектілерімен
жұмыс істей келе, жоғарыда көрсетілген CFile класының барлық әдістерін қолдануға
болады. Деректерді сондай файлға жазуға немесе оларды санауға болады. Осы әдістерден
басқа CMemFile класының құрамына қосымша әдістер қосылған.
CMemFile класының объектілерін құру үшін екі әртүрлі құраушы (конструктор)
арналған. CMemFile бірінші конструктор тек бір аса қажетті емес nGrowBytes
параметрін иеленген:
CMemFile(UINT nGrowBytes=1024);
Бұл құраушы оперативтік жадта бос файл автоматты түрде ашылады. Осындай
файлға жазылу басталып жатқанда, автоматты түрде жадтың блогы белгіленеді. Жад алу
үшін CmemFile класының әдістері malloc, realloc және free стандартты функцияларын
шақырады.Егер берілген жад блогы жеткілікті емес болса, онда оның өлшемі
ұлғаяды.Файлдың жад блогын ұлғайту бөлікпен CMemBytes байт бойынша жүргізіледі.
CMemFile класының объектісін жойғаннан кейін қолданылған жад автоматты түрде
жүйеге оралады.
Cfile базалық класынан мұрагерленген CstdioFile класы буферленген енгізу-
шығаруды мәтіндік және екілік режимде қолдануға мүмкіндік береді. CStdioFile класының
объектілері үшін CFile класының барлық әдістерін шақыруға болады.Мәтіндік файлға
жазу үшін және оқу үшін CStdioFile класы екі жаңа әдісті қосады: ReadString және
WroteStreang. Бірінші әдіс файлдан символдар қатарын оқуға мүмкіндік береді, ал екінші
әдіс- жазу.
Ұсынылатын әдебиет
1. Программирование на Visul C++/ С.В. Глушаков, А.В. Коваль А.В., С.А. Черепнин;
Худож.-оформ.А.С. Юхтман.-М.:ООО «Издательство АСТ»; Харьков: «Фолио», 2003.-726
с.
2.Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++: Учебный
курс/Худож.- оформитель А,С.Юхтман. – Харьков: Фолио; М.: ООО «Издательство АСТ»,
2001.-500 с.
3.Харви Дейтел, Пол Дейтел, Как программировать на С++: Третье издание. Пер. с
англ.-М.: ЗАО «Издательство БИНОМ», 2001 г. -1152 с.: ил.
8(1,3,10) тақырыбынан СДЖ-на арналған бақылау тапсырмалары
1. Файлдар және ағындар.
2. МҒС кітапханасында фпйлдармен жұмыс істеу үшін кластар.
3. Файлдарды өңдеу үшін МҒС кластарының әдістері
4. Тәжірибелік сабақтарды өткізуге қажет әдістемелік нұсқаулар
Тәжірибелік сабақтар зертханалық жұмыстармен бірге симбиозда өткізіледі.