C#之用字符提取做计算器
来源:互联网 发布:新网域名登录 编辑:程序博客网 时间:2024/05/23 02:03
老师布置作业用C#写一个计算器,以前只会一点C++,于是打算用提取字符的办法来做,即先提取符号,然后提取数字,做好按先乘除后加减的方法来做,然后一下手,发现。。。C#根本没有STL啊。。搜了搜百度,幸好有using System; using System.Collections.Generic;这东西,基本上与STL是一样的(高手勿喷,我只是按网上说的写,至于有什么不一样,有多不一样,我才学了两节课啊。。。。)于是顺理成章,用链表试试手!!下面放一下主要代码:
下面是提取符号的代码:
for ( i = 0; i < str1.Length; i++) { if (Convert.ToString(str1[i]) == "+" || Convert.ToString(str1[i]) == "-" || Convert.ToString(str1[i]) == "*" || Convert.ToString(str1[i]) == "/") { numparts.Add(str1.Substring(pos1, i-pos1)); signparts.Add(textBox1.Text.Substring(i, 1)); pos1 = i + 1; t++; }
else if (i ==str1.Length-1) { numparts.Add(str1.Substring(pos1, i - pos1+1)); } }
然后是运算的代码:
for(i = 0; i < t; i++) { if(signparts[i] == "*") { tmp=Convert.ToDouble(numparts[i])*Convert.ToDouble(numparts[i+1]); numparts.RemoveRange(i,2); signparts.RemoveRange(i,1); numparts.Insert(i, Convert.ToString(tmp)); t--; i = -1; } else if(signparts[i] == "/") { tmp = Convert.ToDouble(numparts[i]) / Convert.ToDouble(numparts[i + 1]); numparts.RemoveRange(i, 2); signparts.RemoveRange(i, 1); numparts.Insert(i, Convert.ToString(tmp)); t--; //i = -1; } } for(i = 0; i < t; i++) { if(signparts[i]=="+") { tmp=Convert.ToDouble(numparts[i])+Convert.ToDouble(numparts[i+1]); numparts.RemoveRange(i,2); signparts.RemoveRange(i,1); numparts.Insert(i,Convert.ToString(tmp)); t--; i=-1; } else if (signparts[i] == "-") { tmp = Convert.ToDouble(numparts[i]) - Convert.ToDouble(numparts[i + 1]); numparts.RemoveRange(i, 2); signparts.RemoveRange(i, 1); numparts.Insert(i, Convert.ToString(tmp)); t--; i = -1; } }
这么简答的东西居然用了一个下午加一个晚上,主要是函数不熟,在MSDM查半天才查到要用到的函数的用法,而且对C#还是很陌生,还犯了一些愚蠢的错误:
if((x=a())==1||((x=b())==1)应该等同于if((x=a()==1);if((x=b()==1) ;也就是说,即使第一个条件成立了,还会判断第二个条件并赋值,而我想做的是如果第一个为真,那立刻进入函数,不要再判断了,结果自然是各种bug!好来就放弃这种用法了。。。
0 0
- C#之用字符提取做计算器
- c# 做计算器
- 【经典算法】:用字符串模拟计算器的生成
- C# split 用字符串分割
- C#用字符串触发事件
- c# 用字符串分割字符串
- MYSQL 一个巧用字符函数巧用字符函数做数据筛选的题
- 用字符串常量做函数模板的参数
- C#入门基础之计算器
- C语言:(旧)用字符串自由输入计算的计算器(加减乘除)
- Android自做小实验之 计算器
- 计算器之如何从字符串表达式中有效提取数字
- [Win32汇编]之用字符串填充edit控件
- cocos2dx 用字符串创建按钮之 ControlButton
- C#学习之七---计算器应用程序
- C#基础之计算器的简单实现
- 第一次用字符串
- C# 计算器
- 合并两个已经排序的数组为另一个数组
- Pythonic到底是什么玩意儿?
- Git人生
- leetCode解题报告之Insertion Sort List
- 基本类型
- C#之用字符提取做计算器
- poj3255-dijkstra+优先队列(多么痛的领悟)
- 10种排序算法总结
- 分享12款最佳的Bootstrap设计工具
- 我的android(第六天)
- iOS第三方开源库的吐槽和备忘
- 第十七天3月12日之一句代码实现crud操作(手动写的,没使用其他jar包和框架)
- linux系统进入技术真空期,期待UBUNTU手机版。
- JAVA正则表达式语法大全