Си тіліндегі файлдармен жұмыс


Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 14 бет
Таңдаулыға:
Қазақстан Республикасы Білім және Ғылым министрлігі
Тұрар Рысқұлов атындағы Қазақ Экономикалық Университеті
“Қолданбалы информатика” кафедрасы
КУРСТЫҚ ЖҰМЫС
Тақырыбы: “Си тіліндегі файлдармен жұмыс”
Орындаған: Алимжанова Е.
Тексерген: Жұмажанов Б. Ж.
Мамандығы: АЖ
Тобы: 201
АЛМАТЫ 2008 ЖЫЛ
МАЗМҰНЫ
Кіріспе
- Си тіліндегі файл ұғымы
- Есептің берілгені
- Си тіліндегі функциялар
- Функциялардың сипатталуы
- Функцияның орындалу алгоритмі
Қорытынды
Пайдаланылған әдебиеттер
Программа листингі
КІРІСПЕ
Жалпы программалық технологиялар дамуымен біз көлемді және қиын мәліметтерді өңдеуге және жіберуге мүмкіндік аламыз. Олардың 90% файлдарда орналасқан.
Файлдарды қолдану үшін жұмысшыға қосымша есептер шығаруға тура келеді. Олардың негізгісі - белгілі бір файлды іздеп табу арқылы енгізу-шығару операцияларын орындау.
MS-DOS-тан бастап файлдық жүйенің құрылу негізгі принциптері онша өзгермеген. Windows98 және Windows2000-пайда болған FAT32 және NTFS файлдық жүйелері файлдың басты түсініктерін өзгертпейді.
Файл -
Файлмен жұмыс істеу үшін ең алдымен файл туралы ақпараттар бар
кешенін ашу керек, яғни инициализациялау керек.
Кез келген файлдың атауы бар, ол файлға программада бірнеше файлдармен жұмыс істеуге мүмкіндік береді. Файлда кез келген типтердің мәліметтері сақталуы мүмкін, яғни текстік файлды құруға және онда сондай типті файлды сақтауға болмайды.
Жалпы берілген жұмыс бірнеше бөлімнен тұрады. Есептің қойылымында берілген есепке бірнеше модульдер мен функциялар көмегімен программа құрылады. Жалпы есеп программасы файлға байланысты болғандықтан, файлмен құрылады.
Жұмыстың келесі бөлімі программаны жобалау бөлімі, мұнда программада файлға байланысты көрсеткіштер мен функцияларға анықтама беріледі.
Программаны жүзеге асыру барысында есепте қолданылған функциялар мен көрсеткіштердің сипатталуына, қолдану мақсатына тоқталамыз. Жалпы есептегі функциялардың орындалу алгоритмі көрсетіледі.
Программаны тестілеу бөлімінде программаны тексеру әдістемесі орындалады.
Және де қорытынды бөлімінде жалпы программада алынған нәтижелерге қорытынды жасалады.
Берілген есепте программаны екіге бөліп құрастыруға болады, яғни бірінші бөлімінде белгілі файл құрылып, мәліметтерді сонда енгіземіз. Екінші бөлімінде осы мәліметтер арқылы есеп шарты бойынша өзімізге керекті жауапты ала аламыз.
Есептің берілгені. F файлы берілген. Бұл файлда мекеменің телефон нөмірлері жазылған: жұмысшының аты-жөні және телефон нөмірі көрсетілген. Жұмысшының аты-жөні арқылы телефон нөмірін табу керек.
Яғни есепті файлмен шығару керек. Ол үшін файлда бірнеше функциялар қолданылады. Осы функциялар арқылы есепті екі программа түрінде шығаруға болады. Яғни мұнда екі программа құрылуы тиіс. Бірінші программада арнайы файл құрылады. Бұл файлға есептің берілгені бойынша мәліметтерді енгізу керек
Си тіліндегі файлдармен жұмыс
С тілінде файл ағыммен байланысу арқылы ашылады. Өзіміз білетіндей, ағымның үш типі бар: енгізу, шығару және енгізу-шығару. Енгізу ағымын ашу үшін ifstream обьект типін ашамыз. Шығару ағымын ашу үшін ofstream ағым класын қолданамыз. Ал енгізу-шығару операциясы үшін обьект класы ретінде fstream с қолданылады.
Файлды ашу үшін fopen функциясы қолданылады. Оның жалпы түрі төмендегідей:
fp=fopen(“t. txt”, ”r”) ;
Мұндағы t. txt - ағыммен байланысқан файл аты;
r - файлмен жұмыс істейтін әдістердің сипатталуы.
Жалпы файлды келесі әдістердің біреуімен ашуға болады:
“w” - жаңа текстік файл жазу үшін ашылады. Егер файл бұрын болса, онда алдыңғысы өшіріліп, жаңа файл құрылады.
“С” тілінде файлдарды ашуға арналған келесі әдістер қолданылады:
Файлды текстік немесе екілік режимде ашуға болады.
Файлға жазған уақытта текстік режимде қатардың жаңа символы “\n” СR және LF жүйемен алмасады.
Егер ағыммен байланысқан файлды текстік емес, еркін екілік мәліметті сақтасақ, онда көрсетілген өзгертулер керек болмайды. Мұндай өзгертулерсіз алмасу екілік немесе бинарлы режимді таңдағанда орындалады, ол b әрпімен белгіленеді. Мысалы, “r+b” немесе “wb” . Кейбір компиляторларда текстік алмасу режимі “t” әрпімен белгіленеді, яғни “a+t” немесе “rt” .
Егер ағым өзгерту үшін ашылған болса, яғни режим параметрінде “+” символы кездессе, онда файлды енгізуге және оқуға мүмкіндік беріледі. Алайда алмасу режимі ағым көрсеткіші белгілі позицияда орнатылғаннан кейін орындалады.
Ағымды ашқанда мынадай қателер болуы мүмкін: (оқу режимі үшін),
ағыммен байланысқан файл табылған жоқ; диск толтырылған, т. б. Сонымен бірге мынаны ескеру қажет, fopen() функциясын орындалған кезде динамикалық жады бөлінуі орындалады. Ол болмаған жағдайда, “Not enough memory” (жады жетіспейді) қатесі орындалады. Көрсетілген жағдайларда ағымға NULL көрсеткіші келеді. Көрсеткіштің кез келген режимде екені байқалғанда, ағым ешқашанда NULL тең болмайды.
Мысалы:
if ((fp = fopen(“t. txt”, “w”) ) == NULL)
{
perror (“Ошибка при открытия файла t. Txt\n ”) ;
exit(0) ;
}
Мұндағы NULL - stdio. h файлындағы белгілі нөлдік көрсеткіш.
Дисплей экранына қате туралы хабарламаны шығару үшін ағымды ашу кезінде perror() стандартты библиотекалық функциясы қолданылады.
Жалпы файлды ашқаннан кейін оған мәліметтерді жазуға, яғни жұмыс істеуге болады.
Дискіде файлды ашқаннан кейін әлбетте оны жабу керек. Ол үшін библиотекеалық функция
int fclose ( ағымға_көрсеткіш ) ;
Ашылған файлды қайтадан ашуға болады, ең алдымен fclose() функциясы көмегімен жабу керек.
Текстік режимнің екілік режимнен айырмашылығы, файлды текстік файл ретінде ашқанда, символдар қатары бір символға ауысады.
Файлмен жұмыс істеп болғаннан кейін, файлды жабу керек. Файлды жабуды С тілінде fclose функциясы атқарады.
Бірнеше файлды ашу үшін, келесі түрде берілген функуция енгізілген:
Void fcloseall(Void) ;
Егер файлға өту режимін өзгерту үшін ең алдымен берілген файлды жауып, сосын қайтадан басқа жолмен ашу керек. Ол үшін стандартты freopen функциясы қолданылады. Бұл функция stream ағымымен байланысқан файлды жабады, сосын файлды filename атымен ашылады.
С тілінде сонымен қатар уақытша файлдармен жұмыс істеуге болады, яғни жұмыс істеу кезінде ғана керек немесе есептеу бөлімін орындағаннан кейін өшіруге болатын файлдар. Мұндай кезде tmpfile келесі түрде қолданылады:
FILE*tmpfile (void) .
Tmpfile функциясы дискіде уақытша файлды құрады және көрсеткішті FILE атрибутының типі бойынша басқару блогына қайтарады. Программамен жұмыс аяқталғаннан кейін немесе уақытша файл жабылған соң ол автоматты түрде жойылады.
Программа орындалған кезде, автоматты түрде бес ағым ашылады, олардың негізгілері:
- енгізудің стандартты ағымы(stdinкөрсеткішін қолдану арқылы) ;
- шығарудың стандартты ағымы(stdout) ;
- қателер туралы хабарламаны шығарудың стнадартты ағымы(stderr) .
С тілінде мәліметтерді стандартты ағым көмегімен енгізу-шығару үшін
келесі функциялар анықталған:
- getchar() /putchar() - жеке символды енгізу-шығару;
- gets() /puts() - жолды енгізу-шығару;
- scanf() /printf() - мәліметтерді форматтау режимінде енгізу-шығару.
Жеке символдарды енгізу - шығару. Символдарды енгізу-шығарудың
ең тиімді жолы getchar() және putchar() библиотекалық функцияларының қолдануымен іске асады. Getchar() және putchar функциялар прототипі келесі түрде болады:
int getchar(void) ;
int putchar(int c) ;
Getchar() функциясы бір символдың енгізілуін жүзеге асырады. Функцияны шақырған кезде ол функцияға енгізілген бір символды қайтарады.
Putchar() функциясы стандартты ағымға бір символды шығарады, функцияны шақыру кезінде функцияға енді ғана шығарылған символды қайтарады.
Getchar() функциясының символды int типі бойынша енгізетініне назар аударған жөн. Бұл файлдың соңына жету үшін жасалған. Себебі, getchar() функциясының көмегімен файлды оқығанда, файл соңына жетуге болады. Бұл жағдайда, символды оқу кезінде операциялық жүйе getchar() функциясының EOF (End of file) тұрақтысын қайтарады. EOF көрсеткіші stdio. h файлында анықталған, ол әр түрлі операциялар жүйелерінде 0 немесе 1 мәнін қабылдайды. Сонымен бірге getchar() функциясы енгізу ағымында тек символды ғана оқып қоймай, толық мәнді оқу керек. Осы мақсатпен getchar() функциясы int типті мәнді қайтару керек.
Программаларда EOF тұрақтысын қолданғанда, программа белгілі операциялық жүйеден тәуелсіз болады.
Getchar() және putchar() функциялары функция болып табылмайды, олар макрос түрінде беріледі, және stdio. h файлында келесі түрде болады:
#define getchar() gets(stdin) ;
#define putchar(c) putc((c), stdout) .
Си тіліндегі функциялар
F файлы берілген. Бұл файлда мекеменің телефон нөмірлері жазылған: жұмысшының аты-жөні және телефон нөмірі көрсетілген. Жұмысшының аты-жөні арқылы телефон нөмірін табу керек.
Программада main функциясы, stdio. h, conio. h көрсеткіштері, File *out көрсеткіші файл ретінде, сhar символдық файлы, puts функциясы, printf, scanf енгізу-шығару функциялары, fclose, fopen файлды ашу-жабу функциялары, while шартты операторы және де getch функциясы қолданылады. Енді осыларға тоқталсақ.
Жалпы программа екі бөлімнен тұрады: бірінші бөлімінде есеп берілгені бойынша белгілі файл құрылып, мекеме жұмысшысы туралы мәліметтер сол файлға енгізіледі. Екінші бөлімінде есеп шарты бойынша мекеме жұмысшысының аты-жөні арқылы телефонын табуға программа құрылады.
Бірінші бөлімінде қолданылатын функцияларға тоқталсақ.
# include stdio. h, conio. h библиотекалары.
#include <stdio. h>
/*препроцессордың директивалары*/
#include <conio. h>
Препроцессор # - фунт символынан басталатын препроцессор нұсқауларын іздестіре бастайды.
#include <stdio. h> - кіріс-шығыс ағысы, яғни stdio. h файлын тіркеу.
Printf және scanf енгізу-шығару функциялары
Си тілінің стандартты библиотекасында форматты енгізу-шығарудың функциялары енгізілген. Мұндай функциялардың қолданылуы программаны құруға, берілген форматта мәліметтерді өңдеуге мүмкіндік береді. Форматты енгізі-шығару функциялары жеке символдарды, жолдарды, сегіздік, он алтылық, ондық сандарды енгізу үшін арналған.
Жалпы форматты енгізу-шығару функцияларының стандартты ағыммен жұмыс істеуі үшін екі негізгі функция анықталған:
printf() - енгізу функциясы;
scanf() - шығару функциясы.
рrintf() функциясының жалпы түрі төмендегідей:
printf(“<форматтар жолы>”, <обьект>, <обьект>, . . . ) ;
Мұндағы форматтар жолы тырнақшаға алынып жазылады және обьектінің баспаға шығу типін анықтайды. Printf функциясы айнымалының немесе өрнектің мәнін шығармас бұрын қатардағы барлық обьектілерге сәйкес формат түріне байланысты түрлендіру жасайды. Формат түрін (%) символынан басталатын мәлімет типін және ауыстыру тәсілін көрсететін бір әріппен біріге анықтауға болады. Обьект айнымалы, тұрақты, өрнектер, функция аты түрінде болуы мүмкін.
Енді шығару функциясына тоқталайық. Scanf функциясының жалпы түрі төмендегідей:
Scanf(“<форматтар жолы>, ” <адрес>, <адрес>, . . . )
Scanf() функциясы формат түрі көрсетілген типке сәйкес, адресі анықталған обьектіге мән сұратады.
If шартты операторы
Си тілі таңдау құрылымының үш типін келтіреді. If таңдау құрылымы шартқа сәйкес қайсыбір әрекеттің орындалуын(шарт ақиқат болса), орындалмауын(шарт жалған болса) анықтайды. If құрылымын жалғыз таңдауы бар құрылым деп атайды, себебі онда бір әрекет таңдалады.
While қайталау операторы
While операторының жалпы түрі:
While(өрнек) оператор;
Өрнек ретінде шартты өрнектер қолданылады, өрнек кез келген типті бола алады.
While циклы орындалғанда өрнек мәні есептелінеді. Егер ол ақиқат немесе жалпы түрде нөлге тең болмаса, онда оператор орындалады, сосын өрнек тағы да есептелінеді. Егер өрнек жалған немесе жалпы жағдайда нөлге тең болса, онда цикл аяқталады.
fclose, fopen файлды ашу - жабу функциялары
С+ тілінде файл ағыммен байланысу жолымен ашылады. Ағымды енгізу-шығару ағымдары арқылы құрады. Содан кейін оны файлмен байланыстыру керек. Мұны open() функциясының көмегімен істеуге болады. Жалпы жағдайда файлды ашу үшін әрдайым open() функциясының шақыру нәтижесін тексеріп отыру керек. Файлдан ақпаратты жазу үшін оны стандартты кітапханалық fopen көмегімен ашу керек. Программада fopen функциясын қолдану мына түрде болады:
FP=fopen(name, mode)
Бірінші параметр - name файл атын анықтайтын символдар қатары, екінші параметр - mode файл қалай қолданылатынын көрсететін символдар қатары.
Файлды жабу үшін fclose функциясы қолданылады.
fрuts функциясы
int fputs(string, stream) ;
char *string;
FILE *stream;
Функция string қатарын ағымды позициядан бастап stream ағынына көшіреді. Соңын білдіретін нөлдік символ (“\0”) көшірілмейді(қайтаратын мән: соңғы жазылған символ; егер string қатары болса, мәні 0; егер қате болса, мәні NULL) .
Енгізу-шығару операторларының ішінде жиі қолданылатыны символдар қатарын енгізу-шығару операциясы. Си библиотекасына стандартты ағым арқылы мәліметтермен алмасу үшін puts() функциясы қосылған. рuts фукнциясының жалпы түрі төмендегідей:
int puts (char *s) ; /*шығару функциясы*/
Бұл функция s деген бір ғана аргументке ие. рuts функциясы программа аяқталса, шығарылған “\n” символы болып табылатын символды қайтарады. Егер қате кеткен болса, онда EOF қайтарылады.
Си тілінде әр символдық қатар “\0” нөл символымен аяқталатыны белгілі, puts() функциясы үшін нөл символы қатар соңында міндетті түрде болуы керек.
# include stdio. h, conio. h библиотекалары.
#include <stdio. h>
/*препроцессордың директивалары*/
#include <conio. h>
Препроцессор # - фунт символынан басталатын препроцессор нұсқауларын іздестіре бастайды.
#include <stdio. h> - кіріс-шығыс ағысы, яғни stdio. h файлын тіркеу.
Printf және scanf енгізу-шығару функциялары
Си тілінің стандартты библиотекасында форматты енгізу-шығарудың функциялары енгізілген. Мұндай функциялардың қолданылуы программаны құруға, берілген форматта мәліметтерді өңдеуге мүмкіндік береді. Форматты енгізі-шығару функциялары жеке символдарды, жолдарды, сегіздік, он алтылық, ондық сандарды енгізу үшін арналған.
Жалпы форматты енгізу-шығару функцияларының стандартты ағыммен жұмыс істеуі үшін екі негізгі функция анықталған:
printf() - енгізу функциясы;
scanf() - шығару функциясы.
рrintf() функциясының жалпы түрі төмендегідей:
printf(“<форматтар жолы>”, <обьект>, <обьект>, . . . ) ;
Мұндағы форматтар жолы тырнақшаға алынып жазылады және обьектінің баспаға шығу типін анықтайды. Printf функциясы айнымалының немесе өрнектің мәнін шығармас бұрын қатардағы барлық обьектілерге сәйкес формат түріне байланысты түрлендіру жасайды. Формат түрін (%) символынан басталатын мәлімет типін және ауыстыру тәсілін көрсететін бір әріппен біріге анықтауға болады. Обьект айнымалы, тұрақты, өрнектер, функция аты түрінде болуы мүмкін.
Енді шығару функциясына тоқталайық. Scanf функциясының жалпы түрі төмендегідей:
Scanf(“<форматтар жолы>, ” <адрес>, <адрес>, . . . )
Scanf() функциясы формат түрі көрсетілген типке сәйкес, адресі анықталған обьектіге мән сұратады.
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz