Войти Регистрация

Docx

  • Рефераты
  • Дипломные работы
  • Прочее
    • Презентации
    • Рефераты
    • Курсовые работы
    • Дипломные работы
    • Диссертациии
    • Образовательные программы
    • Инфографика
    • Книги
    • Тесты

Информация о документе

Цена 2000UZS
Размер 24.5KB
Покупки 0
Дата загрузки 07 Ноябрь 2026
Расширение docx
Раздел Рефераты
Предмет Информатика и ИТ

Продавец

Bohodir Jalolov

Ma’lumotlar bazasiga ulanish jarayonlarini dasturlash

Купить
Mavzu:  Ma’lumotlar bazasiga ulanish jarayonlarini dasturlash.  
Reja:
1. MB va MBBTlari haqida tushunchalar.
2. Qt muhitidan turli MBlariga ulanish usullari.
3. SqlLite ma’lumotlar bazasini boshqarish tizimi. 
4. MBda   jadval   tushunchasi.   Jadvallarni   yaratish,   o’zgartirish,   o’chirish   va
ma’lumotlar bilan to’ldirish jarayonlarini dasturlash. 1. MB va MBBTlari haqida tushunchalar.
Ma'lumotlar   bazasi   (JB)   -   bu   ma'lumotlarning   tuzilgan   nomlangan   ombori,
birinchi   ta'rifidanoq,   ishchilar   uchun   har   chorakda   hisoblangan   bonuslarni   o'z
ichiga olgan fayl aniq bo'lishi kerak.
Ma'lumotlar   bazasini   boshqarish   tizimi   (MBBT)   -   bu   uning   tarkibiy   bo'linmalari
to'plami   sifatida   ma'lumotlar   bazasiga   kirishni   ta'minlaydigan   ixtisoslashtirilgan
dasturiy ta'minot.
Ma'lumotlarni   jadvallarga   kiritishdan   oldin   ushbu   jadvallarning   tuzilishini
aniqlash   kerak.   Bu   nafaqat   maydonlarning   nomlari   va   turlarining   tavsifini,   balki
boshqa   bir   qator   xususiyatlarni   ham   anglatadi   (masalan,   format,   kirish
ma'lumotlarini   tekshirish   mezonlari).   Jadvallarning   tuzilishini   tavsiflash   bilan   bir
qatorda,   odatda   jadvallar   o'rtasidagi   munosabatlar   ko'rsatiladi.   Relyatsion
ma'lumotlar   bazalaridagi   munosabatlar   turli   jadvallardagi   maydon   qiymatlarining
bir-biriga   mos   kelishi   bilan   belgilanadi.   Masalan,   mijozlar   va   buyurtmalar   bir-
biridan   ko'plarga   bog'liqdir.   mijozlar   to'g'risidagi   ma'lumotlarni   o'z   ichiga   olgan
jadvaldagi   bitta   yozuv   ushbu   mijozlarning   buyurtmalar   jadvalidagi   bir   nechta
yozuvlarga mos kelishi  mumkin. Agar  o'qituvchilar  o'rtasidagi  munosabatlarni  va
ular   o'qiyotgan   ma'ruza   kurslarini   ko'rib   chiqsak,   bu   ko'pdan-ko'pgacha   bo'lgan
munosabatlar.   bitta   o'qituvchi   bir   nechta   kurslarni   o'qitishi   mumkin,   ammo   bitta
kursni   bir   nechta   o'qituvchilar   o'qitishi   mumkin.   Va   jadvallar   o'rtasidagi
munosabatlarning so'nggi turi - bu yakka munosabat. Ushbu turdagi munosabatlar
juda   kam   tarqalgan.   Qoida   tariqasida,   bu   ikki   holatda   bo'ladi:   yozuv   juda   ko'p
maydonlarga ega, so'ngra ob'ektlarning bir turi haqidagi ma'lumotlar ikkita tegishli
jadvalga tarqaladi yoki jadvaldagi ma'lum miqdordagi yozuvlar uchun qo'shimcha
atributlarni belgilashingiz kerak , keyin ushbu qo'shimcha atributlar uchun alohida
jadval tuziladi, bu esa asosiy jadval bilan yakka munosabatlarga bog'lanadi.
Har   qanday   MBBT   ma'lumotlar   bilan   to'rtta   oddiy   operatsiyani   bajarishga   imkon
beradi:
• jadvalga bir yoki bir nechta yozuvlarni qo'shish;
• jadvaldan bir yoki bir nechta yozuvlarni o'chirish; • bir yoki bir nechta yozuvlarda ba'zi maydonlarning qiymatlarini yangilash;
• berilgan shartga mos keladigan bir yoki bir nechta yozuvlarni topish.
Ushbu   operatsiyalarni   bajarish   uchun   so'rov   mexanizmi   ishlatiladi.   So'rovlarni
bajarish  natijasi   -  bu  ma'lum  mezonlar  bo'yicha   tanlangan  yozuvlar   to'plami   yoki
jadvallarning   o'zgarishi.   Ma'lumotlar   bazasiga   so'rovlar   buning   uchun   maxsus
yaratilgan   tilda   shakllanadi,   bu   tuzilgan   so'rovlar   tili   (SQL   -   Structured   Query
Language) deb nomlanadi.
MBBT-ning   so'nggi   funktsiyasi   -   bu   ma'lumotlarni   boshqarish.   Ma'lumotlarni
boshqarish   deganda,   odatda,   ma'lumotlarni   ruxsatsiz   kirishdan   himoya   qilish,
ma'lumotlar   bilan   ishlashning   ko'p   foydalanuvchi   rejimini   qo'llab-quvvatlash   va
ma'lumotlar yaxlitligi va izchilligini ta'minlash tushuniladi.
Ruxsatsiz   kirishdan   himoyalanish   odatda   har   bir   foydalanuvchiga   faqat
ko'rish yoki o'zgartirish uchun ruxsat berilgan ma'lumotlarni ko'rish va o'zgartirish
imkonini beradi. Ko'p foydalanuvchi qobiliyatlari bir nechta foydalanuvchilarning
bir   vaqtning   o'zida   bir   xil   ma'lumotni   o'zgartirishiga   to'sqinlik   qiladi.
Ma'lumotlarning   yaxlitligi   va   izchillik   nazorati   ma'lumotlar   o'zgarishiga   olib
keladigan   o'zgarishlarning   oldini   oladi.   Masalan,   ikkita   jadval   birdan   ko'pga
munosabatda   bo'lganda,   bitta   (asosiy)   tarafdagi   jadvalda   tegishli   yozuv   bo'lmasa,
ko'p tomonda (odatda bo'ysunuvchi deb yuritiladi) jadvalga yozib bo'lmaydi.
2. Qt muhitidan turli MBlariga ulanish usullari.
Qt   standart   DBMS   yordamida   platformadan   mustaqil   ma'lumotlar   bazasi
dasturlarini   yaratishga   imkon   beradi.   Qt   Oracle,   Microsoft   SQL   Server,   Sybase
Adaptive   Server,   IBM   DB2,   PostgreSQL,   MySQL   va   ODBC   mos   ma'lumotlar
bazalari uchun mahalliy drayverlarni o'z ichiga oladi. Qt ma'lumotlar bazasiga xos
vidjetlarni   o'z   ichiga   oladi,   shuningdek,   o'rnatilgan   yoki   alohida   yozilgan   har
qanday vidjet uchun ma'lumotlar bazasini kengaytirishni qo'llab-quvvatlaydi.
Qt ma'lumotlar bazalari bilan ishlash turli darajalarda sodir bo'ladi:
1.Driver   Layer   -   QSqlDriver,   QSqlDriverCreator,   QSqlDriverCreatorBase,
QSqlDriverPlugin va QSqlResult sinflarini o'z ichiga oladi. Ushbu qatlam ma'lum ma'lumotlar   bazalari   va   SQL   API   qatlami   o'rtasida   past   darajadagi   ko'prikni
ta'minlaydi.
2.   SQL   API   qatlami   -   bu   qatlam   ma'lumotlar   bazalariga   kirishni   ta'minlaydi.
Aloqalar   QSqlDatabase   klassi   yordamida   o'rnatiladi.   Ma'lumotlar   bazasi   bilan
o'zaro   ta'sir   QSqlQuery   klassi   yordamida   amalga   oshiriladi.   QSqlDatabase   va
QSqlQuery   sinflaridan   tashqari   SQL   API   qatlami   QSqlError,   QSqlField,
QSqlIndex va QsqlRecord sinflariga tayanadi.
3.   Foydalanuvchi   interfeysi   qatlami   -   bu   qatlam   ma'lumotlar   bazasidagi
ma'lumotlarni   ma'lumotlar   yo'naltirilgan   vidjetlar   bilan   bog'laydi.   Bunga
QSqlQueryModel,   QSqlTableModel   va   QSqlRelationalTableModel   kabi   sinflar
kiradi.
Ma'lumotlar bazasiga ulanish
QSqlQuery   va   QSqlQueryModel   yordamida   ma'lumotlar   bazasiga   kirish
uchun   siz   bir   yoki   bir   nechta   ma'lumotlar   bazasi   ulanishlarini   yaratishingiz   va
ochishingiz kerak.
Qt   quyidagi   ma'lumotlar   bazalari   bilan   ishlashi   mumkin  (GPL  litsenziyasiga   mos
kelmasligi sababli barcha plaginlar Qt Open Source Edition bilan birga kelmaydi):
QDB2 - IBM DB2 (versiya 7.1 va undan yuqori)
QIBASE - Borland InterBase
QMYSQL - MySQL
QOCI - Oracle Call Interface Driver
QODBC - Ochiq ma'lumotlar bazasi ulanishi (ODBC) - Microsoft SQL Server va
boshqa ODBC mos keluvchi ma'lumotlar bazalari
QPSQL - PostgreSQL (versiya 7.3 va undan yuqori)
QSQLITE2 - SQLite 2-versiyasi
QSQLITE - SQLite 3-versiya
QTDS - Sybase Adaptive Server Driver
Qt   tarqatishda   bo'lmagan   haydovchi   plaginini   yaratish   uchun   ishlatilgan   DBMS
uchun mos mijozlar kutubxonasiga ega bo'lishingiz kerak.
Ma'lumotlar bazasiga quyidagicha ulanishingiz mumkin: QSqlDatabase db = QsqlDatabase::addDatabase("QMYSQL", "mydb");
   db.setHostName("bigblue");
   db.setDatabaseName("flightdb");
   db.setUserName("acarlson");
   db.setPassword("1uTbSbAs");
   bool ok = db.open();
Birinchi   qator   ulanish   moslamasini   yaratadi,   ikkinchisi   esa   uni   ochadi.
Ularning orasida ulanish nomi, ma'lumotlar bazasi nomi, xost nomi, foydalanuvchi
nomi, parol kabi ba'zi ulanish ma'lumotlari ishga tushiriladi. Ushbu misol bigblue
tugunidagi MySQL flightdb ma'lumotlar bazasiga ulanadi. AddDatabase  () uchun
QMYSQL   argumenti   ulanish   uchun   foydalaniladigan   ma'lumotlar   bazasi
drayverining turini belgilaydi va mydb - bu ulanishning nomi.
Aloqa   o'rnatilgandan   so'ng,   dasturning   istalgan   joyidan   QSqlDatabase   ::
ma'lumotlar   bazasi   ()   statik   funktsiyasiga   murojaat   qilishingiz,   ulanish   nomini
ko'rsatib,   ushbu   ulanishga   ko'rsatgich   olishingiz   mumkin.   Agar   ulanish   nomini
o'tkazmasangiz, u standart ulanishni qaytaradi.
Agar   open   ()   bajarilmasa,   u   false   qiymatiga   qaytadi.   Bunday   holda   siz
QSqlDatabase   ::   lastError   ()   ga   murojaat   qilib,   xato   haqida   ma'lumot   olishingiz
mumkin.
Ma'lumotlar   bazasiga   ulanishni   olib   tashlash   uchun   avval   QSqlDatabase   ::
close   ()   yordamida   ma'lumotlar   bazasini   yopish   kerak,   so'ngra   QSqlDatabase   ::
removeDatabase () statik usuli yordamida ulanishni olib tashlash kerak.
3. SqlLite ma’lumotlar bazasini boshqarish tizimi.
SQLite   -   ixcham   o'rnatilgan   relyatsion   ma'lumotlar   bazasi.   Kutubxonaning
manba kodi jamoat domeniga chiqarildi. Bu mutlaqo relyatsion ma'lumotlar bazasi.
"O'rnatiladigan"   so'zi   SQLite-da   mijoz-server   paradigmasidan   foydalanmasligini
anglatadi.   O'sha.   SQLite   mexanizmi   bu   dastur   o'zaro   aloqada   bo'lgan   alohida   ish
jarayoni   emas,   balki   dasturni   bog'laydigan   kutubxonani   ta'minlaydi   va   vosita
dasturning ajralmas qismiga aylanadi. Shunday qilib, almashinuv protokoli sifatida
SQLite kutubxonasining funktsiya chaqiruvlari (API) ishlatiladi. Ushbu yondashuv qo'shimcha   xarajatlarni,   javob   berish   vaqtini   qisqartiradi   va   dasturni
soddalashtiradi. SQLite butun ma'lumotlar bazasini (ta'riflar, jadvallar, indekslar va
ma'lumotlarni   o'z   ichiga   olgan   holda)   dastur   ishlayotgan   kompyuterda   bitta
standart faylda saqlaydi. Amalga oshirish qulayligi, yozish operatsiyasini  bajarish
boshlanishidan   oldin   ma'lumotlar   bazasini   saqlaydigan   butun   fayl   qulflanganligi
tufayli erishiladi; ACID [1] funktsiyalariga jurnal faylini yaratish orqali erishiladi.
Bir   nechta   ma'lumotlar   yoki   ma'lumotlar   bir   vaqtning   o'zida   bitta   ma'lumotlar
bazasidan ma'lumotlarni muammosiz o'qishi mumkin. Ma'lumotlar bazasiga yozish
faqat   boshqa   hech   qanday   so'rovlar   bajarilmasa   amalga   oshirilishi   mumkin;   aks
holda,   yozish   urinishi   muvaffaqiyatsiz   tugadi   va   xato   kodi   dasturga   qaytariladi.
Voqealarni   rivojlantirishning   yana   bir   varianti   -   belgilangan   vaqt   oralig'ida   yozib
olish urinishlarini avtomatik ravishda takrorlash. Shuningdek, operatsiyalar uchun
tanaffusni   kiritishingiz   mumkin.   Keyin   ma'lumotlar   bazasining   bandligi   bilan
bog'liq   bo'lgan   ulanish,   SQLITE_BUSY   xatosida   ishlamay   qolguncha   N   soniya
kutib turadi.
SQL standartini qo'llab-quvvatlash
Ma'lumki, SQL o'z rivojlanishida turli yo'nalishlarda shoshildi. Katta ishlab
chiqaruvchilar har qanday kengaytmalarni siqib chiqara boshladilar. Va har qanday
standartlar   qabul   qilingan   bo'lsa   ham,   haqiqiy   hayotda   barcha   yirik   ma'lumotlar
bazalari   standartlarni   to'liq   qo'llab-quvvatlamaydi.   Ammo   ularning   o'ziga   xos
narsalari   bor.   Shunday   qilib,   SQLite   "minimal,   ammo   to'liq   to'plam"   printsipi
asosida   yashashga   harakat   qiladi.   U   murakkab   narsalarni   qo'llab-quvvatlamaydi,
lekin ko'p jihatdan SQL 92 ga mos keladi. Va u o'zining o'ziga xos xususiyatlarini
taqdim etadi, ular juda qulay, ammo standart emas.
Quyidagi funktsiyalar qo'llab-quvvatlanmaydi:
•   To'g'ri   va   to'liq   tashqi   ishtirok   etish.   Faqat   LEFT   OUTER   JOIN   amalga
oshiriladi.
•   ALTER   TABLE   qisman   amalga   oshiriladi.   Faqat   jadvalni   qayta   nomlash   va
kolonnani qo'shish mumkin.
• Triggerni qisman qo'llab-quvvatlash. Faqat har bir qator uchun triggerlar mavjud. •   VIEWS-da   yozib   olish.   SQLite-da   VIEWS   faqat   o'qish   uchun   mo'ljallangan.
Triggerlar orqali qisman chetlab o'tildi.
•   Ma'lumotlar   bazasini   bitta   fayl   sifatida   amalga   oshirishi   va   mijoz-server
kontseptsiyasidan   chiqib   ketishi   tufayli   GRANT   va   REVOKE   funktsiyalaridan
foydalanilmaydi.
• Chet el kalitlari sukut bo'yicha o'chirilgan. Bu orqaga qarab muvofiqlik uchun.
Ma’lumot tipi
SQLite dinamik ma'lumotlarni tiplashdan foydalanadi. Bu shuni anglatadiki,
ustun turi ushbu yozuv maydonida saqlanadigan qiymat turini aniqlamaydi. O'sha.
har qanday ustun har qanday qiymatga kiritilishi mumkin.
Ustunning turi qiymatlarni qanday taqqoslashni belgilaydi (masalan, indeks ichida
taqqoslashda siz ularni bir xil turga kiritishingiz kerak). Ushbu turdagi qiymatlarni
ustunga kiritish majburiy emas.
Aytaylik, biz ustunni "INTEGER" deb e'lon qildik. SQLite ushbu ustunga istalgan
turdagi   qiymatlarni   kiritish   imkonini   beradi   (999,   "abc",   "123",   678.525).   Agar
kiritilgan qiymat butun son bo'lmasa, SQLite uni butun songa o'tkazishga harakat
qiladi.   O'sha.   "123"   qatori   123   raqamiga   aylanadi   va   qolgan   qiymatlar   "boricha"
yoziladi.
Mumkin bo'lgan maydon turlari: NULL, INTEGER, REAL, MATN, BLOB.
Ishonchlilik
SQLite manba kodini sinash qamrovi afsonadir.
Bu   testlar   deyarli   barcha   mumkin   bo'lgan   (va   mumkin   bo'lmagan)   vaziyatlarni
tavsiflashi   bilan   bog'liq.   SQLite-ni   amalga   oshiradigan   kodga   qaraganda   testlarni
tavsiflovchi   juda  ko'p  kod  mavjud.  Tabiiyki,  testlar   bilan  kodni   qoplash  100%   ni
tashkil qiladi.
SQLite  ishlab  chiquvchilari   tomonidan qo'llaniladigan  sinovga  bir  xil   yondoshish
taqlid qilishga loyiqdir. Va bunga intilish uchun ideal sifatida qabul qilish mumkin.
Amaliyot Relatsion   model   haqidagi   tushunchangizni   mustahkamlash   va   uning
cheklanganligini ko'rsatish uchun amaliy mashg'ulot sifatida biz mahsulot katalogi
tuzilishini yaratish misolini ko'rib chiqamiz.
SQL kodini ishlatish uchun siz quyidagi buyruqni bajarishingiz kerak:
sqlite3 ~ / example.sqlite
3. MBda   jadval   tushunchasi.   Jadvallarni   yaratish,   o’zgartirish,   o’chirish
va ma’lumotlar bilan to’ldirish jarayonlarini dasturlash.
SQL bayonotlarini bajarish
QSqlQuery   klassi   SQL   so'rovlarini   bajarish   va   natijalar   to'plami   bo'ylab
harakatlanish uchun interfeysni taqdim etadi.
SQL so'rovlarini bajarish uchun shunchaki QSqlQuery ob'ektini yarating va    
   QSqlQuery :: exec () ga murojaat qiling. Masalan, shunga o'xshash:
   QSqlQuery query;
   query.exec("SELECT name, salary FROM employee WHERE salary > 50000");
QSqlQuery konstruktor  ixtiyoriy QSqlDatabase argumentini qabul  qiladi, u
qaysi   ma'lumotlar   bazasi   ulanishini   ishlatishini   belgilaydi.   Agar   siz   uni
ko'rsatmasangiz, standart ulanish ishlatiladi.
Agar xatolik yuz bersa, exec () false qiymatini qaytaradi. Xatoga QSqlQuery
:: lastError () yordamida kirish mumkin.
QSqlQuery bitta so'rov natijalari to'plamiga bir martalik kirishni ta'minlaydi. Exec
()   chaqiruvidan   so'ng   ichki   QSqlQuery   ko'rsatkichi   birinchi   yozuvdan   oldingi
holatga ishora qiladi. Agar siz QSqlQuery :: next () usulini bir marta chaqirsangiz,
u   ko'rsatkichni   birinchi   yozuvga   o'tkazadi.   Shundan   so'ng,   boshqa   yozuvlarga
kirish  uchun navbatdagi  () murojaatni  yolg'onga qaytguncha  takrorlash  kerak. Bu
erda barcha yozuvlar bo'yicha takrorlanadigan odatiy tsikl mavjud:
   while (query.next()) {
     QString name = query.value(0).toString();
     int salary = query.value(1).toInt();
     qDebug() << name << salary;
   } QSqlQuery nafaqat SELECTni, balki boshqa har qanday so'rovni ham bajara oladi.
