Розробка програмного забезпечення
Програмна реалізація функцій для роботи з датою та часом. Створення інтерфейсу користувача стандартними подіями. Програми для роботи з глобальними ідентифікаторами Screen, Mouse, Application. Програми для роботи зі стандартними діалоговими компонентами.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | отчет по практике |
Язык | украинский |
Дата добавления | 17.03.2015 |
Размер файла | 1,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
ІМЕНІ ТАРАСА ШЕВЧЕНКА
ОПТИКО-МЕХАНІЧНИЙ КОЛЕДЖ
Циклова комісія спеціальних дисциплін спеціальності
5.05010301 «Розробка програмного забезпечення» та математики
ЗВІТ З НАВЧАЛЬНОЇ ПРАКТИКИ 2
зі спеціальності 5.05010301 «Розробка програмного забезпечення»
Студентки 3-го курсу групи ПР-31
Жидейкіної Наталії Анатоліївни
Керівник практики Іванов С.А.
КИЇВ 2015
Зміст
Практична робота 1 «Програми лінійної структури»
Практична робота 2 «Програми розгалуженої структури»
Практична робота 3 «Програмна реалізація функцій для роботи з датою та часом»
Практична робота 4 «Програма для роботи з візуальними компонентами керування»
Практична робота 5 «Програми циклічної структури»
Практична робота 7 «Програми для роботи з рядками даних»
Практична робота 8 «Створення інтерфейсу користувача cтандартними подіями»
Практична робота 9 «Програми для роботи з власними функціями»
Практична робота 10 «Програми для роботи зі структурами даних»
Практична робота 11 «Програми для роботи з файлами»
Практична робота 12 «Програми для роботи з графічної підсистемою»
Практична робота 13 «Програми для роботи з глобальними ідентифікаторами Screen, Mouse, Application»
Практична робота 14 «Програми для роботи зі стандартними діалоговими компонентами»
Практична робота 15 «Програма для роботи з аудіо- та
відео- файлами»
програма інтерфейс ідентифікатор діалоговий
Практична робота 1. Програми лінійної структури
Завдання 1.1
Дано значення температури TF в градусах Фаренгейта. Визначити значення тієї ж температури у гарадусах Цельсію TC = (TF - 32).
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
int _tmain(int argc, _TCHAR* argv[])
{
int tf,tc;
cout<<"tf=";
cin>>tf;
tc=(tf-32)*5/9;
cout<<"tc="<<tc<<endl;
system("pause");
return 0;
}
Завдання 1.2
Дано змінні A, B, C. Змінити їх значення, перемістивши вміст A у B, B у C, C у A. Вивести нові значення змінних.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
int _tmain(int argc, _TCHAR* argv[])
{
int A, B, C, D;
cout<<"A=";
cin>>A;
cout<<"B=";
cin>>B;
cout<<"C=";
cin>>C;
cout<<endl;
D=A;
A=C;
C=B;
B=D;
cout<<"A="<<A<<endl;
cout<<"B="<<B<<endl;
cout<<"C="<<C<<endl;
system("pause");
return 0;
}
Завдання 1.3
Знайти рішення (x, y) системи лінійних рівнянь виду:
заданої коефіцієнтами A1, B1, C1, A2, B2, C2, якщо відомо, що система має єдине рішення.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
int _tmain(int argc, _TCHAR* argv[])
{
double A1, B1, C1, A2, B2, C2, x, y;
cout<<"A1=";
cin>>A1;
cout<<"B1=";
cin>>B1;
cout<<"C1=";
cin>>C1;
cout<<"A2=";
cin>>A2;
cout<<"B2=";
cin>>B2;
cout<<"C2=";
cin>>C2;
cout<<endl;
y=(((A2*C1)-(A1*C2))/((B1*A2)-(B2*A1)));
x=((C1-(B1*y))/A1);
cout<<"x="<<x<<endl;
cout<<"y="<<y<<endl;
system("pause");
return 0;
}
Завдання 1.4
Дано три точки A, B, C на числовій вісі. Точки C розміщена між точками A і B. Знайти добуток довжин сторін AC і BC.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
#include "math.h"
#include "conio.h"
int _tmain(int argc, _TCHAR* argv[])
{
double Xa, Xb, Ya, Yb, Yc, Xc,D=0;
cout<<"Xa=";
cin>>Xa;
cout<<"Xb=";
cin>>Xb;
cout<<"(Xa<Xc<Xb)\nXc=";
cin>>Xc;
cout<<"Ya=";
cin>>Ya;
cout<<"Yb=";
cin>>Yb;
cout<<"(Ya<Yc<Yb)\nYc=";
cin>>Yc;
cout<<endl;
if((((Xa<Xc)&&(Xc<Xb))||((Xa>Xc)&&(Xc>Xb)))&&(((Ya<Yc)&&(Yc<Yb))||((Ya>Yc)&&(Yc>Yb))))
{ D=(sqrt(pow((Xc-Xa),2)+pow((Yc-Ya),2)))*(sqrt(pow((Xc-Xb),2)+pow((Yc-Yb),2))) ;
cout<<"D="<<D<<endl;
system("pause");}
else
{ cout<<"D="<<D<<endl;
system("pause"); }
return 0;
}
Практична робота 2 Програми розгалуженої структури
Завдання 2.1
Дано тризначне число. Перевірити істинність висловлювання: «Всі цифри даного числа різні».
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
int _tmain(int argc, _TCHAR* argv[])
{
int num;
cout<<"write three-digit number\nnumber=";
cin>>num;
if((num>99)&&(num<1000))
{
if (((num/100)!=((num/10)%10))&&((num/100)!=((num%10)%10))&&(((num/10)%10)!=((num%10)%10)))
{
cout<<"three-digit number includ different numbers\n";
}
else
cout<<"three-digit number includ same numbers\n" ;
}
else
cout<<"you write wrong number";
system("pause");
return 0;
}
Завдання 2.2
Дано ціле число, яке лежить в діпазоні 1-999. Винести його рядок - опис виду «парне двозночне число», «непарне тризначне число» і т.д.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
int _tmain(int argc, _TCHAR* argv[])
{
int num;
bool b=true;
cout<<"write number in the range from 1 to 999 \nnumber=";
cin>>num;
if((num>0)&&(num<10))
{cout<<"One-digit ";}
else
{ if((num>9)&&(num<100))
{cout<<"Two-digit ";}
else
{ if (((num>99)&&(num<1000)))
{cout<<"Three-digit ";}
else
{cout<<"you write wrong number\n";b=false;}
}
}
if (b)
{
if (num%2==0)
{ cout<<"pair number\n";}
else
{ cout<<"unpair number\n";}
}
system("pause");
return 0;
}
Практична робота 3 Програмна реалізація функцій для роботи з датою та часом
Завдання 3.1
Використовуючи класс TDateTime (оголошенийв модулі systdate.h) розробіть застосування для роботи з датою і часом, яке демонструватиме всі можливі операції над ними.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "systdate.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TDateTime DateTime = TDateTime::CurrentDateTime();
int week=DateTime.DayOfWeek();
switch(week)
{
case 1:{Label1->Caption ="monday"; break;}
case 2:{Label1->Caption ="tuesday"; break;}
case 3:{Label1->Caption ="wednesday"; break;}
case 4:{Label1->Caption ="thursday"; break;}
case 5:{Label1->Caption ="friday"; break;}
case 6:{Label1->Caption ="saturday"; break;}
case 7:{Label1->Caption ="sunday"; break;}
}
Label2->Caption ="DateTime "+DateTime.DateTimeString();
Label3->Caption ="Date "+DateTime.DateString();
Label4->Caption ="Time "+DateTime.TimeString();
DateTime = TDateTime::FileDateToDateTime(FileAge(Application->ExeName));
Label5->Caption = "data and time of file: " + DateTime.DateTimeString();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Application->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
TCursor OldCursor = Screen->Cursor;
Screen->Cursor = crHourGlass;
TDateTime StartDateTime = TDateTime::CurrentDateTime();
for(int i = 0; i < 500000; i++)
{
TDateTime(TDateTime::CurrentDateTime().DateTimeString());
Application->ProcessMessages();
}
TDateTime EndDateTime = TDateTime::CurrentDateTime();
Screen->Cursor = OldCursor;
Label6->Caption = (EndDateTime - StartDateTime).TimeString();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
static TDateTime DateTime = TDateTime::CurrentDateTime();
Label7->Caption = (DateTime++).DateTimeString();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
static TDateTime DateTime = TDateTime::CurrentDateTime();
Label8->Caption =(DateTime += 1.125).DateTimeString();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{ String TimeFormat, DateFormat;
if(CheckBox1->Checked)
DateFormat = "dddddd ";
else
DateFormat = "ddddd ";
if(CheckBox2->Checked)
TimeFormat = "hh:nn:ss";
else
TimeFormat = "hh:nn";
Label9->Caption = TDateTime::CurrentDateTime().FormatString(DateFormat+TimeFormat);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
if(CheckBox1->Checked)
Label9->Caption = TDateTime::CurrentDateTime().FormatString("dddddd:hh:nn");
else
Label9->Caption = TDateTime::CurrentDateTime().FormatString("ddddd:hh:nn");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox2Click(TObject *Sender)
{
if(CheckBox2->Checked)
Label9->Caption = TDateTime::CurrentDateTime().FormatString("dd.mm.yy.hh:nn:ss");//TimeFormat = "hh:nn:ss";
else
Label9->Caption = TDateTime::CurrentDateTime().FormatString("dd.mm.yy.hh:nn");// TimeFormat = "hh:nn";
}
Практична робота 4 Програма для роботи з візуальними компонентами керування
Завдання 4.1
За допомогою 2-х контейнерів Panel поділіть простір форми на дві частини (головна та нижня) з прив`язкою до її границь. На головній частині розмістіть кнопку Button. На нижній частині розиістіть компонент TrackBar. При зміні позицій «повзунка» TrackBar реалізуйте можливість зміни прозорості форми. При наведенні миші на кнопку Button реалізуйте можливість зміни її положення відносно форми з нможливістю виходу за межі форми.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::TrackBar1Change(TObject *Sender)
{
Form2->AlphaBlendValue=TrackBar1->Position;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
int t=Panel1->Height - Button1->Height;
int t2=Panel1->Width - Button1->Width;
Button1->Top=rand()%t;
Button1->Left=rand()%t2;}
Практична робота 5 Програми циклічної структури
Завдання 5.1
Дано два цілі числа A і B (A<B). Вивести в порядку зростання всі цілі числа, розташовані між A I B(включаючисамі числа A і B), а також кількість N цих чисел.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
int _tmain(int argc, _TCHAR* argv[])
{
long A=0, B=0, N=0; bool boolean=true;
cout<<"A<B\nA=";
cin>>A;
cout<<"B=";
cin>>B;
if(A<B)
for(;A<=B;A++)
{
cout<<A<<" ";
N++;
}
else
{cout<<"Error: A>B";boolean = false;}
cout<<endl;
if (boolean)
{
cout<<"N="<<N<<"\n";
}
system("pause");
return 0;
}
Завдання 5.2
1.Обчислити значення змінної z = . Вивести значення a, b, z.
a =
де k - кількість інтерацій.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
#include "math.h"
double f1(double k)
{
double f=0;
f=(((cos((2.1*k))*sin(abs(k)))/0.15)-5.8);
return f;
}
double f2(double k)
{
double f=0;
f=abs(((sin(k))/(3.12))+cos(pow(k,2)));
return f;
}
int _tmain(int argc, _TCHAR* argv[])
{
double a=0,b=0,z=0;
int k=0;
cout<<"k=";
cin>>k;
for(int i=0;i<=k;i+=2)
{
a=f1(i);
if(i%8==0)
b=f2(i);
z=abs((12*a)-b);
}
cout<<"b="<<b<<"\na="<<a<<"\nz="<<z<<endl;
system("pause");
return 0;
}
Завдання 5.3
Спортсмен почав тренерування, пробіг у перший день 10 км. Кожен наступний день він збільшував довжину пробігу на Р відсотків від пробігу попереднього дня (0 < P < 50). За заданим Р визначити, після якого дня сумарний пробіг спортсмена за всі дні перевищить 200 км, і вмвести знайдену кількість днів К та сумарний пробіг S на екран.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
int _tmain(int argc, _TCHAR* argv[])
{
int P=0,K=1; double S=10;
cout<<"(0<P<50)\nP=";
cin>>P;
if((0<P)&&(P<50))
{
for(;S<=200;++K)
S+=P*(S/100);
cout<<"S="<<S<<" K="<<K<<"\n";
system("pause");
}
return 0;
}
Завдання 5.4
Написати програму, яка обчислить суму і середнє арифметичне послідовності додатних чисел, яка вводиться з клавіатури до тих пір, доки не буде введено нуль.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
int _tmain(int argc, _TCHAR* argv[])
{
int sum=0,number=0,i=1; double sr=0;
cout<<"number=";
cin>>number;
do
{
sum+=number;
sr=sum/i;
cout<<"sum="<<sum<<" sr="<<sr<<endl;
cout<<"number=";
cin>>number;
i++;
}
while(number!=0);
system("pause");
return 0;
}
Завдання 5.5
Написати порграму, якаперевіряє, чи є введене користувачем число простим.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
int _tmain(int argc, _TCHAR* argv[])
{
int number=0;
bool boolean=true;
cout<<"number=";
cin>>number;
for (int i = 2; i < number; i++)
{
if((number%i!=0)&&(number!=2)&&(number!=0))
{
cout<<"number is not prime\n";
boolean=false;
break;
}
}
if(boolean)
{ cout<<"number is prime";}
system("pause");
return 0;
}
Практична робота 6 Програми для роботи з масивами даних
Завдання 6.1
Дано масив з N цілих чисел. Написати програму, яка змінить масив таким чином, щоб спочатку розміщювались всі числа, що не дорівнюють нулю, а в кінці нулі.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
#include "string.h"
int _tmain(int argc, _TCHAR* argv[])
{
int n=0,N=0;
cout<<"n=";
cin>>n;N=n;
int mas[1000];
for(int i=0;i<n;i++)
{
cout<<"mas["<<i<<"]=";
cin>>mas[i];
}
cout<<endl;
for(int i=0;i<n;i++)
{
if(mas[i]==0)
{
for(int l=i;l<n;l++)
{
mas[l]=mas[l+1];
} mas[n-1]=0;--n;
}
}
for(int i=0;i<N;i++)
{
cout<<"mas["<<i<<"]="<<mas[i]<<endl;
//cin>>mas[i];
}
system("pause");
return 0;
}
Завдання 6.2
Написати програму, яка в цілочисленому масиві знайде і виведе на екран розмір найдовшої послідовності однакових чисел, що йдуть підряд, а також це повторюване число.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
int _tmain(int argc, _TCHAR* argv[])
{
int n=0,I=1,MAX=0,NUMBER;
cout<<"n=";
cin>>n;
int mas[1000];
for(int i=0;i<n;i++)
{
cout<<"mas["<<i<<"]=";
cin>>mas[i];
}
cout<<endl;
NUMBER=mas[0];
for(int i=1;i<n;i++)
{
if(mas[i]==mas[i-1])
{I++;}
else
{if(I>=MAX)
{
MAX=I;
NUMBER=mas[i-1];
I=0;
}
else
{I=0;}
}
}
cout<<"NUMBER="<<NUMBER<<" MAX="<<MAX<<endl;
system("pause");
return 0;
}
Завдання 6.3
Дано дві квадратні матриці A розміром NxK MxK. Обчислити матрицю C за формулою: C = 8B *A*B - A - B4
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
#include "conio.h"
int _tmain(int argc, _TCHAR* argv[])
{
int k;
short A[100][100];
short B[100][100];
long B28[100][100];
long AB28[100][100];
long B2[100][100];
long B4[100][100];
long C[100][100];
long AB4[100][100];
cout<<"A:\n";
{ for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
randomize;
A[i][j]=rand()%10;
cout<<A[i][j]<<" ";
// cout<<"A["<<i<<"]["<<j<<"]=";
// cin>>A[i][j];
}cout<<endl;
} cout<<"\n";
cout<<"B:\n";
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
//cout<<"B["<<i<<"]["<<j<<"]=";
// cin>>B[i][j];
randomize;
B[i][j]=rand()%10;
cout<<B[i][j]<<" ";
}cout<<endl;
} system("pause");
}
cout<<"B2:\n";
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{k=0;
for(int t=0;t<5;t++)
{
k+= B[i][t]*B[t][j];
} B2[i][j]=k; cout<< B2[i][j]<<" ";
} } cout<<endl;
cout<<"B28:\n";
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
B28[i][j]=B2[i][j]*8; cout<< B28[i][j]<<" ";
} cout<<"\n\n";
}
cout<<"AB28:\n";
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{k=0;
for(int t=0;t<5;t++)
{
k+= A[i][t]*B28[t][j];
} AB28[i][j]=k; cout<< AB28[i][j]<<" ";
} cout<<endl;
}
cout<<endl;
cout<<endl;cout<<"B4:\n";
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{k=0;
for(int t=0;t<5;t++)
{
k+= B2[i][t]*B2[t][j];
} B4[i][j]=k; cout<< B4[i][j]<<" ";
} cout<<endl;
}
cout<<endl; cout<<"AB2:\n";
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{k=0;
for(int t=0;t<5;t++)
{
k+= A[i][t]*B4[t][j];
} AB4[i][j]=k; cout<< AB4[i][j]<<" ";
}} cout<<endl;cout<<"C:\n";
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
C[i][j]= AB28[i][j]-AB4[i][j];
cout<< C[i][j]<<" ";
} cout<<endl;
}
cout<<endl;
system("pause");
return 0;}
Практична робота 7 Програми для роботи з рядками даних
Завдання 7.1
Написати програму, яка буде виводити повідомлення в телеграфному стилі: букви повинні з'являтися по одній, з деякою затримкою.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
#include "string.h"
#include "windows.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{ char ch[]="";
cout<<"St=";
gets(ch);
int n = strlen(ch);
for(int i=0;i<=n;i++)
{
cout<<ch[i]<<" ";
Sleep(200);
}cout<<"\n";
system("pause");
return 0;}
Завдання 7.2
Написати програму, яка вичислить значення виразу N1O1N2O2…OkNk, где N - ціле однорозрядне число, O - один із знаків найпростіших арифметичних дій: додавання і віднімання.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
#include "string.h"
#include "windows.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char St[100];
cout<<"(write number from 1 to 9 or + or -)\nSt=";
int i=0;
int n=0;
cin>>St;
n=strlen(St);
int s =atoi(&St[0]);
for(int l=1;l<=n;l++)
{
switch(St[l])
{
case'+':{s+=atoi(&St[l+1]);i++;break;}
case'-':{s-=atoi(&St[l+1]);i++;break;}
}}
cout<<"s="<<s<<endl;
system("pause");
return 0;
}
Практична робота 8 Створення інтерфейсу користувача стандартними подіями
Завдання 8.1
Використовуючи компоненти ToolBar, ControlBar, PageScroller та ActionList (або Ribbon та ActionManager) створіть текстовий редактор «WordPad».
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
#include <vcl.h>
#pragma hdrstop
#include "Urichedit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
/* TODO 2 -oСидоров -cКод : Главное меню */
void __fastcall TForm1::MOpenClick(TObject *Sender)
{if (OpenDialog1->Execute())
{FName = OpenDialog1->FileName;
RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
RichEdit1->Modified = false;}}
//---------------------------------------------------------------------------
void __fastcall TForm1::MSaveAsClick(TObject *Sender)
{SaveDialog1->FileName = FName;
if (SaveDialog1->Execute())
{FName = OpenDialog1->FileName;
RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);
RichEdit1->Modified = false; }}
//---------------------------------------------------------------------------
void __fastcall TForm1::MFontClick(TObject *Sender)
{FontDialog1->Font->Assign(RichEdit1->SelAttributes);
if (FontDialog1->Execute())
RichEdit1->SelAttributes->Assign(FontDialog1->Font);}
//---------------------------------------------------------------------------
void __fastcall TForm1::MNumbClick(TObject *Sender)
{MNumb->Checked = ! MNumb->Checked;
if (MNumb->Checked) RichEdit1->Paragraph->Numbering = nsBullet;
else RichEdit1->Paragraph->Numbering = nsNone;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MLeftClick(TObject *Sender)
{MLeft->Checked = true;
RichEdit1->Paragraph->Alignment = taLeftJustify;}
//---------------------------------------------------------------------------
void __fastcall TForm1::MRightClick(TObject *Sender)
{MRight->Checked = true;
RichEdit1->Paragraph->Alignment = taRightJustify;}
//---------------------------------------------------------------------------
void __fastcall TForm1::MCenterClick(TObject *Sender)
{MCenter->Checked = true;
RichEdit1->Paragraph->Alignment = taCenter;}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{RichEdit1->Paragraph->FirstIndent = 0;
RichEdit1->Paragraph->LeftIndent = - RichEdit1->Paragraph->FirstIndent;
RichEdit1->Modified = false; }
//---------------------------------------------------------------------------
void __fastcall TForm1::DisplayHint(TObject *Sender)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::StatusExecute(TObject *Sender)
{
StatusBar1->Panels->Items[0]->Text =
IntToStr((int)RichEdit1->CaretPos.y+1) +
": "+IntToStr((int)RichEdit1->CaretPos.x+1);
if (RichEdit1->Modified)
StatusBar1->Panels->Items[1]->Text = "модиф.";
else StatusBar1->Panels->Items[1]->Text = "";
switch (RichEdit1->Paragraph->Alignment)
{
case taLeftJustify: TBLeft->Down = true;
break;
case taCenter: TBCenter->Down = true;
break;
case taRightJustify: TBRight->Down = true;
break; }}
//---------------------------------------------------------------------------
void __fastcall TForm1::RichEdit1KeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
StatusExecute(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RichEdit1MouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
StatusExecute(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{StatusExecute(Sender);}
//---------------------------------------------------------------------------
void __fastcall TForm1::MSaveClick(TObject *Sender)
{ if (FName != "")
RichEdit1->Lines->SaveToFile(FName);
else MSaveAsClick(Sender); }
//---------------------------------------------------------------------------
void __fastcall TForm1::FontDialog1Apply(TObject *Sender, HWND Wnd)
{ RichEdit1->SelAttributes->Assign(FontDialog1->Font); }
//---------------------------------------------------------------------------
void __fastcall TForm1::MFindClick(TObject *Sender)
{ FindDialog1->FindText = RichEdit1->SelText;
FindDialog1->Execute();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FindDialog1Find(TObject *Sender)
{
int FoundAt, StartPos, ToEnd;
TSearchTypes Option;
TReplaceDialog *dlg = (TReplaceDialog *)Sender;
if (dlg->Options.Contains(frWholeWord))
Option << stWholeWord;
else Option >> stWholeWord;
if (dlg->Options.Contains(frMatchCase))
Option << stMatchCase;
else Option >> stMatchCase;
FoundAt = RichEdit1->FindText(dlg->FindText,
StartPos, ToEnd, Option);
if (FoundAt != -1)
{ RichEdit1->SelStart = FoundAt;
RichEdit1->SelLength = dlg->FindText.Length();
if ((dlg->Name == "ReplaceDialog1")&&(dlg->Options.Contains(frReplaceAll)))
ReplaceDialog1Replace(Sender); }
else ShowMessage("Текст '" + dlg->FindText +
"' не найден");
RichEdit1->SetFocus(); }
//---------------------------------------------------------------------------
void __fastcall TForm1::MCopyClick(TObject *Sender)
{ RichEdit1->CopyToClipboard(); }
//---------------------------------------------------------------------------
void __fastcall TForm1::MCutClick(TObject *Sender)
{RichEdit1->CutToClipboard();}
//---------------------------------------------------------------------------
void __fastcall TForm1::MPasteClick(TObject *Sender)
{RichEdit1->PasteFromClipboard();}
//---------------------------------------------------------------------------
void __fastcall TForm1::MUndoClick(TObject *Sender)
{RichEdit1->Undo();}
//---------------------------------------------------------------------------
void __fastcall TForm1::ReplaceDialog1Replace(TObject *Sender)
{ RichEdit1->SetFocus();
if (RichEdit1->SelText != "")
{RichEdit1->SelText = ReplaceDialog1->ReplaceText;
if (ReplaceDialog1->Options.Contains(frReplaceAll))
RichEdit1->SelStart += ReplaceDialog1->ReplaceText.Length();}
else if (ReplaceDialog1->Options.Contains(frReplace))
{ShowMessage("Текст '" + ReplaceDialog1->FindText +
"' не найден");
return;}
if (ReplaceDialog1->Options.Contains(frReplaceAll))
FindDialog1Find(Sender);}
//---------------------------------------------------------------------------
void __fastcall TForm1::MReplaceClick(TObject *Sender)
{ ReplaceDialog1->FindText = RichEdit1->SelText;
ReplaceDialog1->Execute();}
//---------------------------------------------------------------------------
void __fastcall TForm1::MExitClick(TObject *Sender)
{Close();}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{if (RichEdit1->Modified)
{int res = MessageDlg("Текст в окне был изменен. Сохранить его?",
mtConfirmation,
TMsgDlgButtons() << mbYes<< mbNo << mbCancel,0);
switch (res)
{case mrYes: MSaveClick(Sender);break;
case mrCancel: CanClose = false; }}}
//---------------------------------------------------------------------------
void __fastcall TForm1::MCreateClick(TObject *Sender)
{if (RichEdit1->Modified)
{int res = MessageDlg("Текст в окне был изменен. Сохранить его?",
mtConfirmation,
TMsgDlgButtons() << mbYes<< mbNo << mbCancel,0);
switch (res)
{
case mrYes: MSaveClick(Sender);
break;
case mrCancel: return;
}
}
RichEdit1->Clear();
FName = "";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MPrintSetupClick(TObject *Sender)
{
PrinterSetupDialog1->Execute();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MPrintClick(TObject *Sender)
{
if (PrintDialog1->Execute())
for (int i = 1; i <= PrintDialog1->Copies; i++)
RichEdit1->Print("Печать PRichEdit1");
}
void __fastcall TForm1::ApplicationEvents1Hint(TObject *Sender)
{
StatusBar1->Panels->Items[2]->Text = Application->Hint;
}
Практична робота 9 Програми для роботи з власними функціями
Завдання 9.1
Написати програму з використання функції, яка визначає яке з двох введених чисел має максимальну суму чисел.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
int f1(int num1)
{
int sum1=0,sum2=0;
do
{
sum1+=num1%10;
num1=num1/10;
// cout<<"sum1="<<sum1<<"\n";
}
while((num1)>=1);
return sum1;
}
int _tmain(int argc, _TCHAR* argv[])
{
int first_num=0,second_num=0,s1=0,s2=0;
cout<<"first_num=";
cin>>first_num;
cout<<"second_num=";
cin>>second_num;
s1=f1(first_num);
s2=f1(second_num);
//bolean=f1(first_num,second_nim);
if(s1<s2)
{ cout<<"first sum is less then second\n";}
else
{cout<<"first sum is more then second\n";}
system("pause");
return 0;
}
Завдання 9.2
Є три стержня з номерами 1, 2,3. На першому стержні є n дисків різного діаметра, які утворюють піраміду. Написати програму переміщень дисків зі стержня 1 на стержень 2, використовуючи допоміжний стержень 3. Диск більшого діаметру не повинен переміщатися на диск меньшого.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
#include "conio.h"
// int n=0;
// cin>>n;
int _tmain(int argc, _TCHAR* argv[])
{
int n=0,i=0,j,l=0,per=0;
cin>>n;
int mas1[100];
int mas2[100];
int mas3[100];
for(i=0,j=0;i<n;j+=2,i++)
// for(int j=0;j<n*2;j+=2)
{
// randomize;
mas1[i]=j;
cout<<mas1[i]<<" ";
}
cout<<endl;i-=2;
for(l=0;l<n-1;l++)
{
mas3[l]=mas1[(n-1)-l];
cout<<mas3[l]<<" "; per++;
} cout<<endl;
mas2[0]=mas1[0];per++;
cout<<mas2[0]<<" ";
for(i=1,j=n-2;i<n;j--,i++)
{ mas2[i]=mas3[j];
cout<<mas2[i]<<" ";
per++;
} cout<<"per="<<per<<endl;
system("pause");
return 0;
}
Практична робота 10 Програми для роботи зі структурами даних
Завдання 10.1
Використовуючи масив типу структура (з 6-10 елементів) скласти програму, за допомогою якої можна ввести у пам'ять комп'ютера дані з предметної області «Продовольчий магазин» і відібрати товари, вартість яких меньша 10 грн. В кожній предметній області мають бути присутні обчислювальні поля.
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
#include "string.h"
#include "stdlib.h"
struct str
{ double data;
char product_name[10];
double price;
int id_num;
char seller[10];
double tax;
}strc[10];
int _tmain(int argc, _TCHAR* argv[])
{
str strc[10];
int mas[100],j=0;
int n=0;
cout<<"n=";
cin>>n;
for(int i = 0; i<n;i++)
{
randomize;
strc[i].data=rand()%30;
cout<<"strc.product_name["<<i<<"]=";
cin>>strc[i].product_name;
cout<<"strc.price["<<i<<"]=";
cin>>strc[i].price;
if( strc[i].price<10)
{
mas[j]=i;j++;
}
strc[i].id_num = rand()%100;
strcpy(strc[i].seller,"seller");
strc[i].tax=20*(strc[i].price/100);
} cout<<endl;
for(int l = 0;l<j;l++ )
{ cout<<"data"<<strc[l].data<<" ";
cout<<"product_name["<<l<<"]="<<strc[l].product_name<<" ";
cout<<"price="<<strc[l].price<<" ";
cout<<"id="<<strc[l].id_num<<" ";
cout<<"seller="<<strc[l].seller<<" ";
cout<<"tax="<<strc[l].tax<<" ";
cout<<endl;
}
system("pause");
return 0;
}
Практична робота 11 Програми для роботи з файлами
Завдання 11.1
Модифікувати програму завдання 1 практичної роботи 6 таким чином, щоб значення зчитувалися з текстового файлу, а результат обчислень записувався у файл. (Реалізувати два варіанти роботи з файлами, за допомогою компонентів вкладки Dialogs (візуальний режим роботи програми) та а допомогою директив ifstream.h, ofstream.h (консольний режим роботи програми)).
Візуальний режим роботи програми:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{ Memo1->Clear();
if(OpenDialog1 -> Execute())Memo1->Lines->LoadFromFile(OpenDialog1->FileName) ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int n,i=0,j=0;
n = Memo1->Lines->Count;
Memo2->Clear();
for (i = 0; i<n; i++)
{
if(Memo1->Lines->Strings[i]=="0")
{j++;}
else
{ Memo2->Lines->Add(Memo1->Lines->Strings[i]);}
}
for(i=0;i<j;i++)
{ Memo2->Lines->Add(0);}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
if(SaveDialog1 -> Execute())Memo2->Lines->SaveToFile(SaveDialog1->FileName);
}
//---------------------------------------------------------------------------
Консольнй режим:
#pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include "iostream.h"
#include <fstream>
int _tmain(int argc, _TCHAR* argv[])
{
int n=0,i=0,j=0;
//float a;
int *mas = new int[100];
fstream F;
F.open("D:\\input.txt");
if (F)
{
while (!F.eof())
{
F>>mas[i];
i++;
} n=--i;
F.close();
fstream fl(ios_base::trunc);
fl.open("D:\\output.txt",ios_base::app);
for (i=0;i<=n;i++)
{
if(mas[i]!=0)
{fl<<mas[i];
fl<<" ";}
else j++;
}
while(j!=0)
{fl<<0;j--;}
fl.close();
}
else cout<<" fale is missed "<<endl;
return 0;
}
Практична робота 12 Програми для роботи з графічної підсистемою
Задання 12.1
Користуючись компонентами мови програмування С++ написати програму для виведення на екран наступних фігур.
Розміри: Фігура 1 =101, Фігура 2 = 87, Фігура 3 = 89, Координати Х, У=30,50.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double a = 101;
double x =50;
double y =30;
PaintBox2 -> Repaint();
PaintBox3 -> Repaint();
PaintBox1 -> Canvas-> Rectangle(x,y,a+x,a+y);
PaintBox1 -> Canvas-> MoveTo(x,y);
PaintBox1 -> Canvas-> LineTo(a+x,a+y);
PaintBox1 -> Canvas-> MoveTo(a+x,y);
PaintBox1 -> Canvas-> LineTo(a-x,a+y);
PaintBox1 -> Canvas-> MoveTo((a/2)+x,y);
PaintBox1 -> Canvas-> LineTo((a/2)+x,a+y);
PaintBox1 -> Canvas-> MoveTo(a+x,(a/2)+y);
PaintBox1 -> Canvas-> LineTo(x,(a/2)+y);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
double a = 87;
double b =a/3;
double x =50;
double y =30;
PaintBox1 -> Repaint();
PaintBox3 -> Repaint();
PaintBox2 -> Canvas-> MoveTo(x,(a/4)+y);
PaintBox2 -> Canvas-> LineTo(b+x,(a/4)+y);
PaintBox2 -> Canvas-> MoveTo(x,(a/2)+y);
PaintBox2 -> Canvas-> LineTo(b+x,(a/2)+y);
PaintBox2 -> Canvas-> MoveTo(x,(a*0.75)+y);
PaintBox2 -> Canvas-> LineTo(b+x,(a*0.75)+y);
PaintBox2 -> Canvas-> Rectangle(b+x,y,b*2+x,a+y);
PaintBox2 -> Canvas-> MoveTo(b*2+x,(a/2)+y);
PaintBox2 -> Canvas-> LineTo(a+x,(a/2)+y);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{double a =89;
double x =50;
double y =30;
PaintBox1 -> Repaint();
PaintBox2 -> Repaint();
PaintBox3 -> Canvas-> MoveTo(x,(a/4)+y);
PaintBox3 -> Canvas-> LineTo(x+(a/3),(a/4)+y);
PaintBox3 -> Canvas-> MoveTo(x+(2*a/3),(a/4)+y);
PaintBox3 -> Canvas-> LineTo(x+a,(a/4)+y);
PaintBox3 -> Canvas-> MoveTo(x+(a/3),y);
PaintBox3 -> Canvas-> LineTo(x+(a/3),(a/2)+y);
PaintBox3 -> Canvas-> MoveTo(x+(2*a/3),y);
PaintBox3 -> Canvas-> LineTo(x+(2*a/3),(a/2)+y);
}
//---------------------------------------------------------------------------
Завдання 12.2
Підготувати програму на мові С++ для виведення на екран двох рядків тексту:
Software development
<Your name and surname>
Рядки вказаного тексту надрукувати двома гарнітурами, для кожної з яких задати два різних кеглі з наступними кутами нахилу відносно горизонтальної вісі: 00, 900.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
PaintBox1 -> Canvas -> Rectangle(0,0,200,100);
PaintBox1 -> Canvas -> Font -> Size = 10;
PaintBox1 -> Canvas -> Font -> Name= "Arial";
PaintBox1 -> Canvas -> TextOutW(2,2,"Software development");
PaintBox1 -> Canvas -> Font -> Size = 15;
PaintBox1 -> Canvas -> Font -> Name= "Times New Roman";
PaintBox1 -> Canvas -> TextOutW(2,22,"Zhideikina Nata");
}
//---------------------------------------------------------------------------
Завдання 12.3
Написати програму для побудови на екрані наступних фігур:
#include <vcl.h>
#pragma hdrstop
#define PI 3.1415926535897932
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{double a = 50;
PaintBox1 -> Canvas ->MoveTo(100,100);
PaintBox1 -> Canvas ->LineTo(100-a*sin(36*PI/180),100-a*cos(36*PI/180));
PaintBox1 -> Canvas ->LineTo(100-a*sin(36*PI/180)+a*sin(72*PI/180),100-a*cos(36*PI/180)-a*cos(72*PI/180));
PaintBox1 -> Canvas ->LineTo(100+a+a*sin(36*PI/180),100-a*cos(36*PI/180));
PaintBox1 -> Canvas ->MoveTo(100,100);
PaintBox1 -> Canvas ->LineTo(100+a,100);
PaintBox1 -> Canvas ->LineTo(100+a+a*sin(36*PI/180),100-a*cos(36*PI/180));
PaintBox1 -> Canvas ->LineTo(100+a+a*sin(36*PI/180)+a*sin(36*PI/180),100-a*cos(36*PI/180)+a*cos(18*PI/180));
PaintBox1 -> Canvas ->LineTo(100+a+(a*sin(18*PI/180))+a*sin(72*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180));
PaintBox1 -> Canvas ->MoveTo(100+a,100);
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180)),100+a*(cos(18*PI/180)));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))+a*sin(72*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))+a*sin(72*PI/180)-a*sin(36*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180)+a*cos(36*PI/180));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180)),100+a*(cos(18*PI/180))+(a*sin(36*PI/180))+a);
PaintBox1 -> Canvas -> MoveTo(100+a+(a*sin(18*PI/180)),100+a*(cos(18*PI/180)));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180)),100+a*(cos(18*PI/180))+(a*sin(36*PI/180)));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180)),100+a*(cos(18*PI/180))+(a*sin(36*PI/180))+a);
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180))-a*cos(18*PI/180),100+a*(cos(18*PI/180))+(a*sin(36*PI/180))+a-a*sin(18*PI/180));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-2*(a*cos(36*PI/180))-a*sin(72*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180));
PaintBox1 -> Canvas -> MoveTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180)),100+a*(cos(18*PI/180))+(a*sin(36*PI/180)));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-2*(a*cos(36*PI/180)),100+a*(cos(18*PI/180)));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-2*(a*cos(36*PI/180))-a*sin(72*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180));
PaintBox1 -> Canvas -> LineTo(100-a*sin(36*PI/180)-a*sin(36*PI/180),100-a*cos(36*PI/180)+a*cos(18*PI/180));
PaintBox1 -> Canvas -> LineTo(100-a*sin(36*PI/180),100-a*cos(36*PI/180));
PaintBox1 -> Canvas -> MoveTo(100+a+(a*sin(18*PI/180))-2*(a*cos(36*PI/180)),100+a*(cos(18*PI/180)));
PaintBox1 -> Canvas -> LineTo(100,100);}
//---------------------------------------------------------------------------
Практична робота 13 Програми для роботи з глобальними ідентифікаторами Screen, Mouse, Application
Завдання 13.1
Створити застосування, яке:
Користуючись глобальним об'єктом Screen при своєму завантаженні використовуватиме перевірку розміра екрана монітору і при перевищені формою цього розміру автоматично прирівнюватиме до нього, а також виводитиме у компонент ComboBox1 список всіх шрифтів даного комп'ютера.
Користуючись глобальним об'єктом Mouse у StatusBar виводити поточні координати курсора миші відносно форми та екрану, а також при натисканні на кнопку використовуватиме реверсну зміну кнопок миші.
Користуючись властивостями компоненту ApplicationEvents при наведені мишею на будь-якийкомпонент на формі у StatusBar виводився текст підказки закладений у властивість Hint кожного компонента.
При натисненні клавіші Num Lock, Caps Lock та Insert вивести у Statusbar стан кнопок.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
this->Width = this->Width > Screen->Width ? Screen->Width : this->Width;
this->Height = this->Height > Screen->Height ? Screen->Height : this->Height;
ComboBox1->Items->Assign(Screen->Fonts);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{POINT pos;
GetCursorPos(&pos);
StatusBar1->Panels->Items[0]->Text = "Экран: x=" + FloatToStr(pos.x) + " y=" + FloatToStr(pos.y);
StatusBar1->Panels->Items[1]->Text = "\nФорма: x=" + FloatToStr(pos.x-Left) + \
" y=" + FloatToStr(pos.y-Top);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
static bool b( false );
SwapMouseButton( b = !b );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1ActionExecute(TBasicAction *Action, bool &Handled)
{ StatusBar1->Panels->Items[2]->Text = Application->Hint;}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
{
switch (Key)
{
case VK_CAPITAL:
StatusBar1->Panels->Items[3]->Text = (::GetKeyState(VK_CAPITAL)) ? "CapsLock" : "bbb";
break;
case VK_NUMLOCK:
StatusBar1->Panels->Items[3]->Text = (::GetKeyState(VK_NUMLOCK)) ? "NumLock" : "bbb";
break;
case VK_SCROLL:
StatusBar1->Panels->Items[3]->Text = (::GetKeyState(VK_SCROLL)) ? "ScrollLock" : "bbb";
break;
}
}
//---------------------------------------------------------------------------
Практична робота 14 Програми для роботи зі стандартними діалоговими компонентами
Завдання 14.1
За допомогою компонентів FontDialog, PrintDialog, PrintSetupDialog реалізувати підтримку форматованого тексту в компоненті RichEdit з можливістю друку його вмісту.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::N1Click(TObject *Sender)
{ if ( PrintDialog1->Execute()) {
Printer()->BeginDoc();
for(int i = 0;i<RichEdit1->Lines->Count;i++)
Printer()->Canvas->TextOut(100,100+(RichEdit1->Font->Size+80)*i,RichEdit1->Lines->Strings[0]) ;
Printer()->EndDoc(); }}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
PrinterSetupDialog1->Execute();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
if(FontDialog1 -> Execute()) RichEdit1->Font = FontDialog1->Font ;
}
//---------------------------------------------------------------------------
Практична робота 15 Програма для роботи з аудіо- та відео- файлами
Завдання 15.1
Створити застосування, яке програватиме аудіо- та відео- файли. Файли завантажуються в програму за допомогою компонента TOpenDialog.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
MediaPlayer1->Close();
if(OpenDialog1->Execute()) {
MediaPlayer1->FileName = OpenDialog1->FileName;
MediaPlayer1->Open();
MediaPlayer1->Display=Panel1;
MediaPlayer1->Play();
} }
//---------------------------------------------------------------------------
Размещено на Allbest.ru
Подобные документы
Програми лінійної та розгалуженої структури. Програмна реалізація функцій для роботи з датою та часом. Робота з візуальними компонентами керування. Створення інтерфейсу користувача стандартними подіями. Глобальні ідентифікатори Screen, Mouse, Application.
отчет по практике [1,3 M], добавлен 24.02.2015Аналіз технічного забезпечення, вибір інструментального програмного забезпечення та середовища розробки програм. Створення класів для реалізації необхідних функцій для роботи програмного засобу. Розробка інтерфейсу для користувача та лістинг програми.
курсовая работа [343,9 K], добавлен 24.08.2012Створення програми для роботи з веб-камерою з автоматичним визначенням встановленої камери на комп'ютері. Характеристика апаратної конфігурації програми. Опис мови і середовища програмування. Розробка алгоритму, інструкції для програміста та користувача.
курсовая работа [1,2 M], добавлен 26.07.2013Функції комп'ютерної програми-органайзера, пов'язані із забезпеченням роботи календаря, записної книжки, менеджера контактів (адресно-телефонної книги), годинника, калькулятора. Програмна модель, розробка інтерфейсу і тестування програми, інсталяція.
курсовая работа [932,8 K], добавлен 03.06.2010Розробка структури програмного забезпечення, загальної схеми функціонування програми. Реалізація виведення графічних зображень, роботи з шлагбаумом, загальних елементів керування та музики. Інструкція з технічного обслуговування, системного програміста.
курсовая работа [3,1 M], добавлен 10.03.2009Опис структури даних та вимоги до них, процедур і функцій користувача, файлів та їх призначення. Інструкція для роботи з програмою. Результати роботи програми, її структура та функціональні компоненти, принципи роботи та сфери практичного застосування.
курсовая работа [330,6 K], добавлен 04.02.2015Розробка програми GameBox, яка включає в себе дві гри, судоку та пятнашки. Опис структури даних та вимоги до них, процедур і функцій користувача, стандартних процедур і функцій, які використовувались в програмі, та файлів. Результати роботи програми.
курсовая работа [5,3 M], добавлен 12.11.2011Розробка програми для моделювання роботи алгоритму Дейкстри мовою C# з використанням об’єктно-орієнтованих принципів програмування. Алгоритм побудови робочого поля. Програмування графічного інтерфейсу користувача. Тестування програмного забезпечення.
курсовая работа [991,4 K], добавлен 06.08.2013Принципи технології створення програмних продуктів. Набір файлів, необхідних для створення програми в Delphi, варіанти роботи з ними. Програмування графічного інтерфейсу користувача. Зовнішній вигляд і лістинг програми, використані команди і компоненти.
курсовая работа [550,5 K], добавлен 03.01.2014Аналіз предметної області і постановка задачі на розробку програми для автоматизації роботи автопідприємства. Перелік та опис використаних компонентів та основних процедур програми. Опис структур та методів обробки даних. Інструкція для користувача.
курсовая работа [2,3 M], добавлен 15.02.2012