این در حالت اولیه هست که بیاد چندتا عدد رو برای حالت کسری جمع کنه:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class add1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{

int s1 = 2, m1 = 3;
int s2 = 3, m2 = 7;
// 2/3 + 3/7 = (2*7+3*3)/3*7

s1 = int.Parse( TextBox1.Text);
m1 = Convert.ToInt32(TextBox2.Text);

string[] str= TextBox3.Text.Split('/');
s2= int.Parse( str[0]);
m2 = int.Parse(str[1]);

int s, m;
s = s1 * m2 + s2 * m1;
m = m1 * m2;

//problems
//پروژه های آینده
//اضافه شدن کد
//کدی که یک بار خطایابی شده، ازاین به بعد فقط استفاده
//خوانایی برنامه

int s3 = 5, m3 = 16;
s = s3 * m + s * m3;
m = m * m3;

//int s4 = 6, m4 = 13;
//s=s4+

Label1.Text = string.Format("{0}/{1}",s,m);
}
}



این اون کلاسیه که میاد از روش نمونه برداری کنیم :

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// Summary description for Rational
/// </summary>
public class Rational
{
private int _s;

public int Soorat
{
get { return _s; }
set { _s = value; }
}

private int _m;

public int Makhraj
{
get { return _m; }
set {
if (value != 0)
_m = value;
else
throw new Exception("Makhraj sefr nemishavad");
}
}

public Rational(int soorat,int makhraj)
{
//_s = soorat;
//if (makhraj == 0)
// throw new Exception("");
//else
// _m = makhraj;


//int _m; _m , this._m
this.Soorat = soorat;
//if (makhraj == 0)
// throw new Exception("makhraj sefr nemishavad");
this.Makhraj = makhraj;

//setting count
Rational.count++;
}
public Rational():this(0,1)
{
//this.Soorat = 0;
//this.Makhraj = 1;
}
public Rational(int soorat):this(soorat,1)
{
//this.Soorat = soorat;
//this.Makhraj = 1;
}

~Rational()
{
Rational.count--;
}
public void AddToMe(int soorat, int makhraj)
{
this.Soorat = this.Soorat * makhraj + this.Makhraj * soorat;
this.Makhraj = this.Makhraj * makhraj;
int b = bmm(this.Soorat, this.Makhraj);
this.Soorat = this.Soorat / b;
this.Makhraj /= b;
}
public void AddToMe(Rational r)
{
this.AddToMe(r.Soorat, r.Makhraj);
}
public void AddToMe(int soorat)
{
this.AddToMe(soorat, 1);
}
/// <summary>
/// این متد صورت و مخرج ورودی را می گیرد و آن را با همین کسر جمع می کند و بر می گرداند
/// </summary>
/// <param name="s">صورت کسر ورودی</param>
/// <param name="m">مخرج کسر ورودی</param>
/// <returns>حاصل جمع کسر ورودی با کسر جاری</returns>
public Rational Add(int s, int m)
{
Rational r;
r = new Rational();
r.AddToMe(this);
r.AddToMe(s, m);
return r;
}
public Rational Add(Rational r)
{
return this.Add(r.Soorat, r.Makhraj);
}
public Rational Add(int s)
{
return this.Add(s, 1);
}

public static Rational Adding(Rational r1, Rational r2)
{
Rational r;
r = r1.Add(r2);
return r;
}

public static int count = 0;

public static Rational operator +(Rational r1, Rational r2)
{
return Rational.Adding(r1, r2);
}

private int bmm(int i, int j)
{
int k = i % j;
if (k == 0)
return j;
else
return bmm(j, k);
}

public override string ToString()
{
string s;
string s2 = base.ToString();
s = s2 + ": (" + this.Soorat.ToString() + "," + this.Makhraj.ToString() + ")";
return s;
//return base.ToString();
}

}



حالا به ترتیب از این کلاس در برنامه های زیر استفاده کردیم:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class addOO : System.Web.UI.Page
{
int i = 14;
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
int i = 13;
i = 9;
if (true)
{
//int i = 3;
}
Rational r1, r2, r3, r4, r5, r6, r7;
r1 = new Rational(1, 3);
r2 = new Rational(2);
r3 = new Rational();
r3.Soorat = 3;
try
{
r3.Makhraj = int.Parse(TextBox1.Text);
}
catch (Exception ex)
{
//Label1.Text = "numinator could not be zero";
Label1.Text = ex.Message;
}

//m3 = r3.Soorat + 1;

//r3 = new Rational(TextBox1.Text);

r7 = r1 + r2 + r3 ;

Label1.Text = r7.ToString();

}
}






موضوعات مشابه: