“PROGRAMMALASH ASOSLARI” FANIDAN
![“PROGRAMMALASH ASOSLARI” FANIDAN
“SAYOHAT AGENTLIGI”
Mundarija
KIRISH ......................................................................................................................... 2
Visual C + + haqida ...................................................................................................... 3
“Sayohat agentligi” loyihasi ........................................................................................ 8
Xulosa .......................................................................................................................... 38
Foydalanilgan adabiyotlar ......................................................................................... 39](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_1.png)
![KIRISH
Vizual dasturlashni qo’llab-quvvatlaydigan juda ko’plab instumentlar mavjud.
Bular qatoriga Borland Delphi, Borland C++ Builder, Embarcadero RAD Studio,
Visual Studio va boshqalarni keltirib o’tishimiz mumkin. Ulardan qaysi birini tanlash
esa dasturchining o’ziga bog’liq. Lekin shuni unutmaslik kerakki, garchi ulardan
qo’llaniladigan dasturlash tili turlicha bo’lsa-da, ularning barchasining asosida bir xil
uslub yotadi. Biz ushbu kitobda instrument sifatida Microsoftning mahsuloti bo’lmish
Visual Studio integrallashgan muhitini tanladik. Chunki bu instrument so’nggi
yillarda eng ommalashgan muhitlardan biri bo’lib kelmoqda. Biz yaratayotgan
loyihalarimizning asosiy qismi Windows muhiti uchun ishlab chiqarilishini inobatga
olsak, aynan ushbu muhitni tanlaganimiz bejiz emas. Chunki ushbu integrallashgan
muhit Windows OS ning juda ko’p funksiyalarini o’z ichiga jamlagan bo’lib, loyiha
tuzayotganda ulardan keng miqyosida foydalanamiz. Uning tarkibida bir qancha
kutubxonalarda bu funksiyalar joylashib, ularga murojaat etish orqali, bir qancha
amallarni osongina hal etishimiz mumkin Ushbu kitobda Visual Studio 2013
integrallashgan muhitida Formalar yordamida ilovalar yaratish haqida so’z yuritiladi.
Windows Forms texnologiyasi komponentalarga asoslanadi. Bu komponentalarni
birlashtirib, turli xil ilovalarni yaratishni ko’rib o’tamiz.
Komponenta - bu visual dasturlashning asosiy tushunchalaridan biridir. Ta’bir
joiz bo’lsa, komponenta – “g’isht” bo’lsa, ularni birlashtirib turuvchi ilova esa
“uy”dir. Biz bu g’ishtlarni birlashtirib, uy, hattoki, uylar yasashimiz mumkin. Uyimiz
qanchalik sifatli chiqishini istasak, g’ishtimizni sifatli va mustahkam qilib terishimiz
kerak. Poydevor qanchalik mustahkam bo’lsa, uy ham shuncha baquvvat va ko’rkam
bo’ladi. Inson va ma’lumotlarga ishlov berish o’rtasidagi aloqa kompyuter dasturlari
orqali boshqariladi. Markaziy protsessor (CRI) belgilari to’plami ikkita belgigacha
“0” va “1” yoki “yoqilgan” va “o’chirilgan” bilan chegeralangan.](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_2.png)
![Visual C + + haqida
Visual studio Microsoft uchun mo’ljallangan dasturlash muhiti hisoblanadi. U
console (boshqaruv paneli) va grafik interfeysli dasturlar, shu bilan birga Windows
tarkibidagi dasturlar, veb-saytlar, veb dasturlar, va veb xizmatlarni tarkibidagi hamda
boshqa kodlar yordamida Microsoft Windows, Windows Phone, Windows CE, .Net
Framework, .Net Compact Framework va Microsoft Silverlight kabi dasturlar
muhitlarini daturashda ishlatialdi. Visual Studio muhitidada dastrur tuzish uchun bir
qancha elementlar: menyular paneli, standart uskunalar paneli, ochiq yoki ekranning
o’ng, chap, yuqori, yoki pastki qismida avtomatik yashiringan turli xildagi
qo’shimcha uskunalar joylashgan. Visual Studioda Console Interfeys ilovada
ishlashni hosil qilish uchun quyidagi amallarni bajarish lozim. Dastlab asosiy oynadan
“New Project” qismi orqali, “File” tugmasi orqali, “New” tugmasini tanlab, “Project”
qismini tanlanadi, yoki “Ctrl+Shift+A” tugmalarini bosishimiz mumkin.
Visual C++ da dasturlar ilovalar deb nomlanadi. Ilovalar maxsus konstruksiya
ko’rinishidagi muhitda – foydalanuvchi uchun bir qancha fayllar majmui
ko’rinishidagi loyihada yaratiladi. C tilidagi dastur bu – belgilangan talablarga javob
beruvchi, maxsus dasturlash tuzilishiga ega funksiyalar majmuidir. Ilova – bu ichida
ilova algoritmini amalga oshiruvchi operatorlar joylashtirilgan asosiy funksiyadir.
Operatorlar ichida shundaylari ham borki, ular algoritmni amalga oshishida talab
qilinadigan boshqa funksiyalarni chaqirishga xizmat qiladi. Ixtiyoriy dasturni ishga
tushirish, dasturning qolgan barcha qismini o’zida jamlagan asosiy funksiyani ishga
tushirishdan boshlanadi. Funksiyaning bir qismi dasturchi tomonidan, qolgan qismi –
kutubxona funksiyalari – foydalanuvchiga dasturiy muhit tomonidan taqdim qilinadi
va dasturni ishlab chiqish jarayonida foydalaniladi. Yaratiluvchi ilovalarni 2 ta katta
kategoriyaga ajratish mumkin. Ular ishchi stol ilovalari va Windows 8 ilovalaridir.
Ishchi stol ilovalari bu biz bilgan va sevadigan ilovalardir. Ular menyu paneli,
instrumentlar paneli va ko’pincha ilova oynasining pastki qismida joylashgan holatlar](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_3.png)
![satriga ega bo’ladilar. Biz ushbu fanda ishchi stol ilovalarini yaratishni maqsad qilib
qo’ydik. Windows 8 ilovalari ishchi stol ilovalaridan ancha farqli. Ularda
foydalanuvchi interfeysi mavjud bo’lib u ishchi stol ilovalaridan butunlay farq qiladi.
Foydalanuvchining to’g’ridan to’g’ri ma’lumotlar bilan bog’lanishi diqqat
markazidadir. 1.2. Microsoft Visual C++ da konsol ilova dasturlar yaratish C/C++ ni
o’rganishda biz maxsus ilovalar ko’rinishidan foydalanamiz – shablonlarni tayyorlash
muhitida oldindan tayyorlangan konsol ilovalar asosida shakllantiriladi. Konsol
ilovalar – bu grafik interfeyssiz ilovalar bo’lib, ular foydalanuvchi bilan maxsus
buyruqlar satri orqali o’zaro aloqada bo’ladi yoki asosiy menyu muhitidagi maxsus
buyruqlar bilan ishga tushiriladi. Bunday ilovalar File/New Project buyrug’i
bajarilishidan so’ng ochiluvchi dialog oynasiga ega bo’lgan maxsus shablonlar
yordamida yaratiladi. Konsol ilovalar shabloni yaratiluvchi ilovaga barcha zarur
elementlarni qo’shadi, shundan so’ng dasturchi bu shablonga o’zining C/C++ tilidagi
operatorlarini qo’shadi. Keyin ilova avtonom ishga tushuvchi fayl sifatida
kompilyatsiyalanadi va bajarish uchun ishga tushirilishi mumkin. Foydalanuvchi bilan
muloqot ilova ishga tushirilgandan so’ng ochiluvchi maxsus konsol oynasi orqali
amalga oshiriladi (shu oynada dastur habarlari tasvirlanadi, u orqali hisoblash uchun
ma’lumotlar kiritiladi va uning o’ziga hisoblangan natijalar chop qilinadi).
Kompilyatsiya va proyektni bitta joyga jamlash asosiy menyuning Build buyrug’I
orqali amalga oshiriladi. Kompilyatsiya va proyektni bir joyga yig’ishdan so’ng uni
bajarish uchun ishga tushirish mumkin. Bajarilish uchun ishga tushurish asosiy
menyuning Debbug buyrug’i yordamida amalga oshiriladi. Konsol ilovalar yaratish
uchun quyidagi qadamlarni bajarish zarur: 1. Visual C++ ni ishga tushirish. 2. Asosiy
menyuning File/New/Project buyrug’ini bajarish. 3.1 – rasmdagi dialog oynasi hosil
bo’ladi. Unda quyidagilarni ketma – ket bajaring: Win32 bandini tanlang; Win32
Console Application qismini tanlang; Ilovaning saqlanish joyini ko’rsatish uchun
“Browse…” tugmasidan foydalaning; Name maydoniga hosil qilinuvchi ilova nomini
kiriting; OK tugmasini bosing.](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_4.png)
![Inson harflardan, raqamlardan, tasvirlardan foydalanadi. Inson va mashina
o’rtasidagi interfeysni (muloqotni), (kodlashtirish)ni dasturiy ta’minot tartibga solib
turadi. Bu vazifadan tashqari kompyuter dasturi operatsion tizimi ko’rinishida
kompyuterni butun apparat qismini boshqarilishini tartibga soladi. Shunday qilib
dasturiy ta’minot ikki qismga bo’linadi:
tizimli dastur ko’rinishidagi apparat qismining boshqarilishi
muammolarning yechilishiga qaratilgan amaliy dasturlar
Bu bilan bir qatorda tizimli va amaliy dasturlar ishlab chiqish va kompyuter
xizmatini yengillashtirish uchun bir qator dasturlash tillari va qo’llash servisi mavjud.
Tizimli dastur shu bilan birga, kompyuter va unga tegishli periferiyalardan
foydalanishga imkon beradi. Tizimli dasturlarga foydalanuvchining ma’lumotlarga
ishlov berish tizimining ishlash tamoyillari bo’yicha keyingi texnik belgilarga ega
bo’lishini talab qilmasdan, masalani kiritish va chiqarish boshqaruvini tayyorlaydigan
operatsion tizimlarini o’z ichiga oladi. Xizmat uchun belgilangan va yordamchi](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_5.png)
![dasturlar ham tizimli dasturlarga oid bo’lib, masalan formatlash va nusxalashda
axborot tashuvchilar bilan muomala qilish singari operatsion tizimlar bilan
munosabatni yengillashtiradi. Windows XP, Windows 2003 mijozserver arxitekturali
Novell, UNIX va LINUXning har xil variantlari mashhur operatsiya tizimlaridandir.
Professional va kundalik masalalar qo’yilishini hal qilish uchun iqtisodiy, texnik va
ilmiy sohadan amaliy dasturlar foydalaniladi yoki ishlab chiqiladi. Foydalanuvchilar
va qo’llanish miqdoriga ko’ra soni va ushbu amaliy dasturlarni yana bo’laklarga
bo’lib chiqish mumkin. Standart dasturiy ta’minot quyidagicha ko’rinishda deyarli har
qanday masala qo’yilishi uchun amal qiladi, masalan:
Matnga ishlov berish (masalan, MS Word)
Elektron jadvallar bilan ishlash (masalan, MS Excel)
Ma’lumotlar bazalari (masalan, MS Access, Oracle)
Grafiklar (masalan, Visio, CorelDraw)
Nashriy tizimlar (Desktop Publishing) (mas. Adobe Pagemaker, QuarkXPress)
Loyihalash (masalan, MS Project)
Tipi – Integrallash ishlab chiqaruvchi muhit
Ishlab chiqaruvchi – Microsoft
Dasturlash tillari – C++ va C#
Operatsion tizim – Windows
Interfeys tili – xitoy, ingliz, fransuz, portugal, nemis, italyan, yapon, koreys,
ispan , rus tillari
Oxirgi versiya – Visual Studio 2015 (20-iyul 2015-yil)
Litsenziya – foydalanuvchi bilan kelishuvi asosida
Sayt – www.visualstudio.com
Komponentlari. Visual Studio quyidagi bitta yoki bir qancha komponentlarni
qo’llaydi:](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_6.png)
![ Visual Basic .NET – u Visual Basic asosida paydo bo’lgan
Visual C++
Visual C#
Visual F# (Bu Visual Studio 2010 dan boshlab ishlatiladi)
Boshqa variantlarni quyidagilarni yoqish orqali yetkazib berish mumkin: Microsoft
SQL Server yoki Microsoft SQL Server Express
Visual Studioning oldingi tarkibiga ham mahsulotlar kiritilgan:
Visual InterDev
Visual J++
Visual J#
Visual FoxPro
Visual Source Safe – fayl-server tizimini boshqarish versiyasi
Versiyalari. Visual Studio 4.0 ning dastlabki versiyasida Visual Basic 3, Visual C+
+, Visual FoxPro va Source Safe ishlab chiqaruvchi muhitlarini mustaqil paket
sifatida yetkazib berilgan. Visual Studio 97. Visual Studio 97 – Visual Studioning
birinchi ishlab chiqilgan versiyasi hisoblanib, turli muhitlarda dasturiy ta’minot ishlab
chiqish uchun ilk bora bir joyda to’plangan. U ikki xil versiyada chiqarilgan –
Professional hamda Enterprise va ular Visual Basic 5.0, Visual C++ 5.0, Visual J++
1.1, Visual FoxPro 5.0 va ilk bora ASP ishlab chiqarish muhiti – Visual InterDev ni
joylashtirdi. Microsoft bu versiyasida ilk bora ko’plab tillarni: Visual C++, Visual J+
+, Visual InterDev va MSDN ni bir muhitda qo’llashga urinib ko’rdi va u Developer
Studio deb nomlandi. Visual FoxPro va Visual Basiclar alohida ishlab chiqarish
muhiti sifatida ishlatildi. Visual Studio 6.0 (1998). Visual Studio 6.0 – Windows 9x
platformasida ishlaydigan Visual Studioning eng oxirgi versiyasi. Avvalgidek,
ommaviy bo’lgan Visual Basic muhitidan foydalanildi. Ushbu versiyadan
Microsoftning Windows platformasi ilovalari uchun .NET paydo bo’ldi. Visual](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_7.png)
![Studio .NET (2002). Visual Studio .NET (Kodli nomi Rainier, ichki versiyasi 7.0)
2002-yil fevralda ishlab chiqarilgan (.NET Framework 1.0ni qo’llaydi). Visual Studio
.NET Service Pack 1 uchun 2002-yil martida ishlab chiqildi. Visual Studio .NET
2003. Visual Studio .NET (2003) (Kodli nomi Everett, ichki versiya 7.1) 2003 yilda
ishlab chiqarilgan (Framework 1.1 qo’llaydi). Microsoft 2005-yilning aprelida
maxsus muhit ishlab chiqarilganini e’lon qildi, uning nomi Microsoft Visual
Studio .NET Professional Special Edition deb ataldi. Bu maxsus ishlab chiqarilgan
muhit Microsoft Visual Studio .NET 2003 Professional Editionga DTning serverli
komplektini va boshqa instrumentlarni qo’shadi (bu qismlarga operatsion tizimlar:
Windows Server 2003 Standard Edition va SQL Server 2000 Developer Editionlar
kiradi). Muhitni bunday ko’rinishda rag’batlantirish ishlab chiqarishning yangi
bosqichiga ko’tarilishiga olib keldi va Microsoft boshqalar bilan raqobatga kirisha
oladigan DT yaratuvchini ishlab chiqdi. Visual Studio .NET 2003 Service Pack 1
uchun 2006-yil 13-sentabrda ishlab chiqarilgan. Visual Studio 2005. Visual Studio
2005 (kodli nomi Whidbey, ichki versiyasi 8.0) – 2005- yil oktabrning oxirida ishlab
chiqarilgan (.NET Framework 2.0 ni qo’llaydi). Windows 2000 da ishlatiladigan eng
so’nggi rasmiy versiya. 2005-yil noyabr boshlarida ham bir qancha seriyadagi
mahsulotlarni Express tahririda ishlab chiqildi: Visual C++ 2005 Express, Visual
Studio Basic 2005 Express, Visual C# 2005 Express va boshqalar. 2006-yil 19-
aprelda Express tahriri bepul qilib belgilandi. VS2005 Service Pack 1 uchun va
barcha Express tahriri 2006-yilning 14-dekabrida chiqarilgan. Windows Vista bilan
birgalikda muammolarni hal qiladigan, SP1 uchun qo’shimcha patch 2007-yilning 6-
martida ishlab chiqarilgan.
“Sayohat agentligi” loyihasi
Biz visual studio 2008 dasturlash muhitida yangi project yaratib olamiz, buning
uchun quyidagi qadamlarni bajaramiz.
1-daqam. “ Fayl->Yaratish->Loyiha” ketma-ketligida buyruqlarni tanlaymiz.](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_8.png)
![1-rasm.
Endigi qadamda yaratilayotgan loyihaning turini va unga nom berib, uning
qayerga saqlash kerak ekanli haqidagi bo’limni quyidagicha to’ldiramiz:](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_9.png)
![2-rasm.
Bizga paydo bo’lgan oynada yangi loyiha uchun forma yaratiladi.
3-rasm.
Endi formaning xususiyatlari o’rnatishni boshlaymiz. Birinchi o’rinda
AutoScaleMode xususiyatining qiymatini None qilib o’zgartirib qo’yamiz va Font
xususiyatini o’zgartiramiz.
Formaning bu tabiga 3 ta panel, 1 ta Label, 2 ta ListBox, 6 ta GroupBox, 6 ta
textBox va 1 ta Button komponentalarni joylashtirib ulardan kerakli komponentalarni
Text xususiyatlarini o’zgartirib chiqamiz va keyinchalik murojat qilishimiz uchun
ularning Name xususiyatini ham o’zgartirib boraveramiz. (o’zimizga qulay bo’lishligi
uchun ularning nomlarini eslatma sifatida yozib borganimiz ma’qul. Misol uchun
Button1, Kirish tugmasini uchun Name xususiyatini “ Qo’shish ” deb o’zgartirib
qo’yganimiz ma’qul.](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_10.png)
![4-rasm.
4-rasmdagi ma’lumot kiritish uchun kerakli bo’ladigan komponentalarni
joylashtirib, sozlab chiqamiz.](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_11.png)
![5-rasm.
Dastur davomida ishlatilgan har bir button komponentasining bosilish holati
uchun izoh sifatida kodlar belgilanib ketgan, ularning quyidagi kodlar orqali ko’rib
olishimiz mumkin:
Dastur kodi.
#pragma once
namespace Sayohat {
using namespace System;](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_12.png)
![using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
}
protected:
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::TabControl^ tabControl1;
protected:
private: System::Windows::Forms::TabPage^ tabPage1;
private: System::Windows::Forms::TabPage^ tabPage2;
private: System::Windows::Forms::GroupBox^ groupBox1;
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::GroupBox^ groupBox9;](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_13.png)
![private: System::Windows::Forms::TextBox^ textBox9;
private: System::Windows::Forms::GroupBox^ groupBox11;
private: System::Windows::Forms::TextBox^ textBox11;
private: System::Windows::Forms::GroupBox^ groupBox12;
private: System::Windows::Forms::TextBox^ textBox12;
private: System::Windows::Forms::GroupBox^ groupBox13;
private: System::Windows::Forms::TextBox^ textBox13;
private: System::Windows::Forms::GroupBox^ groupBox15;
private: System::Windows::Forms::TextBox^ textBox15;
private: System::Windows::Forms::GroupBox^ groupBox16;
private: System::Windows::Forms::TextBox^ textBox16;
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::GroupBox^ groupBox2;
private: System::Windows::Forms::TextBox^ textBox2;
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::GroupBox^ groupBox4;
private: System::Windows::Forms::TextBox^ textBox4;
private: System::Windows::Forms::GroupBox^ groupBox5;
private: System::Windows::Forms::TextBox^ textBox5;
private: System::Windows::Forms::Panel^ panel1;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::Button^ button3;
private: System::Windows::Forms::GroupBox^ groupBox3;
private: System::Windows::Forms::TextBox^ textBox3;
private: System::Windows::Forms::Panel^ panel2;
private: System::Windows::Forms::Panel^ panel3;
private: System::Windows::Forms::DataGridView^ dataGridView1;](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_14.png)
![private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column1;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column7;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column2;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column3;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column4;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column5;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column6;
private:
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
void InitializeComponent(void)
{
this->tabControl1 = (gcnew
System::Windows::Forms::TabControl());
this->tabPage1 = (gcnew System::Windows::Forms::TabPage());
this->button1 = (gcnew System::Windows::Forms::Button());
this->groupBox2 = (gcnew
System::Windows::Forms::GroupBox());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->groupBox1 = (gcnew
System::Windows::Forms::GroupBox());
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->label1 = (gcnew System::Windows::Forms::Label());
this->tabPage2 = (gcnew System::Windows::Forms::TabPage());
this->groupBox4 = (gcnew
System::Windows::Forms::GroupBox());
this->textBox4 = (gcnew System::Windows::Forms::TextBox());](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_15.png)
![this->groupBox5 = (gcnew
System::Windows::Forms::GroupBox());
this->textBox5 = (gcnew System::Windows::Forms::TextBox());
this->label3 = (gcnew System::Windows::Forms::Label());
this->button3 = (gcnew System::Windows::Forms::Button());
this->groupBox3 = (gcnew
System::Windows::Forms::GroupBox());
this->textBox3 = (gcnew System::Windows::Forms::TextBox());
this->label2 = (gcnew System::Windows::Forms::Label());
this->button2 = (gcnew System::Windows::Forms::Button());
this->groupBox9 = (gcnew
System::Windows::Forms::GroupBox());
this->textBox9 = (gcnew System::Windows::Forms::TextBox());
this->groupBox11 = (gcnew
System::Windows::Forms::GroupBox());
this->textBox11 = (gcnew System::Windows::Forms::TextBox());
this->groupBox12 = (gcnew
System::Windows::Forms::GroupBox());
this->textBox12 = (gcnew System::Windows::Forms::TextBox());
this->groupBox13 = (gcnew
System::Windows::Forms::GroupBox());
this->textBox13 = (gcnew System::Windows::Forms::TextBox());
this->groupBox15 = (gcnew
System::Windows::Forms::GroupBox());
this->textBox15 = (gcnew System::Windows::Forms::TextBox());
this->groupBox16 = (gcnew
System::Windows::Forms::GroupBox());
this->textBox16 = (gcnew System::Windows::Forms::TextBox());](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_16.png)
![this->panel1 = (gcnew System::Windows::Forms::Panel());
this->dataGridView1 = (gcnew
System::Windows::Forms::DataGridView());
this->panel3 = (gcnew System::Windows::Forms::Panel());
this->panel2 = (gcnew System::Windows::Forms::Panel());
this->Column1 = (gcnew
System::Windows::Forms::DataGridViewTextBoxColumn());
this->Column7 = (gcnew
System::Windows::Forms::DataGridViewTextBoxColumn());
this->Column2 = (gcnew
System::Windows::Forms::DataGridViewTextBoxColumn());
this->Column3 = (gcnew
System::Windows::Forms::DataGridViewTextBoxColumn());
this->Column4 = (gcnew
System::Windows::Forms::DataGridViewTextBoxColumn());
this->Column5 = (gcnew
System::Windows::Forms::DataGridViewTextBoxColumn());
this->Column6 = (gcnew
System::Windows::Forms::DataGridViewTextBoxColumn());
this->tabControl1->SuspendLayout();
this->tabPage1->SuspendLayout();
this->groupBox2->SuspendLayout();
this->groupBox1->SuspendLayout();
this->tabPage2->SuspendLayout();
this->groupBox4->SuspendLayout();
this->groupBox5->SuspendLayout();
this->groupBox3->SuspendLayout();
this->groupBox9->SuspendLayout();](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_17.png)
![this->groupBox11->SuspendLayout();
this->groupBox12->SuspendLayout();
this->groupBox13->SuspendLayout();
this->groupBox15->SuspendLayout();
this->groupBox16->SuspendLayout();
this->panel1->SuspendLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^
>(this->dataGridView1))->BeginInit();
this->panel3->SuspendLayout();
this->panel2->SuspendLayout();
this->SuspendLayout();
//
// tabControl1
//
this->tabControl1->Controls->Add(this->tabPage1);
this->tabControl1->Controls->Add(this->tabPage2);
this->tabControl1->Location = System::Drawing::Point(12, 12);
this->tabControl1->Name = L"tabControl1";
this->tabControl1->SelectedIndex = 0;
this->tabControl1->Size = System::Drawing::Size(605, 457);
this->tabControl1->TabIndex = 0;
//
// tabPage1
//
this->tabPage1->Controls->Add(this->button1);
this->tabPage1->Controls->Add(this->groupBox2);
this->tabPage1->Controls->Add(this->groupBox1);
this->tabPage1->Controls->Add(this->label1);](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_18.png)
![this->tabPage1->Location = System::Drawing::Point(4, 32);
this->tabPage1->Name = L"tabPage1";
this->tabPage1->Padding =
System::Windows::Forms::Padding(3);
this->tabPage1->Size = System::Drawing::Size(597, 421);
this->tabPage1->TabIndex = 0;
this->tabPage1->Text = L"Tizimga kirish";
this->tabPage1->UseVisualStyleBackColor = true;
//
// button1
//
this->button1->Location = System::Drawing::Point(191, 288);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(200, 31);
this->button1->TabIndex = 3;
this->button1->Text = L"Tizimga kirish";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this,
&Form1::button1_Click);
//
// groupBox2
//
this->groupBox2->Controls->Add(this->textBox2);
this->groupBox2->Location = System::Drawing::Point(191, 196);
this->groupBox2->Name = L"groupBox2";
this->groupBox2->Size = System::Drawing::Size(200, 69);
this->groupBox2->TabIndex = 2;
this->groupBox2->TabStop = false;](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_19.png)
![this->groupBox2->Text = L"Parol";
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(6, 29);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(188, 30);
this->textBox2->TabIndex = 0;
//
// groupBox1
//
this->groupBox1->Controls->Add(this->textBox1);
this->groupBox1->Location = System::Drawing::Point(191, 121);
this->groupBox1->Name = L"groupBox1";
this->groupBox1->Size = System::Drawing::Size(200, 69);
this->groupBox1->TabIndex = 1;
this->groupBox1->TabStop = false;
this->groupBox1->Text = L"Login";
this->groupBox1->Enter += gcnew System::EventHandler(this,
&Form1::groupBox1_Enter);
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(6, 29);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(188, 30);
this->textBox1->TabIndex = 0;
//](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_20.png)
![// label1
//
this->label1->AutoSize = true;
this->label1->Font = (gcnew System::Drawing::Font(L"Tahoma",
14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->label1->Location = System::Drawing::Point(259, 78);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(65, 23);
this->label1->TabIndex = 0;
this->label1->Text = L"Kirish";
//
// tabPage2
//
this->tabPage2->Controls->Add(this->groupBox4);
this->tabPage2->Controls->Add(this->groupBox5);
this->tabPage2->Controls->Add(this->label3);
this->tabPage2->Controls->Add(this->button3);
this->tabPage2->Controls->Add(this->groupBox3);
this->tabPage2->Location = System::Drawing::Point(4, 22);
this->tabPage2->Name = L"tabPage2";
this->tabPage2->Padding =
System::Windows::Forms::Padding(3);
this->tabPage2->Size = System::Drawing::Size(597, 431);
this->tabPage2->TabIndex = 1;
this->tabPage2->Text = L"Ro\'yxatdan o\'tish";
this->tabPage2->UseVisualStyleBackColor = true;
//](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_21.png)
![// groupBox4
//
this->groupBox4->Controls->Add(this->textBox4);
this->groupBox4->Location = System::Drawing::Point(198, 213);
this->groupBox4->Name = L"groupBox4";
this->groupBox4->Size = System::Drawing::Size(200, 69);
this->groupBox4->TabIndex = 22;
this->groupBox4->TabStop = false;
this->groupBox4->Text = L"Parol";
//
// textBox4
//
this->textBox4->Location = System::Drawing::Point(6, 29);
this->textBox4->Name = L"textBox4";
this->textBox4->Size = System::Drawing::Size(188, 30);
this->textBox4->TabIndex = 0;
//
// groupBox5
//
this->groupBox5->Controls->Add(this->textBox5);
this->groupBox5->Location = System::Drawing::Point(198, 138);
this->groupBox5->Name = L"groupBox5";
this->groupBox5->Size = System::Drawing::Size(200, 69);
this->groupBox5->TabIndex = 21;
this->groupBox5->TabStop = false;
this->groupBox5->Text = L"Login";
//
// textBox5](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_22.png)
![//
this->textBox5->Location = System::Drawing::Point(6, 29);
this->textBox5->Name = L"textBox5";
this->textBox5->Size = System::Drawing::Size(188, 30);
this->textBox5->TabIndex = 0;
//
// label3
//
this->label3->AutoSize = true;
this->label3->Font = (gcnew System::Drawing::Font(L"Tahoma",
14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->label3->Location = System::Drawing::Point(224, 21);
this->label3->Name = L"label3";
this->label3->Size = System::Drawing::Size(176, 23);
this->label3->TabIndex = 20;
this->label3->Text = L"Ro\'yxatdan o\'tish";
//
// button3
//
this->button3->Location = System::Drawing::Point(82, 312);
this->button3->Name = L"button3";
this->button3->Size = System::Drawing::Size(441, 36);
this->button3->TabIndex = 19;
this->button3->Text = L"Tizimda ro\'yxatdan o\'tish";
this->button3->UseVisualStyleBackColor = true;
this->button3->Click += gcnew System::EventHandler(this,
&Form1::button3_Click);](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_23.png)
![//
// groupBox3
//
this->groupBox3->Controls->Add(this->textBox3);
this->groupBox3->Location = System::Drawing::Point(204, 66);
this->groupBox3->Name = L"groupBox3";
this->groupBox3->Size = System::Drawing::Size(194, 66);
this->groupBox3->TabIndex = 18;
this->groupBox3->TabStop = false;
this->groupBox3->Text = L"Ismi";
//
// textBox3
//
this->textBox3->Location = System::Drawing::Point(6, 29);
this->textBox3->Name = L"textBox3";
this->textBox3->Size = System::Drawing::Size(188, 30);
this->textBox3->TabIndex = 0;
//
// label2
//
this->label2->AutoSize = true;
this->label2->Font = (gcnew System::Drawing::Font(L"Tahoma",
14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->label2->Location = System::Drawing::Point(72, 21);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(184, 23);
this->label2->TabIndex = 17;](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_24.png)
![this->label2->Text = L"Ma\'lumot qo\'shish\r\n";
//
// button2
//
this->button2->Font = (gcnew
System::Drawing::Font(L"Tahoma", 14.25F, System::Drawing::FontStyle::Bold,
System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->button2->Location = System::Drawing::Point(368, 21);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(238, 36);
this->button2->TabIndex = 16;
this->button2->Text = L"Qo\'shish\r\n";
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this,
&Form1::button2_Click);
//
// groupBox9
//
this->groupBox9->Controls->Add(this->textBox9);
this->groupBox9->Location = System::Drawing::Point(16, 168);
this->groupBox9->Name = L"groupBox9";
this->groupBox9->Size = System::Drawing::Size(200, 66);
this->groupBox9->TabIndex = 15;
this->groupBox9->TabStop = false;
this->groupBox9->Text = L"...ga ";
//
// textBox9](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_25.png)
![//
this->textBox9->Location = System::Drawing::Point(6, 29);
this->textBox9->Name = L"textBox9";
this->textBox9->Size = System::Drawing::Size(188, 30);
this->textBox9->TabIndex = 0;
//
// groupBox11
//
this->groupBox11->Controls->Add(this->textBox11);
this->groupBox11->Location = System::Drawing::Point(16, 96);
this->groupBox11->Name = L"groupBox11";
this->groupBox11->Size = System::Drawing::Size(200, 66);
this->groupBox11->TabIndex = 13;
this->groupBox11->TabStop = false;
this->groupBox11->Text = L"Tel_raqami";
//
// textBox11
//
this->textBox11->Location = System::Drawing::Point(6, 29);
this->textBox11->Name = L"textBox11";
this->textBox11->Size = System::Drawing::Size(188, 30);
this->textBox11->TabIndex = 0;
//
// groupBox12
//
this->groupBox12->Controls->Add(this->textBox12);
this->groupBox12->Location = System::Drawing::Point(16, 24);
this->groupBox12->Name = L"groupBox12";](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_26.png)
![this->groupBox12->Size = System::Drawing::Size(200, 66);
this->groupBox12->TabIndex = 12;
this->groupBox12->TabStop = false;
this->groupBox12->Text = L"Sayohat_turi";
//
// textBox12
//
this->textBox12->Location = System::Drawing::Point(6, 29);
this->textBox12->Name = L"textBox12";
this->textBox12->Size = System::Drawing::Size(188, 30);
this->textBox12->TabIndex = 0;
//
// groupBox13
//
this->groupBox13->Controls->Add(this->textBox13);
this->groupBox13->Location = System::Drawing::Point(16, 163);
this->groupBox13->Name = L"groupBox13";
this->groupBox13->Size = System::Drawing::Size(200, 66);
this->groupBox13->TabIndex = 11;
this->groupBox13->TabStop = false;
this->groupBox13->Text = L"..dan ";
//
// textBox13
//
this->textBox13->Location = System::Drawing::Point(6, 29);
this->textBox13->Name = L"textBox13";
this->textBox13->Size = System::Drawing::Size(188, 30);
this->textBox13->TabIndex = 0;](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_27.png)
![//
// groupBox15
//
this->groupBox15->Controls->Add(this->textBox15);
this->groupBox15->Location = System::Drawing::Point(16, 98);
this->groupBox15->Name = L"groupBox15";
this->groupBox15->Size = System::Drawing::Size(200, 66);
this->groupBox15->TabIndex = 9;
this->groupBox15->TabStop = false;
this->groupBox15->Text = L"Ismi";
//
// textBox15
//
this->textBox15->Location = System::Drawing::Point(6, 29);
this->textBox15->Name = L"textBox15";
this->textBox15->Size = System::Drawing::Size(188, 30);
this->textBox15->TabIndex = 0;
//
// groupBox16
//
this->groupBox16->Controls->Add(this->textBox16);
this->groupBox16->Location = System::Drawing::Point(16, 24);
this->groupBox16->Name = L"groupBox16";
this->groupBox16->Size = System::Drawing::Size(200, 66);
this->groupBox16->TabIndex = 8;
this->groupBox16->TabStop = false;
this->groupBox16->Text = L"Familiyasi";
//](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_28.png)
![// textBox16
//
this->textBox16->Location = System::Drawing::Point(6, 29);
this->textBox16->Name = L"textBox16";
this->textBox16->Size = System::Drawing::Size(188, 30);
this->textBox16->TabIndex = 0;
//
// panel1
//
this->panel1->Controls->Add(this->dataGridView1);
this->panel1->Controls->Add(this->panel3);
this->panel1->Controls->Add(this->panel2);
this->panel1->Controls->Add(this->label2);
this->panel1->Controls->Add(this->button2);
this->panel1->Location = System::Drawing::Point(4, 9);
this->panel1->Name = L"panel1";
this->panel1->Size = System::Drawing::Size(613, 453);
this->panel1->TabIndex = 1;
this->panel1->Visible = false;
//
// dataGridView1
//
this->dataGridView1->ColumnHeadersHeightSizeMode =
System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize
;
this->dataGridView1->Columns->AddRange(gcnew cli::array<
System::Windows::Forms::DataGridViewColumn^ >(7) {this->Column1,](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_29.png)
![this->Column7, this->Column2, this->Column3, this-
>Column4, this->Column5, this->Column6});
this->dataGridView1->Location = System::Drawing::Point(23,
349);
this->dataGridView1->Name = L"dataGridView1";
this->dataGridView1->Size = System::Drawing::Size(583, 101);
this->dataGridView1->TabIndex = 20;
//
// panel3
//
this->panel3->Controls->Add(this->groupBox12);
this->panel3->Controls->Add(this->groupBox9);
this->panel3->Controls->Add(this->groupBox11);
this->panel3->Location = System::Drawing::Point(371, 71);
this->panel3->Name = L"panel3";
this->panel3->Size = System::Drawing::Size(235, 256);
this->panel3->TabIndex = 19;
//
// panel2
//
this->panel2->Controls->Add(this->groupBox16);
this->panel2->Controls->Add(this->groupBox15);
this->panel2->Controls->Add(this->groupBox13);
this->panel2->Location = System::Drawing::Point(23, 71);
this->panel2->Name = L"panel2";
this->panel2->Size = System::Drawing::Size(242, 256);
this->panel2->TabIndex = 18;
//](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_30.png)
![// Column1
//
this->Column1->HeaderText = L"ID";
this->Column1->Name = L"Column1";
//
// Column7
//
this->Column7->HeaderText = L"Ismi";
this->Column7->Name = L"Column7";
//
// Column2
//
this->Column2->HeaderText = L"Familiyasi";
this->Column2->Name = L"Column2";
//
// Column3
//
this->Column3->HeaderText = L"Tel_raqami";
this->Column3->Name = L"Column3";
//
// Column4
//
this->Column4->HeaderText = L"Sayohat_turi";
this->Column4->Name = L"Column4";
//
// Column5
//
this->Column5->HeaderText = L"..dan";](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_31.png)
![this->Column5->Name = L"Column5";
//
// Column6
//
this->Column6->HeaderText = L"...ga";
this->Column6->Name = L"Column6";
//
// Form1
//
this->AutoScaleMode =
System::Windows::Forms::AutoScaleMode::None;
this->ClientSize = System::Drawing::Size(624, 478);
this->Controls->Add(this->panel1);
this->Controls->Add(this->tabControl1);
this->Font = (gcnew System::Drawing::Font(L"Tahoma", 14.25F,
System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->Margin = System::Windows::Forms::Padding(5);
this->Name = L"Form1";
this->StartPosition =
System::Windows::Forms::FormStartPosition::CenterScreen;
this->Text = L"Sayohat";
this->tabControl1->ResumeLayout(false);
this->tabPage1->ResumeLayout(false);
this->tabPage1->PerformLayout();
this->groupBox2->ResumeLayout(false);
this->groupBox2->PerformLayout();
this->groupBox1->ResumeLayout(false);](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_32.png)
![this->groupBox1->PerformLayout();
this->tabPage2->ResumeLayout(false);
this->tabPage2->PerformLayout();
this->groupBox4->ResumeLayout(false);
this->groupBox4->PerformLayout();
this->groupBox5->ResumeLayout(false);
this->groupBox5->PerformLayout();
this->groupBox3->ResumeLayout(false);
this->groupBox3->PerformLayout();
this->groupBox9->ResumeLayout(false);
this->groupBox9->PerformLayout();
this->groupBox11->ResumeLayout(false);
this->groupBox11->PerformLayout();
this->groupBox12->ResumeLayout(false);
this->groupBox12->PerformLayout();
this->groupBox13->ResumeLayout(false);
this->groupBox13->PerformLayout();
this->groupBox15->ResumeLayout(false);
this->groupBox15->PerformLayout();
this->groupBox16->ResumeLayout(false);
this->groupBox16->PerformLayout();
this->panel1->ResumeLayout(false);
this->panel1->PerformLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^
>(this->dataGridView1))->EndInit();
this->panel3->ResumeLayout(false);
this->panel2->ResumeLayout(false);
this->ResumeLayout(false);](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_33.png)
![}
#pragma endregion
private: System::Void groupBox1_Enter(System::Object^ sender,
System::EventArgs^ e) {
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^
e) {
tabControl1->Visible = false;
panel1->Visible = true;
}
int i;
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^
e) {
String^ismi = ""+textBox15->Text;
String^familiyasi = ""+textBox16->Text;
String^tel_raqami = ""+textBox11->Text;
String^sayohat_turi = ""+textBox12->Text;
String^dan = ""+textBox13->Text;
String^ga = ""+textBox9->Text;
dataGridView1->Rows->Add(""+
(i+1),ismi,familiyasi,tel_raqami,sayohat_turi,dan,ga);
i++;
}
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^
e) {
tabControl1->Visible = false;
panel1->Visible = true;
}](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_34.png)
![};
}
Dasturni ishga tushirib kerakli ma’lumotlarni kiritib oldik va quyidagi natijaga
ega bo’ldik.
6-rasm.](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_35.png)
![7-rasm.](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_36.png)
![8-rasm.
9-rasm.](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_37.png)
![X ulosa
Bu kurs ishi davomida, biz sayohat agentligi uchun ma’lumotlarni saqlash va
yozish uchun kichik dasturiy ta’minotni ishlab chiqdik. Bunda biz visual
dasturlashdan foydalandek. Dasturiy ta’minotni yaratish davomida asosiy urg’uni
bilan ishlashga qaratildi. Visual dasturlash yordamida biz konsolli dasturlarni visual
ko’rinishda foydalanuvchi uchun qulay holda ifodalanishimiz mumkin bo’ladi. Bu
usulda foydalanuvchi uchun tushunarli bo’ladi. Visual muhitda biz komponentalar
bilan ishladik. Kurs ishi davomida visual muhitda bir necha dasturlar ustida(qism
dastur) lar ustida ishladik.
Biz bu kurs ishi davomida sayohatga boradigan odamlarni birinchi navbatda
ro’yxatdan o’tkazdik va ularning qaysi shahardan boshqa shaharga borish uchun
ketadigan pul miqdorlarini chiqarib beruvchi dastur yaratdik. Bu dastur sayohatga
borish istagida bo’lgan har qanday odam uchun juda qulay hisoblanadi.
Bunda ro’yxatdan o’tib har qanday shaharni tanlash imkoniyati mavjud bo’lib
har qanday inson o’zi xohlagan viloyat, shahar va hatto boshqa davlatlarga ham
borishi mumkin.](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_38.png)
![Foydalanilgan adabiyotlar
1. “Visual studio 2013: windows forms ilovalar” Boris Paxanov Erali Eshonqulov
tarjimasi 2016.
2. “Dasturlash asoslari” o’quv-uslubiy qo’llanma, Erali Eshonqulov, F. Meliyev,
O, Yusupov
3. https://tami.uz/matnga_qarang.php?id=176
4. https://www.homeandlearn.co.uk/csharp/csharp.html
5. https://learn.microsoft.com/en-us/visualstudio/get-started/csharp/
6. https://www.softwaretestinghelp.com/c-sharp/introduction-to-csharp/
7. https://github.com/RobinKa/netprints](/data/documents/3e77fc30-d7a9-4a5d-9d13-91332d8ab83e/page_39.png)
“PROGRAMMALASH ASOSLARI” FANIDAN “SAYOHAT AGENTLIGI” Mundarija KIRISH ......................................................................................................................... 2 Visual C + + haqida ...................................................................................................... 3 “Sayohat agentligi” loyihasi ........................................................................................ 8 Xulosa .......................................................................................................................... 38 Foydalanilgan adabiyotlar ......................................................................................... 39
KIRISH Vizual dasturlashni qo’llab-quvvatlaydigan juda ko’plab instumentlar mavjud. Bular qatoriga Borland Delphi, Borland C++ Builder, Embarcadero RAD Studio, Visual Studio va boshqalarni keltirib o’tishimiz mumkin. Ulardan qaysi birini tanlash esa dasturchining o’ziga bog’liq. Lekin shuni unutmaslik kerakki, garchi ulardan qo’llaniladigan dasturlash tili turlicha bo’lsa-da, ularning barchasining asosida bir xil uslub yotadi. Biz ushbu kitobda instrument sifatida Microsoftning mahsuloti bo’lmish Visual Studio integrallashgan muhitini tanladik. Chunki bu instrument so’nggi yillarda eng ommalashgan muhitlardan biri bo’lib kelmoqda. Biz yaratayotgan loyihalarimizning asosiy qismi Windows muhiti uchun ishlab chiqarilishini inobatga olsak, aynan ushbu muhitni tanlaganimiz bejiz emas. Chunki ushbu integrallashgan muhit Windows OS ning juda ko’p funksiyalarini o’z ichiga jamlagan bo’lib, loyiha tuzayotganda ulardan keng miqyosida foydalanamiz. Uning tarkibida bir qancha kutubxonalarda bu funksiyalar joylashib, ularga murojaat etish orqali, bir qancha amallarni osongina hal etishimiz mumkin Ushbu kitobda Visual Studio 2013 integrallashgan muhitida Formalar yordamida ilovalar yaratish haqida so’z yuritiladi. Windows Forms texnologiyasi komponentalarga asoslanadi. Bu komponentalarni birlashtirib, turli xil ilovalarni yaratishni ko’rib o’tamiz. Komponenta - bu visual dasturlashning asosiy tushunchalaridan biridir. Ta’bir joiz bo’lsa, komponenta – “g’isht” bo’lsa, ularni birlashtirib turuvchi ilova esa “uy”dir. Biz bu g’ishtlarni birlashtirib, uy, hattoki, uylar yasashimiz mumkin. Uyimiz qanchalik sifatli chiqishini istasak, g’ishtimizni sifatli va mustahkam qilib terishimiz kerak. Poydevor qanchalik mustahkam bo’lsa, uy ham shuncha baquvvat va ko’rkam bo’ladi. Inson va ma’lumotlarga ishlov berish o’rtasidagi aloqa kompyuter dasturlari orqali boshqariladi. Markaziy protsessor (CRI) belgilari to’plami ikkita belgigacha “0” va “1” yoki “yoqilgan” va “o’chirilgan” bilan chegeralangan.
Visual C + + haqida Visual studio Microsoft uchun mo’ljallangan dasturlash muhiti hisoblanadi. U console (boshqaruv paneli) va grafik interfeysli dasturlar, shu bilan birga Windows tarkibidagi dasturlar, veb-saytlar, veb dasturlar, va veb xizmatlarni tarkibidagi hamda boshqa kodlar yordamida Microsoft Windows, Windows Phone, Windows CE, .Net Framework, .Net Compact Framework va Microsoft Silverlight kabi dasturlar muhitlarini daturashda ishlatialdi. Visual Studio muhitidada dastrur tuzish uchun bir qancha elementlar: menyular paneli, standart uskunalar paneli, ochiq yoki ekranning o’ng, chap, yuqori, yoki pastki qismida avtomatik yashiringan turli xildagi qo’shimcha uskunalar joylashgan. Visual Studioda Console Interfeys ilovada ishlashni hosil qilish uchun quyidagi amallarni bajarish lozim. Dastlab asosiy oynadan “New Project” qismi orqali, “File” tugmasi orqali, “New” tugmasini tanlab, “Project” qismini tanlanadi, yoki “Ctrl+Shift+A” tugmalarini bosishimiz mumkin. Visual C++ da dasturlar ilovalar deb nomlanadi. Ilovalar maxsus konstruksiya ko’rinishidagi muhitda – foydalanuvchi uchun bir qancha fayllar majmui ko’rinishidagi loyihada yaratiladi. C tilidagi dastur bu – belgilangan talablarga javob beruvchi, maxsus dasturlash tuzilishiga ega funksiyalar majmuidir. Ilova – bu ichida ilova algoritmini amalga oshiruvchi operatorlar joylashtirilgan asosiy funksiyadir. Operatorlar ichida shundaylari ham borki, ular algoritmni amalga oshishida talab qilinadigan boshqa funksiyalarni chaqirishga xizmat qiladi. Ixtiyoriy dasturni ishga tushirish, dasturning qolgan barcha qismini o’zida jamlagan asosiy funksiyani ishga tushirishdan boshlanadi. Funksiyaning bir qismi dasturchi tomonidan, qolgan qismi – kutubxona funksiyalari – foydalanuvchiga dasturiy muhit tomonidan taqdim qilinadi va dasturni ishlab chiqish jarayonida foydalaniladi. Yaratiluvchi ilovalarni 2 ta katta kategoriyaga ajratish mumkin. Ular ishchi stol ilovalari va Windows 8 ilovalaridir. Ishchi stol ilovalari bu biz bilgan va sevadigan ilovalardir. Ular menyu paneli, instrumentlar paneli va ko’pincha ilova oynasining pastki qismida joylashgan holatlar
satriga ega bo’ladilar. Biz ushbu fanda ishchi stol ilovalarini yaratishni maqsad qilib qo’ydik. Windows 8 ilovalari ishchi stol ilovalaridan ancha farqli. Ularda foydalanuvchi interfeysi mavjud bo’lib u ishchi stol ilovalaridan butunlay farq qiladi. Foydalanuvchining to’g’ridan to’g’ri ma’lumotlar bilan bog’lanishi diqqat markazidadir. 1.2. Microsoft Visual C++ da konsol ilova dasturlar yaratish C/C++ ni o’rganishda biz maxsus ilovalar ko’rinishidan foydalanamiz – shablonlarni tayyorlash muhitida oldindan tayyorlangan konsol ilovalar asosida shakllantiriladi. Konsol ilovalar – bu grafik interfeyssiz ilovalar bo’lib, ular foydalanuvchi bilan maxsus buyruqlar satri orqali o’zaro aloqada bo’ladi yoki asosiy menyu muhitidagi maxsus buyruqlar bilan ishga tushiriladi. Bunday ilovalar File/New Project buyrug’i bajarilishidan so’ng ochiluvchi dialog oynasiga ega bo’lgan maxsus shablonlar yordamida yaratiladi. Konsol ilovalar shabloni yaratiluvchi ilovaga barcha zarur elementlarni qo’shadi, shundan so’ng dasturchi bu shablonga o’zining C/C++ tilidagi operatorlarini qo’shadi. Keyin ilova avtonom ishga tushuvchi fayl sifatida kompilyatsiyalanadi va bajarish uchun ishga tushirilishi mumkin. Foydalanuvchi bilan muloqot ilova ishga tushirilgandan so’ng ochiluvchi maxsus konsol oynasi orqali amalga oshiriladi (shu oynada dastur habarlari tasvirlanadi, u orqali hisoblash uchun ma’lumotlar kiritiladi va uning o’ziga hisoblangan natijalar chop qilinadi). Kompilyatsiya va proyektni bitta joyga jamlash asosiy menyuning Build buyrug’I orqali amalga oshiriladi. Kompilyatsiya va proyektni bir joyga yig’ishdan so’ng uni bajarish uchun ishga tushirish mumkin. Bajarilish uchun ishga tushurish asosiy menyuning Debbug buyrug’i yordamida amalga oshiriladi. Konsol ilovalar yaratish uchun quyidagi qadamlarni bajarish zarur: 1. Visual C++ ni ishga tushirish. 2. Asosiy menyuning File/New/Project buyrug’ini bajarish. 3.1 – rasmdagi dialog oynasi hosil bo’ladi. Unda quyidagilarni ketma – ket bajaring: Win32 bandini tanlang; Win32 Console Application qismini tanlang; Ilovaning saqlanish joyini ko’rsatish uchun “Browse…” tugmasidan foydalaning; Name maydoniga hosil qilinuvchi ilova nomini kiriting; OK tugmasini bosing.
Inson harflardan, raqamlardan, tasvirlardan foydalanadi. Inson va mashina o’rtasidagi interfeysni (muloqotni), (kodlashtirish)ni dasturiy ta’minot tartibga solib turadi. Bu vazifadan tashqari kompyuter dasturi operatsion tizimi ko’rinishida kompyuterni butun apparat qismini boshqarilishini tartibga soladi. Shunday qilib dasturiy ta’minot ikki qismga bo’linadi: tizimli dastur ko’rinishidagi apparat qismining boshqarilishi muammolarning yechilishiga qaratilgan amaliy dasturlar Bu bilan bir qatorda tizimli va amaliy dasturlar ishlab chiqish va kompyuter xizmatini yengillashtirish uchun bir qator dasturlash tillari va qo’llash servisi mavjud. Tizimli dastur shu bilan birga, kompyuter va unga tegishli periferiyalardan foydalanishga imkon beradi. Tizimli dasturlarga foydalanuvchining ma’lumotlarga ishlov berish tizimining ishlash tamoyillari bo’yicha keyingi texnik belgilarga ega bo’lishini talab qilmasdan, masalani kiritish va chiqarish boshqaruvini tayyorlaydigan operatsion tizimlarini o’z ichiga oladi. Xizmat uchun belgilangan va yordamchi