# 实数带小数点的四则运算计算器
# 一、实验目的和要求
- 掌握C#的基本语法
- 了解Windows窗体和基本控件的使用
- 掌握选择结构的特点和使用方法
- 掌握字符串String类的声明和使用
# 二、实验内容和原理
![](http://www.writebug.com/myres/static/uploads/2021/10/19/cef8b2be139c3439230985a12fc53564.writebug)
- 学会分析“简易计算器”任务的实现思路
- 根据思路独立完成“简易计算器”的源代码编写、编译和运行
- 掌握正则表达式来判定数字键或者数据是否合法
- 掌握String类常用方法的使用
**项目流程图**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/77f38070bccc695ae6c3da0b2a12ceb0.writebug)
# 三、实验环境
- **硬件**:PC机
- **软件**:windows10、VS2017
# 四、算法描述及实验步骤
## 4.1 实验步骤
- 打开vs2017,创建新项目(.NET Framework),并命名为计算器
- 定义类Form1,完成组件的布局,以及事件处理方法
- 编译和测试程序,并查看运行结果
## 4.2 算法描述
- 输入合法机制
- 避免第一位为符号,设置判断当第一位按非数字使不处理
- 当第一位为零,第二位也为零,设置判断当第一位为零时输入数字无效(即0000.0)
- 避免输出数字不合法(多个小数点 即6.6.6),利用循环以符号位为分割线,判该数字是否存在已存在小数点,即每个运算符号后的数字至多存在一个小数点
- 排除多符号一起串连(即8+\*9+6\*/5)
- 点击运算符触发事件并判断前一位是否为符号,是则不做处理
- 计算字符串
- 判断最后一位是否为运算符,利用String类中的Last()方法提取最后一位进行判断,是则提示错误,否则运算
- 字符和数字分离,两次利用Split()类进行字符串提取分析分别得到数字序列和运算符序列
- 将数字序列和运算符序列存放在两个动态数组中,动态数组的删除较为便利
- 根据优先级计算,设置两个循环(当符号链表中的数据不为空则继续),第一个循环计算所有得乘除,即符号前后得两个数乘除,结果放在第一个数中删除第一个数和删除符号;第二个循环计算所有的加减,结果放在第一个数中删除第一个数和删除符号
# 五、调试过程
## 5.1 问题
**Split(new char[]);中没有去除空元素**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/739c7130947fd104a030d9164c3b8a65.writebug)
**运算结果错误**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/929620e22d1c56c3fa5d76e9721cae47.writebug)
## 5.2 解决
- 添加参数 Split(new char[],StringSplitOptions.RemoveEmptyEntries);去除空元素
- 程序只删除一个运算后的数,导致算法错误,如该图结果由:5*6-6/9
## 5.3 更正结果
![](http://www.writebug.com/myres/static/uploads/2021/10/19/324ca778c248e56444243e55d2272315.writebug)
# 六、实验结果
**实验结果**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/8c1f8c711db380c567af515acd289b21.writebug)
**验证结果**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/5faf7d84b59e8d29a26882a06548e788.writebug)
# 七、总结
通过这个实验,我了解到了数组、字符串、动态数组的常用方法,在实验过程中遇到的问题学会自己去解决,在思路方法行不通时,学会转变另一种方法去解决,如在动态数组中的GetRange(int i,int count)从第i个获取count长度的数组集合,当我count=1时,获取的第i个字符,利用toString()、Trim()方法后使用Equel(),任何条件其值都是false,最后通过将GetRange获取的字符存在byte类型中用“==”匹配器ASCII码。
没有合适的资源?快使用搜索试试~ 我知道了~
精选_毕业设计_实数带小数点的四则运算计算器_完整源码
共35个文件
cs:9个
cache:5个
resx:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 12 浏览量
2022-03-05
17:46:19
上传
评论
收藏 475KB ZIP 举报
温馨提示
实数带小数点的四则运算计算器
资源推荐
资源详情
资源评论
收起资源包目录
6943330451917572.zip (35个子文件)
four_operations_calculator
src
计算器.sln 1KB
.vs
计算器
v15
.suo 43KB
Server
sqlite3
storage.ide-shm 32KB
storage.ide 584KB
storage.ide-wal 3.95MB
db.lock 0B
计算器
Form1.Designer.cs 4KB
App.config 184B
Form1.cs 10KB
obj
Debug
TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs 0B
TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs 0B
计算器.csproj.GenerateResource.cache 1012B
计算器.pdb 38KB
计算器.csproj.CoreCompileInputs.cache 41B
DesignTimeResolveAssemblyReferencesInput.cache 7KB
计算器.csproj.FileListAbsolute.txt 745B
计算器.csprojAssemblyReference.cache 11KB
计算器.Properties.Resources.resources 180B
TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs 0B
计算器.exe 13KB
计算器.Form1.resources 180B
DesignTimeResolveAssemblyReferences.cache 1KB
bin
Debug
计算器.pdb 38KB
计算器.exe.config 184B
计算器.exe 13KB
Properties
Resources.Designer.cs 3KB
Settings.Designer.cs 1KB
Settings.settings 242B
AssemblyInfo.cs 1KB
Resources.resx 5KB
Program.cs 499B
计算器.csproj 3KB
Form1.resx 6KB
LICENSE 1KB
README.md 4KB
共 35 条
- 1
资源评论
工具盒子
- 粉丝: 59
- 资源: 1313
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功