Uploaded by Mustafa

Mustaqil ish mavzusi Visual C++ Forma muxitida ixtiyoriy dastur

advertisement
Mustaqil ish mavzusi: Visual C++ Forma muxitida ixtiyoriy dastur tuzing.
Dasturni word formatga rasmiylashtirib loyiha bilan birga bitta papakaga
ziplab yuboring. Eslatma: Mustaqil ish vazifasini Visual C++ dasturlash
(muxitida) qilishingiz shart.
Visual C++ Forma muxitida bajarilishi kerak bo’lgan topshiriq uchun
ko’rsatma
Ishning maqsadi
Ekran markazida forma dizayneri joylashgan (1.1-rasm). Bu bo’lg’usi
dasturning interfeysini hosil qiluvchi oynadir. Oynaning nomi va sarlavhasi uning
tepasida yozilgan bo’ladi. Odatda, Form1.h va shuningdek oynani berkituvchi va
kichraytiruvchi tugmachalari ekranning o’ng tepasida joylashgan.
1.1– rasm. Forma oynasi.
Forma dizayneri ostida dastur kodi muharriri joylashgan, odatda u Form1.h
sarlavha bilan beriladi. Bu oyna dastur kodini kiritish va tahrir qilish uchun
mo’ljallangan (1.2-rasm).
1.2 – rasm. Kodlar oynasi.
1.3 – rasmda forma va unda joylashgan komponentalarning xossalarini va
hodisalarini o’zgartiradigan oynani ko’rish mumkin.
1.3– rasm. Xususiyatlar “Properties” va hodisalar “Events” oynasi.
Ushbu oyna orqali komponentalarning tashqi ko’rinishlari va barcha
xususiyatlari sozlanadi. Misol uchun komponentaning o’lchamini o’zgartirish kerak
bo’lsa, Font qismidagi 3 ta nuqtali tugma bosiladi va komponenta o’lchamlari
o’rnatiladi. U 1.4 – rasmda keltirilgan:
1.4– rasm. Komponenta shiriftlarini sozlash oynasi.
1.5– rasmda. Komponenta hodisalarini ko’rishingiz mumkin. Misol: Formani
yopganda hodisasi “Form closed” qismida sichqonchaning o’ng tugmasi 2 marta
tez bosilsa, kodlar oynasida ushbu hodisa ro’y bergan holdagi jarayonlarning kodini,
kodlar oynasida kiritiladi.
1.5– rasm. Hodisalarni sozlash oynasi.
Visual C++ muhitini VCL vizual komponentalari bilan tanishamiz. Visual
C++ muhitida ilova yaratish VCL vizual komponentalaridan keraklilarini formaga
joylashtirishdan boshlanadi. Komponentalar ilovaning g’ishtchalari (elementlari,
qismlari) deyishimiz mumkin. Barcha VCL komponentalari, ToolBox oynasida
palitralarga ajratilgan holda joylashgan bo’ladi. Komponentalar palitrasi ma’lum bir
vazifalariga ko’ra komponentalar to’plamidan iborat komponentalar sahifasiga
ajratilgan. Bu sahifalar ma’no va vazifasiga ko’ra bir - biriga yaqin bo’lgan
komponentalarni bitta guruhga birlashtiradi. 1.6-rasmda komponentalar palitrasi va
komponentalar joylashtirilgan oyna keltirilgan.
1.6-rasm. Komponentalar palitrasi va komponentalar oynasi.
Visual C++ 32 razryadli takomillashtirilgan vizual komponentalar
kutubxonasi VCL (Visual Component Library) bilan birgalikda etkazib beriladi.
Bu kutubxona eng murakkab ilovalarni qurish uchun mo’ljallangan, 100 dan ortiq
takroran
qo’llanadigan
komponentalardan
iborat.
Kutubxonaning
asosiy
komponentalari - Palitra komponentalarining instrumental panelida berilgan.
Komponentalar belgilari dastur formasiga olib o’tiladi.
Kutubxona
Windows
operastion
tizimlaridagi
foydalanuvchi
grafik
interfeysi, standart interfeys ob’ektlarining to’liq inkapsulyastiyalanishini o’z ichiga
oladi. Ular orasida, ixtisoslashgan komponentalar bilan bir qatorda, relyastion
ma’lumotlar bazasini boshqarish uchun mo’ljallangan komponentalar alohida o’rin
egallaydi. Ishonchli va samarali dasturlarni yaratishda Visual C++ OYD
imkoniyatlaridan to’liq foydalanadi. Visual C++ bu OMD ekan, OLE (OCX)
boshqaruvchi
elementlarni
kiritish
uncha
qiyinchilik
tug’dirmaydi.
O’z
masalalaringiz talablarini kerakli darajada qondirish uchun, Kutubxonaning mavjud
komponentalaridan
foydalaning
va
hosila
komponentalar
imkoniyatlarini
kengaytiring.
Visual C++ bosh xususiyati avvalambor, uning dasturini vizual ishlash
jarayonida
nafaqat
tayyor
komponentalardan
foydalanish,
balki
yangi
komponentalarni yaratish qobiliyatida ham namoyon bo’ladi. Yangi komponentalar,
dastlabki komponentalar kabi, sodda bo’lishi mumkin, bunda ularning funkstional
imkoniyatlari ozgina kengaytirilgan yoki o’zining mutlaqo o’ziga xos ko’rinishi,
xulq-atvori va kodining mazmuni bilan farqlanadigan bo’ladi. Komponentalarning
yaratilishi OYD ning vorislik mexanizmiga tayanadi, cheklanishlarga deyarli ega
bo’lmaydi hamda qo’yidagi bosqichlardan o’tadi:
 mavjud komponenta turiga vorislik;
 yangi xususiyatlar, metodlar va voqealarni aniqlash;
 yaratilgan komponentani qayd etish.
