Bolalar dunyosi magazini uchun avtomatlashtirilagan ish o'rni yaratish

SAMARQAND DAVLAT UNVERSITETI
AMALIY MATEMATIKA VA INFORMATIKA
FAKULTETI
AMALIY MATEMATIKA VA INFORMATIKA
YO’NALISHI
KURS ISHI
BOLALAR DUNYOSI MAGAZINI UCHUN
AVTOMATLASHTIRILAGAN ISH O’RNI YARATISH
 
         
                 MUNDARIJA 
KIRISH……………………………………………………………………3  
1-BOB. C++ TILI VA C++ BUILDER MUHUTI …………………….....4
1.1. C++ tili haqida ……………………….……………………………....4
1.2. C++ Builder muhitining yaratilishi va rivojlanishi.............................5 
1.3. C++ Builder muhitid ma’lumotlar bazasi bilan ishlash …………….,8       
2-BOB. BOLLAR DUNYOSI MAGAZINI UCHUN DASTUR………. 11
2.1 Bollar dunyosi magazini ma’lumotlar bazasini hosil qilish…………11         
2.2. Magizin ma’lumotlar bazasini C++ Builder dasturi bilan bog’lash ...18
       XULOSA…………………………………………………………...……22
ADABIYOTLAR……………………………………………………...…23
ILOVA…………………………………………………………………...24
2 KIRISH
        Ma’lumki   hozir   kunda   kompyuter   o’yinlarga   bo’lgan   talab   oshib   bormoqda   va
ularning turi, grafik imkoniyatlari rivojlanib, yildan yilga takominlashmoqda. Bu kurs
ishimning   maqsadi   esa   C++   Builder   dasturlash   muhuti   orqali   tank   o’yini   yaratish
hisoblanadi.   Men   kurs   ishini   tayorlash   davomida   1-bobda   C++   tili   va   C++   Builder
dasturlash   muhutining   yaratilishi   va   uning   rivojlanishi   jarayonlari   va   C++   tilining
asosiy   tushunchalari   haqidagi   ma’lumotlar   va   C++   Builder   muhiti   yordamida
ma’lumotlar bazasi bilan ishlash keltirilgan. 
2-bobda  esa  C++  Builder   6 muhitining imkoniyatlaridan foydanilgan  holda  va
MS   Access   dasturi   yordamida   ma’lumotlar   bazasini   hosil   qilish,   hosil   qilingan
ma’lumotlar   bazasini   dasturga   haqidagi   ma’lumotlarni,   bundan   tashqari   ma’lumotlar
bazasini   yaratish   bosqichilari   haqidagi   ma’lumotlarni   va   kurs   ishining   ilova   qismiga
dasturni yaratishda foydalnilgan kodlarning matn qismini ilova qildim.
3 1-BOB. C++ TILI VA C++ BUILDER MUHUTI
1.1. C++ tilining yaratilishi
    C++   dasturlash   tili   C   tiliga   asoslangan.   C   esa   o'z   navbatida   B   va   BCPL
tillaridan kelib chiqqan. BCPL 1967 yilda Martin Richards tomonidan tuzilgan va
operatsion sistemalarni yozish uchun mo'ljallangan edi. Ken Thompson o'zining B
tilida BCPL ning ko'p hossalarini kiritgan va B da UNIX operatsion sistemasining
birinchi   versiyalarini   yozgan.   BCPL   ham,   B   ham   tipsiz   til   bo'lgan.   Yani
o'garuvchilarning   ma'lum   bir   tipi   bo'lmagan   -   har   bir   o'zgaruvchi   kompyuter
hotirasida faqat  bir  bayt yer  egallagan. O'zgaruvchini qanday sifatda ishlatish esa,
yani butun sonmi, kasrli sonmi yoki harfdekmi, dasturchi vazifasi bo'lgan. 
    C   tilini   Dennis   Ritchie   B   dan   keltirib   chiqardi   va   uni   1972   yili   ilk   bor   Bell
Laboratoriyasida,   DEC   PDP-11   kompyuterida   qo'lladi.   C   o'zidan   oldingi   B   va
BCPL   tillarining   juda   ko'p   muhim   tomonlarini   o'z   ichiga   olish   bilan   bir   qatorda
o'zgaruvchilarni tiplashtirdi va bir qator boshqa yangiliklarni kiritdi. Boshlanishda
C   asosan   UNIX   sistemalarida   keng   tarqaldi.   Hozirda   operatsion   sistemalarning
asosiy qismi C/C++ da yozilmoqda. C mashina arxitekturasiga bog'langan tildir. 
  C++ 1980 yillar  boshida Bjarne Stroustrup tomonidan C ga asoslangan  tarzda
tuzildi.   C++   juda   ko'p   qo'shimchalarni   o'z   ichiga   olgan,   lekin   eng   asosiysi   u
ob'ektlar bilan dasturlashga imkon beradi.
 Dasturlarni tez va sifatli yozish hozirgi kunda katta ahamiyat kasb etmoda. Buni
ta'minlash   uchun   ob'ektli   dasturlash   g'oyasi   ilgari   surildi.   Huddi   70-chi   yillar
boshida   strukturali   dasturlash   kabi,   programmalarni   hayotdagi   jismlarni
modellashtiruvchi ob'ektlat orqali tuzish dasturlash sohasida inqilob qildi.
  C++   dan   tashqari   boshqa   ko'p   ob'ektli   dasturlshga   yo'naltirilgan   tillar   paydo
