«С++ тілінде программалау» пәні бойынша

Автор: Пользователь скрыл имя, 22 Декабря 2011 в 21:29, курсовая работа

Описание работы

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

Содержание

Кіріспе.......................................................................................................................3
1.Файлдармен жұмысты ұйымдастыру
1.1 Дискідегі файлмен жұмыс ...........................................................................4
1.2 Файлмен форматтық алмастыру.................................................................5
1. 3 FILE құрылымының көмегімен файлдармен жұмыс жасау........................6
2. С++ тілінде файлдармен жұмыс
2.1 Файлдармен жұмыс жасауға арналған функциялар…....…………….........10
2.2 Файлдағы символдармен жұмыс..... ..............................................................14
2.3 Файлдар және ағымдар...................................................................................16
2.4 Мәліметтер блогын жазу және оқу................................................................18
Қорытынды......................................................................................................20
Қолданылған әдебиеттер..........................................

Работа содержит 3 файла

C++ Файлдармен ж?мыс.doc

— 173.50 Кб (Скачать)
 

      Кіріспе 

      ЭЕМ-нің сыртқы құрылғысындағы ақпаратпен байланыста болатын негізгі ұғым файл ұғымы саналады.

     Көптеген  адамдар компьютер дискілерінде  файл түрінде сақталынған ақпаратпен жұмыс істейді.Файлдарда әр түрлі, керек бағдарламалар бар. Сондықтан  бағдарламамен жұмыс істеген қолданушыға файлдармен дұрыс жұмыс істеуі керек.

    С++ тілінде ішкі файлдың аналогы болып ағын саналады. С++ де ағынға тип сәйкестендірілмейді. Ағын- енгізу,шығару процесінде берілетін байттық тізбек. Ағын қандай да бір сыртқы құрылғымен немесе дискідегі файлмен байланысты болу керек. С++ терминологиясында ол былайша айтылады: ағын қандайда бір құрылғыға немесе файлға бағытталуы қажет.

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

    Курстық жұмыстың мақсаты: С++ тілінде файлдармен жұмыс жасау мүмкіндіктерін зерттеу.

    Курстық жұмыстың міндеттері:

  • Физикалық файлдың негізгі түсініктерін зерттеу;
  • С++ тіліндегі файлдармен жұмыс жасауға арналған функциялармен пороцедураларды зерттеу;
  • С++ тіліндегі файлдармен жұмыс жасау ерекшеліктерін меңгеру;
  • Файлдары құру арқылы оның практикалық жүзеге асырылуын орындау.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

        1. Файлдармен жұмысты ұйымдастыру

    1.1.  Дискідегі файлмен жұмыс

    Әр  файлдың дискіде аты бар. Ол ат оған кіру үшін арналған. Бағдарламаларда  файлдардың аттарын жолдар түрінде  көрсетілген. Файлдардың аттарында  бағытталған талаптар әр түрлі операциялы жүйелерде айырмашылығы болады. DOC және Windows жүйлерінде файл аты ұзындығы бірден сегіз таңбаларға жететіндей көрінеді. Олардан кейін міндетті емес нүктелер болады. Microsoft Windows жүйесінде файл аты 256 таңбаларға жететін ұзындықтан тұрады.

    Мысалы, Windows 95/98 жүйелерінде келесі белгілерді қолдануға болмайды:              : * ?  ” <> | 

    Операция  жүйелеріндегі файл аттарына қойылатын  талаптарды ескеру қажет.

    Файлдың ашылуы дегеніміз – енгізу және шығару ағымдары. Ол дискідегі нақты файлмен ассоцияланады. Файлмен жұмыс істеп болсақ, оны жабу міндетті. Файлды ашу үшін Fopen ( )  функциясы қолданылады ( ). Fopen ( )  прототипі stdio.h  файлында бар. Әр ашылатын файлға FILE жүйесіне бағытталған көрсеткіші қолдану керек. Бұл көрсеткіш кейінгі операцияларда қолданылады. Егерде fopen ( )  функциясы файлды аша алмаса, ол Null атты нолдік көрсеткішті оралтады.

    Filename дәлелі деген – ол файлдың  аты бар жол.  filename  жолы файлға  апаратын жолды көрсетеді. Mode дәлелі  файлдың ашу уақытын көрсетеді.

Кесте 1-де  fopen ( ) функциясының  mode дәлелінің мағыналары көрсетілге 

1-Кесте

Fopen ( ) функциясының  mode дәлелінің мағыналары

Параметр Режимі
r Оқу оқу үшін ашу
w Жазу үшін жасау
а Қосу үшін ашу
r + Жазу және оқу  үшін арналған файлдарды ашу.
w + Оқу және жазу үшін жасау
a + Файлдарды жаңарту  үшін ашады және жасайды; жазу файлдың  соңында шығарылады
rb Екілік тәртіптегі файлды оқу үшін ашу.
wb Екілік тәртіптегі файлды жазу үшін жасау. Егер ондай  файл болса, оның ішіндегі жоғалады.
ab Екілік тәртіптегі файл соңына жазу үшін файлды ашады  және жасайды.
rb+ Екілік тәртіптегі файлды жаңарту үшін ашады.
wb+ Екілік тәртіптегі файлды жаңарту үшін жасайды.
ab+ Екілік тәртіптегі файлды жаңарту үшін ашады және жасайды.
 
 
 

           1.2. Файлмен форматтық алмастыру

     Форматтық шығару функциясының көмегімен символдық  түрде берілген есептеу нәтижесінен  бірге мәтіндік файл жасауға болады. Жасалған файлды экранда қарауға, принтрге басуға, мәтіндік ребактор көмегімен  редакциялауға болады.

     Форматтық шығару функциясының жалпы түрі:

      Int fprintf (ағынды көрсеткіш, форматтық  жол, айнымалар тізімі);

      Бұрын қолданған экранға шығаруды ұйымдастырудың printf ( )  функциясы fprintf ( ) функциясының жеке нұсқасы болып табылады.Программада printf ( )  - тың орнына fprintf ( ) қолдануға болады.

     Мәтіндік  файлды форматтап енгізу үшін fscanf ( ) фнкциясы көмегімен жүзеге асырылады. Fscanf ( ) функциясының прототипі:

int fscan ( FILE fp, const char fmt,…);

fp –  дәлелі жүйесі FILE  типінің көрсеткіші. Формат жолы scanf ( ) функциясындағы жолмен ұқсас. Көп нүкте тағы да қосымша мәліметтердің бар екенін білдіреді.  Fscanf ( ) файлмен жұмыс істеу үшін яғни бірнеше сандар немесе жолдар бар мәтінде файл қажет етеді.

      Бұл функцияны берілген мәліметтер мәтіндік файлда алдын –ала дайындалған жағдайда қолданған ыңғайлы.

  Мысалы, файлдағы мәтін мынандай жағдайды  көрсетеді:

    1. 87.001

     100.02       

          0.00456       1.0005

fscanf.cfscanf ( ) функциясы барысында форматталған файлды оқу программасы.

/ * берілген fscanf ( ) форматын қолдануы арқылы оқу.* /

 #include <stdlib.h >

 #include <stdio.h>

 int main (void)

 {

 float fl, f2, f3, f4, f—;

 FILE *fp;

 if ( (fp = fopen (''INPUT.TXT'', ''r'') ) == NULL)

{

fprintf (stderr, ''Error opening file. \n'');

exit (1);

 }

fscanf (fp, %f %f %f %f %f, δf1, δf2, δf3, δf4, δf5);

printf ( " The values are %f ,%f, %f, %f, and %f \n. ", f1, f2, f3, f4, f5);

fclose (fp);

return 0;

}