Quyidagi misol INSERT yordamida jadvalga yozuv kiritadi:
QSqlQuery query;
   query.exec("INSERT INTO employee (id, name, salary) "
        "VALUES (1001, 'Thad Beaumont', 65000)");
Agar   bir   vaqtning   o'zida   bir   nechta   yozuvlarni   kiritish   kerak   bo'lsa,   so'rovni
haqiqiy   kiritilgan   qiymatlardan   ajratish   ko'pincha   samaraliroq   bo'ladi.   Buni
parametrlar   orqali   qiymatlarni   joylashtirish   orqali   amalga   oshirish   mumkin.   Qt
qiymatlarni   kiritish   uchun   ikkita   sintaksisni   qo'llab-quvvatlaydi:   nomlangan
parametrlar   va   pozitsion   parametrlar.   Quyidagi   misolda   nomlangan   parametr
yordamida qo'shilish ko'rsatilgan:
   QSqlQuery query;
   query.prepare("INSERT INTO employee (id, name, salary) "
          "VALUES (:id, :name, :salary)");
   query.bindValue(":id", 1001);
   query.bindValue(":name", "Thad Beaumont");
   query.bindValue(":salary", 65000);
   query.exec();
Ushbu misol pozitsion parametr yordamida qo'shishni ko'rsatadi:
QSqlQuery query;
   query.prepare("INSERT INTO employee (id, name, salary) "
          "VALUES (?, ?, ?)");
   query.addBindValue(1001);
   query.addBindValue("Thad Beaumont");
   query.addBindValue(65000);
   query.exec(); Bir   nechta   yozuvlarni   kiritishda   QSqlQuery   ::   prepar   ()   raqamiga   faqat   bir   marta