bo'ldi.   Shulardan   eng   ko'zga   tashlanadigani   Xerox   ning   Palo   Altoda   joylashgan
ilmiy-qidiruv markazida (PARC) tuzilgan Smalltalk dasturlash tilidir. Smalltalk da
hamma   narsa   ob'ektlarga   asoslangan.   C++   esa   gibrid   tildir.   Unda   C   ga   o'hshab
4 strukturali   dasturlash   yoki   yangicha,   ob'ektlar   bilan   dasturlash   mumkin.   Yangicha
deyishimiz   ham   nisbiydir.   Ob'ektga   mo’ljallangan   dasturlash   tillari   paydo
bo'lganiga ham o’ttiz yildan oshayapti.
  Bjarne Stroustrup   C ++ ni yaratishda quyidagilarni hohlagan:
1. C   tilining   statik   ma'lumotlar   turlari,   samaradorligi   va   tashuvchanligi
bilan universal tilni olishni.
2. Protsessual   dasturlash,   ma'lumotlar   uzatishni,   ob'ektga   asoslangan
dasturlashni   va   umumiy   dasturlarni   o'z   ichiga   olgan   turli   dasturlash   uslublarini
to'g'ridan-to'g'ri va har tomonlama qo'llab-quvvatlaydigan tilni.
3. Dasturchiga, agar  u noto'g'ri  tanlov qilish imkoniyatini  beradigan bo'lsa
ham, tanlash erkinligini berishni.
4. C bilan maksimal  muvofiqligda u bilan C  dasturiy ta'minotidan o'tishni
osonlashtirish.
5. C  va C  ++  o'rtasidagi   farqlardan qochishni:  har  ikkala  tilda ham  ruxsat
etilgan   har   qanday   konsturuksiyalni   bir   xil   ma'noga   ega   bo'lishi   va   dasturning   bir
xil xatti-harakatiga olib kelishi kerak.
6. Platformaga   bog'liq   bo'lgan   yoki   universal   bo'lmagan   xususiyatlardan
qochishni.
7. "Foydalanilmaydigan   narsalar   uchun   to'lov   qilmang"   -   hech   qanday   til
vositasi   foydalanmayotganda   dasturlarning   ishlashini   pasayishiga   olib   kelmasligi
kerak.
8. Juda murakkab dasturiy muhit talab qilinmaslik.
        
1.2 C++ Builder dasturining yaratilishi va rivojlanishi
     C ++ Builder  dastlab  faqat  Microsoft  Windows platformasi  uchun yaratilgan edi.
Keyinchalik   Borland   cross-platform   komponentli   kutubxonasini   o'z   ichiga   olgan
versiyalari Windows va Linuxni qo'llab-quvvatlaydi.
5       Borland   C   ++   Builder   birinchi   bo'lib   1997-yilda   chiqarilib   C   ++   tilidan
foydalanadigan   tezkor   dasturlarni   yaratish   muhiti   bo'lib,   u   Borland   Delphi   kabi   bir
GUI   IDE   ni   o'z   ichiga   olgan.   Delphi   kompilyatorini   o'z   ichiga   oladi   va   C   ++
loyihalarida Delphi kodidan foydalanishi mumkin bo’lgan.  
     Borland C ++ Builder 4 1998- yilda ishga tushirilgan  Borland C ++ Builder 5   2000
yilda ishga tushirilgan.   Borland C ++ Builder 6   2001 yilda boshlangan.   Borland C++
BuilderX   2003-yil   15-sentyabrda   Borland   Software   korporatsiyasi   Borland   C++
BuilderX   (CBX) ni e'lon qildi, u shuningdek, Mobil uchun so'nggi Borland Enterprise
Studio   studiyasining   tarkibiga   kiritildi.CBX   JBuilder   bilan   bir   xil   tip   yordamida
yozilgan   va C ++ Builder yoki Delphi-ga juda oz o'xshashlik keltirdi.   Ushbu mahsulot
korxonalar   uchun   yirik   dasturlarni   ishlab   chiqishga   qaratilgan   edi,   ammo   yaxshi
sotilmadi.
      2003-yil   22-sentyabrda   Borland   Software   Corporation   va   PalmSource,   Inc.
Kompaniyasi Borland kompaniyasi  PalmSource dasturiy ta'minot ishlab chiquvchilar
to'plamlarini   (SDK)   litsenziyalashdi   va   Borland   C   ++   BuilderX   Integrated
Development   Environment   (IDE)   tizimida   Palm   OSni   ishlab   chiqishni   qo'llab-
quvvatlaydi va so'nggi Borland Application Lifecycle C ++ uchun boshqaruv (ALM)
echimlari.
       2004 yil oxirida Borland C ++ Builder dasturini rivojlantirishni davom ettiradi va
uni   C ++ BuilderX dan voz kechib,   Delphi bilan birlashtiradi. 
      2005-yil   10-oktabrda   Borland   Software   korporatsiyasi   Borland   C   ++   Builder
(oldindan   kodlangan   "DeXter")   kodini   e'lon   qildi.   Borland   kompaniyasi   Borland
6 Developer Studio 2006   deb   e'lon qilganidan so'ng, taxminan bir yil o'tgach,   Borland C
++   Builder   2006ni   ishlab   chiqdi,   bu   esa   tizimni yaxshilash   va   xatolarni   tuzatishni
yaxshilash imkonini beradi.   Borland Developer Studio 2006   Delphi, C ++ Builder va
C # Builder dasturlarini o'z ichiga olgan yagona paket bo’ldi.
       2006 yilda Borlandning Tuzuvchi Vositalari Guruhi C ++ Builder dasturini ishlab
chiquvchilar to'liq egalik qiluvchi   CodeGear   filialiga o'tkazildi   .
    2007-yilda CodeGear   C ++ Builder 2007 ni ishlab chiqdi   , bu Microsoft Vista uchun
to'liq   API   ta'minoti,   ANSI   C   ++   mosligini   oshirish,   IDE   qurishda   ishlashning   500%
ga   oshishi   ,   MSBuild   ,   DBX4   ma'lumotlar   bazasi   arxitekturasi   va   "Veb   uchun
VCL"   Ajaxni   qo'llab-quvvatlaydi   .   Microsoft Vista uchun API yordami Aero va Vista
Desktop   uchun   tematik   dasturlar   va   uzluksiz   VCL   yordamini   o'z   ichiga
oladi.   CodeGear   RAD   Studio   2007   C   ++   Builder   2007   va   Delphi-ni   o'z   ichiga
oladi.   Bundan tashqari, 2007 yilda Borland "Turbo" brendini qayta tikladi va  Borland
C ++ Builder 2006   asosidagi C ++ Builder: Turbo C ++ Professional  va Turbo C ++
Explorerning ikkita "Turbo" maxsulotarini chiqardi.
      2008-yilda   CodeGear   Embarcadero   Technologies   tomonidan   sotib   olinib,
rivojlanishni davom ettirildi.
        C   ++   Builder   2009 ,   2008   yil   avgust   oyida   nashr   etilgan.   C   ++   Builder
2010,   keyinchalik   2009-yil   avgust   oyida   tadbiq   qilindi   va   ayniqsa,   VCL   va   C   ++
maxsus sinf tadqiqotchisi bilan yaqinda tanishtirildi.  
        Embarcadero   2010-yilda   boshqa   versiyalashtirish   tizimiga   o'tdi.   Raqamlarni
ishlatish   o'rniga   XE-ni   ishlatishadi.   C   ++   Builder   XE   2010-yil   avgustida   chiqarildi.
Ushbu   versiyada   xatoliklar   tuzatilmasdan   tashqari   hech   qanday   muhim   o'zgarishlar
kiritilmagan.
        C   ++   Builder   XE2   2011   yil   avgustida   chiqarildi.   "FireMonkey"   ning   o'zaro
platformali GUI-larini yaratish uchun kiritilishi.
        2012   yil   avgust   oyida   C   ++   Builder   XE3   chiqarildi.   Ushbu   versiyada   xatoliklar
tuzatilmasdan tashqari hech qanday katta o'zgarish bo'lmagan.
7           C   ++   Builder   XE4   2013   yil   aprel   oyida   nashr   etilgan.   Clang   3.1   asosida   64-bit
Windows   derivatiga   ega.   32-bit   kompilyator   hali   Embarcaderoning   eski
texnologiyasiga asoslangan.
XE6   (20)   dan   XE8gacha   (22)   2014-2015-yillar   davomida   chiqarilgan.   Ularda
asosan   IDE   barqarorligi,   yangilangan   FMX   va   VCL   kutubxonalari   uchun
o'zgarishlarni kiritilgan.
10 Sietl (23) - 2015 yil avgust oyi oxirida chiqarilgan Seattle C ++ kompilyator
to'plamini CLANG 3.3 ga quyidagi istisnolar bilan yangilaydi:
10.1 Berlin (24) – 2016-yil  Aprel oyi oxirida nashr etilgan.
 FireUI   App   Previews   -   Ilovalarni   loyihalashda   sizning   FireMonkey   ilovangizni   iOS,
Android, OS X va Windows-da oldindan ko'rish imkoniyatini beradi.
 IOS va Android uchun manzillar kitobi - ilovalaringiz qurilmaning manzillar kitobiga
kirishiga imkon beruvchi TAddressBook komponentini qo'llab-quvvatlaydi.
10.2 Tokio (25) -  2017 yilning mart oyi oxirlarida yaratilgan.
 Disk ISO uchun yaxshiroq qo'llab-quvvatlash
 Clang-rivojlangan kompilyatorlarda yaxshiroq Codegen
 C   ++   Android   ilovalari   NDK   ning   muayyan   versiyalarini   talab   qilmasdan   qurilishi
mumkin
 Ulashtiruvchi endi 4GiB xotiraga qadar foydalanish imkoniyatiga ega
 IOS 10 uchun to'liq qo'llab-quvvatlash
10.2.2 Tokio 2017- yilning dekabr oyida yaratilgan.
1.3. C++ Builder
muhitid
ma’lumotlar bazasi bilan ishlash
8 C++   Builder   muhiti   tarkibiga   kiruvchi   MBni   boshqarishga   ishlatiladigan
ilovalar tuzish va ishlatish vositalari quyidagilar kiradi:
   BDE   (Borland   Datebase   Engine).   Borland   ma’lumotlar   bazasining
mashinasi.   Uning   tarkibiga   daturlar   to’plami   kiritilgan   bo’lib,   ular   local   va   kliyent
server toifasining MBga murojat qilishini va undan foydalanishni tashkil qilib beradi.
 SQL   LINKS.   Boshqa   MBBT   bilan   (   masalan,   SysBase,   Oracl,   MsSQL
Server ) bilan ishlash uchun drayverlar. C++ Builder tizimi Paradox va Dbase MBBT
lari uchun SQLni ishlatmaydi, BDE yordamida bajaradi.
 BDE   administrator   –   bu   utilita   bo’lib,   MBga   psevdonimlar,   parametrlar
