BMI-Narzullayev.S LAST
BMI-Narzullayev.S LAST
BMI-Narzullayev.S LAST
mavzusida
BITIRUV MALAKAVIY ISHI
Samarqand -2024
1
MUNDARIJA
Bet
KIRISH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
.
I BOB. C# DASTURLASH TILI ASOSLARI . . . . . . . . . . . . . . . . . . . . . . . 6
1.1. Dasturlash tillarining rivojlanish tarixi. . . . . . . . . . . . . . . . . . . . . . . 6
.
1.2. C# dasturlash tilining xususiyatlari va afzalliklari. . . . . . . . . . . . . . 8
.
1.3. Sintaksis, ma’lumot turlari, o’zgaruvchilar, operatorlar, 13
ifodalar. . .
1.4. Nazorat tuzilmalari: shartlar, 17
tsikllar. . . . . . . . . . . . . . . . . . . . . . . . .
II BOB. C# DASTURLASH TIL BILAN ISHLASH MUHITI VA
WINDOWS FORMS ILOVALARI . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1. C# obyektga yo’naltirlgan dasturlash tili haqida . . . . . . . . . . . . . . . 20
2.2. .NET Framework haqida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
....
2.3. Visual studio dasturlash muhiti haqida . . . . . . . . . . . . . . . . . . . . 26
...
III BOB. DESKTOP ILOVA LOYIHASI 33
3.1. Loyiha konsepsiyasi, talablar tahlili, dizayn, UI/UX . . . . . . . . . . . 33
3.2. Ilovaning ishlash jarayoni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3. Foydalanuvchi qo’llanmasi. . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 42
3.4. Kompyuter bilan ishlashda qo'yiladigan talablar 44
XULOSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
FOYDALANILGAN ADABIYOTLAR . . . . . . . . . . . . . . . . . . . . . 48
ILOVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2
3
KIRISH
6
I BOB. C# DASTURLASH TILI ASOSLARI
8
asoslangan holda yozishga imkon beradi. OOP dasturlarni yanada modular, qayta
ishlatiladigan va tushunarli qiladi.
C++: C++ tili 1983-yilda Bjarne Stroustrup tomonidan yaratilgan bo'lib, u
C tilining obyektga yo'naltirilgan kengaytmasi hisoblanadi.
Java: Java tili 1995-yilda Sun Microsystems tomonidan ishlab chiqilgan
bo'lib, u platformaga bog'liq bo'lmagan dasturlar yaratish imkonini beradi.
Zamonaviy dasturlash tillari (2000-yillar va keyingi davr). Zamonaviy
dasturlash tillari ilg'or dasturlash paradigmalari va texnologiyalarini qo'llab-
quvvatlaydi. Ular qulay sintaksis, keng kutubxonalar va yuqori samaradorlikni
ta'minlaydi.
C#. C# (C Sharp) 2000-yilda Microsoft tomonidan ishlab chiqilgan
va .NET platformasi uchun mo'ljallangan. U OOP paradigmasiga asoslangan va
ko'p maqsadli dasturlash tili hisoblanadi.
JavaScript. JavaScript veb-ishlab chiqarishda keng qo'llaniladigan skript
tili bo'lib, u foydalanuvchi interfeyslarini dinamik qilish va veb-ilovalar yaratish
uchun ishlatiladi.
Swift. Swift 2014-yilda Apple tomonidan ishlab chiqilgan va iOS va
macOS ilovalari yaratish uchun mo'ljallangan.
Dasturlash tillarining rivojlanishi davom etmoqda va har bir yangi til yoki
yangilanish dasturchilarga yangi imkoniyatlar va qulayliklar yaratmoqda. Bu
jarayon insoniyatning hisoblash va avtomatlashtirishga bo'lgan ehtiyojlarini yanada
samarali qondirish uchun davom etadi.
9
asoslanadi va ko'p sonli afzalliklarga ega bo'lib, uni keng ko'lamli dasturlash
loyihalarida qo'llash imkonini beradi.
C# dasturlash tilining xususiyatlari. Obyektga yo'naltirilgan dasturlash
(OOP). C# to'liq obyektga yo'naltirilgan dasturlash tilidir. Bu til yordamida
dasturchilar obyektlar va sinflar orqali kodni tashkil etishlari mumkin. OOP
paradigmasi dastur kodini qayta ishlashni soddalashtiradi va uni o'qilishi va
tushunilishi oson bo'lgan holatga keltiradi.
C# dasturlash tilining OOP qismida quyidagi xususiyatlar bor:
Inkapsulyatsiya: Ma'lumotlar va metodlar bir joyda, ya'ni sinfda
saqlanadi;
Meros olish: Sinflar boshqa sinflardan meros olishi mumkin, bu kodni
qayta ishlatishni ta'minlaydi;
Polimorfizm: Bir interfeys yordamida turli xil amalga oshirishlarni
taqdim etish imkoniyati mavjud;
Abstraktsiya: Murakkab tizimlarni oddiy tushunchalar bilan ifodalash
imkoniyati.
Qattiq tipli (strongly-typed) til. C# qattiq tipli dasturlash tili hisoblanadi,
ya'ni har bir o'zgaruvchi va ifoda aniq turga ega bo'lishi kerak. Bu yondashuv
kompilyatsiya vaqtida ko'proq xatolarni aniqlashga yordam beradi va kodni yanada
ishonchli qiladi.
Kompilyatsiya vaqti xatolarini aniqlash: Aniq turdagi tekshirishlar
kompilyatsiya vaqtida xatolarni aniqlash imkonini beradi.
Xotira xavfsizligi: Qattiq tipli tizim xotira muammolarini oldini olishga
yordam beradi.
Rich Standard Library. C# va .NET platformasi keng va boy standart
kutubxonaga ega. Bu kutubxonalar dasturlash jarayonini sezilarli darajada
soddalashtiradi va tezlashtiradi. Ulardan ba’zilari quyidagilar:
System Namespace: Umumiy funktsiyalar va utilitalarni o'z ichiga oladi;
System.Collections: Ma'lumotlar tuzilmalari uchun kutubxonalar;
10
System.IO: Fayl tizimi bilan ishlash uchun kutubxonalar;
System.Net: Tarmoq va internet bilan bog'liq funktsiyalar.
Platformaga bog'liq emaslik. C# dasturlash tili .NET Core yordamida ko'p
platformali dasturlar yaratish imkonini beradi. .NET Core Windows, macOS va
Linux platformalarida ishlashi mumkin.
.NET Core platformaga bog'liq emaslikni ta'minlaydi.
Xamarin mobil ilovalar yaratish uchun ishlatiladi, iOS va Android
platformalarini qo'llab-quvvatlaydi.
Modern Syntax. C# zamonaviy va intuitiv sintaksisga ega bo'lib, boshqa
yuqori darajali tillardan ilhomlangan. Bu dasturchilarga kodni tez va samarali
yozishga yordam beradi.
Anonim turlar va lambda ifodalari kodingizni qisqartiradi va o'qilishi oson
bo'ladi.
LINQ (Language Integrated Query) ma'lumotlar bilan ishlashni
osonlashtiradi.
Async va await asinxron dasturlashni soddalashtiradi.
Type Safety. C# kuchli turdagi xavfsizlikni ta'minlaydi, ya'ni
o'zgaruvchilar, funksiyalar va sinflar orasidagi mos kelmasliklarni oldini oladi.
Bu dasturchilarga xatolarni erta bosqichda aniqlash va tuzatish imkonini
beradi. Ulardan ba’zilari quyidagilar:
Null safety: Null ko'rsatkich xatolarini oldini olish;
Generics: Turli turdagi ma'lumotlar bilan ishlash uchun
moslashuvchanlik va xavfsizlikni ta'minlaydi.
Exception Handling. C# dagi xatolarni boshqarish tizimi juda kuchli.
Exception handling (istisnolarni boshqarish) yordamida dastur xatolarini ushlash
va ularga tegishli ravishda javob berish mumkin. Ular quyidagi turlarga ajratiladi:
Try-Catch-Finally: Xatolarni ushlash va ular bilan ishlash;
Custom Exceptions: Maxsus istisnolarni yaratish va foydalanish.
11
Memory Management. C# avtomatik xotira boshqaruviga ega bo'lib,
garbage collection (GC) yordamida foydalanilmayotgan xotirani tozalash imkonini
beradi. Bu dasturchilarni xotira boshqaruvi haqida o'ylamasdan, asosiy logikaga
e'tibor qaratish imkonini beradi va ular quyidagi ko’rinishlarda bo’ladi:
Garbage Collection (GC): Avtomatik xotira boshqaruvi;
Stack va Heap: Effektiv xotira joylashuvi.
Language Interoperability. C# tili boshqa tillar bilan yaxshi muvofiq-
lashtiriladi. .NET platformasi yordamida C++, VB.NET va boshqa tillar bilan
birgalikda ishlash mumkin. Bundan tashqari quyidagicha integratsiyalar ham
mavjud:
P/Invoke: Unmanaged kodlar bilan bog'lanish;
COM Interop: Component Object Model (COM) komponentlari bilan
integratsiya.
Security Features. .C# va .NET platformasi yuqori darajadagi xavfsizlik
xususiyatlarini ta'minlaydi. Bu dasturchilarga xavfsiz va ishonchli dasturlar
yaratishga yordam beradi. Bu xususiyatlar quyidagicha bo’lishi mumkin:
Code Access Security (CAS): Kodning kirish huquqlarini boshqarish;
Role-Based Security: Foydalanuvchi roli asosida kirish huquqlarini
boshqarish.
C# dasturlash tilining afzalliklari. Microsoft qo'llab-quvvatlovi. C#
tilini Microsoft qo'llab-quvvatlaydi va rivojlantiradi. Bu tilning muntazam ravishda
yangilanib turishi va yangi xususiyatlar qo'shilishi bilan bog'liq.
Keng hamjamiyat. C# juda keng va faol dasturchilar hamjamiyatiga ega.
Bu yangi boshlovchilarga tezda yordam olish va tajribali dasturchilar bilan fikr
almashish imkonini beradi.
Online resurslar: Rasmiy hujjatlar, forumlar, bloglar va video darsliklar.
Open Source loyihalar: GitHub va boshqa platformalardagi loyihalar.
Ko'p maqsadli qo'llanish. .C# dasturlash tili juda ko'p maqsadlarda
qo'llanilishi mumkin. U veb-dasturlar, mobil ilovalar, o'yinlar, ish stoli ilovalari va
12
xizmatlar yaratish uchun ishlatiladi. Ulardan quyidagi frameworklarni sanab
o’tishimiz mumkin:
ASP.NET: Veb-dasturlar va xizmatlar yaratish;
Xamarin: Mobil ilovalar yaratish;
Unity: O'yin dasturlash.
Ishlash va samaradorlik. C# yuqori samaradorlik va ishlash ko'rsatkich-
lariga ega. Bu tilning kompilyatori va runtime muhitining optimallashtirilganligi
tufayli amalga oshiriladi.
JIT (Just-In-Time) Compilation: Kodingizni kompilyatsiya qilish va ish
vaqtida optimallashtirish.
Performance optimizations: .NET va C# ning muntazam ravishda yax-
shilanib borishi.
Modulli va kengaytiriluvchanlik. C# modulli dasturlashni qo'llab-quv-
vatlaydi, bu esa kodni qayta ishlatish va kengaytirish imkonini beradi. Sinflar,
interfeyslar va kutubxonalar orqali modullik ta'minlanadi. Masalan, ushbu mo-
dullarni keltirishimiz mumkin:
NuGet: Kengaytirilgan paket menejeri;
Plug-in arxitekturasi: Qo'shimchalarni osongina integratsiya qilish.
Integratsiya imkoniyatlari. C# va .NET platformasi boshqa dasturlash
tillari va texnologiyalari bilan yaxshi integratsiya qila oladi. Bu uni korxona
darajasidagi ilovalar yaratishda juda mos qiladi. Bunday imkoniyatlardan ba’zilari
quyidagilar:
SQL Server: Ma'lumotlar bazasi bilan integratsiya;
Azure: Bulutli xizmatlar bilan ishlash;
RESTful va SOAP: Veb xizmatlar yaratish va foydalanish.
Zamonaviy dasturlash paradigmalari. C# zamonaviy dasturlash paradig-
malari va texnikalarini qo'llab-quvvatlaydi. Bu dasturchilarga ilg'or funksiyalar va
imkoniyatlardan foydalanish imkonini beradi. Zamonaviy dasturlash paradigmalari
quyidagi turlarda bo’ladi:
13
Reactive Programming: Asinxron va hodisalarga asoslangan dasturlash;
Functional Programming: Funksional dasturlash elementlari.
C# dasturlash tili uning keng xususiyatlari va afzalliklari tufayli
zamonaviy dasturlash tillaridan biri bo'lib qolmoqda. Uning obyektga
yo'naltirilganligi, qattiq tipli tizimi, boy standart kutubxonalari va Microsoft
qo'llab-quvvatlovi bilan C# dasturchilarga yuqori samaradorlik, xavfsizlik va
moslashuvchanlikni ta'minlaydi. Bu esa uni keng ko'lamli dasturlash loyihalarida
qo'llash uchun mukammal tanlov qiladi.
16
Arifmetik operatorlar matematik amallarni bajarish uchun ishlatiladi va
ular quyidagilar:
Qo'shish (+), masalan, int sum = 5 + 3; // Natija: 8
Ayirish (-), masalan, int difference = 5 - 3; // Natija: 2
Ko'paytirish (*), masalan, int product = 5 * 3; // Natija: 15
Bo'lish (/), masalan, int quotient = 10 / 2; // Natija: 5
Qoldiq (%), masalan, int remainder = 10 % 3; // Natija: 1
Mantiqiy operatorlar. Mantiqiy operatorlar mantiqiy amallarni bajarish
uchun ishlatiladi va ular quyidagilar:
Va (&&), masalan, bool res = (5 > 3) && (10 > 5); // true
Yoki (||), masalan, bool res = (5 > 3) || (10 < 5); // true
Emas (!), masalan, bool res = !(5 > 3); // false
Solishtirish operatorlari. Solishtirish operatorlari qiymatlarni solishtirish
uchun ishlatiladi va ular quyidagilar:
Teng (==), masalan, bool isEqual = (5 == 5); // true
Teng emas (!=), masalan, bool isNotEqual = (5 != 3); // true
Katta (>), masalan, bool isGreater = (5 > 3); // true
Kichik (<), masalan, bool isLesser = (3 < 5); // true
Katta yoki teng (>=), masalan, bool isGEq = (5 >= 5); // true
Kichik yoki teng (<=), masalan, bool isLEq = (3 <= 5); // true
O'zlashtirish operatorlari. O'zlashtirish operatorlari qiymatlarni
o'zgaruvchilarga o'zlashtirish uchun ishlatiladi.
Oddiy o'zlashtirish (=), masalan, int son = 5;
Qo'shish va o'zlashtirish (+=), masalan, int number = 5; son += 3; //
Natija: 8
Ayirish va o'zlashtirish (-=), masalan, int son = 5; son -= 3; // Natija: 2
Ko'paytirish va o'zlashtirish (*=), masalan, int son = 5; son *= 3; // Natija:
15
Bo'lish va o'zlashtirish (/=), masalan, int son = 10; son /= 2; // Natija: 5
17
Qoldiq va o'zlashtirish (%=), masalan, int son = 10; son %= 3; // Natija: 1
Ifodalar. C# da ifodalar arifmetik yoki mantiqiy qiymatlar hosil qilish
uchun ishlatiladi. Ifodalar operatorlar va operandlardan tashkil topgan bo'lib,
natijada biror qiymat qaytaradi.
Arifmetik ifoda, masalan, int result = (5 + 3) * 2; // Natija: 16
Mantiqiy ifoda, masalan, bool ok = (5 > 3) && (10 < 20); // Natija: true
C# dasturlash tilining sintaksisi, ma'lumot turlari, o'zgaruvchilar,
operatorlar
va ifodalari dasturlashning asosiy elementlarini tashkil qiladi. Bu elementlarni
chuqur tushunish dasturchilarga samarali va yuqori sifatli dasturlar yaratishda
yordam beradi. C# ning intuitiv sintaksisi va kuchli imkoniyatlari dasturchilar
uchun keng ko'lamli dasturlar yaratish imkonini beradi
foreach sikli. foreach sikli bir qator ro'yxatdagi har bir element uchun
ishga tushadi.
int[] numbers = {1, 2, 3, 4, 5};
foreach (int number in numbers)
{
Console.WriteLine(number);
}
21
platformadir [9-11]. Bu platforma dasturlash tilini (masalan, C#, Visual Basic, F#)
va dasturlash vositalarini (kompyulyatorlar, kutubxonalardan foydalanish, deplov
qilish vositalari) o'z ichiga oladi.
.NET platformasi asosan Windows operatsion tizimida ishlatiladi, lekin
boshqa operatsion tizimlar (masalan, Linux va macOS) uchun ham to'liq yoki
qisman qo'llaniladi. Bu, platformaning muhim xususiyatlaridan biri hisoblanadi.
Bu platforma dasturlarni birlashtirish va birlashtirilgan ilovalar yaratish
imkonini beradi. Birlashtirilgan ilovalar, .NET platformasida ishga tushirilgan
dasturlar va kutubxonalardan tashkil topadi. Birlashtirilgan ilovada, ilovaning
barcha komponentlari (masalan, DLL fayllar) birlashtirilgan bino (executable)
faylga o'zlashtiriladi va shuningdek, kerakli .NET Framework va boshqa muhit
bilan birgalikda ijro etishi uchun ilovaning menejerdan yordam olishi mumkin [9-
11].
.NET platformasi yuqori darajadagi abstraksiyalash, dasturlashdan
qisqacha vaqt o'tkazish, iste'molchilar interfeyslarini taminlash va boshqa ko'p
qismlarni o'z ichiga oladi. Bu platforma orqali, bog'liq ilovalarni yaratish,
xizmatlarni boshqarish, ma'lumotlarni saqlash va ishlatish, foydalanuvchilar bilan
tashkilotlar o'rtasida bog'lanishni tuzish va internet ilovalarini ishga tushirish
mumkin [9-11].
.NET platformasining asosiy qismi, Common Language Runtime (CLR)
deb nomlanadi. CLR dasturlarni bajarish, koddan bo'lib yuritish, xotiraga kirish va
chiqish, hafizani boshqarish va avtomatik ravishda yig'ilish, muhokama va xatolar
bilan ishlashni yengillashtiradi.
Shuningdek, .NET platformasining kutubxonalari (Framework Class
Library) keng imkoniyatlarni taqdim etadi. Bu kutubxona o'z ichiga turli tarkibiy
qismlarni (masalan, grafik, tarmoq, kriptografiya, ma'lumotlar ombori) oladi va
ularga erishish imkoniyatini beradi.
Bu platforma yordamida dasturchilar, dasturlarni tezkor, xavfsiz va
ishontirishga qulay usullarda yaratish imkoniyatiga ega.
22
C# tilida desktop ilovalar yaratish. C# tilida desktop ilovalar yaratish
juda qulay bo'ladi. Desktop ilovalar, Windows operatsion tizimida ishlaydigan stol
dasturlari hisoblanadi. Bu turlar misol uchun ofis ilovalari, muhasebe dasturlari,
redaktorlar, grafik dizayn dasturlari va boshqalarini o'z ichiga oladi [9-11].
C# tilida desktop ilovalarni yaratish uchun Visual Studio muharriri keng
tarqalgan bo'lib, Microsoft tomonidan taqdim etiladi. Visual Studio, C# dasturlash
uchun to'liq qo'llanmalar va vositalarni o'z ichiga oladi va ilovalarni yaratish, kodni
tahlil qilish, ishga tushirish va boshqarishni osonlashtiradi.
C# tilida desktop ilovani yaratish jarayoni quyidagilar o'rniga keladi [9-
11]:
Proyektni yaratish: Visual Studio orqali yangi C# proyekti yaratish
imkoniyatiga ega bo'lasiz. Bu proyekt dastur uchun muhitni tuzadi va loyihada
ishlatiladigan fayllarni o'z ichiga oladi.
Dizayn asosida interfeysni yaratish: Desktop ilovalarning vizual qismini
tuzish uchun Windows Forms yoki WPF (Windows Presentation Foundation)
texnologiyalaridan foydalanishingiz mumkin. Bu texnologiyalar orqali ilova
oynasini va ularga bog'liq tizim elementlarini (tugmalar, tekst maydonchalari,
ro'yxatlar, jadvallar va hokazo) qo'shish va moslashtirish imkoniyatiga egasiz.
Kodni yozish: C# tilida ilova asosiy funksiyalarini, yordamchilarini va
interfeysni boshqarish uchun kod yozishiz mumkin. C# tilining
ob'yektoriyentirovaniy qobiliyatlaridan foydalanib, obyektlar yaratish,
xususiyatlarga murojaat qilish, metodlar yozish, vazifalarni bajarish va
boshqalarini amalga oshirishingiz mumkin.
Ilovani test qilish: Visual Studio o'z ichida birlashtirilgan imkoniyatlarga
ega bo'lib, ilovani test qilishni osonlashtiradi. Bu uni ilovaning xatolarini aniqlash
va unga to'g'ri javobini tekshirish imkonini beradi.
Ilovani kompilyatsiya qilish va ishga tushirish: C# kodini kompilyatsiya
qilib, .NET Framework orqali bajarilishi uchun ilova bino faylini generatsiya
23
qilishingiz mumkin. Ushbu bino faylini ishga tushirish orqali ilovangizni
o'rnatishingiz va ishlatishingiz mumkin.
C# tilida desktop ilovalar yaratish, bog'liq dasturlashning har qanday
yo'nalishi uchun muhim va maqbul bo'lib turadi. Visual Studio muharriri,
dasturchilarga qulaylik va ta'minot taqdim etadi, shuningdek, C# tilining og'irlik va
to'liq xususiyatlaridan foydalanish imkonini beradi.
C# dasturlash tilida socketlar. Tarmoq kommunikatsiyasi uchun asosiy
vositalardan biridir. Socketlar, tarmoq orqali ma'lumot almashish va jo'natish
uchun foydalaniladigan bir interfeysni taqdim etadi. Bu, dasturchilarga tarmoq
protokollarini (masalan, TCP/IP va UDP) asosida kommunikatsiya o'rnatish
imkonini beradi.
C# tilida socketlar bilan ishlash quyidagi jarayonlarni o'z ichiga oladi [9-
11]:
Socket yaratish: C# tilida System.Net.Sockets.Socket sinfi orqali socket
yaratish mumkin. Socket yaratish uchun dasturchi, tarmoq protokollashtirish, IP
manzil va portni aniqlab beradi.
Tarmoqqa ulanish: Yaratilgan socketni tarmoqqa ulash uchun Connect
yoki Bind metodlaridan foydalanish mumkin. Connect metodi serverga ulanishni
boshlash va Bind metodi esa server socketni manzil va portga bog'lash uchun
ishlatiladi.
Ma'lumot almashish va jo'natish: Tarmoqdagi ma'lumotlarni o'qish va
yozish uchun Send va Receive metodlaridan foydalanish mumkin. Send metodi
orqali ma'lumotni tarmoqqa jo'natish, Receive metodi esa tarmoqdan ma'lumot
o'qish imkonini beradi.
Tarmoqni yopish: Tarmoq bilan ishlayotgan socketni yopish uchun Close
yoki Shutdown metodlaridan foydalanish mumkin. Close metodi socketni to'liq
yopadi, Shutdown metodi esa bir tomonlama yopishni amalga oshiradi.
Socketlar C# tilida tarmoq kommunikatsiyasini o'rganish, server va klient
ilovalarni yaratish, ma'lumot almashish va jo'natish, amalga oshirilgan
24
ma'lumotlarga qarab amalni davom ettirish va boshqalar kabi turli tarmoq
vositalarini tahlil qilish uchun keng qo'llaniladi.
Socketlar C# dasturlashida umumiy tarmoq kommunikatsiyasi uchun
asosiy
usuldir, lekin uni yordamida Web socketlar, TCP/IP va UDP protokollaridan
foydalanish, tarmoq server va klientlarni yaratish va ularga bog'lanish, ma'lumot
almashish va jo'natish va turli tarmoq operatsiyalarini amalga oshirish mumkin.
25
CLR (Common Language Runtime): .NET Framework dasturlarini
bajarish uchun muhim modul. Dastur CIL (Common Intermediate Language) ga
o'giriladi va uni maqsadga muvofiq amalga oshiradi.
BCL (Base Class Library): Asosiy sinflar va interfeyslar to'plami, konsol
dasturlaridan boshlab grafik interfeyslarga qadar ko'p funksiyalarni o'z ichiga
oladi.
ASP.NET: Veb dasturlarini yaratish va ishga tushirishda yordam
beruvchi platforma.
ADO.NET: Ma'lumotlar bazalariga ulanish va ma'lumotlar bilan ishlash
uchun modular.
Versiyalar. .NET Framework bugungi kunda matbuot qilingan
versiyasi .NET Framework 4.8 hisoblanadi, ammo Microsoft yangi
proyektlarga .NET Core va undan so'ng .NET 5 ni tavsiya qiladi. .NET Core,
platformani Windows, macOS va Linuxda ishlatish imkoniyatini berdi va kross-
platformaviylikni oshiradi. .NET 5 esa .NET Core va .NET Frameworkning yuqori
versiyalarini birlashtirib, uni yanada samarali va boshqa platformalarga
kengaytirilgan shaklidagi .NET 6 ga o'tkazdi.
.NET Framework haqida qo'shimcha ma'lumotlar. Quyidagi qo'shimcha
ma'lumotlar uning asosiy xususiyatlarini kengaytirib beradi:
Dasturlash Tillari. .NET Framework dasturlash uchun bir qator tillarni
qo'llab-quvvatlaydi, shu jumladan C#, Visual Basic va F#. Ular o'zaro ta'sir-chan
bo'lib, dasturchilarning tanloviga qarab dasturlarni yaratishga imkon beradi.
Boshqa Komponentlar. .NET Framework BCL (Base Class Library) va
CLR (Common Language Runtime) kabi boshqa komponentlarga ega. BCL,
umumiy maqsadli sinflar va funksiyalar to'plamini o'z ichiga oladi, bu esa oddiy
amallarni bajarishda va xususiyatlarini kengaytirishda yordam beradi. CLR esa
dasturlarni ijro etish va boshqa amallarni bajarish uchun zarur qo'llab-quvvatni
ta'minlaydi.
26
Dasturlash Muhitlari. .NET Framework dasturlarni yaratish uchun
muhim muhitlarni taqdim etadi, shu jumladan Visual Studio IDE (Integrated Deve-
lopment Environment). Visual Studio dasturchilarga kodni yozish, boshqa
qurilmalarga dastur o'rnatish, tekshirish va ishga tushirishda yordam beradi.
Versiyalar va Kuzatish. .NET Frameworkning o'zida bir nechta
versiyalar mavjud bo'lib, har biri o'zining qo'shimcha xususiyatlarga ega.
Microsoftning veb saytlari orqali dasturlash platformasining so'nggi
yangilanishlarini va yangi versiyalarni kuzatish mumkin.
Tayyor Dasturlar va Kutubxonalar. .NET Framework dasturchilar uchun
o'zining dasturlarini yaratishda yordam beradi, shuningdek, ko'plab kutubxonalarni
taqdim etadi, masalan, ma'lumotlar bazalariga ulanish, grafik interfeyslar yaratish,
veb ilovalarni ishlab chiqish va h.k.
Kuzatish va Qo'llab-quvvat. .NET Framework o'zida kengaytirilgan
kuzatish vositalarini taqdim etadi, shu jumladan, kodni tekshirish, qurilma
to'plamlarini yaratish va ishlab chiqishning qulayliklari bilan ta'minlash.
28
2.2-rasm. .exe faylini ochish.
4-qadam. O'rnatish tugallang. Visual Studio dastlabki fayllarni yuklab
olishni boshlaydi (2.4-rasm). Yuklab olish tezligi internetga ulanishingizga qarab
farq qiladi.
5-qadam. Dasturiy ta'minot versiyasini tanlang. Keyingi ekranda o'rnatish
tugmasini bosing (2.5-rasm).
29
2.3-rasm. Visual Studio o'rnatishni boshlash.
30
2.6-rasm. Ish stoli versiyasida “.Net ish stolini ishlab chiqish” ni tanlang
va o'rnatish.
7-qadam. Fayllarni yuklab olishni kuting. Visual Studio 6-bosqichdagi
tanlov asosida tegishli fayllarni yuklab oladi (2.7-rasm).
31
8-qadam. Kompyuteringizni qayta yoqing. Yuklab olish tugallangandan
so'ng, Visual Studio sozlamalarini bajarish uchun kompyuterni qayta ishga
tushirish so'raladi (2.8-rasm).
32
2.9-rasm. Visual Studio IDE-ni ochish.
34
III BOB. DESKTOP ILOVA LOYIHASI
Biz dаsturni Visuаl Studio integrаtsion muhitidа tuzаmiz yа’ni uning eng
oxirgi versiyаsi Visuаl Studio 2022 dаn foydаlаndik [6-7].
Visuаl studio muhitidа dаstur yаrаtishni boshlаymiz (3.1-rasm):
35
Kerаkli frаmeworkni tаnlаymiz (3.2-rasm):
37
Bo’sh oynаning ko’rinishi, ungа kerаkli elementlаrni qo’shаmiz (3.4-rаsm):
40
3.9-rasm. Bosh sahifa.
Bunda biz kerakli mavzuni tanlab mavzuga oid ma’ruza matnlarini
ko’rishimiz mumkin (3.10-rasm):
3.12-rasm.Testlar
42
HAQIDA bandi orqali dastur versiyasi, dasturchi haqida ma’lumot va
bog’lanish uchun kontaktlarni toppish mumkin (3.13-rasm).
3.13-rasm. Haqida.
Vazifalar dispecheri 3.14-rasmda keltirilgan.
3.14-rasm.Vazifalar dispecheri.
Vazifalar dispecherida ko’rinib turibdiki, yaratilgan dastur komyuter
43
xotirasidan juda kam joy egallagan va tezkor xotiraga deyarli murojat qilmaydi. Bu
esa dusturning kompyuterga yuklanma bermayotganini ko’rishimiz mumkin (3.15-
rasm).
3.15-rasm. Xususiyatlar.
Dasturning umumiy hajmi qismi 4.18 Mb ni tashkil qiladi.
44
Ilovani o'rnatish. O'rnatish faylini ishga tushirish, yuklab olingan faylni
ishga tushiring va ekrandagi ko'rsatmalarga amal qilib ilovani o'rnating. O'rnatish
tugagandan so'ng, ish stolidagi yoki dasturlar menyusidagi ilova belgisiga ikki
marta bosib ilovani ishga tushiring. Ilovani ishga tushirgandan so'ng, bosh sahifa
ochiladi. Bu sahifada siz quyidagi asosiy elementlarni ko'rasiz:
- Javob variantlari: har bir savol uchun bir nechta javob variantlari;
- Email: saidakbarnarzullayev@mail.ru;
- Telefon: +998883948797.
46
kerak (qoida tariqasida, barcha zamonaviy monitorlarda bunday imkoniyat
mavjud).
Ish joyiga qo'yiladigan talablar. Endi shaxsiy kompyuterlar bilan
jihozlangan ish stantsiyalariga qo'yiladigan asosiy talablar haqida gapiraylik. Biz
ish beruvchi mustaqil nazorat qila olmaydigan bunday sharoitlar haqida
to'xtalmaymiz (masalan, elektromagnit maydonlar darajasi, shovqin, tebranish va
boshqalar). Bunday ko'rsatkichlar ustidan instrumental nazorat Davlat sanitariya-
epidemiologiya nazorati organlari yoki akkreditatsiyalangan sinov laboratoriyalari
(markazlari) tomonidan amalga oshiriladi [12].
Turar-joy binolariga qo'yiladigan talablar. Katod nurli monitorli
kompyuter foydalanuvchisiga va yordamchi uskunalar (printer, skaner va
boshqalar) xonaning maydoni kamida 6 kvadrat metr bo'lishi kerak. Yordamchi
qurilmalar maydoni 4,5 kvadrat metrdan kam bo'lishi mumkin [12].
Shaxsiy kompyuter foydalanuvchilari ishlaydigan joylarda, devorlar va
shiftlarni aks ettiruvchi nurda yarqirash, porlash va noqulaylikni bartaraf etish
uchun diffuz aks etuvchi materiallardan foydalanish kerak.
Xavfsiz muhit yaratish uchun kompyuterda ishlayotganda, bino jihozlangan
bo'lishi kerak. Quvvat kabellari, yuqori kuchlanishli transformatorlar, texnologik
uskunalarni kompyuteringizni yaqin joylashtirmang, bu sizning
kompyuteringizning ishlashiga xalaqit berishi mumkin.
Ish joylarini yoritish talablari. Kompyuter bilan jihozlangan ish joylari
joylashgan xona etarlicha yaxshi yoritilgan bo'lishi kerak: ya'ni tabiiy va sun'iy
yoritish kerak. Deraza teshiklari shimoliy va shimoli -sharqqa qaragan bo'lishi
kerak. Bunday holda, derazalar tartibga solinadigan qurilmalar (pardalar, pardalar
va boshqalar) bilan jihozlangan bo'lishi kerak [12].
Kompyuterli xonalarda sun'iy yoritish bir xil bo'lishi kerak. Doimiy ish
oqimi bo'lgan ish joylarida kombinatsiyalangan yoritish tizimi ishlatiladi: ya'ni
umumiy yoritishga chiroq qo'shiladi. Mahalliy yoritish kamida 40 ° himoya
burchagi bo'lgan shaffof bo'lmagan reflektorga ega bo'lishi kerak.
47
Ish stoli shunday o'rnatiladiki, monitor yon tomoni yorug'lik teshiklariga
to'g'ri keladi. Shunda tabiiy yorug'lik chapdan tushadi.
Yorug'lik ekran yuzasida yarqiramasligi kerak va 300 lyuksdan oshmasligi
kerak va ishchi hujjat maydonidagi stol yuzasining yoritilishi 300 - 500 lyuks
bo'lishi kerak. Albatta, bu qiymatni o'zingiz o'lchash muammoli. Ammo, agar biz
odatdagi vattni hisobga olsak, 1 kvadrat metrga o'rtacha 18-25 vatt kerak bo'ladi.
Sun'iy yoritish uchun lyuminestsent lampalar LB yoki ixcham
lyuminestsent lampalar(CFL)dan foydalanish tavsiya etiladi. Metall halidli
lampalardan foydalanishga ruxsat beriladi. Mahalliy yoritish moslamalarida oddiy
lampalar, shu jumladan halogen lampalardan foydalanish mumkin.
Kompyuter foydalanuvchilari uchun ish joylarini tashkil qilishning
umumiy talablari. Ish joylarini kompyuterlar joylashtirganda, monitorli ish stollari
orasidagi masofa (bitta monitorning orqa yuzasi va boshqa monitorning ekrani
yo'nalishi bo'yicha) kamida 2,0 m bo'lishi kerak va monitorlarning yon yuzalari
orasidagi masofa 1,2 m bo'lishi kerak [12].
Kompyuter bilan jihozlangan ish joylari, ijodiy ishlarni bajarayotganda,
balandligi 1,5 - 2,0 m bo'lgan bo'linmalar bilan izolyatsiya qilinishi kerak.
Monitor ekrani foydalanuvchining ko'zidan 600 - 700 mm masofada
joylashgan bo'lishi kerak, lekin 500 mm dan yaqin emas.
Katta yoshdagi foydalanuvchilar uchun stolning ishchi yuzasi balandligi
680 - 800 mm oralig'ida sozlanishi kerak. Kompyuter stolining ishchi yuzasining
modulli o'lchamlarini hisobga olish kerak: kengligi - 800, 1000, 1200, 1400 mm va
chuqurligi - 800, 1000 mm. Ish stolining balandligi kamida 600 mm, kengligi
kamida 500 mm, tizzalarida chuqurligi kamida 450 mm va cho'zilgan oyoqlarida
kamida 650 mm bo'lishi kerak [12].
Klaviatura stol yuzasida, foydalanuvchiga qaragan chetidan 100 - 300 mm
masofada yoki stol usti bilan ajratilgan maxsus yuzada joylashgan bo'lishi kerak.
48
XULOSA
"C# dasturlash tilini o‘rgatuvchi desktop ilova" dasturini ishlab chiqish
davomida quyidagi bilim va ko‘nikmalarga ega bo‘ldim:
- C# dasturlash tilining asosiy tamoyillari va sintaksisini chuqur
o‘rgandim;
- .NET Framework haqida keng qamrovli bilimlarga ega bo‘ldim va undan
samarali foydalanishni o‘rgandim;
- Visual Studio dasturlash muhiti bilan ishlashda amaliy tajriba orttirdim;
- Dasturiy loyihani rejalashtirish, loyihaning konsepsiyasini yaratish va
talablar tahlilini o‘tkazishni amalda qo‘lladim;
- Foydalanuvchi interfeysini (UI) va foydalanuvchi tajribasini (UX) dizayn
qilishda ko‘nikma orttirdim.
Ushbu bitiruv malakaviy ishida C# dasturlash tilini o‘rgatuvchi desktop
ilova yaratildi. Ushbu ilova foydalanuvchilarga dasturlashni o‘rganish jarayonini
qulaylashtirish va samaradorligini oshirish maqsadida quyidagi afzalliklarni
taqdim etadi:
- Foydalanuvchilarga qulay va intuitiv interfeys;
- Nazariy bilimlarni mustahkamlash uchun interaktiv mashg‘ulotlar;
- Amaliy mashqlar va kod yozish imkoniyatlari;
Bu dasturiy ilova O‘zbekistonda dasturlashni o‘rganish istagida bo‘lgan
yoshlar va mutaxassislar uchun muhim ahamiyatga ega bo‘lib, milliy dasturiy
ta’minot bozorida katta ahamiyatga ega bo‘ladi. Ilova o‘zbek tilida taqdim etilgani
sababli, ona tilida ta’lim olish imkoniyatini yaratadi va bu o‘quvchilar uchun
qo‘shimcha qulaylik va samaradorlikni oshiradi.
Ilova yaratish jarayonida rahbarim bilan birgalikda ishladim va ilmiy
yondashuvni qo‘llagan holda dasturiy ta’minotni muvaffaqiyatli ishlab chiqdik.
Kelajakda ushbu ilovani yanada rivojlantirish va funksional imkoniyatlarini
kengaytirish maqsadlarim bor. Shu orqali, O‘zbekistonda IT sohasida dasturlashni
49
o‘rganishni keng targ‘ib qilish va milliy dasturiy mahsulotlarni rivojlantirishga
hissa qo‘shishni niyat qilaman.
FOYDALANILGAN ADABIYOTLAR
1. Troelsen, A., & Japikse, P. (2017). *Pro C# 7: With .NET and .NET
Core*. Apress.
2. Albahari, J., & Albahari, B. (2015). *C# 6.0 in a Nutshell: The
Definitive Reference*. O'Reilly Media.
3. Freeman, A. (2016). *Pro ASP.NET Core MVC 2*. Apress.
4. Richter, J. (2012). *CLR via C#*. Microsoft Press.
5. Skeet, J. (2019). *C# in Depth*. Manning Publications.
6. Hejlsberg, A., Torgersen, M., Wiltamuth, S., & Golde, P. (2010). *The
C# Programming Language*. Addison-Wesley Professional.
7. Joseph Albahari, Ben Albahari (2021). *C# 9.0 in a Nutshell: The
Definitive Reference*. O'Reilly Media.
8. Nagel, C. (2018). *Professional C# 7 and .NET Core 2.0*. Wrox.
9. Hunter, J., & Stephens, R. (2017). *Visual Studio 2017: An In-Depth
Guide Into the Essentials of Visual Studio from Beginners to Expert*. CreateSpace
Independent Publishing Platform.
10. Messerschmidt, G. (2016). *C# Programming: From Problem Analysis
to Program Design*. Course Technology.
11. Troelsen, A. (2020). *Pro C# 8 with .NET Core 3*. Apress.
12. Sells, C., & Weinhardt, B. (2011). *Programming WPF*. O'Reilly
Media.
13. Freeman, A. (2019). *Pro .NET Core 3*. Apress.
14. Nixon, R. (2021). *Learning C# by Developing Games with Unity
2021*. Packt Publishing.
15. McCarthy, P. (2017). *C# for Beginners: Learn the Basics Step by
Step*. CreateSpace Independent Publishing Platform.
50
16. Jansen, M. (2018). *C# Programming for Beginners: An Introduction
and Step-by-Step Guide to Programming in C#*. CreateSpace Independent
Publishing Platform.
ILOVALAR
1-ilova. Dastur kodi
Main.cs
using System;
using System.IO;
using System.Windows.Forms;
namespace C__o_rganamiz
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
try
{
string folderPath = "data";
if (Directory.Exists(folderPath))
{
string[] directories =
Directory.GetDirectories(folderPath);
if (result == DialogResult.Yes)
{
Application.Exit();
}
}
private void about_button_Click(object sender, EventArgs e)
{
MessageBox.Show("ABOUT");
}
if (File.Exists(filePath))
{
using (StreamReader reader = new
StreamReader(filePath))
{
text = reader.ReadToEnd();
}
52
LectureForm lectureForm =
new LectureForm(selectedItemText, text);
lectureForm.ShowDialog();
}
else
{
MessageBox.Show("Error !", "File Not Found",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
catch (Exception ex)
{
MessageBox.Show("An error occurred: " + ex.Message,
"Error",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
}
Main.Designer.cs
namespace C__o_rganamiz
{
partial class Main
{
private System.ComponentModel.IContainer components = null;
53
panel1 = new Panel();
listBox1 = new ListBox();
panel5 = new Panel();
label1 = new Label();
panel2 = new Panel();
panel4 = new Panel();
about_button = new Button();
exit_button = new Button();
panel3 = new Panel();
label3 = new Label();
logo = new PictureBox();
label2 = new Label();
panel1.SuspendLayout();
panel5.SuspendLayout();
panel2.SuspendLayout();
panel4.SuspendLayout();
panel3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)logo).BeginInit();
SuspendLayout();
//
// panel1
//
panel1.Controls.Add(listBox1);
panel1.Controls.Add(panel5);
panel1.Dock = DockStyle.Left;
panel1.Location = new Point(0, 0);
panel1.Name = "panel1";
panel1.Size = new Size(273, 561);
panel1.TabIndex = 0;
//
// listBox1
//
listBox1.Dock = DockStyle.Fill;
listBox1.Font = new Font("Times New Roman", 15.75F,
FontStyle.Bold, GraphicsUnit.Point, 0);
listBox1.FormattingEnabled = true;
listBox1.ItemHeight = 24;
listBox1.Location = new Point(0, 51);
listBox1.Margin = new Padding(3, 6, 3, 3);
listBox1.Name = "listBox1";
listBox1.Size = new Size(273, 510);
listBox1.TabIndex = 2;
listBox1.DoubleClick += mavzular_DoubleClick;
//
// panel5
//
panel5.BorderStyle = BorderStyle.FixedSingle;
panel5.Controls.Add(label1);
panel5.Dock = DockStyle.Top;
54
panel5.Location = new Point(0, 0);
panel5.Name = "panel5";
panel5.Size = new Size(273, 51);
panel5.TabIndex = 1;
//
// label1
//
label1.AutoSize = true;
label1.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular,
GraphicsUnit.Point, 0);
label1.Location = new Point(76, 8);
label1.Name = "label1";
label1.Size = new Size(109, 25);
label1.TabIndex = 0;
label1.Text = "MAVZULAR";
//
// panel2
//
panel2.Controls.Add(panel4);
panel2.Controls.Add(panel3);
panel2.Dock = DockStyle.Fill;
panel2.Location = new Point(273, 0);
panel2.Name = "panel2";
panel2.Size = new Size(511, 561);
panel2.TabIndex = 1;
//
// panel4
//
panel4.Controls.Add(about_button);
panel4.Controls.Add(exit_button);
panel4.Dock = DockStyle.Bottom;
panel4.Location = new Point(0, 516);
panel4.Name = "panel4";
panel4.Padding = new Padding(4);
panel4.Size = new Size(511, 45);
panel4.TabIndex = 1;
//
// about_button
//
about_button.Dock = DockStyle.Right;
about_button.Location = new Point(341, 4);
about_button.Margin = new Padding(3, 3, 4, 3);
about_button.Name = "about_button";
about_button.Size = new Size(91, 37);
about_button.TabIndex = 1;
about_button.Text = "ℹ️ HAQIDA";
about_button.UseVisualStyleBackColor = true;
about_button.Click += about_button_Click;
//
55
// exit_button
//
exit_button.Dock = DockStyle.Right;
exit_button.Location = new Point(432, 4);
exit_button.Name = "exit_button";
exit_button.Size = new Size(75, 37);
exit_button.TabIndex = 2;
exit_button.Text = "❌CHIQISH";
exit_button.Click += exit_button_Click;
//
// panel3
//
panel3.Controls.Add(label2);
panel3.Controls.Add(label3);
panel3.Controls.Add(logo);
panel3.Dock = DockStyle.Fill;
panel3.Location = new Point(0, 0);
panel3.Name = "panel3";
panel3.Size = new Size(511, 561);
panel3.TabIndex = 0;
//
// label3
//
label3.AutoSize = true;
label3.BackColor = SystemColors.ActiveCaption;
label3.Font = new Font("Segoe UI", 24F, FontStyle.Regular,
GraphicsUnit.Point, 0);
label3.Location = new Point(46, 411);
label3.Name = "label3";
label3.Size = new Size(0, 45);
label3.TabIndex = 2;
label3.Click += label3_Click;
//
// logo
//
logo.Image = (Image)resources.GetObject("logo.Image");
logo.Location = new Point(46, 51);
logo.Name = "logo";
logo.Size = new Size(422, 338);
logo.SizeMode = PictureBoxSizeMode.Zoom;
logo.TabIndex = 1;
logo.TabStop = false;
//
// label2
//
label2.AutoSize = true;
label2.BackColor = SystemColors.Control;
label2.Font = new Font("Segoe UI", 15.75F, FontStyle.Regular,
GraphicsUnit.Point, 0);
56
label2.Location = new Point(46, 411);
label2.Name = "label2";
label2.Size = new Size(421, 30);
label2.TabIndex = 3;
label2.Text = "C# dasturlash tilini o'rgatuvchi desktop
ilova";
//
// Main
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(784, 561);
Controls.Add(panel2);
Controls.Add(panel1);
Name = "Main";
Text = "Bosh sahifa";
Activated += Main_Activated;
panel1.ResumeLayout(false);
panel5.ResumeLayout(false);
panel5.PerformLayout();
panel2.ResumeLayout(false);
panel4.ResumeLayout(false);
panel3.ResumeLayout(false);
panel3.PerformLayout();
((System.ComponentModel.ISupportInitialize)logo).EndInit();
ResumeLayout(false);
}
#endregion
LectureForm.cs
57
using System;
using System.Net.Http;
using System.Windows.Forms;
namespace C__o_rganamiz
{
public partial class LectureForm : Form
{
public LectureForm(string theme, string text)
{
InitializeComponent();
this.Text = theme;
richTextBox1.Text = text;
if (result == DialogResult.Yes)
{
this.Close(); // Close the form if the user chooses 'Yes'
}
}
}
}
Program.cs
namespace C__o_rganamiz
{
internal static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
// To customize application configuration such as set high
DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
58
ApplicationConfiguration.Initialize();
Application.Run(new Main());
}
}
}
Test.Designer.cs
namespace C__o_rganamiz
{
partial class Main
{
private System.ComponentModel.IContainer components = null;
59
panel3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)logo).BeginInit();
SuspendLayout();
//
// panel1
//
panel1.Controls.Add(listBox1);
panel1.Controls.Add(panel5);
panel1.Dock = DockStyle.Left;
panel1.Location = new Point(0, 0);
panel1.Name = "panel1";
panel1.Size = new Size(273, 561);
panel1.TabIndex = 0;
//
// listBox1
//
listBox1.Dock = DockStyle.Fill;
listBox1.Font = new Font("Times New Roman", 15.75F,
FontStyle.Bold, GraphicsUnit.Point, 0);
listBox1.FormattingEnabled = true;
listBox1.ItemHeight = 24;
listBox1.Location = new Point(0, 51);
listBox1.Margin = new Padding(3, 6, 3, 3);
listBox1.Name = "listBox1";
listBox1.Size = new Size(273, 510);
listBox1.TabIndex = 2;
listBox1.DoubleClick += mavzular_DoubleClick;
//
// panel5
//
panel5.BorderStyle = BorderStyle.FixedSingle;
panel5.Controls.Add(label1);
panel5.Dock = DockStyle.Top;
panel5.Location = new Point(0, 0);
panel5.Name = "panel5";
panel5.Size = new Size(273, 51);
panel5.TabIndex = 1;
//
// label1
//
label1.AutoSize = true;
label1.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular,
GraphicsUnit.Point, 0);
label1.Location = new Point(76, 8);
label1.Name = "label1";
label1.Size = new Size(109, 25);
label1.TabIndex = 0;
label1.Text = "MAVZULAR";
//
60
// panel2
//
panel2.Controls.Add(panel4);
panel2.Controls.Add(panel3);
panel2.Dock = DockStyle.Fill;
panel2.Location = new Point(273, 0);
panel2.Name = "panel2";
panel2.Size = new Size(511, 561);
panel2.TabIndex = 1;
//
// panel4
//
panel4.Controls.Add(about_button);
panel4.Controls.Add(exit_button);
panel4.Dock = DockStyle.Bottom;
panel4.Location = new Point(0, 516);
panel4.Name = "panel4";
panel4.Padding = new Padding(4);
panel4.Size = new Size(511, 45);
panel4.TabIndex = 1;
//
// about_button
//
about_button.Dock = DockStyle.Right;
about_button.Location = new Point(341, 4);
about_button.Margin = new Padding(3, 3, 4, 3);
about_button.Name = "about_button";
about_button.Size = new Size(91, 37);
about_button.TabIndex = 1;
about_button.Text = "ℹ️ HAQIDA";
about_button.UseVisualStyleBackColor = true;
about_button.Click += about_button_Click;
//
// exit_button
//
exit_button.Dock = DockStyle.Right;
exit_button.Location = new Point(432, 4);
exit_button.Name = "exit_button";
exit_button.Size = new Size(75, 37);
exit_button.TabIndex = 2;
exit_button.Text = "❌CHIQISH";
exit_button.Click += exit_button_Click;
//
// panel3
//
panel3.Controls.Add(label2);
panel3.Controls.Add(label3);
panel3.Controls.Add(logo);
panel3.Dock = DockStyle.Fill;
61
panel3.Location = new Point(0, 0);
panel3.Name = "panel3";
panel3.Size = new Size(511, 561);
panel3.TabIndex = 0;
//
// label3
//
label3.AutoSize = true;
label3.BackColor = SystemColors.ActiveCaption;
label3.Font = new Font("Segoe UI", 24F, FontStyle.Regular,
GraphicsUnit.Point, 0);
label3.Location = new Point(46, 411);
label3.Name = "label3";
label3.Size = new Size(0, 45);
label3.TabIndex = 2;
label3.Click += label3_Click;
//
// logo
//
logo.Image = (Image)resources.GetObject("logo.Image");
logo.Location = new Point(46, 51);
logo.Name = "logo";
logo.Size = new Size(422, 338);
logo.SizeMode = PictureBoxSizeMode.Zoom;
logo.TabIndex = 1;
logo.TabStop = false;
//
// label2
//
label2.AutoSize = true;
label2.BackColor = SystemColors.Control;
label2.Font = new Font("Segoe UI", 15.75F, FontStyle.Regular,
GraphicsUnit.Point, 0);
label2.Location = new Point(46, 411);
label2.Name = "label2";
label2.Size = new Size(421, 30);
label2.TabIndex = 3;
label2.Text = "C# dasturlash tilini o'rgatuvchi desktop
ilova";
//
// Main
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(784, 561);
Controls.Add(panel2);
Controls.Add(panel1);
Name = "Main";
Text = "Bosh sahifa";
62
Activated += Main_Activated;
panel1.ResumeLayout(false);
panel5.ResumeLayout(false);
panel5.PerformLayout();
panel2.ResumeLayout(false);
panel4.ResumeLayout(false);
panel3.ResumeLayout(false);
panel3.PerformLayout();
((System.ComponentModel.ISupportInitialize)logo).EndInit();
ResumeLayout(false);
}
#endregion
63
2-ilova. Plagiat sertifikati
64
3-ilova. DGU sertifikati
65