murojaat qilishingiz kerak. Keyin kerak bo'lganda bindValue() yoki addBindValue
() ni chaqirib, exec() ga murojaat qilishingiz mumkin.
Ma'lumotlarni jadval ko'rinishida aks ettirish
QSqlQueryModel,   QSqlTableModel   va   QSqlRelationalTableModel   sinflari
QListView,   QTableView   va   QTreeView   kabi   Qt   ko'rish   sinflari   uchun   ma'lumot
manbalari   sifatida   ishlatilishi   mumkin.   Amalda,   QTableView   ko'pincha   SQL
tanlovi asosan ikki o'lchovli ma'lumotlar tuzilishi bo'lganligi sababli ishlatiladi.
Quyidagi misol SQL ma'lumotlar modeli asosida ko'rinishni yaratadi:
   QSqlTableModel model;
   model.setTable("employee");
   QTableView *view = new QTableView;
   view->setModel(&model);
   view->show();
Agar   model   o'qish-yozish   modeli   bo'lsa   (masalan,   QSqlTableModel),   unda
ko'rinish maydonlarni tahrirlashga imkon beradi. Buni quyidagi kod bilan o'chirib
qo'yish mumkin
   view-> setEditTriggers (QAbstractItemView :: NoEditTriggers);
Siz   bir   xil   modelni   bir   nechta   ko'rish   uchun   ma'lumotlar   manbai   sifatida
ishlatishingiz   mumkin.   Agar   foydalanuvchi   model   ma'lumotlarini   ko'rinishlardan
biri yordamida o'zgartirsa, boshqa ko'rinishlar darhol o'zgarishlarni aks ettiradi.
Yuqoridagi   ustunlar   uchun   ko'rish   sinflari   sarlavhalarni   aks   ettiradi.   Sarlavha
matnini o'zgartirish uchun modelning setHeaderData () funktsiyasidan foydalaning.
Masalan:
   model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
   model->setHeaderData(1, Qt::Horizontal, QObject::tr("Name"));
   model->setHeaderData(2, Qt::Horizontal, QObject::tr("City"));
   model->setHeaderData(3, Qt::Horizontal, QObject::tr("Country"));            Foydalanilgan ea dabiyotlar ro’yxati
