Исследование вычислительной эффективности веб-технологий
Применение технологии 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


