Исследование вычислительной эффективности веб-технологий
Применение технологии 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Особенности интерфейса между разными видами программного обеспечения OLE, разработанного корпорацией Майкрософт. Использование веб-дизайнерами современных элементов управления ActiveX для вставки в страницы мультимедийных данных приложений Windows.
курсовая работа [3,0 M], добавлен 20.08.2014Виды обмена данными между приложениями Windows. Работа с панелями инструментов в Word и стилевое форматирование текста. Верстка текста в несколько колонок. Работа с таблицами, сносками, рисунками, иерархическими списками и оглавлениями в документах.
презентация [1,6 M], добавлен 16.10.2013Просмотр, запись и чтение данных буфера обмена. Динамический обмен данными (DDE), способы его организации. Атомы в Windows, их понятие и функции. Особенности задания параметра lParam сообщений DDE. Обмен и передача данных между клиентом и сервером.
лекция [303,7 K], добавлен 24.06.2009Программа операционной системы. Перемещение и копирование объектов. Окна Windows, операционное меню, настройка свойств папки, вызов справки Windows. Работа с дисками, папками и файлами, с приложениями и документами. Стандартные программы Windows.
контрольная работа [21,9 K], добавлен 29.01.2011Появление и развитие Microsoft. Крупнейшая в мире компания-разработчик компьютерного программного обеспечения. Появление Windows и Интернета. Выход Windows XP с обновленным дизайном. Разработка интеллектуальных функций для обеспечения безопасности.
реферат [32,7 K], добавлен 19.11.2013Появление первых версий Windows, их графические интерфейсы и расширения для DOS. Семейства Windows 3.x и Windows 9.x, их особенности и основные функции. Эволюция технологии Plug and Play. Наиболее существенные улучшения в современных версиях Windows.
реферат [162,3 K], добавлен 13.06.2014Универсальная многоцелевая сетевая операционная система Windows NT Server. Использование Windows NT Workstation как невыделенного сервера в одноранговых сетях и в качестве клиента сетей. Операционные системы Windows 2003, Windows Vista и Windows 7.
презентация [6,2 K], добавлен 23.10.2013Технология внедрения и связывания объектов OLE (рисунков, таблиц Excel, редактора формул MS Equation). Варианты обмена данными. Внедрение объекта в документ. Команды "вставить", "специальная вставка". Windows-приложения в качестве приемника и источника.
контрольная работа [2,2 M], добавлен 25.07.2009Операционная система от компании Microsoft. Понятие Windows 8, ее особенности. Использование мыши и приложений в интерфейсе Метро. Самый проблемный жест при работе с Windows 8. Направленность операционной системы на устройства с сенсорным экраном.
реферат [30,1 K], добавлен 16.05.2013Семейство ОС Windows 2000. Windows 2000 Server. Windows 2000 Advanced Server. Windows 2000 Datacenter Server. ОС Windows Server 2003. Организация сети на основе Windows 2000. Службы каталогов, DHCP, DNS, WINS. Конфигурирование сервера.
курсовая работа [307,1 K], добавлен 06.10.2006