Muhammad al-Xorazmiy nomidagi Toshkent axborot texnologiyalar universiteti Farg’ona filiali “Kompyuter injineringi” Fakulteti “C++ dasturlash 2” fanidan Bajardi: 612-21 guruh TOXIROV ISLOMJON Tekshirdi: MAVZU: Mа’lumоtnоmа - Ukuv kurslаri mа’lumоtlаr bаzаsi KIRISH. I. NAZARIY QISM 1.1 C++ dasturlash tilining tarixi. 1.2. C++ daasturlash tili va obyektga yo’naltirilgan dasturlash. II. LOYIHA QISM. 2.1. C++ Builder dasturini o’rnatish. III. Xulosa. Foydalanilgan adabiyotlar. ILOVA. KIRISH Axborot texnologiyalari maʼlumotlarni boshqarish va qayta ishlash texnologiyalaridir. Odatda bu atama ostida kompyuter texnologiyalari tushuniladi. Axborot texnologiyalari sohasida turli axborotni EHM va kompyuter tarmoqlari orqali yigʻish, saqlash, himoyalash, qayta ishlash, uzatish kabi amallar ustida ishlar olib boriladi. Bugungi kunda axborot texnologiyasini shartli ravishda "saqlovchi, ratsionallashtiruvchi, yaratuvchi" turlarga ajratish mumkin. Birinchi turdagi texnologiyalar mehnatni, moddiy resurslarni, vaqtni tejaydi. Ratsionallashtiruvchi axborot texnologiyalariga chiptalar buyurtma qilish, mexmonxona xisob-kitoblari tizimlari misol bo’ladi. Yaratuvchi (ijodiy) axborot taxnologiyalari axborotni ishlab chiqaradigan, undan foydalanadigan va insonni tarkibiy qism sifatida o'z ichiga oladigan tizimlardan iborat. Axborot texnologiyalarining xozirgi zamon taraqqiyoti hamda yutuqlari fan va inson faoliyatining barcha soxalarini axborotlashtirish zarurligini ko’rsatmoqda. Jamiyatni axborotlashtirish deganda, axborotdan iqtisodni rivojlantirish, mamlakat fan-taxnika taraqqiyotini, jamiyatni demokratlashtirish va intellektuallashtirish jarayonlarini jadallashtirishni ta’minlaydigan jamiyat boyligi sifatidafoydalanish tushuniladi. Ma'lumki, axborot texnologiyalarining inson faoliyati hamma jabxalarga kirib borish jarayoni borgan sari rivojlanib, chuqurlashib bormoqda. Bu turli-tuman hisoblash texnikasidan foydalanuvchilar soni ham ko’payib bormoqdaki, bunda ikki qarama-qarshi tendentsiyani rivojlanishi kuzatilmoqda. Bir tomondan, axborot texnologiyalari borgan sari murakkablashmoqda va ularni qo’llash uchun, va ularni keyingi rivojlanishi uchun juda chuqur bilimlar talab qilinadi. Boshqa tomonda, foydalanuvchilarning kompyuterlar bilan muloqati soddalashmoqda. Kompyuterlar va axborot tizimlari borgan sari “do’stona” bo’lib bormoqda, va hatto ular informatika va hisoblash texnikasi sohasida mutahassis bo’lmagan odamlar uchun ham tushunarli bo’lib bormoqda. Bu narsa, eng avvalo foydalanuvchilar va ularning dasturlari, hisoblash texnikasi bilan maxsus (tizimli) dasturiy ta'minot – operatsion tizim orqali muloqat qilganliklari uchungina yuzaga keldi. Axborotlashtirishni rivojlantirish, iqtisodiyot va jamiyat hayotining barcha sohalarida zamonaviy axborot texnologiyalarini, kompyuter texnikasi va telekommunikatsiya vositalarini ommaviy ravishda joriy etish hamda ulardan foydalanish, fuqarolarning axborotga ortib borayotgan talab-ehtiyojlarini yanada to’liqroq qondirish, jahon axborot resurslaridan barhamand bo’lishni kengaytirish uchun qulay shart-sharoitlarni yaratish aloqa va axborot-kommunikatsiya sohasini rivojlantirishni asosiy vazifalari hisoblanadi. Axborotlar inqilobi chegara nimaligini bilmaydi. Yangi axborot texnologiyalari darhol butun er kurrasi bo’ylab tasvir, matn va nutqni etkazib berishga imkon beradi. Internet muassasalar keng ma’lumotlar bazalarini ommaviy kutubxonalar, maktablar, shahar hokimiyatlari bilan bog’lashga imkon beradi. Jamiyatimizning turli sohalari rivojlanayotgan bugungi kunda axborotlarning davlatlararo, sohalararo va tashkilotlararo almashinuvi masalasi yangi-yangi texnika va texnologiyalar qo’llash zaruratini tug’dirmoqda. Respublikamiz mustaqilligi va uning jahon hamjamiyatidagi obro’yi ortib borayotganligi, axborotlarning nafaqat davlatimiz ichida, balki dunyodagi boshqa davlatlar bilan almashinuvi masalasini qo’ymoqda. Bu axborotlar respublikamizning iqtisodiy va ijtimoiy ahvolini yuksaltirishga qaratilgan. Hozirda zamaonaviy axborot texnologiyalaridan turli sohalarda foydalanishga katta e’tibor berilayotganligi, shuningdek, turli axborot resurslaridan foydalanish, ochiq tarmoq tizimlariga ulanish va undan foydalanish kundalik extiyojga aylanib bormoqda. Bunday tizimlarda ochiqlikning oshirilishi, o’z navbatida axborot almashinuvini boshqarish va nazorat qilish qilish uchun maxsus choralarni ko’rishni talab qiladi. Bu loyiha ishi dorixona sotuvlarining buxgalteriya hisobini avtomatlashtirishda yordamchi dastur sifatida ishlab chiqildi. NAZARIY QISM 1.1 C++ dasturlash tilining tarixi. C++ (talaffuzi: si plyus plyus) — turli maqsadlar uchun moʻljallangan dasturlash tili. 1979-yili Bell Labsda Biyarne Stroustrup tomonidan C dasturlash tilining imkoniyatlarini kengaytirish va OOP(object Oriented Programming) xususiyatini kiritish maqsadida ishlab chiqarilgan. Boshida „C with Classes“ deb atalgan, 1983yili hozirgi nom bilan yaʼni C++ deb oʻzgartirilgan. C++ C da yozilgan dasturlarni kompilyatsiya qila oladi, ammo C kompilyatori bu xususiyatga ega emas. C++ tili operatsiyon tizimlarga aloqador qisimlarni, klient-server dasturlarni, EHM oʻyinlarini, kundalik ehtiyojda qoʻllaniladigan dasturlarni va shu kabi turli maqsadlarda ishlatiladigan dasturlarni ishlab chiqarishda qoʻllaniladi. Dastlab UNIX operatsion tizimi va С dasturlash tili yaratilgan va С tili asosida C++ tili yaratildi. С esa o'z navbatida B va BCPL tillaridan kelib chiqgan. C++ tilini 80 yillarda AT&T Bell Labs korxonasi ishchisi Byarnom Straustrup tuzgan. Avtorning aytishicha, bu tilni tuzishda u hech qanday qog'ozlarni qoralamagan va hamma ishni yo'l yo'lakay, ketma-ketlikda tuzib chiqqan. Uning asosiy maqsadi, o'zi va do'stlari uchun qulay dasturlash tili yaratishdan iborat edi. C++ dasturlash tilining asosi C hisoblanadi va shu tilni(C) misolida C++ tilini tuzib chiqdi. C dasturlash tilini mukammalashtirgan eng asosiy narsa bu – ob'yektga mo'ljallangan dasturlashni olib kirgani hisoblanadi. Chunki dasturlashda, tez, qulay , tartibli va ixcham yozish uchun ob'yektga mo'ljallangan dasturlash tillaridan foydalanish lozim bo'ladi. Dastlabki C++ dasturlash tilidan foydalanganlar, bu albatta Bell Labs korxonasi hodimlari hisoblanadi. 1993 yilda bu til ommaga taqdim etildi va C++ nomini oldi. Dastlabki C++ ga oid kitob "The C++ Programming Language(Addison-Wesley, 1985)" nomi bilan mashhur bo'ldi va bu kitob 1991 yil "Язык программирование C++" tarjimasi bilan rus tiliga tarjima qilindi va bu til(С++) rivojlanishi boshlanib ketdi. ANSI-ISO (ANSI X3J16; ISO WG21/N0836) birlashmasi 1989 yilda, birlashga holda ish boshladi. Bu korxonaning dastlabki ishi C++ dasturlash tiliga va uning kutubxonasiga standart ishlab chiqishdan boshlandi. Buning uchun 1990 yildagi C++ tili asos qilib olindi. 1990 yilda C++ standarti ishlab chiqildi va bu standart hozir ANSI C nomi bilan mashxur. Bu til juda kengayib ketdi va hozirgi kunda bu tilning hamma detallarini biladigan dasturchi bo'lmasa kerak. C++ funksiya va ob'yektlarning boy kutubxonasiga ega. Bundan kelib chiqadiki C++ dasturlash tilini o'rganish 2 qismga bo'linadi: dastlab, C++ tili sintaksisi o'rganiladi vv shundan so'ng uning asosiy kutubxonalari birma-bir ko'rib chiqib, yodlash lozim bo'ladi. Bundan ko'rinib turibdiki, bu til juda katta hajmni o'z qamroviga oladi. C++ tilining egasi yo'q u hech kimga tegishli emas. Bu til С tilidan kelib chiqgani uchun bosh harf С, ++ esa bu tildagi qiymatni bittaga ko'tarish belgisi hisoblanadi va bu belgi C++ dasturlash tilida paydo bo'ldi.C++ dasturlash tili kompilyatsiya qilinadigan til hisoblanadi bu degani yozilgan kod oldin mashina tiliga o'giriladi va keyin ishga tushiriladi.S/S++ kabi kompilyatsiya qiluvchi dasturlash tillarini yana bir afzalligi hosil bo‘lgan dastur kompyuterda kompilyatorsiz ham bajarilaveradi. Interpretatsiya qiluvchi tillarda esa tayyor dasturni ishlatish uchun albatta mos interpretator dasturi talab qilinadi. Ayrim tillarda (masalan, VISUAL BASIC) interpretator rolini dinamik bibliotekalar bajaradi. Java tilining interpretatori esa virtual mashinadir (Virtual Machine, yoki VM). Virtual mashinalar sifatida odatda brouzer (Internet Explorer yoki Netscape) lar qo‘llaniladi. Ko‘p yillar davomida dasturlarning asosiy imkoniyati uning qisqaligi va tez bajarilishi bilan belgilanib kelinar edi. Dasturni ixchamlashtirishgaintilish kompyuter xotirasini juda qimmatligi bilan bog‘liq bo‘lsa, uning tez bajarilishiga qiziqish protsessor vaqtining qimmatbaholigiga bog‘liq edi. Lekin kompyuterlarning narxi tushishi bilan dastur imkoniyatini baholash mezoni o‘zgardi. Hozirgi kunda dasturchining ish vaqti biznesda ishlatiladigan ko‘pgina kompyuterlarning narxidan yuqori. Hozirda professional tarzda yozilgan va oson ekspluatatsiya qilinadigan dasturlarga talab oshib bormokda. Ekspluatatsiyaning oddiyligi, aniqmasalani yechish bilan bog‘liq bo‘lgan talabni ozroq o‘zgarishiga, dasturni ortiqcha chiqimlarsiz oson moslashtirish bilan izohlanadi. ANSI standarti. Amerika milliy standartlar instituti (American National Standards Institute – ANSI) rahbarligi ostidagi Ctandartlarni akkreditivlash qo‘mitasi (Accredited Standards Committee) C++ tilining xalqaro standartini tuzdi. C++ standarti ayni vaqtda ISO – International Standards Organization (Ctandartlash bo‘yicha halqaro tashkilot) standarti, deb ham nomlanadi. Dastur matnini kompilyatsiya qilish. Dastur kodini bajariluvchi faylga o‘tkazish uchun kompilyatorlar qo‘llaniladi. Kompilyator qanday chaqiriladi va unga dastur kodi joylashgan joyi haqida qanday xabar qilinadi, bu konkret kompilyatorga bog‘liqdir. Bu ma’lumotlar kompilyatorning dokumentatsiyasida berilgan bo‘ladi. Dastur kodi kompilyatsiya qilinishi natijasida ob’ektli fayl hosil qilinadi. Bu fayl odatda .obj kengaytmali bo‘ladi. Lekin bu hali bajariluvchi fayl degani emas. Ob’ektli faylni bajariluvchi faylga o‘girish uchun yig‘uvchi dastur qo‘llaniladi. Yig‘uvchi dastur yordamida bajariluvchi faylni hosil qilish. C++ tilida dasturlar odatda bir yoki bir nechta ob’ektli fayllar, yoki bibliotekalarni komponovka qilish yordamida hosil qilinadi. Bibliotekadeb bir yoki bir nechta komponovka qilinuvchi fayllar to‘plamiga aytiladi. C++ ning barcha kompilyatorlari dasturga qo‘shish mumkin bo‘lgan funksiyalar (yoki protseduralar) va sinflardan iborat biblioteka hosil qila oladi.Funksiya-bu ayrim xizmatchi amallarni, masalan ikki sonni qo‘shib, natijasini ekranga chiqarishni bajaruvchi dastur blokidir. Sinf sifatida ma’lumotlar to‘plami va ularga bog‘langan funksiyalarni qarash mumkin. Funksiyalar va sinflar haqidagi ma’lumotlar keyingi mavzularda batafsil berilgan. Demak, bajariluvchi faylni hosil qilish uchun quyida keltirilgan amallarni bajarish lozim: .src kengaytmali dastur kodi hosil qilinadi; Dastur kodini kompilyatsiya qilish orqali .obj kengaytmali ob’ektli fayl tuziladi. Bajariluvchi faylni hosil qilish maqsadida .obj kengaytmali fayli zaruriy bibliotekalar orqali komponovka qilinadi. C++ daasturlash tili va obyektga yo’naltirilgan dasturlash. Hozirgi kunda juda ko‘p algoritmik tillar mavjud. Bular ichida Java va C++ dasturlash tillari universal tillar hisoblanib, boshqa tillarga qaraganda imkoniyatlari kengroqdir. So‘ngi yillarda Java va C++dasturlash tillari juda takomillashib, tobora ommalashib bormoqda. Mazkur tillardagi vositalar zamonaviy kompyuter texnologiyasining hamma talablarini o‘z ichiga olgan va unda dastur tuzuvchi uchun ko‘pgina qulayliklar yaratilgan. C++ 1980 yillar boshida Bjarne Stroustrup tomonidan C tili ga asoslangan tarzda tuzildi. C++ juda ko ’ p qo’ shimchalarni o ’ z ichiga olgan, lekin eng asosiysi u ob yektlar bilan dasturlashga imkon beradi. Dasturlarni tez va sifatli yozish hozirgi kunda katta ahamiyat kasb etmoqda. Buni ta’ minlash uchun obyektli dasturlash g ’ oyasi ilgari surildi. Huddi 1970 yillar boshida struktu rali dasturlash kabi, dasturlarni hayotdagi jismlarni modellashtiruvchi ob yektlat orqali tuzish dasturlash sohasida inqilob qildi. C++ dan tashqari boshqa ko'p obyektli dasturlshga yo’ naltirilgan tillar paydo bo'ldi. Shulardan eng ko ’ zga tashlanadigani Xer ox ning Palo Altoda joylashgan ilmiy - qidiruv markazida (PARC) tuzilgan Smalltalk dasturlash tilidir. Smalltalk da hamma narsa obyektlarga asoslangan. C++esa gibrid tildir. Unda C tiliga o’ hshab strukturali dasturlash obyektlar bilan dasturlash mumkin. C++ funksiya va ob yektlarning juda boy kutubhonasiga ega. Yani C++ dasturlash tili da dasturlashni o ’ rganish ikki qismga bo ’ linadi. Birinchisi bu C++ tili ni o’ zini o’ rganish, ikkinchisi esa C++ ning standart kutubhonasidagi tayyor ob yekt va funksiyalarni qo ’ l lashni o ’ rganishdir. C++ tiliga ko‘plab yangiliklar kiritilgan bo‘lib, tilning imkoniyati yanada kengaytirilgan. C++ dasturlash tili ham boshqa dasturlash tillari kabi o‘z alfavitiga va belgilariga ega. 1. Katta va kichik lotin alfaviti harflari; 2. Raqamlar - 0,1,2,3,4,5,6,7,8,9; 3. Maxsus belgilar: " {} | [] () + - / % \ ; ' : ? <=>_ ! & ~ # ^ . * * Alfavit belgilaridan tilning leksemalari shakllantiriladi: * Identifikatorlar; * Kalit (xizmatchi yoki zahiralangan) so‘zlar; * O‘zgarmaslar; * Amallar belgilanishlari; * Ajratuvchilar. Bu tillarda tuzilgan dasturlarda izohlar istalgan joyda berilishi mumkin. Ular satriy va blokli ko‘rinishlarda bo’ladi. Satriy izohlar uchun “//”, blokli izohlar uchun “/*”, “*/” belgilari ishlatiladi. Dastur tuzilmasi C++ dasturlash tilida dastur quyidagi tarkibda tashkil topadi: Direktivalar – funksiyalar kutubxonasini chaqirish. Ular maxsus includekatalogida joylashgan va .h kengaytmali fayllar bo’ladi. С++ tilida masalaning qo’yilishiga qarab kerakli kutubxonalar chaqiriladi. Bus esa dasturning xotirada egallaydigan joyini minimallashtiradi. Masalan, ma’lumotlarni kiritish-chiqarish proseduralari uchun: #include <stdio.h> tizimdan chaqirish #include “stdio.h” joriy katalogdan chaqirish. C++ dasturlash tili bilan ishlovchi eng sodda dasturlar Dev C++ va CodeBlocks dasturlaridir. Ularning tarkibida 300 dan ortiq kutubxonalar mavjud. Eng ko’p ishlatiladigan kutubxonalar quyidagilar: #include<iostream.h>, #include <math.h> #include <conio.h> #include <graphics.h> #include <memory.h> va boshqalar. II. LOYIHA QISM. 2.1. Loyihani yaratish uchun Embarcadero RAD Studio XE2 muhitini o’rnatish. Embarcadero RAD Studio EX2 dasturini o’rnatish uchun DAEMON Tools dasturidan foydalanamiz. Chunki biz kompyuterda virtual disk paydo qilib olishimiz zarur: Buning uchun quyidagi ishlarni amalga oshoramiz: Unda ni bosib, ni tanlaymiz: Tugmasini tugmasini bosamiz. Shunda quyidagi oyna ochiladi: Shundan so’ng “Мой компютерь” ga kirib, tushiramiz: ni ishga Kompyuter oynasida quyidagi oyna hosil bo’ladi: Sichqoncha turgan joyni bosamiz. Shundan so’ng dastur o’rnatilishi boshlanadi. Keyin tilni tanlaymiz: Tilni tanlash uchun “OK” tugmasini bosamiz. Keyingi jarayonlarda “Next” tugmasini bosamiz. Keyingi oynada paydo bo’ladi : Bu oynada dastur o’rnatish bo’yicha shartlarga rozi ekanligimazni bildirib, “I accept the license agreement” (ya’ni userga qo’yilgan shartlarga rozi bo’lganlik) turgan joyga belgi qo’yib, “Next”ni bosamiz. Keyin esa pastdagi oyna paydo bo’ladi. Bu oynaga seriya nomerini kiritishimiz lozim. Buning uchun u yerga dastur papkasidagi faylini ochib kalitni kiritamiz: Keyingi oynadan esa ni tanlab “Next” ni bosamiz. Keyingi jarayonlarda ham “Next” ni bosib davom etiramiz. Foydalanuvchilar haqidagi oynaga “All users”ni belgilasak, barcha bu dasturdan foydalana oladi: Dastur o’rnamoqda: Dastur o’rnab bo’lgach esa “Finish ” ni bosamiz. Dasturning birinchi qismi o’rnab bo’ldi. Keyin esa yana dastur qismlari o’rnay boshlaydi: Bunda Bunda esa “Continue” ni bosamiz. Dastur o’rnab bo’lgach “Finish” tugmasini bosamiz. Shu tartibda davom etamiz: Bu dastur qismini o’rnatib, keyingi jarayonlarda ham “Next”ni boshishda davom etamiz. Yuqoridagi dastur o’rnab b’lgach, dastur o’rnatish bo’yicha yakuniy oyna hosil bo’ladi: “Finish” ni bosib dastur o’rnatilishini yakunlaymiz. Ammo ishimiz to’liq tugagani yo’q. Endi dasturni registratsiyadan o’tkazamiz. Buning uchun C diskdagi "Embarcadero\RAD Studio\9.0\bin\bds.exe" ni ishga tushiramiz. Keyin esa dastur papkasidagi ni ishga tushiramiz. Ekranda quyidagi oyna hosil bo’ladi. Sichqoncha turgan tugmani bosamiz. Undan so’ng oyna hosil bo’ladi. Uni yopmagan holda dastur papkasidan ni ishga tushiramiz. U yerdan “Generate Serial” ni, keyin esa “Generate Activation File” ni bosamiz. Keyin esa bizga aktivlashtirish faylini beradi. Uni saqlab qo’yamiz. Yuqoridagi oyna “bds.exe” ni bosganimizda paydo bo’lgandi. U yerdan ni tanlab, bo’sh joyga aktivlashtirish fayli turgan joyni kiritamiz. Buning uchun tugmasini bosamiz. Keyin esa tugmasini bosib uni faollashtiramiz. Embarcadero RAD Studio EX2 dasturini ishga tushirishimiz ham mumkin. Ushbu dasturni ishga tushirishda eng avvalo “Win” tapshigini bosish orqali dasturni topib ishga tushiramiz. Dastur ishga tushish jarayoni quyidagicha: Embarcadero Rad Studio XE2 dasturi ishga tushgach quyidagicha oyna hosil bo’ladi. Bu oyna boshlang’ich oyna deb yuritiladi. Bu holatdan siz yangi proyekt yaratishingiz, yaratilgan proyektlarni ochishingiz va shunga o’xshash ishlarni amalga oshirishingiz mumkin bo’ladi. Embarcadero Rad Studio XE2 dasturining Borland C++Builder 6 dasturidan farqi juda ko’p jumladan Embarcadero Rad Studio XE2 dasturida asosiy oynalari soni 7 tani tashkil etadi 2.2. Ushbu loyiha ishida talabalarning jadvalini Rad studio dsturi yordamida MS ACCES dasturiga bog`lagan holda yaratamiz. Avvaliga Rad sutio dasturiga kiramiz va asosiy menyuni yaratamiz. Uning nomi Formn1 bo`lib unga label kompanentasini va Speedbutton tugmachasini joylimiz. Label tugmachasiga “Abituryentlar ma`lumotlar bazasi deb nomlaymiz. So`ngra speed buttoning caption hususiyatiga abituryentlar ro`yxati deb nomlaymiz va uning onclick hodisasiga Form2-> Showmodal(); deb yozib qo`yamiz bu ko`d ikkinchi fo`rmani ochib beradi undan oldin file menyusda fo`rmani use unit qilib forma 2 ni qo`shib qo`yamiz. Timage kompanentasidan tashlaymiz. Uning align hususiyatini clientga olib qoyamiz va pictures menyusidan rasmni tashlaymiz. Endi 2 chi fo`rmaga o`taiz va abituryentlar jadvalini yaratamiz. Avvaliga MS Acces dastur yordamida jadval hosil qilib olamiz. Buning uchun pusk menyusida MS Acces dasturiga kiramiz. So`ngra Yangi fay ochish menyusiga kiramiz va fayl nomini berib saqlaymiz. Saqlayotgan vaqtda Ms acces dasturini fay tipidan 2002-2003 yilgi baza holatida saqlaymiz. Fayl ochilgandan keyin uning kanstrukr menyusiga o`tib nom beramiz va bizga kere bo`lgan katoaloglarni joylaymiz. So`ngra unga ma`lumotlarni joylaymiz. Yaratilgan malumotlar bazasini saqlaymiz va Rad studio dasturini ishga tushuramiz. Yangi C++ dasturlash tilidan yangi fo`rma ochamiz va unga kerak bo`ladigon kompanentalarni joylaymiz. Malumotlar bazasi bilan ishlash uchun bizga Data controls bo`limida TDBGRID kompanentasi Dbgo o`limidan esa Tadoconnection komponentasi bu kampanenta Ms acces dasturi yordamida yaratilgan faylni Rad studio dasturiga bo`glab beradi va Data Acces bo`limidan Tdatasourse va Tadotable kompanentalaridan foydalanamiz. Birinchi qiladigon ishimiz malumotlar bazasida yaratilgan faylni dasturga bo`g`lash. Buning uchun esa Adiconnection kampanentasiga kiramiz va build tugmasini bosamiz. Buil tugmasi bosilgach menyu ochiladi. U yerdan biz 1 raqamda faylni belgilash bo`limini tanlaymiz va faylni manzilini kiritamiz. Ulanish togri ekanini tekshirish uchun esa ulanishni tekshirish tugmasini bosamiz va ok tugma bilan buyrug`ni tugatamiz.Ado connection kompanentasing Propertion hususiyatidan Login Prompt menyusini folse qiymatga olib qo`yamiz Keyingi qadamimizda esa Adotable kompanentasining properties hususiyatidan Vonnection bo`limida Adoconnection kompanentasini ko`rsatamiz. Tabl name menyusidan esa Ms acces dasturi yordamida tayyorlagan jadval nomini kiritamiz. So`ngra Activ hususiyatini truga olib o`tib qo`yamiz. Datasource kompanentasining Dataset menyusiga esa Adotableni ko`rasatib qoyamiz va Dbgrid kompanentasining Propertise hususiyatiga o`tamiz va undan align menyusini client holatga olib o`tib qo`yamiz va Datasourse ga Datasours ni ko`rsatib qoyamiz. Bu holatda Jadvalimiz dasturda ko`rinadi lekin uni tahrirlay olmaymiz buning uchun esa biz qo`shimcha panellar qo`shamiz va malumotlarni tahlil qilamiz. Buning uchun bizga Tdbedit kampanentasi va Speed battan kompanentasi, Panel kompanentasi kerak bo`ladi. Tdb edit kompanentasidan 3 ta qo`yamiz va speed botton kompanentasidan 4 ta olamiz uning caption hususiyatiga Qo`shish, O`chirish, Saqlash va Taxrirlash deb yozamiz. Ularning ishlashi uchun click holatiga birin ketin ko`dlarni yozamiz. Qo`shish buyrug`iga ADOTable1->Insert(); O`chirish buyrug`iga switch (MessageDlg("Malulotni o'chirmoqchimisiz ", mtInformation,mbYesNoCancel ,0)) case mrYes: ADOTable1->Delete(); Saqlash buyrug`iga ADOTable1->Post(); Va Taxrirlash buyrug`iga ADOTable1->Edit(); ko`dlani kiritamiz. Tdbedit kompanentaning Propertin hususiyatidan Datasourse menyusiga DataSourse1 ni ko`rsatamiz va Datafiled menyusida qaysi oynani ochuishini ko`rsatib qo`yamiz. VA NIHOYAT Form2 miz ham tayyor. Endi Project menysida option bo`limini tanlaymiz.Appearance bo`limidan bizga kerekli temani tanlaymiz va dasturni ishga tushuramiz. Xulosa. Yuqorida yaratilgan dastur ham foydalanuvchiga turli qulayliklar yaratadi. Men dastur tuzish davomida C++ dasturlash tilida keng imkoniyatlar yaratilganligini tushundim. Men bu loyiha ishini bajarish davomida C++ Builder dasturi yordamida dasturda turli interfeyslarni yaratishni, formalar ustida amallar bajarishni o‘rgandim. Dastur tuzish davomida C++ Builderda ma‘lumotlar bazalari bilan ishlashni o‘rgandim. Ma‘lumotlar bazalarini dasturga bog‘lash, ma‘lumotlar bazalaridagi jadvallar bilan ishlash, ya‘ni ma‘lumotlarni qo‘shish, qo‘shilgan ma‘lumotlarni o‘zgartirish, o‘chirish, tahrirlash kabi amallarni bajarishni o‘rganib oldim va amalga oshirdim. C++ Builderda mavjud bo‘lgan ko‘plab komponentalar haqida ma‘lumotga ega bo‘ldim. O‘z dasturimni tayyorlash jarayonida shunga amin bo‘ldimki, har bir dasturchi, o‘z dasturini tuzar ekan, avvalambor uning foydalanuvchiga tushunarli, boshqarishga oson, hamma qismlari puxta hisob-kitob qilingan, dasturda yuz berishi mumkin bo‘lgan xatoliklarni oldi olingan, dasturning yashash sikli hisbga olingan bo‘lishi lozim ekan. Shundagina yaratilgan dastur foydalanuvchiga uzoq muddat, samarali hizmat qilishi mumkin. Foydalanilgan adabiyotlar. 1. C++ Builder 6 справочное пособие. (A.Я. АРХАНГЕЛЬСКИЙ) 2. C va C++ tili. (Toshkent ―Voris-Nashryoti‖ 2013) 3. Самоучитель C++ Builder (Культин Н. Б.) 4. Borland C++ Builder. (О.Д.Вальпа Экспресс-курс – 2006) 5. Самоучитель программирования на языке С++ 1-qism, 2-qism (C.Бобровский.) ILOVA. Form1 oynasiing ko`d qismi //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "Unit2.h" //--------------------------------------------------------------------------#pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------void __fastcall TForm1::SpeedButton1Click(TObject *Sender) { Form2->Position=Form1->Position; Form2->Left=Form1->Left; Form2->Top=Form1->Top; Form2->Height=Form1->Height; Form2->Width=Form1->Width; Form2->ShowModal(); } //--------------------------------------------------------------------------Form2 oynasining ko`d qismi //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <ComObj.hpp> #include "Unit2.h" //--------------------------------------------------------------------------#pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2; Variant app,book,books,sheet,sheets,cell,cells; //--------------------------------------------------------------------------__fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------void __fastcall TForm2::SpeedButton5Click(TObject *Sender) { app=CreateOleObject("Excel.Application"); app.OlePropertySet("Visible",true); app.OlePropertyGet("Application").OlePropertyGet("Workbooks").OleProcedure( "Add"); books=app.OlePropertyGet("Workbooks"); book=books.OlePropertyGet("Item",1); sheets=book.OlePropertyGet("Worksheets"); sheet=sheets.OlePropertyGet("Item",1); sheet.OlePropertySet("Name",WideString("Fast Report")); cells=sheet.OlePropertyGet("Cells"); cell=cells.OlePropertyGet("Item",1,1); cell.OlePropertySet("Value",WideString("ID")); cell.OlePropertySet("ColumnWidth",WideString("10")); cell=cells.OlePropertyGet("Item",1,2); cell.OlePropertySet("Value",WideString("KADRNING FIO")); cell.OlePropertySet("ColumnWidth",WideString("40")); cell=cells.OlePropertyGet("Item",1,3); cell.OlePropertySet("Value",WideString("TIG'ULGAN YILI")); cell.OlePropertySet("ColumnWidth",WideString("20")); cell=cells.OlePropertyGet("Item",1,4); cell.OlePropertySet("Value",WideString("TUGATGAN OTM YOKI KXK")); cell.OlePropertySet("ColumnWidth",WideString("20")); cell=cells.OlePropertyGet("Item",1,5); cell.OlePropertySet("Value",WideString("MUTAXASISLIGI")); cell.OlePropertySet("ColumnWidth",WideString("20")); ADOTable1->First(); for( int i=0;i<ADOTable1->RecordCount; i++) { cell=cells.OlePropertyGet("Item",i+2,1); cell.OlePropertySet("Value",WideString(ADOTable1->FieldByName("ID")>AsWideString)); cell=cells.OlePropertyGet("Item",i+2,2); cell.OlePropertySet("Value",WideString(ADOTable1>FieldByName("KADRNING FIO")->AsWideString)); cell=cells.OlePropertyGet("Item",i+2,3); cell.OlePropertySet("Value",WideString(ADOTable1>FieldByName("TIG'ULGAN YILI")->AsWideString)); cell=cells.OlePropertyGet("Item",i+2,4); cell.OlePropertySet("Value",WideString(ADOTable1>FieldByName("TUGATGAN OTM YOKI KXK")->AsWideString)); cell=cells.OlePropertyGet("Item",i+2,5); cell.OlePropertySet("Value",WideString(ADOTable1>FieldByName("MUTAXASISLIGI")->AsWideString)); ADOTable1->Next(); } } //--------------------------------------------------------------------------void __fastcall TForm2::SpeedButton1Click(TObject *Sender) { ADOTable1->Insert(); } //--------------------------------------------------------------------------void __fastcall TForm2::SpeedButton2Click(TObject *Sender) { ADOTable1->Edit(); } //--------------------------------------------------------------------------void __fastcall TForm2::SpeedButton4Click(TObject *Sender) { switch(MessageDlg("Ma'lumotni o'chirasizmi",mtInformation,mbYesNoCancel,0)) case mrYes:ADOTable1->Delete(); } //--------------------------------------------------------------------------void __fastcall TForm2::SpeedButton3Click(TObject *Sender) { ADOTable1->Post(); } //--------------------------------------------------------------------------void __fastcall TForm2::SpeedButton6Click(TObject *Sender) { ADOTable1->Filtered=False; ADOTable1->Filter="Talabaning_FIO LIKE '%"+Edit1->Text+"%'"; ADOTable1->Filtered=True; } //--------------------------------------------------------------------------//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit2.h" #include "Unit3.h" #include "Unit1.h" //--------------------------------------------------------------------------#pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2; //--------------------------------------------------------------------------__fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------void __fastcall TForm2::BitBtn2Click(TObject *Sender) { DM->ATtalaba->Insert(); } //--------------------------------------------------------------------------void __fastcall TForm2::BitBtn4Click(TObject *Sender) { int a,b,c,d; a=DBEdit3->Text.ToInt(); b=DBEdit4->Text.ToInt(); c=DBEdit2->Text.ToInt(); d=a*(b-c); DBEdit5->Text=d; DM->ATtalaba->Post(); } //--------------------------------------------------------------------------void __fastcall TForm2::BitBtn5Click(TObject *Sender) { DM->ATtalaba->Delete(); } //--------------------------------------------------------------------------void __fastcall TForm2::BitBtn3Click(TObject *Sender) { DM->ATtalaba->Edit(); } //--------------------------------------------------------------------------void __fastcall TForm2::BitBtn1Click(TObject *Sender) { TLocateOptions q; q.Clear(); q<<loPartialKey; if (Edit1->Text=="") { DM->ATtalaba->First(); } else { switch (ComboBox1->ItemIndex){ case 0: DM->ATtalaba->Locate("Mahsulot nomi",Edit1->Text,q); break; case 1: DM->ATtalaba->Locate("Miqdori",Edit1->Text,q); break; default: ; } } } //--------------------------------------------------------------------------void __fastcall TForm2::BitBtn6Click(TObject *Sender) { Form2->Close(); Form1->Show(); } //---------------------------------------------------------------------------