1. Sh.A.Nazirov, R.V.Qobulov, M.R.Babajanov «C va C++ TILI»
2. Informatika fanidan o’quv qo’llanma //TATU 489 b. Toshkent, 2012.
3. C / C ++.   Программирование   на   языке   высокого   уровня   /   Т.   А.
Павловская. — СПб.:Питер, 2003. —461 с: ил.
4. Программирование на языке С++ в среде  Qt   Creator :
5. / Е. Р. Алексеев, Г. Г. Злобин, Д. А. Костюк,О. В. Чеснокова,
6. А. С. Чмыхало — М. :  ALT   Linux , 2015. — 448 с.
7. Жасмин   Бланшет,   Марк   Саммерфилд   Qt   4:Программирование   GUI   на
C ++
8. М.Шлее,  Qt  5.10. Профессиональное программирование на С++. - СПб.:
БХВ-Петербург, 2018. - 1072 с.

Ma’lumotlar bazasiga ulanish jarayonlarini dasturlash

Купить
  • Похожие документы

  • 3d-max dasturida obektlarni yaratish
  • Algoritm va ma’lumotlar strukturasi
  • 3D-MAX dasturi haqida
  • 3D Studio MAX dasturiga kirish. 3D Studio MAX dasturi haqida tushuncha
  • Adobe photoshop dasturida tasvirlarda ishlov berish,taqdimot yaratish

Подтвердить покупку

Да Нет

© Copyright 2019-2026.

  • Инструкция по снятию с баланса
  • Контакты
  • Инструкция использования сайта
  • Инструкция загрузки документов
  • O'zbekcha