Qidirish oson bo’lishi uchun, palitra funkstional
jihatdan o’xshash
komponentalarni birlashtiradigan qo’shimcha ilovalar bilan bo’lingan. Tanlab
olingan komponentaning kontekst menyusini unga sichqonchaning o’ng tugmasini
bosib ochish mumkin.
Bular ichidan OK yozuvli Button tugmasini, A yozuvli Label tugmasini
osonlik bilan topish mumkin.
Agar sahifada komponentalar juda ko’p bo’lsa, harakatlanuvchi tugmalar
orqali o’ng va chapga panelni harakatlantirish orqali barcha komponentalarni
ko’rishimiz mumkin. Barcha komponentalar biror nom yoki maxsus yorliq orqali
berilgan, agar sichqoncha kursorini yorliq ustiga oborsak shu komponenta nomi
paydo bo’ladi. E’tibor bergan bo’lsangiz, ko’pgina komponentalar to’rtburchak yoki
dumaloq shaklga ega. Ixtiyoriy komponentani formaga ikki xil yo’l bilan
joylashtirish mumkin. Komponenta ustida sichqonchani olib borib chap tugmasini
ikki marta bosilsa, mazkur komponenta forma markazida paydo bo’ladi. Ikkinchi
usul sichqoncha chap tugmasini komponenta ustida bir marta bosilib, siljitish bilan
formaga joylashtirish mumkin. Formaga joylashtirilgan komponentani formaning
ixtiyoriy qismiga siljitishimiz mumkin. Komponetaning o’lchamlarini sichqoncha
yordamida o’zgartirish mumkin. Formada turgan ixtiyoriy komponentani
aktivlashtirish
yoki
passivlashtirish
mumkin.
Aktivlashtirish
degani
shu
komponentaning ustida amal bajarish xususiyatini o’zgartirish imkoniyatini beradi,
buning uchun, mazkur komponentaning ustida sichqoncha tugmasini bosish kifoya.
Aktivlik belgisi shu komponentani boshqalaridan ajralib, belgilanib ko’rinib turadi.
Buni ob’ektlar inspektoridan ham ko’rish mumkin. Sichqoncha yordamida
tanlangan komponentani formadan o’chirib tashlash ham mumkin.
Label
Shaklda tahrir qilib bo’lmaydigan statik matnning to’rtburchak sohasini aks
ettiradi. Odatda matn boshqa komponenta nomidan iborat bo’ladi.
Nom matni Text xususiyatining qiymatidir. Alignment xususiyati matnni
tekislash usulini aniqlaydi. Shrift o’lchami avtomatik tarzda sohaning maksimal
to’ldirilishiga mos kelishi uchun, AutoSize xususiyatining true qiymatini o’rnating.
Kalta soha ichida matnning hammasini ko’rish imkoniga ega bo’lish uchun,
WordWrap xususiyatiga true qiymatini bering. Transparent xususiyatiga true
qiymatini o’rnatsangiz, boshqa komponentaning bir qismini to’g’ri uning ustida
joylashtirilgan nom orasidan ko’rinib turadigan qilishingiz mumkin.
TextBox
Axborot yakka satrining tahrir qilinayotgan kiritishidagi to’rtburchak sohani
shaklda aks ettiradi. Tahrir sohasining ichidagi boshlang’ich narsalarni Text
xususiyatining qiymati bo’lgan satr aniqlaydi.
TextBox komponentasi TtextBox sinfining to’g’ridan-to’g’ri hosilasi bo’lib,
uning barcha xususiyatlari, metodlari va voqealariga vorislik qiladi.
Button
Yozuvli to’rtburchak tugmani yaratadi. Tugmacha bosilganda, dasturda birorbir hatti-harakat nomlanadi (initstiallashtiriladi).
Tugmachalar ko’proq dialogli darchalarda qo’llanadi. Default xususiyatining
true qiymati tomonidan tanlab olingan yashirin tugmacha, dialog darchasida har gal
enter klavishasi bosilganda OnClick voqea qayta ishlatgichini ishga tushiradi.
Cancel xususiyatining true qiymati tanlab olgan bekor qilish tugmachasi, dialog
darchasida har gal Escape klavishasi bosilganda, OnClick voqea qayta ishlatgichini
ishga tushiradi.
1- jadvaldagi topshiriqlarni bajarish uchun uslubiy ko’rsatmalar.
Visual C++ dasturining Windows Application muhitida ishla sh:
Masalaning qo’yilishi: Formada a[N][M] massiv elementlarini [-1000; 1000]
oraliqdagi tasodifiy sonlar bilan to’ldiring. N va M ni TextBox komponetalari
yordamida kiriting. Massivni dataGridWiew komponentasiga joylashtiring.
Massiv elementlaridan qiymati juft bo’lganlarining yig’indisini label
komponentasida chiqaring.
1-qadam. Yangi forma ochiladi.
1.7 – rasm. Yangi forma ochish oynasi.
2-qadam. Formaga 2 ta TextBox komponetalari (misoldagi N va M uchun)
joylashtiriladi;
3-qadam. Formaga 4 ta label komponetalari (misol berilishi, N , M lar va
natija uchun) joylashtiriladi va label Text xususiyatlari mos ravishda o’zgartirib
chiqiladi;
4-qadam. Formaga 1 ta dataGridWiew komponetasi (misoldagi N va M
o’lchovli massiv elementlarini chiqarish uchun) joylashtiriladi;
5-qadam. Formaga button tugmachasi joylashtiriladi va nomi o’zgartiriladi.
button1 tugmachasini 2 marta bosib, kodlar oynasida quyidagi kodlar teriladi:
#include "iostream"
#include "conio.h"
#include "stdlib.h"
#include "form2.h"
int g,s;
#pragma endregion
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e) {
int a[10][10];
s=0;
int n=Convert::ToInt32(textBox1->Text);
int m=Convert::ToInt32(textBox2->Text);
for(int i=0;i<n;i++){
if(g==0){dataGridView1->Rows->Add();}
for(int j=0;j<m;j++){
a[i][j]=rand()%2001-1000;
dataGridView1->Columns[j]- >HeaderText=(j+1).ToString()+" - ustun";
dataGridView1->Rows[i]->Cells[j]->Value =a[i][j].ToString();
if(a[i][j]%2==0){s+=a[i][j];}
}}
g+=1;
label4->Text="Juftlari yig'indisi= " + s.ToString();
}
Dastur natijasi quyidagi ko’rinishda bo’ladi:
1.8 – rasm. Dastur oynasi.
Download