va MB o’rnatish uchun ishlatiladi. C++ Builderda tuzilgan ilova yordamida MB bilan
ishlash vaqtida MB dan foydalanish uning psevdonimi bo’yicha amalga oshiriladi.
 DataBaseDesctop (DBD). MBni ko’rish, tahrirlash va tashkil qilish uchun
maxsus   vosita   (utilita).   Bu   utilita   asosan   Paradox   va   Dbase   MBBT   uchun   uning
jadvallari   bilan   ishlashga   yo’naltirilgan   bo’lib,   ayrim   hollarda   boshqa   tashqi   MBBT
jadvallari bilan ham foydalaniladi.
 DataBase   Explorer   (SQL   Explorer).   MB   psevdonimi,
konfiguratsiyasi   va   tuzilmasini   ko’rish,   hamda   MB   jadvaliga   so’rov
berish utilitalarini o’z ichiga oladi.
 SQL monitor. SQL so’rovlarini bajarish vositasi.
 Visual   Query   Builder.   C++   Builder   tarkibiga   kiruvchi   vosita   bo’lib,
SQL –so’rovlarini avtomatlashtirishni tashkil etadi.
 Data   Dictionary   –ma’lumotlar   lug’ati.   MB   jadvali   maydonlari
atributini saqlaydigan vosita.
 MB   bilan   ishlash   uchun   vizual   bo’lmagan   komponentalar.
Vizual   bo’lmagan   komponentalar   ilovalar   bilan   MB   jadvalini
bog’lashga   xizmat   qiladi.   Bu   komponentalar   Data   Access
komponentalar palitrasida joylashgan.
 MB   bilan   ishlash   uchun   vizual   komponentalar.   C++   Builder   vizual
komponentalari   ma’lumotlar   to’plami   yozuvlarini   (masalan,
komponenta   TDBGrid)   akslantirish   uchun   va   foydalanuvchiga   qulay
9 interfeys   yaratish   uchun   ishlatiladi.   Bu   komponentalar   Data   Controls
komponentalar palitrasida joylashgan.
 Hisobotlar   tuzish   uchun   komponentalar.   Bu   komponentalar   20
dan   ortiq   bo’lib,   ular   Qreport   komponentalar   palitrasida   joylashgan
hisobotlarni tuzish uchun ishlatiladi.
C++ Builder MB bilan ishlashda yetarlicha katta guruh komponentalariga ega.
Data Access   (ma’lumotlarga ruxsat yoki ma’lumotlardan foydalanishga ruxsat)
sahifasida   MBni   boshqa   ma’lumotlar   bilan   o’zaro   ta’sirida   ishlatiladigan
komponentalar mavjud. Ularning ko’pi vizual bo’lmagan (ko’rinmaydigan) bo’lib, o’z
ichiga jadval, so’rov, ko’rish, o’zgartirish va boshqalar tavsifini oladi.
Data   Controls   ( ma’lumotlar   bilan   bog’liq   elementlarni   boshqarish)
sahifasida   asosan   vizual   komponentalar   bo’lib,   ularga   ma’lumotlar
bilan bog’liq komponentalar deyiladi. Delphi ma’lumotlar bazasi bilan muloqot (unga
murojaat)   qilishi   uchun   Data   Source   komponentasini   ishlatadi.   Bu   komponenta
to’g’ridan-to’g’ri   ma’lumotlarni   belgilamaydi,   u   Data   Set   komponentasiga   murojaat
qiladi. Quyida vizual va vizual bo’lmagan komponentalar tavsifi berilgan.
MB   bilan   ishlash   uchun   vizual   bo’lmagan   asosiy   komponentalar
haqida ma’lumotlar:
  Tsession   -   MB   bilan   aloqa   o’rnatish   seansi   bo’lib,   MB   ochishda,
