Исследование вычислительной эффективности веб-технологий

Применение технологии WinForm для создания интеллектуальных клиентских приложений на основе Windows, выполняемых в среде NET Framework. Использование программного фреймворка Windows Communication Foundation для обмена данными между приложениями.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 28.01.2016
Размер файла 848,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

tbCy.Text = c.Y.ToString();

result = false;

}

if ((float.Parse(tbCy.Text) != float.Parse(tbDy.Text)))

{

Error += "Координата Y точки C не может быть больше координаты Y точки D";

tbCy.Text = c.Y.ToString();

result = false;

}

}

else

{

result = false;

}

if (result == false)

{

System.Windows.Forms.MessageBox.Show(Error, "Введено некорректное значение координат", MessageBoxButtons.OK, MessageBoxIcon.Warning);

return result;

}

else

{

return result;

}

}

private void LostFocusTB(object sender, System.EventArgs ee)

{

System.Windows.Forms.TextBox EventTextBox = (System.Windows.Forms.TextBox)sender;

float Number = 0.0f;

string TextInTextBox = EventTextBox.Text.Replace(".", ",");

if (float.TryParse(TextInTextBox, out Number))

{

if (EventTextBox.Equals(tbDx)) // проверка координаты X точки D

{

tbEx.Text = tbDx.Text;

d.X = float.Parse(tbEx.Text);

}

if (EventTextBox.Equals(tbEx)) // проверка координаты X точки E

{

tbDx.Text = tbEx.Text;

e.X = float.Parse(tbDx.Text);

}

if (EventTextBox.Equals(tbCx)) // проверка координаты X точки C

{

c.X = float.Parse(tbCx.Text);

}

if (EventTextBox.Equals(tbEy)) // проверка координаты Y точки E

{

e.Y = float.Parse(tbEy.Text);

}

if (EventTextBox.Equals(tbDy)) // проверка координаты Y точки D

{

d.Y = float.Parse(tbDy.Text);

}

if (EventTextBox.Equals(tbCy)) // проверка координаты Y точки C

{

c.Y = float.Parse(tbCy.Text);

}

if (tbDx.Text != "" && tbEx.Text != "" && tbCx.Text != "" && tbEy.Text != ""

&& tbDy.Text != "" && tbCy.Text != "")

{

button1.Enabled = true;

}

else

{

button1.Enabled = false;

}

}

else

{

DialogResult cur_result = System.Windows.Forms.MessageBox.Show("Введено некорректное значение координаты\n",

//"Будет поставлено предыдущее значение",

"Введено некорректное значение координаты", MessageBoxButtons.OK,

System.Windows.Forms.MessageBoxIcon.Exclamation);

if (cur_result == DialogResult.OK)

{

if (EventTextBox.Equals(tbDx))

{

tbDx.Text = d.X.ToString();

}

if (EventTextBox.Equals(tbEx))

{

tbEx.Text = e.X.ToString();

}

if (EventTextBox.Equals(tbCx))

{

tbCx.Text = c.X.ToString();

}

if (EventTextBox.Equals(tbEy))

{

tbEy.Text = e.Y.ToString();

}

if (EventTextBox.Equals(tbDy))

{

tbDy.Text = d.Y.ToString();

}

if (EventTextBox.Equals(tbCy))

{

tbCy.Text = c.Y.ToString();

}

}

}

}

private void CalcMKSquareThead(IceCream icecream)

{

calc_thread = new Thread(new ParameterizedThreadStart(delegate(object thr_obj)

{

try

{

MainWindow this_form = (MainWindow)thr_obj;

Table t = null; TableRowGroup trg = null;

TableRow tr = null; TableCell tcell = null;

int j = 3;

this_form.Invoke(new Action(delegate()

{

RichResultTB.Text = "Число\t\tЧисло\t\tПлощадь\tТочная\tОтносительная\tВремя\n";

RichResultTB.Text += "точек\t\tпопавших\tМонте-\tплощадь\tпогрешность\t\tвычисления\n";

RichResultTB.Text += " \t\tточек\t\tКарло \t \t\t %\t\t\t мс\n";

}), null);

float square = icecream.realSquare();

for (int i = 3; i < 8; i++)

{

int numberPoints = 0;

float rel_delta = 0;

float MK_Square = 0;

DateTime start_date_time = DateTime.Now;

MK_Square = icecream.MonteKarloSquare((int)Math.Pow(10, i), out numberPoints, out rel_delta);

DateTime end_date_time = DateTime.Now;

TimeSpan arv_time = end_date_time - start_date_time;

this_form.Invoke(new Action(delegate()

{

j++;

RichResultTB.Text += "\n";

RichResultTB.Text += Math.Pow(10, j).ToString(" ########") + "\t";

RichResultTB.Text += numberPoints.ToString("0000000") + "\t";

RichResultTB.Text += MK_Square.ToString("#.00000") + "\t";

RichResultTB.Text += square.ToString() + "\t";

RichResultTB.Text += rel_delta.ToString("0.0000") + "\t\t";

RichResultTB.Text += ((int)arv_time.TotalMilliseconds).ToString() + "\n";

}), null);

}

}

catch (Exception ex)

{ }

}

));

calc_thread.Priority = ThreadPriority.Highest;

calc_thread.Start(this);

}

