یک برنامه در درس ساختمون داده که کار پشته ها رو بیان میکنه
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Aski
{
public partial class Frm_Poshte : Form
{
public Frm_Poshte()
{
InitializeComponent();
}
const int max = 5;
string[] Dishes = new string[max];
int top = -1;
string[] Capacity = new string[max];
//====================================================================================================
private void txt_Enter_KeyPress(object sender, KeyPressEventArgs e)
{
try
{
if (e.KeyChar == '\r')
{
Dishes[++top] = txt_Enter.Text;
txt_Enter.Text = "";
if (top == max - 1)
{
MessageBox.Show("Enough...");
txt_Enter.Enabled = false;
}
}
}
catch (Exception ecp)
{
MessageBox.Show(ecp.Message);
}
}
//======================================================================================================
private void btn_Click_Click(object sender, EventArgs e)
{
try
{
if (IsEmpty() == true)
{
MessageBox.Show(" مقادیری وارد نشده است :( ");
btn_Click.Enabled = false;
Frm_Poshte.ActiveForm.Enabled = false;
}
if (IsFull() == true)
MessageBox.Show("در آرایه مقادیر وجود دارد :)");
for (int j = 0; j < max; j++)
Lst_Enter.Items.Add(Dishes[j].ToString());
for (int j = max - 1; j >= 0; j--)//اینجا باید دستکاری بشه
Lst_VaronEnter.Items.Add(Dishes[j].ToString());
}
catch (Exception ecp)
{
MessageBox.Show(ecp.Message);
}
}
//========================================================================================================
public Boolean IsEmpty()
{
if (top == -1)
return true;
else
return false;
}
public Boolean IsFull()
{
if (top != -1)
return true;
else
return false;
}
//=======================================================================================================
private void Frm_Poshte_Load(object sender, EventArgs e)
{
lbl_ShowResult.Text = "";
}
//==========================================================================================================
public void Check()
{
int k = 0;
for (int i = 0; i < max; i++)
{
if ((Dishes[0] == '1'.ToString() || Dishes[0] == '2'.ToString() || Dishes[0] == '3'.ToString() || Dishes[0] == '4'.ToString() || Dishes[0] == '5'.ToString() || Dishes[0] == '6'.ToString() || Dishes[0] == '7'.ToString() || Dishes[0] == '8'.ToString() || Dishes[0] == '9'.ToString() || Dishes[0] == '0'.ToString()))//&&(Dishes[max-1]=='1'.ToString()||Dishes[max-1]=='2'.ToString()||Dishes[max-1]=='3'.ToString()||Dishes[max-1]=='4'.ToString()||Dishes[max-1]=='5'.ToString()||Dishes[max-1]=='6'.ToString()||Dishes[max-1]=='7'.ToString()||Dishes[max-1]=='8'.ToString()||Dishes[max-1]=='9'.ToString()||Dishes[max-1]=='0'.ToString())
{
if (Dishes[i] == '1'.ToString() || Dishes[i] == '2'.ToString() || Dishes[i] == '3'.ToString() || Dishes[i] == '4'.ToString() || Dishes[i] == '5'.ToString() || Dishes[i] == '6'.ToString() || Dishes[i] == '7'.ToString() || Dishes[i] == '8'.ToString() || Dishes[i] == '9'.ToString() || Dishes[i] == '0'.ToString())
lbl_ShowResult.Text += Dishes[i] + " ";
if (Dishes[i] == '/'.ToString() || Dishes[i] == '*'.ToString() || Dishes[i] == '-'.ToString() || Dishes[i] == '+'.ToString())
{
Capacity[k] = Dishes[i];
k++;
if (k >= 2)
{
//-----------------------------------------------------------------
for (int m = 0; m < Capacity.Length; m++)
{
for (int s = m + 1; s < Capacity.Length; s++)
{
if (Capacity[s] == '*'.ToString() && Capacity[m] == '/'.ToString())
{
lbl_ShowResult.Text += Capacity[s] + " ";
Capacity[s] = null;
}
if (Capacity[s] == '*'.ToString() && Capacity[m] == '-'.ToString())
{
lbl_ShowResult.Text += Capacity[s] + " ";
Capacity[s] = null;
}
if (Capacity[s] == '*'.ToString() && Capacity[m] == '+'.ToString())
{
lbl_ShowResult.Text += Capacity[s] + " ";
Capacity[s] = null;
}
if (Capacity[s] == '*'.ToString() && Capacity[m] == '*'.ToString())
{
lbl_ShowResult.Text += Capacity[s] + " ";
Capacity[s] = null;
}
//------------------------------------------------------------------
if (Capacity[s] == '/'.ToString() && Capacity[m] == '/'.ToString())
{
lbl_ShowResult.Text += Capacity[s] + " ";
Capacity[s] = null;
}
if (Capacity[s] == '/'.ToString() && Capacity[m] == '-'.ToString())
{
lbl_ShowResult.Text += Capacity[s] + " ";
Capacity[s] = null;
}
if (Capacity[s] == '/'.ToString() && Capacity[m] == '+'.ToString())
{
lbl_ShowResult.Text += Capacity[s] + " ";
Capacity[s] = null;
}
if (Capacity[s] == '/'.ToString() && Capacity[m] == '*'.ToString())//
{
string temp = Capacity[m];
Capacity[m] = null;
Capacity[m] = Capacity[s];
Capacity[s] = null;
lbl_ShowResult.Text += temp + " ";
}
//-----------------------------------------------------------------
if (Capacity[s] == '+'.ToString() && Capacity[m] == '+'.ToString())
{
lbl_ShowResult.Text += Capacity[s] + " ";
Capacity[s] = null;
}
if (Capacity[s] == '+'.ToString() && Capacity[m] == '-'.ToString())
{
lbl_ShowResult.Text += Capacity[s] + " ";
Capacity[s] = null;
}
if (Capacity[s] == '+'.ToString() && Capacity[m] == '*'.ToString())
{
string temp = Capacity[m];
Capacity[m] = null;
Capacity[m] = Capacity[s];
Capacity[s] = null;
lbl_ShowResult.Text += temp + " ";
}
if (Capacity[s] == '+'.ToString() && Capacity[m] == '/'.ToString())
{
string temp = Capacity[m];
Capacity[m] = null;
Capacity[m] = Capacity[s];
Capacity[s] = null;
lbl_ShowResult.Text += temp + " ";
}
//----------------------------------------------------------------
if (Capacity[s] == '-'.ToString() && Capacity[m] == '-'.ToString())
{
lbl_ShowResult.Text += Capacity[s] + " ";
Capacity[s] = null;
}
if (Capacity[s] == '-'.ToString() && Capacity[m] == '/'.ToString())
{
string temp = Capacity[m];
Capacity[m] = null;
Capacity[m] = Capacity[s];
Capacity[s] = null;
lbl_ShowResult.Text += temp + " ";
}
if (Capacity[s] == '-'.ToString() && Capacity[m] == '*'.ToString())
{
string temp = Capacity[m];
Capacity[m] = null;
Capacity[m] = Capacity[s];
Capacity[s] = null;
lbl_ShowResult.Text += temp + " ";
}
if (Capacity[s] == '-'.ToString() && Capacity[m] == '+'.ToString())
{
string temp = Capacity[m];
Capacity[m] = null;
Capacity[m] = Capacity[s];
Capacity[s] = null;
lbl_ShowResult.Text += temp + " ";
}
//--------------------------------------------------------------
}
}
}
}
}
if (i == max - 1)
{
if (Capacity[0] == '/'.ToString() || Capacity[0] == '*'.ToString() || Capacity[0] == '-'.ToString() || Capacity[0] == '+'.ToString())
lbl_ShowResult.Text += Capacity[0] + " ";
}
}
if ((Dishes[0] == '/'.ToString() || Dishes[0] == '*'.ToString() || Dishes[0] == '-'.ToString() || Dishes[0] == '+'.ToString()))//|| (Dishes[max - 1] == '+'.ToString() || Dishes[max - 1] == '-'.ToString() || Dishes[max - 1] == '*'.ToString() || Dishes[max - 1] == '/'.ToString())
{
MessageBox.Show("لطفا عبارت را درست وارد نمایید.....بطور مثال : 3 * 7 + 8 ، باسپاس");
this.Close();
}
}
//=========================================================================================================
private void btn_Check_Click(object sender, EventArgs e)
{
Check();
}
}
}
سوالی بود ،بفرمایین
بااحترام
علاقه مندی ها (Bookmarks)