首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么通过textBox输入函数形式,然后求函数值

2012-01-19 
如何通过textBox输入函数形式,然后求函数值usingSystemusingSystem.DrawingusingSystem.Collectionsusi

如何通过textBox输入函数形式,然后求函数值
using   System;
using   System.Drawing;
using   System.Collections;
using   System.ComponentModel;
using   System.Windows.Forms;
using   System.Data;

namespace   TEST
{
///   <summary>
///   Form1   的摘要说明。
///   </summary>
public   class   Form1   :   System.Windows.Forms.Form
{
private   System.Windows.Forms.Label   label1;
private   System.Windows.Forms.TextBox   textBox1;
private   System.Windows.Forms.Label   label2;
private   System.Windows.Forms.TextBox   textBox2;
private   System.Windows.Forms.Label   label3;
private   System.Windows.Forms.TextBox   textBox3;
private   System.Windows.Forms.Button   button1;
///   <summary>
///   必需的设计器变量。
///   </summary>
private   System.ComponentModel.Container   components   =   null;

public   Form1()
{
//
//   Windows   窗体设计器支持所必需的
//
InitializeComponent();

//
//   TODO:   在   InitializeComponent   调用后添加任何构造函数代码
//
}

///   <summary>
///   清理所有正在使用的资源。
///   </summary>
protected   override   void   Dispose(   bool   disposing   )
{
if(   disposing   )
{
if   (components   !=   null)  
{
components.Dispose();
}
}
base.Dispose(   disposing   );
}

static   Double   f(Double   x)
{
Double   fx=Convert.ToDouble(textBox5.Text);//这里出错了,如何改正?
return   fx;
}



#region   Windows   窗体设计器生成的代码
///   <summary>
///   设计器支持所需的方法   -   不要使用代码编辑器修改
///   此方法的内容。
///   </summary>
private   void   InitializeComponent()
{
this.label1   =   new   System.Windows.Forms.Label();
this.textBox1   =   new   System.Windows.Forms.TextBox();
this.label2   =   new   System.Windows.Forms.Label();
this.textBox2   =   new   System.Windows.Forms.TextBox();
this.label3   =   new   System.Windows.Forms.Label();
this.textBox3   =   new   System.Windows.Forms.TextBox();
this.button1   =   new   System.Windows.Forms.Button();
this.SuspendLayout();
//  
//   label1
//  
this.label1.Location   =   new   System.Drawing.Point(48,   24);
this.label1.Name   =   "label1 ";
this.label1.Size   =   new   System.Drawing.Size(72,   23);
this.label1.TabIndex   =   0;
this.label1.Text   =   "f(x)= ";
//  
//   textBox1
//  
this.textBox1.Location   =   new   System.Drawing.Point(128,   24);
this.textBox1.Name   =   "textBox1 ";
this.textBox1.Size   =   new   System.Drawing.Size(200,   21);
this.textBox1.TabIndex   =   1;
this.textBox1.Text   =   " ";
//  
//   label2
//  
this.label2.Location   =   new   System.Drawing.Point(48,   56);
this.label2.Name   =   "label2 ";


this.label2.Size   =   new   System.Drawing.Size(72,   24);
this.label2.TabIndex   =   2;
this.label2.Text   =   "x0= ";
//  
//   textBox2
//  
this.textBox2.Location   =   new   System.Drawing.Point(128,   56);
this.textBox2.Name   =   "textBox2 ";
this.textBox2.Size   =   new   System.Drawing.Size(200,   21);
this.textBox2.TabIndex   =   1;
this.textBox2.Text   =   " ";
this.textBox2.TextChanged   +=   new   System.EventHandler(this.textBox2_TextChanged);
//  
//   label3
//  
this.label3.Location   =   new   System.Drawing.Point(32,   200);
this.label3.Name   =   "label3 ";
this.label3.Size   =   new   System.Drawing.Size(56,   24);
this.label3.TabIndex   =   3;
this.label3.Text   =   "f(x0)= ";
//  
//   textBox3
//  
this.textBox3.Location   =   new   System.Drawing.Point(112,   200);
this.textBox3.Name   =   "textBox3 ";
this.textBox3.Size   =   new   System.Drawing.Size(176,   21);
this.textBox3.TabIndex   =   4;
this.textBox3.Text   =   " ";
//  
//   button1
//  
this.button1.Location   =   new   System.Drawing.Point(176,   128);
this.button1.Name   =   "button1 ";
this.button1.Size   =   new   System.Drawing.Size(120,   48);
this.button1.TabIndex   =   5;
this.button1.Text   =   "计算 ";
this.button1.Click   +=   new   System.EventHandler(this.button1_Click);
//  
//   Form1
//  
this.AutoScaleBaseSize   =   new   System.Drawing.Size(6,   14);
this.ClientSize   =   new   System.Drawing.Size(368,   368);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox3);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label1);
this.Controls.Add(this.textBox2);
this.Name   =   "Form1 ";
this.Text   =   "Form1 ";
this.ResumeLayout(false);

}
#endregion

///   <summary>
///   应用程序的主入口点。
///   </summary>
[STAThread]
static   void   Main()  
{
Application.Run(new   Form1());
}

private   void   textBox2_TextChanged(object   sender,   System.EventArgs   e)
{

}

private   void   button1_Click(object   sender,   System.EventArgs   e)
{
if((textBox1.Text== " ")||(textBox2.Text== " "))
MessageBox.Show( "请输入数据! ");
else              
{

Double   x=0;
x=Convert.ToDouble(textBox2.Text);
String   fx=textBox1.Text;
textBox3.Text=f(x).ToString();

}
}
}
}


[解决办法]
textBox5.Text 在静态方法中是不能用的

------解决方案--------------------


写成
static Double f(String Text)
{
Double fx=Convert.ToDouble(Text);
return fx;
}


static Double f(TextBox Text)
{
Double fx=Convert.ToDouble(Text.text);
return fx;
}
[解决办法]
这个要用到编译原理的知识。简单的话可以使用递归下降法。

热点排行