private void tbCx_Leave(object sender, System.EventArgs e)

{

}

private void button1_Click(object sender, EventArgs ee)

{

if (check())

{

d = new PointF(d.X, d.Y);

e = new PointF(e.X, e.Y);

c = new PointF(c.X, c.Y);

IceCream icecream = new IceCream(e, d, c);

CalcMKSquareThead(icecream);

}

else { }

}

private void MainWindow_Load(object sender, EventArgs ee)

{

RichResultTB.Text = "Число\t\tЧисло\t\tПлощадь\tТочная\tОтносительная\tВремя\n";

RichResultTB.Text += "точек\t\tпопавших\tМонте-\tплощадь\tпогрешность\t\tвычисления\n";

RichResultTB.Text += " \t\tточек\t\tКарло \t \t\t %\t\t\t мс\n";

e = new PointF(15, 0);

d = new PointF(15, 15);

c = new PointF(5, 15);

tbDx.Text = d.X.ToString();

tbEx.Text = e.X.ToString();

tbCx.Text = c.X.ToString();

tbDy.Text = d.Y.ToString();

tbEy.Text = e.Y.ToString();

tbCy.Text = c.Y.ToString();

button1.Enabled = true;

}

private void button2_Click(object sender, EventArgs e)

{

tbDx.Text = tbDy.Text =

tbEx.Text = tbEy.Text =

tbCx.Text = tbCy.Text = "";

button1.Enabled = false;

}

private void button3_Click(object sender, EventArgs ee)

{

e = new PointF(15, 0);

d = new PointF(15, 15);

c = new PointF(5, 15);

tbDx.Text = d.X.ToString();

tbEx.Text = e.X.ToString();

tbCx.Text = c.X.ToString();

tbDy.Text = d.Y.ToString();

tbEy.Text = e.Y.ToString();

tbCy.Text = c.Y.ToString();

button1.Enabled = true;

}

}

}

Файл MonteKarlo.html (Веб-приложение на базе Typescript)

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf8">

<title>Расчет площади методом Монте-Карло</title>

<script>

function changeEX()

{

document.getElementById("dx").value = document.getElementById("ex").value;

}

function changeDX()

{

document.getElementById("ex").value = document.getElementById("dx").value;

}

function Reset()

{

MonteKarlo.cEx.value = "";

MonteKarlo.cDx.value = "";

MonteKarlo.cCx.value = "";

MonteKarlo.cEy.value = "";

MonteKarlo.cDy.value = "";

MonteKarlo.cCy.value = "";

}

function Example()

{

MonteKarlo.cEx.value = "15";

MonteKarlo.cDx.value = "15";

MonteKarlo.cCx.value = "5";

MonteKarlo.cEy.value = "0";

MonteKarlo.cDy.value = "15";

MonteKarlo.cCy.value = "15";

}

function doMonteCarlo()

{

var code="calculate.html?ex="+MonteKarlo.cEx.value+"&ey="+MonteKarlo.cEy.value+"&dx="+MonteKarlo.cDx.value+"&dy="+MonteKarlo.cDy.value+"&cx="+MonteKarlo.cCx.value+"&cy="+MonteKarlo.cCy.value;

// alert(code);

// alert(code);

window.open(code);

}

</script>

</head>

<body>

<form onsubmit="doMonteCarlo()" method = "POST" name = "MonteKarlo">

<div id="container">

<img src = "img.jpg" width="50%" align = "right">

<table border="2" width="49%" height = "25%" bgcolor="Cyan" bordercolor="Black">

<tr>

<th colspan="3">Координаты треугольника CDE</th>

</tr>

<tr>

<td width="14%">Точка E:</td>

<td width="43%"><input type="text" value = "15" name="cEx" size="20" onchange = "changeEX();" id = "ex"></td>

<td width="43%"><input type="text" value = "0" name="cEy" size="20" id = "ey"></td>

</tr>

<tr>

<td width="14%">Точка D:</td>

<td width="43%"><input type="text" value = "15" name="cDx" size="20" onchange = "changeDX();" id = "dx"></td>

<td width="43%"><input type="text" value = "15" name="cDy" size="20" id = "dy"></td>

</tr>

<tr>

<td width="14%">Точка C:</td>

<td width="43%"><input type="text" value = "5" name="cCx" size="20" id = "cx"></td>

<td width="43%"><input type="text" value = "15" name="cCy" size="20" id = "cy"></td>

</tr>

<tr>

</tr>

</table>

<br></br>

<input type="submit" value="Расчитать" onclick="doMonteCarlo()" name="Okay" width = "20%"></td>

<input type="button" value="Очистить" onclick="Reset()" name="Cancel" width = "20%"id = "Button2">

<input type="button" value="Контрольный пример" onclick="Example()" name="Cancel" width = "20%"id = "Button3">

<br></br>

<table border = "1">

<tr>

<td>Число точек</td>

<td>Число попавших точек</td>

<td>Площадь Монте-Карло</td>

<td>Точная площадь</td>

<td>Относительная погрешность, %</td>

<td>Время вычисления, с</td>

</tr>

</table>

</div>

</form>

</body>

</html>

Файл MonteKarlo.ts

class MonteKarlo {

constructor() {

}

gogo(ex: number,ey:number,dx: number,dy:number,cx: number,cy:number) {

var Radius: number = (dy-ey)/2;

var CentrX: number = ex;

var CentrY: number = ey+Radius;

var minX: number = cx;

var maxX: number = ex+Radius;

var minY: number = ey;

var maxY: number = dy;

var k1: number = (cy - ey) / (cx - ex);

var k2: number = (cy - dy) / (cx - dx);

var RectangleSquare: number = ((maxX-minX)*(maxY-minY));;

var pointsCount = 0;

var totalPoints = 0;

var t;

var mca;

var precission = 0;

function CircleSquare()

{

return (Math.PI*Math.pow(Radius,2))/2;

}

function TriangleSquare()

{

var de = Math.sqrt(Math.pow(ex-dx,2)+Math.pow(ey-dy,2));

var ce = Math.sqrt(Math.pow(cx-ex,2)+Math.pow(cy-ey,2));

var cd = Math.sqrt(Math.pow(cx-dx,2)+Math.pow(cy-dy,2));

var polperim = (de + ce + cd)/2;

return Math.sqrt(polperim*(polperim-de)*(polperim-ce)*(polperim-cd)) ;

}

function PointInTriangle(x, y)

{

if ((((x-ex)*k1+ey)>=y) || (((x-dx)*k2+dy)<=y))

{

return true;

}

else

{

return false;

}

}

function PointInCirle(x,y)

{

if (x > (CentrX))

{

return ((Math.pow(x - CentrX, 2) + Math.pow(y - CentrY, 2)) <= Math.pow(Radius, 2));

}

else { return false; }

}

function PointInIceCream(x,y)

{

if (x<CentrX)

{

return PointInTriangle(x,y);

}

else

{

return PointInCirle(x,y);

}

}

function increment(i) {

return 1000 * Math.pow(10, i);

}

function area()

{

return CircleSquare() + TriangleSquare();

}

function Calculate(amountPoints) {

var startTime = new Date;

pointsCount = 0;

for (var i = 0; i < amountPoints; i++)

{

var x = Math.random() * (maxX - minX) + minX;

var y = Math.random() * (maxY - minY) + minY;

if (PointInIceCream(x,y))

{

pointsCount++;

}

}

var endTime = new Date;

t = (endTime.getTime() - startTime.getTime()) / 1000;

mca = RectangleSquare*(pointsCount/amountPoints);

precission = Math.abs(((mca - area()) / area()) * 100);

}

var page:string="<table border=1>";

page=page+"<tr>";

page=page+"<td>Число точек</td>";

page=page+"<td>Число попавших точек</td>";

page=page+"<td>Площадь Монте-Карло</td>";

page=page+"<td>Точная площадь</td>";

page=page+"<td>Относительная погрешность, %</td>";

page=page+"<td>Время вычисления, мс</td>";

page=page+"</tr>";

for (var i = 3; i < 8; i++) {

totalPoints = Math.pow(10,i);

Calculate(totalPoints);

page=page+"<tr>";

page=page+"<td>"+totalPoints+"</td>";

page=page+"<td>"+pointsCount+"</td>";

page=page+"<td>"+mca.toFixed(4)+"</td>";

page=page+"<td>"+area().toFixed(4)+"</td>";

page=page+"<td>"+precission.toFixed(4)+"</td>";

page=page+"<td>"+t+"</td>";

page=page+"</tr>";

}

page=page+"</table>";

return "<html><body>" + page + "</body></html>";

}

};

var query_string = {};

var query = window.location.search.substring(1);

var vars = query.split("&");

var pair = vars[0].split("=");

var ex:number = parseFloat(pair[1]);

var pair = vars[1].split("=");

var ey:number = parseFloat(pair[1]);

var pair = vars[2].split("=");

var dx:number = parseFloat(pair[1]);

var pair = vars[3].split("=");

var dy:number = parseFloat(pair[1]);

var pair = vars[4].split("=");

var cx:number = parseFloat(pair[1]);

var pair = vars[5].split("=");

var cy:number = parseFloat(pair[1]);

var monteKarlo = new MonteKarlo();

document.body.innerHTML = monteKarlo.gogo(ex,ey,dx,dy,cx,cy);

Файл MonteKarlo.js

var MonteKarlo = (function () {

function MonteKarlo() {

}

MonteKarlo.prototype.gogo = function (ex, ey, dx, dy, cx, cy) {

var Radius = (dy - ey) / 2;

var CentrX = ex;

var CentrY = ey + Radius;

var minX = cx;

var maxX = ex + Radius;

var minY = ey;

var maxY = dy;

var k1 = (cy - ey) / (cx - ex);

var k2 = (cy - dy) / (cx - dx);

var RectangleSquare = ((maxX - minX) * (maxY - minY));

;

var pointsCount = 0;

var totalPoints = 0;

var t;

var mca;

var precission = 0;

function CircleSquare() {

return (Math.PI * Math.pow(Radius, 2)) / 2;

}

function TriangleSquare() {

var de = Math.sqrt(Math.pow(ex - dx, 2) + Math.pow(ey - dy, 2));

var ce = Math.sqrt(Math.pow(cx - ex, 2) + Math.pow(cy - ey, 2));

var cd = Math.sqrt(Math.pow(cx - dx, 2) + Math.pow(cy - dy, 2));

var polperim = (de + ce + cd) / 2;

return Math.sqrt(polperim * (polperim - de) * (polperim - ce) * (polperim - cd));

}

function PointInTriangle(x, y) {

if ((((x - ex) * k1 + ey) >= y) || (((x - dx) * k2 + dy) <= y)) {

return true;

}

else {

return false;

}

}

function PointInCirle(x, y) {

if (x > (CentrX)) {

return ((Math.pow(x - CentrX, 2) + Math.pow(y - CentrY, 2)) <= Math.pow(Radius, 2));

}

else {

return false;

}

}

function PointInIceCream(x, y) {

if (x < CentrX) {

return PointInTriangle(x, y);

}

else {

return PointInCirle(x, y);

}

}

function increment(i) {

return 1000 * Math.pow(10, i);

}

function area() {

return CircleSquare() + TriangleSquare();

}

function Calculate(amountPoints) {

var startTime = new Date;

pointsCount = 0;

for (var i = 0; i < amountPoints; i++) {

var x = Math.random() * (maxX - minX) + minX;

var y = Math.random() * (maxY - minY) + minY;

if (PointInIceCream(x, y)) {

pointsCount++;

}

}

var endTime = new Date;

t = (endTime.getTime() - startTime.getTime()) / 1000;

mca = RectangleSquare * (pointsCount / amountPoints);

precission = Math.abs(((mca - area()) / area()) * 100);

}

var page = "<table border=1>";

page = page + "<tr>";

page = page + "<td>Число точек</td>";

page = page + "<td>Число попавших точек</td>";

page = page + "<td>Площадь Монте-Карло</td>";

page = page + "<td>Точная площадь</td>";

page = page + "<td>Относительная погрешность, %</td>";

page = page + "<td>Время вычисления, мс</td>";

page = page + "</tr>";

for (var i = 3; i < 8; i++) {

totalPoints = Math.pow(10, i);

Calculate(totalPoints);

page = page + "<tr>";

page = page + "<td>" + totalPoints + "</td>";

page = page + "<td>" + pointsCount + "</td>";

page = page + "<td>" + mca.toFixed(4) + "</td>";

page = page + "<td>" + area().toFixed(4) + "</td>";

page = page + "<td>" + precission.toFixed(4) + "</td>";

page = page + "<td>" + t + "</td>";

page = page + "</tr>";

}

page = page + "</table>";

return "<html><body>" + page + "</body></html>";

};

return MonteKarlo;

})();

