C#如何实现计算器?

输入X值,在(MSSQL表内)最小值和最大值的区间查找,找到的时候取出对应行的a、b、c、d、e、f数值用于公式计算计算出N和M的值。N、M的计算公式为:Y=aX*X+b... 输入X值,在(MSSQL表内)最小值和最大值的区间查找,找到的时候取出对应行的a、b、c、d、e、f数值用于公式计算计算出N和M的值。
N、M的计算公式为:
Y=aX*X+bX+c
Z=dX*X+eX+f
式中X为输入的已知值
例:我输入X值1.5,则1.5在第二行1-3.8之间,因此查表得a=1.14673,b=1.7576,c=-0.0109,d=0.84155,e=1.5521,f=-0.077
再把这些值带入到公式中计算得到Y,Z,Y+Z的值。
图为mssql表内数据为下图:
学习中,各位可以写出详细的代码吗?
展开
 我来答
zhouxiang_1216
2014-11-19 · TA获得超过2591个赞
知道大有可为答主
回答量:1286
采纳率:33%
帮助的人:1380万
展开全部
从提问和截图上看数据并不多,所以可以直接取出数据库记录为DataTable,然后就很简单了,就是判断区间、取对应值、代入公式、计算结果,简单描述如下,有什么问题再追问或补充:
1、输入X值后做一个判断,如果输入的值小于1或者大于1000,那么就提示用户数据非法,至于方式很多,可以显示在TextBox中,也可以弹出提示框,还可以禁用计算按钮;
2、连接数据得到DataTable这个很简单了,现在要做的就是遍历或是循环DataTable中的行,根据输入的值大于等于第一列和小于等于第二列(等于最大值时算在哪个区间这个逻辑你没说,根据你的需求来)来得到来得到对应的DataRow,示例代码如下:
DataRow selected = null; //定义用于取值的行
foreach(DataRow dr in DataTable.Rows) //遍历数据表中的行
if(Convert.ToDouble(dr[0])<x&&Convert.ToDouble(dr[1])>x) //等于按你的要求写
selected=dr; //得到取值区间的行
3、得到对应的行之后就很简单了,根据公式取得对应列的值,代入公式计算出结果就是了;
if(selected != null)
y=Convert.ToDouble(dr[2]) * x //计算Y值,代码我简写了,就是取对应列代入就是了
基本就是这样,希望对你有帮助,有疑问请补充问题或是追问
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
murphybao
2014-11-19 · TA获得超过1210个赞
知道小有建树答主
回答量:1002
采纳率:66%
帮助的人:543万
展开全部
连接数据库就不写了网上到处是,简单描述一下
重点是SQL查询句子,这里假设表名=Table,X输入框TextBoxX,假设上限为包含(即X取值3.8命中第2行,1-3.8)
SQL = "Select * from Table Where 最小值<" + TextBoxX.Text+ " AND 最大值>=" + TextBoxX.Text;
执行以上SQL后,检查记录数是不是1,是则在范围内,否则报错,X值不合法(不在范围内)
然后就简单了,读出每个字段,计算就好了
追问
谢谢楼上的回答,你说的很清楚,但还是不太懂,可不可以判断当X值为1时在TextBox1内直接“报出不合法”,不再进行计算?
上面的句语中最后的“+ TextBoxX.Text;”是代表什么意思呢?
查找X后要取出abcdef的值,要怎么写?谢谢!见谅又多问了!
追答

因为假设了X输入框名字是TextBoxX,所以这里是指在查询字符串中连接输入的x值

你可以在按钮的单击事件中

 if (TextBoxX.Text.Equals("1"))
            {
                MessageBox.Show("X值不合法");
                return;
            }
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灰姑娘的霸气
2015-12-12 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3145
采纳率:72%
帮助的人:246万
展开全部
简单的计算器的代码如下:

{
int fristnum = Convert.ToInt32(this.textBox1.Text);
string choose = this.textBox3.Text;
int secondnum = Convert.ToInt32(this.textBox2.Text);
int sum=0;
switch (choose)
{
case "+":
sum = fristnum + secondnum;
this.textBox4.Text = sum.ToString();
break;
case "-":
sum = fristnum - secondnum;
this.textBox4.Text = sum.ToString();
break;
case "*":
sum = fristnum * secondnum;
this.textBox4.Text = sum.ToString();
break;
case "/":
sum = fristnum / secondnum;
this.textBox4.Text = sum.ToString();
break;
default :
this.textBox4.Text = "无法识别的远算符!";
break;
}

}
catch
{
MessageBox.Show("输入有误!");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友16d6e42
2015-12-01 · 超过20用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:34.2万
展开全部
如果你想要简单的四则运算功能,可以用switch——case语句。我这里有现成的四则运算的代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lllzzliyuzhi
推荐于2016-04-17 · TA获得超过381个赞
知道答主
回答量:69
采纳率:0%
帮助的人:20.6万
展开全部
#include<stdio.h>
void main()
{
float a,b;
char d;
printf("请输入两个数a,b:");
scanf("%f,%f"&a,&b);
printf("请输入运算符号d");
scanf("%c",d);
switch(d)
{
case'+':printf("%f\n",a+b); break;
case'-':printf("%f\n",a-b);break; case'*':printf("%f\n",a*b);break; case'/':printf("%f\n",a/b);break; default:printf("计算出错\n");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式