Нәтиже 
         The values are 123.449997, 87.000999, 100.019997, 0.004560, and 1.000500         
 

    1.3.  FILE құрылымының көмегімен файлдармен жұмыс жасау

    Файлдармен  жұмыс істеу мәнін түсіну үшін, енгізу-шығару ағымдары арқылы қол  жеткізуді қарастыру керек. Функциялардың  орындалуын қамтамасыз ету үшін, studio.h тақырыпшалық файлын іске қосу қажет. Файлдармен жұмыс істеудің жалпы сызбасы төмендегідей:

    1. Файлды қажетті режимде ашу  (оқу, жазу, толықтыру, оқу мен  жазу).

    2. Файлдағы деректерді оқу немесе  оларды файлға жазу.

    3. Файлға қол жеткізуді жабу.

    Енгізу-шығару ағымдары арқылы ашылған әр файл үшін studio.h тақырыпшасында анықталған FILE үлгісі бойынша төмендегідей ішкі құрылымдық айнымалы құрылады:

    tipedef struct

    {

    int level;                                //жағдай жалаушасы –буфер бос  (толық) 

    unsigned flags;                      //файл жағдайларының жалаушалары;

    char fd;                                 //файл дескрипторы

    unsigned char hold;               //қосалқы символ

    int bsize;                                //ішкі буфер көлемі

    unsigned char_FAR*buffer;  //буфер ішіндегі қол  жеткізу сілтегіші

    unsigned char_FAR*curp;   //қол жеткізу сілтегішінің  ағымдық мәні

    unsigned istemp;                   //уақыт файл жалаушасы

    short token;                            //файл шынайылығының маркері

    } FILE;

    Файлдың аты тек қол жеткізуді ашқанда  ғана қолданылады. Одан әрі қарай файл айнымалысымен жұмыс жүреді, ол файл ашылғанда орнатылады.

    Файлдармен  жұмыс істегенде қолданылатын бірінші  функция –fopen ( ). Ол екі параметрдің  болуын талап етеді: файлға жол мен  оны ашу режимін. Егер файл бағдарлама орналасқан бумада болса, оның атын көрсетсе болғаны. Файлды ашу операциясы сәтсіз аяқталуы мүмкіндігіне байланысты, оны орындаған кезде fopen ( ) функциясы қайтаратын мән талданады. fopen ( ) функциясы сәтті аяқталған кезде сілтегіші FILE типті құрылымға қайта оралып, егер файлды ашу кезінде қате кеткен болса, функция NULL-ді қайтарады.

    Кез-келген файлды ашу сызбасы төмендегідей болуы мүмкін:

    FILE*myfile;

    myfile= fopen (“hello, txt”, “rt”);

    of (myfile= NULL)

      //файлды сәтті ашу кезіндегі іс-әрекеттер тізімі

    eise

      // файлды сәтсіз ашуға берілген жауап

    Ашылатын  файлдарға қол жеткізу режимдерін орнатуға болады. Режимді орнату кезіндегі  бірінші символ төмендегідей болуы  мүмкін:

    *r – файл тек оқу үшін ашылады.  Егер файл жоқ болса, функция  NULL мәнін қайтарады. Сәтті ашылған кезде сілтегіш файлдың басына орнатылады.

    *w – файл тек жазу үшін ашылады.  Егер мұндай аты бар файл  жоқ болса, ол құрылады; егер  файл бар болса, ашылар алдында  бұрынғы ақпарат жойылады. Сілтегіші  файлдың алдына қойылады.

    *a – файл файл соңына қосу үшін ашылады. Сілтегіш файлдың соңына қойылады.

     *r+, w+, a+  - файл  жаңарту үшін  ашылады. Бұл режимдерде оқу  мен жазуға болады. Қол жеткізуді  ашу кезіндегі сілтегіштің орны  плюс белгісі жоқ режимдегідей.

    * - файл мәтін режимінде ашылады.  Бұл жағдайда жол соңыныі символы өңделіп, ол ақпаратты оқу кезінде онша маңызды емес болғасын, жаңа жолға көшкенде орнатылады. Мәтіндік режимде саны сақталған кезде мәтіндік көрінісі үшін қанша символ қажет болса, сонша байт керек болады, яғни long типті 1 234 567 сандары файлда 4 байт емес, 7 байтты қажет етеді.

    *b – файл қосарлы режимде ашылады.  Қосарлы режимде символдар ешқалай  өзгермейді.

    Егер  ашылатын файлдың типі көрсетілмесе, онда жариясыз түрде файл мәтіндік деп саналады.

    Файлдармен  жұмыс жасауға арналған келесі функциялар бар:

  • FILE * fopen (сonst char* filename, char *type); - filename атауы бар файлды ашып, келесі операцияларда ағымды ұқсастыруға арналған сілтегішті қайтарады;
  • int fclose (FILE*stream); - stream ағымын жабады. Fclose функциясы сәтті аяқталғанда 0-ді, ал егер қате кеткен болса, FОF қайтарады;
  • FILE*freopen (сonst char* filename, char *type, FILE*stream); - stream көрсеткен ағымды жабады, сосын filename атауы бар файлды ашады, дәл сол файлды қайта ашуға тырысқан кезде қол жеткізу құқын өзгертіп, ішкі буферлерді тазартып, жазу немесе оқу сілтегіштерін файлдың басына немесе аяғына қояды;
  • int feof (FILE*stream); -ағымдағы файлдың соңына жетуге тырысу. Fеоf функциясы ағымдағы соңғы енгізу операциясын орындау кезінде файл соңының индикаторы анықталса, нөл емес мәнді, ал файл соңы анықталмаса, 0-ді қайтарады.

    Файлдағы  деректерді оқу мен жазу функцияларының барлығын келесі топтарға бөлуге болады:

МАЗМУНЫ.doc

— 58.50 Кб (Открыть, Скачать)

титулка.doc

— 25.00 Кб (Открыть, Скачать)

Информация о работе «С++ тілінде программалау» пәні бойынша