;

var query_string = {};

var query = window.location.search.substring(1);

var vars = query.split("&");

var pair = vars[0].split("=");

var ex = parseFloat(pair[1]);

var pair = vars[1].split("=");

var ey = parseFloat(pair[1]);

var pair = vars[2].split("=");

var dx = parseFloat(pair[1]);

var pair = vars[3].split("=");

var dy = parseFloat(pair[1]);

var pair = vars[4].split("=");

var cx = parseFloat(pair[1]);

var pair = vars[5].split("=");

var cy = parseFloat(pair[1]);

var monteKarlo = new MonteKarlo();

document.body.innerHTML = monteKarlo.gogo(ex, ey, dx, dy, cx, cy);

Serveice1.svc.cs (Веб-приложение на базе MCF/C#)

sing System;

using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.ServiceModel.Web;

using System.Text;

namespace WS_MonteKarlo

{

// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.

public class Service1: IService1

{

public string GetData(int value)

{

return string.Format("You entered: {0}", value);

}

public CompositeType GetDataUsingDataContract(CompositeType composite)

{

if (composite == null)

{

throw new ArgumentNullException("composite");

}

if (composite.BoolValue)

{

composite.StringValue += "Suffix";

}

return composite;

}

}

}

Файл WS_MonteKarlo.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Drawing;

namespace WS_MonteKarlo

{

public class WCFMonteCarlo

{

public float MK_Square(PointF e, PointF d, PointF c, int count, out int numberPoints, out float real_delta, out float realsquare, out DateTime start, out DateTime end)

{

start = DateTime.Now;

IceCream icecream = new IceCream(e, d, c);

float montekarloSquare = icecream.MonteKarloSquare(count, out numberPoints, out real_delta);

realsquare = icecream.realSquare();

end = DateTime.Now;

return montekarloSquare;

}

}

}

Файл WBFClientMK.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WBFClientMK.aspx.cs" Inherits="WBFClientMK" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<title></title>

</head>

<body>

<form id="form1" runat="server">

<asp:Table ID="Table2" runat="server" BackColor="White" BorderColor="Blue" BorderWidth="3px" GridLines="Both" Width="900px">

<asp:TableRow runat="server">

<asp:TableCell runat="server">

<asp:Panel ID="Panel2" runat="server" > <%--Height="186px"--%>

<p>Координаты точек:</p>

<p>

<asp:Table runat="server">

<asp:TableRow>

<asp:TableCell Width ="55">

</asp:TableCell>

<asp:TableCell>

Координата Х

</asp:TableCell>

<asp:TableCell Width ="55">

</asp:TableCell>

<asp:TableCell>

Координата Y

</asp:TableCell>

</asp:TableRow>

</asp:Table>

</p>

<p style="height: 20px">

Точка E:<asp:TextBox ID="cEx" runat="server" CausesValidation="True" AutoPostBack="True" OnTextChanged="cEx_TextChanged" >-7</asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" ControlToValidate="cEx" ErrorMessage="*"></asp:RequiredFieldValidator>

<asp:TextBox ID="cEy" runat="server" CausesValidation="True" AutoPostBack="True" OnTextChanged="cEy_TextChanged" >-3</asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator8" runat="server" ControlToValidate="cEy" ErrorMessage="*"></asp:RequiredFieldValidator>

</p>

<p style="height: 20px">

Точка D:<asp:TextBox ID="cDx" runat="server" AutoPostBack="True" CausesValidation="True" OnTextChanged="cDx_TextChanged">-7</asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server" ControlToValidate="cDx" ErrorMessage="*"></asp:RequiredFieldValidator>

<asp:TextBox ID="cDy" runat="server" AutoPostBack="True" CausesValidation="True" OnTextChanged="cDy_TextChanged">17</asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator10" runat="server" ControlToValidate="cDy" ErrorMessage="*"></asp:RequiredFieldValidator>

</p>

<p style="height: 20px">

Точка C:<asp:TextBox ID="cCx" runat="server" AutoPostBack="True" CausesValidation="True" OnTextChanged="cCx_TextChanged">37</asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator11" runat="server" ControlToValidate="cCx" ErrorMessage="*"></asp:RequiredFieldValidator>

<asp:TextBox ID="cCy" runat="server" AutoPostBack="True" CausesValidation="True" OnTextChanged="cCy_TextChanged">9</asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator12" runat="server" ControlToValidate="cCy" ErrorMessage="*"></asp:RequiredFieldValidator>

</p>

</asp:Panel>

<asp:Button ID="Button1" runat="server" Text="Рассчитать" OnClick="Button1_Click" />

<asp:Button ID="Button2" runat="server" Text="Очистить" OnClick="Button2_Click" />

<asp:Button ID="Button3" runat="server" Text="Контрольный пример" OnClick="Button3_Click" CausesValidation="False" />

<p>

<asp:Label ID="Label1" runat="server" BorderColor="Red" ForeColor="Red"></asp:Label>

</p>

</asp:TableCell>

<asp:TableCell runat="server">

<asp:Image ID="Image2" runat="server" Height="200px" ImageUrl="img.jpg" />

</asp:TableCell>

</asp:TableRow>

</asp:Table>

<br />

<asp:Table ID="Table1" runat="server" BorderWidth ="3px" BorderColor="Blue" GridLines="Vertical" Width="900px">

<asp:TableRow> <asp:TableCell>Число точек</asp:TableCell>

<asp:TableCell>Число попавших точек</asp:TableCell>

<asp:TableCell>Площадь Монте-Карло</asp:TableCell>

<asp:TableCell>Точная площадь</asp:TableCell>

<asp:TableCell>Относительная погрешность,%</asp:TableCell>

<asp:TableCell>Время вычисления,мс</asp:TableCell>

</asp:TableRow>

<asp:TableRow runat="server">

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

</asp:TableRow>

<asp:TableRow runat="server">

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

</asp:TableRow>

<asp:TableRow runat="server">

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

</asp:TableRow>

<asp:TableRow runat="server">

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

</asp:TableRow>

<asp:TableRow runat="server">

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

<asp:TableCell runat="server"></asp:TableCell>

</asp:TableRow>

</asp:Table>

</form>

</body>

</html>

Файл WBFClientMK.aspx.cs

using System;

using System.Collections.Generic;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Drawing;

using WSMK;

public partial class WBFClientMK: System.Web.UI.Page

{

WS_MonteKarlo WS_MK = new WS_MonteKarlo();

PointF e, d, c;

protected void Page_Load(object sender, EventArgs ee)

{

}

protected void Button1_Click(object sender, EventArgs ee)

{

e = new PointF();

d = new PointF();

c = new PointF();

e.X = float.Parse(cEx.Text);

d.X = float.Parse(cDx.Text);

c.X = float.Parse(cCx.Text);

e.Y = float.Parse(cEy.Text);

d.Y = float.Parse(cDy.Text);

c.Y = float.Parse(cCy.Text);

int numberPoints;

float MK_Square;

float rel_delta;

float square;

DateTime start;

DateTime end;

DateTime start1;

DateTime end1;

for (int i = 3; i < 8; i++)

{

int count = (int)Math.Pow(10, i);

numberPoints = 0;

MK_Square = 0;

rel_delta = 0;

square = 0;

start1 = DateTime.Now;

MK_Square = WS_MK.MK_Square(e, d, c, count, out numberPoints, out rel_delta, out square, out start, out end);

end1 = DateTime.Now;

TimeSpan time1 = end1 - start1;

Table1.Rows[i - 2].Cells[0].Text = count.ToString();

Table1.Rows[i - 2].Cells[1].Text = numberPoints.ToString();

Table1.Rows[i - 2].Cells[2].Text = MK_Square.ToString();

Table1.Rows[i - 2].Cells[3].Text = square.ToString();

Table1.Rows[i - 2].Cells[4].Text = rel_delta.ToString();

Table1.Rows[i - 2].Cells[5].Text = ((int)time1.TotalMilliseconds).ToString();

}

}

protected void Button2_Click(object sender, EventArgs ee)

{

cEx.Text = "";

cDx.Text = "";

cCx.Text = "";

cEy.Text = "";

cDy.Text = "";

cCy.Text = "";

}

protected void Button3_Click(object sender, EventArgs ee)

{

e.X = 10;

e.Y = 0;

d.X = 10;

d.Y = 10;

c.X = 0;

c.Y = 10;

cEx.Text = e.X.ToString();

cDx.Text = d.X.ToString();

cCx.Text = c.X.ToString();

cEy.Text = e.Y.ToString();

cDy.Text = d.Y.ToString();

cCy.Text = c.Y.ToString();

}

protected void cEx_TextChanged(object sender, EventArgs e)

{

float Number;

if (float.TryParse(cEx.Text, out Number))

{

if (Number < float.Parse(cCx.Text.ToString()))

{

Label1.Text = "Координата X точки E не может быть меньше координаты X точки С";

Button1.Enabled = false;

return;

}

else

{

cDx.Text = cEx.Text;

Label1.Text = "";

Button1.Enabled = true;

}

}

else

{

Label1.Text = "Некоректный ввод данных";

Button1.Enabled = false;

}

}

protected void cDx_TextChanged(object sender, EventArgs e)

{

float Number;

if (float.TryParse(cDx.Text, out Number))

{

if (Number < float.Parse(cCx.Text.ToString()))

{

Label1.Text = "Координата X точки D не может быть меньше координаты X точки C";

Button1.Enabled = false;

return;

}

else

{

cEx.Text = cDx.Text;

Label1.Text = "";

Button1.Enabled = true;

}

}

else

{

Label1.Text = "Некоректный ввод данных";

Button1.Enabled = false;

}

}

protected void cCy_TextChanged(object sender, EventArgs e)

{

float Number;

if (float.TryParse(cCy.Text.ToString(), out Number))

{

if (Number != float.Parse(cDy.Text.ToString()))

{

Label1.Text = "Координата Y точки C не может быть больше координаты Y точки D ";

Button1.Enabled = false;

return;

}

else

{

Label1.Text = "";

Button1.Enabled = true;

}

if (Number <= float.Parse(cEy.Text.ToString()))

{

Label1.Text = "Координата Y точки C не может быть меньше координаты Y точки E";

Button1.Enabled = false;

}

else

{

Label1.Text = "";

Button1.Enabled = true;

}

}

else

{

}

}

protected void cCx_TextChanged(object sender, EventArgs e)

{

float Number;

if (float.TryParse(cCx.Text, out Number))

{

if (Number >= float.Parse(cEx.Text.ToString()))

{

Label1.Text = "Координата X точки E не может быть больше координаты X точки D и E";

Button1.Enabled = false;

return;

}

else

{

Label1.Text = "";

Button1.Enabled = true;

}

}

else

{

Label1.Text = "Некоректный ввод данных";

Button1.Enabled = false;

}

}

protected void cEy_TextChanged(object sender, EventArgs e)

{

//////

float Number;

if (float.TryParse(cEy.Text, out Number))

{

if (Number >= float.Parse(cCy.Text.ToString()))

{

Label1.Text = "Координата Y точки E не может быть больше координаты Y точки C";

Button1.Enabled = false;

return;

}

else

{

Label1.Text = "";

Button1.Enabled = true;

}

if (Number >= float.Parse(cDy.Text.ToString()))

{

Label1.Text = "Координата Y точки E не может быть больше координаты Y точки D";

Button1.Enabled = false;

}

else

{

Label1.Text = "";

Button1.Enabled = true;

return;

}

///

if (float.Parse(cCy.Text.ToString()) != float.Parse(cDy.Text.ToString()))

{

Label1.Text = "Координата Y точки C не может быть больше координаты Y точки D ";

Button1.Enabled = false;

}

else

{

Label1.Text = "";

Button1.Enabled = true;

}

if (float.Parse(cCy.Text.ToString()) <= float.Parse(cEy.Text.ToString()))

{

Label1.Text = "Координата Y точки C не может быть меньше координаты Y точки E";

Button1.Enabled = false;

}

else

{

Label1.Text = "";

Button1.Enabled = true;

}

}

else

{

Label1.Text = "Некоректный ввод данных";

Button1.Enabled = false;

}

}

protected void cDy_TextChanged(object sender, EventArgs e)

{

//////

float Number;

if (float.TryParse(cDy.Text, out Number))

{

if (Number <= float.Parse(cCy.Text.ToString()))

{

Label1.Text = "Координата Y точки D не может быть меньше координаты Y точки C";

Button1.Enabled = false;

return;

}

else

{

Label1.Text = "";

Button1.Enabled = true;

}

if (Number <= float.Parse(cEy.Text.ToString()))

{

Label1.Text = "Координата Y точки D не может быть меньше координаты Y точки E";

Button1.Enabled = false;

}

else

{

Label1.Text = "";

Button1.Enabled = true;

}

///

if (float.Parse(cCy.Text.ToString()) >= float.Parse(cDy.Text.ToString()))

{

Label1.Text = "Координата Y точки С не может быть больше координаты Y точки В ";

Button1.Enabled = false;

}

else

{

Label1.Text = "";

Button1.Enabled = true;

}

if (float.Parse(cCy.Text.ToString()) <= float.Parse(cEy.Text.ToString()))

{

Label1.Text = "Координата Y точки С не может быть меньше координаты Y точки E";

Button1.Enabled = false;

}

else

{

Label1.Text = "";

Button1.Enabled = true;

}

}

else

{

Label1.Text = "Некоректный ввод данных";

Button1.Enabled = false;

}

}

}

Размещено на Allbest.ru


Подобные документы

  • Назначение буфера обмена, управление его данными в среде Windows. Взаимодействие между владельцем и клиентом буфера. Данные и тип дескриптора, для каждого типа предопределенных форматов. Воспроизведение данных буфера обмена с задержкой, окна просмотра.

    реферат [58,9 K], добавлен 04.10.2010

  • Общая характеристика операционных систем и приложений Windows. Разделение ресурсов, работа с окнами, назначение диска, видов памяти, системы сохранения и передачи данных. История возникновения приложений, их виды и особенности, порядок написания.

    курс лекций [321,0 K], добавлен 24.06.2009

  • Характеристика буфера обмена как области памяти, резервируемой системой Windows для организации обмена данными между приложениями. Копирование и перемещение файлов как функции буфера обмена. Изучение абсолютной и относительной адресации ячеек MS Excel.

    контрольная работа [13,9 K], добавлен 11.09.2011

  • Обмен данными между приложениями Word и Excel в MS Office как основа их интеграции. Основные способы обмена данными между программами в MS Office. Связывание и внедрение объектов. Сравнительный анализ основных способов. Простое (статическое) копирование.

    методичка [599,5 K], добавлен 10.11.2013

  • Проектирование и отладка Windows-приложений для работы с внешними источниками данных. Функциональная блок-схема взаимодействия программных модулей. Описание связей между таблицами. Тестирование программного средства. Требования к техническому обеспечению.

    курсовая работа [2,7 M], добавлен 17.05.2011

  • История создания семейства операционных систем Windows корпорации Microsoft, ориентированных на применение графического интерфейса при управлении приложениями. Выход первой версии браузера Internet Explorer, расширение мультимедийных возможностей ОС.

    курсовая работа [52,8 K], добавлен 09.12.2014

  • Основные выпуски (редакции) операционных систем Windows Vista и Windows Seven, их недостатки и преимущества. История создания, совместимость приложений с операционными системами. Новшества, которые принесла в мир компьютерных технологий каждая из систем.

    реферат [66,3 K], добавлен 17.02.2011

  • История создания. Windows 9x/NT. Операционная система Microsoft Windows. Преимущества и недостатки Windows. Некоторые клавиатурные комбинации Windows 9x и NT. Windows XP Professional. Наиболее совершенная защита.

    реферат [19,3 K], добавлен 18.07.2004

  • Системные требования для установки программного обеспечения Windows XP Professional, особенности его интерфейса, структуры, возможностей, практическое применение и круг пользователей. Характеристика работы приложений операционной системы, ее надежность.

    презентация [1020,0 K], добавлен 02.02.2010

  • Облачные технологии в бизнес-процессах. Модели использования бизнес-приложений в качестве интернет-сервисов. Практика применения облачных технологий. Приложения, созданные на основе Windows Azure. Создание систем и офисных приложений по запросу.

    реферат [25,3 K], добавлен 16.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.