📄 form1.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace byylsy3
{
public partial class Form1 : Form
{
public string filename;
public char ch;
public string strToken;
public int len = -1;
public int zhifulen = 0;
public int changlianglen = 0;
public SortedList<string, string> zhifulist = new SortedList<string, string>();
public SortedList<int, int> changlianglist = new SortedList<int, int>();
public class zhifuclass
{
public bool isVT;
public string yuanvalue;
public char zhuanhuavalue;
}
public class scls
{
public char E;
public string val;
}
public SortedList<int,zhifuclass> zhifuls=new SortedList<int,zhifuclass>();
int zhifulslen = 0;
public void GetChar()
{
len++;
ch = richTextBox1.Text[len];
}
public void GetBC()
{
while (ch == ' ')
{
GetChar();
}
}
public void Concat()
{
strToken += ch;
}
public bool IsLetter()
{
if ((ch >= 65 && ch <= 90) || (ch >= 97 && ch <= 122))
{
return true;
}
else
return false;
}
public bool IsDigit()
{
if (ch >= 48 && ch <= 57)
return true;
else
return false;
}
public void Retract()
{
len--;
ch = ' ';
}
public void InsertId()
{
if (!zhifulist.ContainsKey(strToken))
zhifulist.Add(strToken, strToken);
zhifulen++;
}
public void InsertConst()
{
changlianglist.Add(changlianglen, Convert.ToInt32(strToken));
changlianglen++;
}
public int yuxianguanxi(char cha1,char cha2)
{
if(cha1== '+')
{
if (cha2 == '+') return 1;
if (cha2 == '-') return 1;
if (cha2 == '*') return -1;
if (cha2 == '/') return -1;
if (cha2 == '=') return 2;
if (cha2 == 'i') return -1;
if (cha2 == '(') return -1;
if (cha2 == ')') return 1;
if (cha2 == ';') return 1;
}
if(cha1== '-')
{
if (cha2 == '+') return 1;
if (cha2 == '-') return 1;
if (cha2 == '*') return -1;
if (cha2 == '/') return -1;
if (cha2 == '=') return 2;
if (cha2 == 'i') return -1;
if (cha2 == '(') return -1;
if (cha2 == ')') return 1;
if (cha2 == ';') return 1;
}
if(cha1== '*')
{
if (cha2 == '+') return 1;
if (cha2 == '-') return 1;
if (cha2 == '*') return 1;
if (cha2 == '/') return 1;
if (cha2 == '=') return 2;
if (cha2 == 'i') return -1;
if (cha2 == '(') return -1;
if (cha2 == ')') return 1;
if (cha2 == ';') return 1;
}
if(cha1== '/')
{
if (cha2 == '+') return 1;
if (cha2 == '-') return 1;
if (cha2 == '*') return 1;
if (cha2 == '/') return 1;
if (cha2 == '=') return 2;
if (cha2 == 'i') return -1;
if (cha2 == '(') return -1;
if (cha2 == ')') return 1;
if (cha2 == ';') return 1;
}
if(cha1== '=')
{
if (cha2 == '+') return -1;
if (cha2 == '-') return -1;
if (cha2 == '*') return -1;
if (cha2 == '/') return -1;
if (cha2 == '=') return 2;
if (cha2 == 'i') return -1;
if (cha2 == '(') return -1;
if (cha2 == ')') return 2;
if (cha2 == ';') return 1;
}
if(cha1== 'i')
{
if (cha2 == '+') return 1;
if (cha2 == '-') return 1;
if (cha2 == '*') return 1;
if (cha2 == '/') return 1;
if (cha2 == '=') return 1;
if (cha2 == 'i') return 2;
if (cha2 == '(') return 2;
if (cha2 == ')') return 1;
if (cha2 == ';') return 1;
}
if(cha1== '(')
{
if (cha2 == '+') return -1;
if (cha2 == '-') return -1;
if (cha2 == '*') return -1;
if (cha2 == '/') return -1;
if (cha2 == '=') return 2;
if (cha2 == 'i') return -1;
if (cha2 == '(') return -1;
if (cha2 == ')') return 0;
if (cha2 == ';') return 2;
}
if(cha1== ')')
{
if (cha2 == '+') return 1;
if (cha2 == '-') return 1;
if (cha2 == '*') return 1;
if (cha2 == '/') return 1;
if (cha2 == '=') return 2;
if (cha2 == 'i') return 2;
if (cha2 == '(') return 2;
if (cha2 == ')') return 1;
if (cha2 == ';') return 1;
}
if(cha1== '#')
{
if (cha2 == '+') return -1;
if (cha2 == '-') return -1;
if (cha2 == '*') return -1;
if (cha2 == '/') return -1;
if (cha2 == '=') return -1;
if (cha2 == 'i') return -1;
if (cha2 == '(') return -1;
if (cha2 == ')') return 2;
if (cha2 == ';') return 0;
}
return 3;
}
public bool isvt(char charvt)
{
switch (charvt)
{
case '+':
case '-':
case '*':
case '/':
case '=':
case '(':
case ')':
case 'i':
case '#':
case ';': return true; break;
}
return false;
}
public Form1()
{
InitializeComponent();
}
private void groupBox3_Enter(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
richTextBox1.Text = "";
OpenFileDialog openfiledialog = new OpenFileDialog();
DialogResult result = openfiledialog.ShowDialog();
if (result == DialogResult.OK)
{
filename = openfiledialog.FileName;
StreamReader sr;
try
{
sr = File.OpenText(filename);
}
catch
{
MessageBox.Show("文件打开失败");
return;
}
while (sr.Peek() != -1)
{
string str = sr.ReadToEnd();
richTextBox1.Text += str;
}
sr.Close();
}
}
private void button2_Click(object sender, EventArgs e)
{
if (richTextBox1.Text == "")
{
MessageBox.Show("没有表达式,无法完成保存" + "\r\n" + "请您输入或选择表达式");
return;
}
SaveFileDialog savefiledialog = new SaveFileDialog();
DialogResult result = savefiledialog.ShowDialog();
if (result == DialogResult.OK)
{
filename = savefiledialog.FileName;
StreamWriter sw;
try
{
sw = File.CreateText(filename);
}
catch
{
MessageBox.Show("文件保存失败");
return;
}
string str = richTextBox1.Text;
string[] arrystr = str.Split('\n');
for (int i = 0; i < arrystr.Length; i++)
{
sw.WriteLine(arrystr[i]);
}
sw.Close();
MessageBox.Show("保存完毕!");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -