Uploaded by Muhammadjon Abdumajitov

Islomjon (3)

advertisement
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();
}
//---------------------------------------------------------------------------
Download