МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Інститут комп’ютерних наук та інформаційних технологій
Кафедра програмного забезпечення
ЗВІТ
До лабораторної роботи № 2
На тему: “ Класи , об’єкти та простори іменв в С#”
З дисципліни : "Програмне забезпечення мережевих технологій "
Лектор:
Проф. каф. ПЗ
Мельник Р.А.
Львів – 2009
Тема: класи , об’єкти та простори іменв в С#.
Мета: освоїти елементи програмування мовою C# при розробленні класів та методів C#.
Завдання до лабораторної роботи
Створити C# програму декілька кульок, що рухаються на площині.
Створити C# програму : формування графів.
.Створити C# програму введення та перетворенння даних.
Створити C# програму генерацій та опрацювання псевдо випадкових послідовностей
Код програми
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace PZMT_2
{
public partial class Form1 : Form
{
int X = 100,i=0,j=0;
int Y= 100;
int radius = 350;
int [] BallsX = new int[50];
int [] BallsY = new int[50];
int [] Nap = new int[50];
int[] cnt = new int[50];
SolidBrush[] randcol = new SolidBrush[50];
Random Napryam = new Random();
Random R = new Random();
Random Rh = new Random();
Random Rw = new Random();
Random Rcol = new Random(20);
Points [] mas = new Points[50];
int N=2;
Graphics gr;
//-------------------------------------------
//Функція ля малювання кульок
void Draw(Graphics gr, int x, int y, SolidBrush randcol)
{
gr.FillEllipse(randcol, x, y, 50, 50);
}
//------------------------------------------------------
//Функція заповнення масиву координат
void Generate(int N)
{
Random Coord = new Random();
for (int i = 0; i < N; i++)
{
BallsX[i] = Coord.Next(50, pictureBox1.Width - 50);
BallsY[i] = Coord.Next(50, pictureBox1.Height - 50);
SolidBrush col = new SolidBrush(Color.FromArgb(Rcol.Next()));
randcol[i] = col;
}
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
//------------------------------------------------
//some variables initialize
//execute timer
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < N; i++)
{
Nap[i] = 1;
cnt[i] = 1;
}
N = int.Parse(textBox1.Text);
gr = Graphics.FromHwnd(pictureBox1.Handle);
gr.FillRectangle(new SolidBrush(Color.White), 0, 0, pictureBox1.Width, pictureBox1.Height);
Generate(N);
timer1.Interval = 50;
timer1.Start();
}
//-----------------------------------------------
//Is circle in area?
bool IsInArea(int X, int Y)
{
if (X <= 50) return false;
else if (Y <= 50) return false;
else if (X >= pictureBox1.Width - 50) return false;
else if (Y >= pictureBox1.Height - 50) return false;
else return true;
}
//------------------------------------------------
//таймер
private void timer1_Tick(object sender, EventArgs e)
{
Animation();
}
//----------------------------------------------
//Рух кульок
void Animation()
{
gr = Graphics.FromHwnd(pictureBox1.Handle);
gr.FillRectangle(new SolidBrush(Color.White), 0, 0, pictureBox1.Width, pictureBox1.Height);
for (int i = 0; i < N; i++)
{
if (cnt[i] == 30)
{
Nap[i] = Napryam.Next(1, 8);
cnt[i] = 0;
}
cnt[i]++;
if (Nap[i] == 1)
{
BallsX[i]++;
BallsY[i]++;
}
if (Nap[i] == 8)
{
BallsX[i]--;
BallsY[i]--;
}
if (Nap[i] == 3)
{
BallsX[i]++;
BallsY[i]--;
}
if (Nap[i] == 6)
{
BallsX[i]--;
BallsY[i]++;
}
if (Nap[i] == 5)
{
BallsX[i]++;
}
if (Nap[i] == 2)
{
BallsY[i]++;
}
if (Nap[i] == 4)
{
BallsX[i]--;
}
if (Nap[i] == 7)
{
BallsY[i]--;
}
if (IsInArea(BallsX[i], BallsY[i]))
Draw(gr, BallsX[i], BallsY[i], randcol[i]);
else Nap[i] = 9 - Nap[i];
}
}
//---------------------------------------
//Псевдовипадкові послідовності
private void button2_Click(object sender, EventArgs e)
{
int Nmas = int.Parse(textBoxNmas.Text);
double[] posl = new double[Nmas];
double tmp2;
int tmp, remainder;
posl[0] = double.Parse(textBoxXpoch.Text);
for (int i = 0; i < Nmas-1; i++)
{
tmp = (int)(Math.Pow(posl[i],2) * 1000000);
remainder = tmp % 10000;
tmp2 = (double)remainder / 10000;
posl[i + 1] = tmp2;
}
for (int i = 0; i < Nmas; i++)
{
richTextBox2.Text = richTextBox2.Text + posl[i].ToString() + " ";
}
//-------------------------------------------------
Graphics grHist = Graphics.FromHwnd(pictureBoxHist.Handle);
grHist.FillRectangle(new SolidBrush(Color.White), 0, 0, pictureBoxHist.Width, pictureBoxHist.Height);
//-------------------------------------------------
double dl = 0.1;
double j,b;
int a = 0;
int cnt;
double h = (double)Nmas / 1000;
double tmp3;
for (j=0; j<1; j = j + dl)
{
b = j+dl;
cnt = 0;
for (i=0; i<Nmas; i++)
{
if (posl[i]>j)
if(posl[i]<=b)
cnt++;
}
tmp3 = 200 - cnt / h;
grHist.DrawRectangle(new Pen(Color.Red),(20 * a), (int)tmp3, 20, 200-(int)tmp3);
a++;
}
}
private void buttonData_Click(object sender, EventArgs e)
{
double a;
a = double.Parse(textBoxEnter.Text);
richTextBox3.Text = richTextBox3.Text + a.ToString() + " ";
}
//-------------------------------------
//Створення графу
private void button5_Click(object sender, EventArgs e)
{
Random coordGraph = new Random();
Graphics grGraph = Graphics.FromHwnd(pictureBox4.Handle);
int Npoints = int.Parse(textBox16.Text);
Points Mas = new Points(Npoints);
for (int i = 0; i < Npoints; i++)
{
Mas.setX(i, coordGraph.Next(1, pictureBox4.Width));
Mas.setY(i, coordGraph.Next(1, pictureBox4.Height));
}
grGraph.FillRectangle(new SolidBrush(Color.White), 0, 0, pictureBox4.Width, pictureBox4.Height);
for (int i = 0; i < Npoints-1; i++)
grGraph.DrawLine(new Pen(Color.Black), Mas.getX(i), Mas.getY(i), Mas.getX(i+1), Mas.getY(i+1));
grGraph.DrawLine(new Pen(Color.Black), Mas.getX(Npoints-1), Mas.getY(Npoints-1), Mas.getX(0), Mas.getY(0));
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label20_Click(object sender, EventArgs e)
{
}
private void label6_Click(object sender, EventArgs e)
{
}
private void buttonData_Click_1(object sender, EventArgs e)
{
double a;
int b;
bool c;
a = double.Parse(textBoxEnter.Text);
richTextBox3.Text = richTextBox3.Text + "Експоненціальний формат - " + a.ToString("e") + "\n";
richTextBox3.Text = richTextBox3.Text + "Дробовий формат - " + a.ToString("g") + "\n";
b = (int)a;
richTextBox3.Text = richTextBox3.Text + "Ціле число - " + b.ToString("g") + "\n";
}
public class Points
{
private int [] x;
private int [] y;
public Points (int i)
{
x = new int[i];
y = new int[i];
}
public int getX(int i) {return x[i];}
public int getY(int i) { return y[i];}
public void setX(int i, int a) { x[i] = a; }
public void setY(int i, int a) { y[i] = a; }
}
private void groupBox1_Enter(object sender, EventArgs e)
{
}
private void pictureBox3_Click(object sender, EventArgs e)
{
}
private void pictureBox4_Click(object sender, EventArgs e)
{
}
private void button6_Click(object sender, EventArgs e)
{
Close();
}
private void button7_Click(object sender, EventArgs e)
{
Close();
}
private void button3_Click(object sender, EventArgs e)
{
Close();
}
}
}
Протокол роботи програми
Висновок:
Я ознайомився із основними особливостями миви С#,. Також мною було реалізовано програмний продук, що демонструє засвоєння мною основних елементів вищевказаної мови і їх практичне використання.