yopishda va uni parametrli boshqarishda ishlatiladi
Tdatabase  -   Bu  komponenta  himoyalashgan  MB  bilan  birlashtirish   jarayonini
boshqarish uchun xizmat qiladi
TDatasource   -   Ma’lumotlar   manbai.   Ma’lumotlarga   murojaat   qilish
komponentalari   bilan   ma’lumotlarni   aks  ettirish  komponentalari   o’rtasida   bog’lovchi
element vazifasini bajaradi
TDataSet   -   Kliyentlar   ma’lumotlar   to’plamiga,   ma’lumotlarga   MBni
mashinasidan   foydalanmasdan   murojaat   qilish   vositasi   sifatida   ishlatiladi.   MB   bilan
ishlashda xossa va metodlarni aniqlaydi
TTable -  MBning jadvaliga (fayliga) kirish vosita sifatida xizmat qiladi
10 Tquery -  So’rov.   Ma’lumotlar   jadvalini   SQL   tili   yordamida   tanlab
olish imkonini beradi
TIndex Dets -  MB jadvali indekslari haqida ma’lumotni beradi
TField Dets  - MB jadvali maydonlari haqida ma’lumotni beradi
TBatch Move  - Bir MB to’plamini boshqasiga ko’chirishda ishlatiladi
MB bilan ishlash uchun vizual komponentalar haqida ma’lumotlar:
TDBtext -  Ma’lumotlar to’plami maydonining joriy yozuvini ko’rsatadi
TDBEDIT   -   Joriy   yozuvni   ko’rish   va   maydon   qiymatlarini
o’zgartirishni ta’minlaydi (tahrirlash)
TDBCheckBox   -   Mantiqiy   turga   (Boolean)   ega   bo’lgan   maydonlarning   joriy
yozuvini ko’rish va uning qiymatlarini tahrirlashni ta’minlaydi
TDBMenu -  Menyu – maydon qiymatlarini matn muharriri rejimida ko’rish va
o’zgartirishni ta’minlaydi
TDBGrid   -   MB   jadvali.   Ma’lumotlar   to’plamini   jadval   ko’rinishida
chiqarishni ta’minlaydi
TDBNavigator  - MB navigatori. MB yozuvlarini yengillashtirishni ta’minlaydi.
Shuningdek, yozuvlarni qo’yish, olib tanlash va tahrirlash imkonini beradi.
TDBChart  - Ma’lumotlarni grafik ko’rinishda tasvirlashda ishlatiladi.
Vizual   va   vizual   bo’lmagan   komponentalar   bir-birlari   bilan   xossalar
yordamida   bog’lanadi.   Xossalar   asosan   ilovalarni   ishlab   chiqishda
aniqlanadi.
C++   Builder   ilova   yordamida   MBdan   foydalanish   uchun   Ilova->BDE->MB
ketma-ketligi   bajariladi.   Bu   shuni   bildiradiki,   har   qanday   MBga   ilovadan   murojaat
qilinganda   uning   aniq   adresi   BDEga   uzatiladi.   BDE   o’zining   maxsus   funksiyalarini
MB   bilan   bog’lanishda   ishlatadi.   BDE   aniq   bir   MB   bilan   ishlaganda   quyidagilarni
bilishi kerak:
 MB qaysi joyda joylashganligini; 
 MB parametrlari haqidagi ma’lumotni. 
MB parametrlari va uning joylashishi MB psevdonimida aniqlanadi. Psevdonim
–   MB   ga   berilgan   biror   nom   bo’lib,   MBga   mantiqiy   murojaat   qilinganda   ishlatiladi.
11 MB   psevdonimi   BDE   adminisrator   utilitasi   yordamida   aniqlanadi.   MBning   har   bir
jadvali   uchun   fayl   tuziladi.   Xuddi   shunday   jadval   indekslari   va   memo   maydonlari
uchun maxsus fayllar tuziladi. MBga dastur va utilitalardan murojaat qilinish MBning
psevdonimida   amalga   oshiriladi.   Psevdonim   BDE   administrator   utilitasi   yordamida
aniqlanadi.   Psevdonim   –   biror-bir   nom   bo’lib,   MBga   Delphi   komponenti   ilovalari
(masalan   Ttable   va   Tquery)   tomonidan   mantiqiy
murojaat qilishda ishlatiladi.
12 2-BOB. BOLLAR DUNYOSI MAGAZINI UCHUN DASTUR
2.1 Bollar dunyosi magazini ma’lumotlar bazasini hosil qilish
Bollar dunyosi magazine uchun ma’lumotlar bazasini tashkil etish uchun quyidagi
strukturadan foydalanmiz:
1. Bollar dunyosi magazini ishchilar haqidagi ma’lumot:
1) Familya, Isim, Sharifi;
2) Tug’ilgan sanasi;
3) Tug’ilgan joyi;
4) Pasport seryasi;
5) Hozirda yashash manzili;
6) Telfon raqami;
7) Pochta indeksi;
8) Elektron pochtasi;
9) Ishga kirgan yili;
10) Lavozimi;
2. Bollar dunyosi magazinida mavjud lavozimlar haqida ma’lumot:
1)  Lavozim;
2) Oylik ish soati;
3) Oylik ish haqi;
3. Bollar dunyosi magazinidagi bo’limlar to’g’risida ma’lumot
1) Bo’lim nomeri
2) Mahsulotlar turi
3) Sotuvchilar
4) Mahsulot soni
4. Bollar dunyosi magazinida mavjud mahsulotlar haqida ma’lumot:
1) Nomi
2) Turi
3) Narxi
4) Soni
5) Yosh chegarasi
13 5. Mahsulotlarni yetkazib beruvchi korxonalar haqida ma’lunot
1) Korxona nomi
2) Manzili 
3) Telefon raqami
4) Elektron pochtasi
Shu   struktura   asosoida   ma’lumotlar   bazasini   MS   Access   dasturida   tashkil
etamiz.   Ma’lumotlar   bazasini   MS   Accessda   tayorlash   uchun   quyidagi   ketma-
ketliklarni bajaramiz:
1. MS Access dasturiga kiramiz: 
Пуск  - >  Все   программы  - > Microsoft Office -> Access 2003
14 2. Yangi malumotlar bazasin hosil qilamiz va Bollar_Dunyosi deb saqlaymiz:
Файл - > Создат … (  Ctrl + N  ) - > Новая база данных … 
15 3. Создание   таблицы   в   режиме   конструктора   bo’limi   orqali   yangi   jadval   hosil
qilamiz:
16 4. Bu   таблица   orqali   ishchilar   haqidagi   ma’lumotlar   maydonini   hosil   qilamiz   va   uni
saqlab ma’lumotlarni kiritib chiqamiz:
17 18 5. Huddi   shunday   Mahsulotlar,   yetkazib   beruvchi   korxonalar,   lavozimlar   va   bo’limlar
haqidagi ma’lumotlarni hosil qilamiz: 
19 20 2.2. Magizin ma’lumotlar bazasini C++ Builder dasturi bilan bog’lash
Bolalar   dunyosi   magazine   daturini   yaratish   bosqichlari   quyidagicha   amalga
oshiramiz:
1. C++ Builder dasturlash muhitiga kiramiz:
Пуск  - >  Все   программы  - > Borland C++ Builder 6 -> Builder 6 
21 2. Yangi Aplication hosil qilamiz va unga 5 ta Panel komponentasini qo’yib
ularning Caption xossalarini tozalab, har biriga ketma-ket Align=alTop qilamiz va har
biriga mos ravishda ranglar Color xususiyati orqali ta’minlaymiz:
22 3. Har   bir   panelga   mos   ravishda   Button,   Edit,   DBGrid,   ADOConector,
ADOTable,   DataSource   komponentalarni   joylashtirib   quyidagi   interfeysni   hosil
qilamiz:
23 4. Accessda   hosil   qilgan   ma’lumotlar   bazasini   dasturga   bog’lash   uchun
ADOConnection1   ustiga   ikki   marta   sichqonchaning   o’ng   tumasini   bosibbaza   yo’lini
ko’rsatib o’tamiz:
 
24 5. ADOTable1   Conection   xususiyatiga   ADOConection1   ni   ko’rsataib,
Active xossasini true qiymatga o’zgaartiramiz.
6. DataSource1 komponetasining Data Set xossasiga ADOTableni kiritamiz.
7. DBGrid   komponetasinig   Data   Source   xossasiga   DataSource1ni
korsatamiz.
8. Har bir Button komponetalarinig OnClick xusiyatiga Ilovada korsatilgan
kodlarni kiritamiz.
                         XULOSA
      Men kurs ishini tayorlash davomida C++ tili va C++ Builder dasturlsh muhutining
yaratilishi   va   uning   rivojlanib,   takominlashi   haqidagi   ma’lumotlarga   ega   bo’ldim.
Bundan tashqari C++ Builder dasturlash muhuti yordamida qanday qilib ma’lumotlar
bazasi   bilan   bog’lanishni   va   undan   foydalanga   holda   dasturni   ishlab   chiqishni
o’rgandim.
25                      ADABIYOTLAR
9. Б.   Страуступ.   Язык   программирования   С++.   Специальное   издание.   –М.:   ООО
<<Бином-Пресс>>, 2006. -1104  c .
10. А.Я.Архангельский   -   ,,Программирование   в   С++   Builder   “   - M   ,,Издательство
БИНОМ” 2003 г. -1152 с.: ил
11. Культин Н. Б. - ,, Самоучитель С++  Builder ” – СПБ .: БХВ-Петербург, 2004. 320
с. :  ил
12. Nazirov SH.A ,,C va C++ tili” - Toshkent: ,,Voris-nashriyot”. 2013. -488 b.
26 13. Madrahimov SH. ,,C++ tilida programmalash”. Mirzo Ulug’bek Noidagi O’zbekiston
Milliy Unversiteti. Toshkent -2009.
14. Google.com
15. Wikipediya.com
16. Youtube.com
17. Ziyonet.uz
18. Dasturchi.uz
                ILOVA
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
27 #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int a=1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    Form1->Button1Click(this);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Xodimlar(TObject *Sender)
{
  Label1->Visible=true;
  Label2->Visible=true;
  Label3->Visible=true;
  Label4->Visible=true;
  Label5->Visible=true;
  Label6->Visible=true;
  Label7->Visible=true;
  Label8->Visible=true;
  Label9->Visible=true;
  Label10->Visible=true;
  Label11->Visible=true;
  Label12->Visible=true;
  Label13->Visible=true;
  Label14->Visible=true;
28   Label15->Visible=true;
  Label16->Visible=true;
  Label17->Visible=true;
  Label18->Visible=true;
  Label19->Visible=true;
  Label20->Visible=true;
  Label21->Visible=true;
  Label22->Visible=true;
  Label1->Caption="Familyasi";
  Label3->Caption="Ismi";
  Label5->Caption="Sharifi";
  Label7->Caption="Tug'ilgan sanasi";
  Label9->Caption="Tug'ilgan joyi";
  Label11->Caption="Pasport seryasi";
  Label13->Caption="Yashash manzili";
  Label15->Caption="Pochta indeksi";
  Label17->Caption="Elektron Pochtasi";
  Label19->Caption="Ishga kirgan yil";
  Label21->Caption="Lavozimi";
  Label2->Caption=ADOTable1->FieldByName("Familyasi")->AsString;
  Label4->Caption=ADOTable1->FieldByName("Ismi")->AsString;
  Label6->Caption=ADOTable1->FieldByName("Sharifi")->AsString;
  Label8->Caption=ADOTable1->FieldByName("Tug'_sanasi")->AsString;
  Label10->Caption=ADOTable1->FieldByName("Tug'_joy")->AsString;
  Label12->Caption=ADOTable1->FieldByName("Pas_ser")->AsString;
  Label14->Caption=ADOTable1->FieldByName("Ho_ya_man")->AsString;
  Label16->Caption=ADOTable1->FieldByName("Poch_in")->AsString;
  Label18->Caption=ADOTable1->FieldByName("El_poch")->AsString;
29   Label20->Caption=ADOTable1->FieldByName("Ish_k_y")->AsString;
  Label22->Caption=ADOTable1->FieldByName("Lavozimi")->AsString;
}
void __fastcall TForm1::Bulimlar(TObject *Sender)
{
  Label1->Visible=true;
  Label2->Visible=true;
  Label3->Visible=true;
  Label4->Visible=true;
  Label5->Visible=true;
  Label6->Visible=true;
  Label7->Visible=false;
  Label8->Visible=false;
  Label9->Visible=false;
  Label10->Visible=false;
  Label11->Visible=false;
  Label12->Visible=false;
  Label13->Visible=false;
  Label14->Visible=false;
  Label15->Visible=false;
  Label16->Visible=false;
  Label17->Visible=false;
  Label18->Visible=false;
  Label19->Visible=false;
  Label20->Visible=false;
  Label21->Visible=false;
  Label22->Visible=false;
  Label1->Caption="Bo'lim momeri";
30   Label3->Caption="Mahsulot turi";
  Label5->Caption="Mahsulot soni";
  Label2->Caption=ADOTable1->FieldByName("¹")->AsString;
  Label4->Caption=ADOTable1->FieldByName("Mahsulot turi")->AsString;
  Label6->Caption=ADOTable1->FieldByName("Mahsulot soni")->AsString;
}
void __fastcall TForm1::Lavozimlar(TObject *Sender)
{
  Label1->Visible=true;
  Label2->Visible=true;
  Label3->Visible=true;
  Label4->Visible=true;
  Label5->Visible=true;
  Label6->Visible=true;
  Label7->Visible=false;
  Label8->Visible=false;
  Label9->Visible=false;
  Label10->Visible=false;
  Label11->Visible=false;
  Label12->Visible=false;
  Label13->Visible=false;
  Label14->Visible=false;
  Label15->Visible=false;
  Label16->Visible=false;
  Label17->Visible=false;
  Label18->Visible=false;
  Label19->Visible=false;
31   Label20->Visible=false;
  Label21->Visible=false;
  Label22->Visible=false;
  Label1->Caption="Lavozim";
  Label3->Caption="Oylik ish soati";
  Label5->Caption="Oylik ishhaqi";
  Label2->Caption=ADOTable1->FieldByName("Lavozimi")->AsString;
  Label4->Caption=ADOTable1->FieldByName("Oylik ish soati")->AsString;
  Label6->Caption=ADOTable1->FieldByName("Oylik ish haqi")->AsString;
}
void __fastcall TForm1::Korxona(TObject *Sender)
{
  Label1->Visible=true;
  Label2->Visible=true;
  Label3->Visible=true;
  Label4->Visible=true;
  Label5->Visible=true;
  Label6->Visible=true;
  Label7->Visible=true;
  Label8->Visible=true;
  Label9->Visible=false;
  Label10->Visible=false;
  Label11->Visible=false;
  Label12->Visible=false;
  Label13->Visible=false;
  Label14->Visible=false;
32   Label15->Visible=false;
  Label16->Visible=false;
  Label17->Visible=false;
  Label18->Visible=false;
  Label19->Visible=false;
  Label20->Visible=false;
  Label21->Visible=false;
  Label22->Visible=false;
  Label1->Caption="Korxona nomi";
  Label3->Caption="Manzili ";
  Label5->Caption="Tel";
  Label7->Caption="Elekton pochtasi";
  Label2->Caption=ADOTable1->FieldByName("Korxona nomi")->AsString;
  Label4->Caption=ADOTable1->FieldByName("Manzili")->AsString;
  Label6->Caption=ADOTable1->FieldByName("Tel")->AsString;
  Label8->Caption=ADOTable1->FieldByName("Elek_poch")->AsString;
}
void __fastcall TForm1::Maxsulot(TObject *Sender)
{
  Label1->Visible=true;
  Label2->Visible=true;
  Label3->Visible=true;
  Label4->Visible=true;
  Label5->Visible=true;
  Label6->Visible=true;
  Label7->Visible=true;
33   Label8->Visible=true;
  Label9->Visible=false;
  Label10->Visible=false;
  Label11->Visible=false;
  Label12->Visible=false;
  Label13->Visible=false;
  Label14->Visible=false;
  Label15->Visible=false;
  Label16->Visible=false;
  Label17->Visible=false;
  Label18->Visible=false;
  Label19->Visible=false;
  Label20->Visible=false;
  Label21->Visible=false;
  Label22->Visible=false;
  Label1->Caption="Mahsulot nomi";
  Label3->Caption="Turi ";
  Label5->Caption="Narxi ";
  Label7->Caption="Soni";
  Label2->Caption=ADOTable1->FieldByName("Mahsulot nomi")->AsString;
  Label4->Caption=ADOTable1->FieldByName("Turi")->AsString;
  Label6->Caption=ADOTable1->FieldByName("Narxi")->AsString;
  Label8->Caption=ADOTable1->FieldByName("Soni")->AsString;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
34   ADOTable1->Active = false;
  ADOConnection1->Connected = false;
  DataSource1->DataSet = ADOTable1;
  ADOTable1->Connection = ADOConnection1;
  DBGrid1->DataSource = DataSource1;
  ADOConnection1->Connected = true;
  ADOTable1->TableName = "Xodimlar";
  ADOTable1->Active = true;
  Form1->Xodimlar(this);
  a=1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  ADOTable1->Active = false;
  ADOConnection1->Connected = false;
  DataSource1->DataSet = ADOTable1;
  ADOTable1->Connection = ADOConnection1;
  DBGrid1->DataSource = DataSource1;
  ADOConnection1->Connected = true;
  ADOTable1->TableName="Bulim";
  ADOTable1->Active = true;
  a=2;
  Form1->Bulimlar(this);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
  ADOTable1->Active = false;
  ADOConnection1->Connected = false;
35   DataSource1->DataSet = ADOTable1;
  ADOTable1->Connection = ADOConnection1;
  DBGrid1->DataSource = DataSource1;
  ADOConnection1->Connected = true;
  ADOTable1->TableName="Korxona";
  ADOTable1->Active = true;
  a=3;
  Form1->Korxona(this);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
  ADOTable1->Active = false;
  ADOConnection1->Connected = false;
  DataSource1->DataSet = ADOTable1;
  ADOTable1->Connection = ADOConnection1;
  DBGrid1->DataSource = DataSource1;
  ADOConnection1->Connected = true;
  ADOTable1->TableName="Mahsulot";
  ADOTable1->Active = true;
  a=4;
  Form1->Maxsulot(this);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
  ADOTable1->Active = false;
  ADOConnection1->Connected = false;
  DataSource1->DataSet = ADOTable1;
  ADOTable1->Connection = ADOConnection1;
36   DBGrid1->DataSource = DataSource1;
  ADOConnection1->Connected = true;
  ADOTable1->TableName="Lavozim";
  ADOTable1->Active = true;
  a=5;
  Form1->Lavozimlar(this);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button9Click(TObject *Sender)
{
   static boolean b=true;
   if(b){
   Panel3->Visible=false;
   Panel2->Visible=false;
   DBGrid1->Visible=true;
   Button6->Visible=false;
   Button7->Visible=false;
   Button9->Caption="Aloxida";
   b=false;
    }
   else{
   Panel2->Visible=true;
   Panel3->Visible=true;
   DBGrid1->Visible=false;
   Button6->Visible=true;
   Button7->Visible=true;
   Button9->Caption="Barchasi";
   b=true;
    }
37 }
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
   switch(a)
    {
      case 1:
        if(!ADOTable1->Eof)
           ADOTable1->Next();
        Form1->Xodimlar(this);
      break;
      case 2:
        if(!ADOTable1->Eof)
           ADOTable1->Next();
        Form1->Bulimlar(this);
      break;
      case 3:
        if(!ADOTable1->Eof)
           ADOTable1->Next();
        Form1->Korxona(this);
      break;
      case 4:
        if(!ADOTable1->Eof)
           ADOTable1->Next();
        Form1->Maxsulot(this);
      break;
      case 5:
        if(!ADOTable1->Eof)
           ADOTable1->Next();
        Form1->Lavozimlar(this);
38       break;
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
    int n;
    switch(a)
    {
      case 1: n=ADOTable1->FieldByName("¹")->AsInteger;
          n-=2;
          ADOTable1->First();
          for(int k=0; k<n; k++)
           ADOTable1->Next();
          Form1->Xodimlar(this);
      break;
      case 2: n=ADOTable1->FieldByName("¹")->AsInteger;
          n-=2;
          ADOTable1->First();
          for(int k=0; k<n; k++)
           ADOTable1->Next();
          Form1->Bulimlar(this);
      break;
      case 3: n=ADOTable1->FieldByName("¹")->AsInteger;
          n-=2;
          ADOTable1->First();
          for(int k=0; k<n; k++)
           ADOTable1->Next();
          Form1->Korxona(this);
      break;
39       case 4: n=ADOTable1->FieldByName("¹")->AsInteger;
          n-=2;
          ADOTable1->First();
          for(int k=0; k<n; k++)
           ADOTable1->Next();
          Form1->Maxsulot(this);
      break;
      case 5: n=ADOTable1->FieldByName("¹")->AsInteger;
          n-=2;
          ADOTable1->First();
          for(int k=0; k<n; k++)
           ADOTable1->Next();
          Form1->Lavozimlar(this);
      break;
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
  String s1,s="";
  boolean bul=false;
  s=Edit1->Text;
  if(s!="")
  switch(a)
  {
    case 1: ADOTable1->First();
        while(!ADOTable1->Eof)
        {
          s1=ADOTable1->FieldByName("Familyasi")->AsString;
          if(s1==s)
40           {
            bul=true;
            break;
          }
          ADOTable1->Next();
        }
        if(bul)
         Form1->Xodimlar(this);
    break;
    case 2: ADOTable1->First();
        while(!ADOTable1->Eof)
        {
          s1=ADOTable1->FieldByName("¹")->AsString;
          if(s1==s)
          {
            bul=true;
            break;
          }
          ADOTable1->Next();
        }
        if(bul)
         Form1->Bulimlar(this);
    break;
    case 3: ADOTable1->First();
        while(!ADOTable1->Eof)
        {
          s1=ADOTable1->FieldByName("Korxona nomi")->AsString;
          if(s1==s)
          {
            bul=true;
41             break;
          }
          ADOTable1->Next();
        }
        if(bul)
         Form1->Korxona(this);
    break;
    case 4: ADOTable1->First();
        while(!ADOTable1->Eof)
        {
          s1=ADOTable1->FieldByName("Mahsulot nomi")->AsString;
          if(s1==s)
          {
            bul=true;
            break;
          }
          ADOTable1->Next();
        }
        if(bul)
         Form1->Maxsulot(this);
    break;
    case 5: ADOTable1->First();
        while(!ADOTable1->Eof)
        {
          s1=ADOTable1->FieldByName("Lavozimi")->AsString;
          if(s1==s)
          {
            bul=true;
            break;
          }
42           ADOTable1->Next();
        }
        if(bul)
         Form1->Lavozimlar(this);
    break;
  }
}
//---------------------------------------------------------------------------
43