第二十课先乘除后加减——C#计算器编程教学

本文介绍了一种在编程中实现四则运算符优先级的方法,通过先处理乘除再处理加减的策略来确保正确的运算顺序。文章提供了一个具体的C#代码示例,展示了如何通过遍历操作数列表并应用相应的数学操作来实现这一目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不少人念念不忘四则运算的运算符优先级,而Windows7的计算器基本型也没有实现它。

其实根据我的算式运算解决思路,其实就查找有乘除的项,先加好(对象加),然后做加减。

代码修改如下:

        private string RunCaclLists()
        {
            for (int i = 0; i < CaclLists.Count; i++)
            {
                if (CaclLists[i].TypeOp == TypeOp.Multiply || CaclLists[i].TypeOp == TypeOp.Divide || CaclLists[i].TypeOp == TypeOp.Mod)
                {
                    CaclLists[i] = CaclLists[i] + CaclLists[i + 1];
                    CaclLists.RemoveAt(i + 1);
                    i--;
                }
            }
            CaclList sum = CaclLists[0];
            if (CaclLists.Count > 1)
            {
                for (int i = 1; i < CaclLists.Count; i++)
                {
                    sum += CaclLists[i];
                }
            }
            return sum.StringEnter;
        }


第二十课结语。好的解决思路,事半功倍,是编程的程序员努力追求的目标。

本C#计算器编程教学到这里就全部完成了。最后分享源码。

http://download.youkuaiyun.com/detail/luwq168/9510061

以下是基于 C# 的基础练习题目集合,涵盖了数组操作、循环结构、面向对象编程等多个方面。这些题目可以帮助初学者巩固基础知识并提升实际编码能力。 --- ### 题目列表 #### 数组与循环 1. 编写一个程序,输入三个整数并按从小到大的顺序输出它们[^1]。 2. 实现一个函数 `FindNumbersWithCondition`,找出指定范围内的所有满足条件的三位数(如水仙花数)。 3. 使用 `while` 循环实现判断某个范围内所有的水仙花数,并打印出来[^2]。 4. 创建一个二维数组,初始化为随机值,并计算其行列平均值。 5. 输入一组数字,统计其中正数、负数和零的数量。 #### 字符串处理 6. 编写一段代码,反转字符串中的字符顺序。 7. 判断给定字符串是否为回文字符串(忽略大小写和空格)。 8. 将一个句子拆分为单词,并统计每个单词出现的次数。 9. 替换字符串中的特定子串为另一个子串。 10. 计算两个字符串之间的最长公共前缀。 #### 条件语句与逻辑运算 11. 编写一个简单的计算器程序,支持加减乘除四种基本运算。 12. 判断某一年份是否为闰年。 13. 根据用户输入的成绩等级(A-F),输出对应的分数区间。 14. 设计一个猜数字游戏,提示用户输入直到猜测正确为止。 15. 编写一个程序,模拟石头剪刀布的游戏过程。 #### 函数与方法 16. 定义一个求阶乘的方法 `Factorial(int n)` 并测试。 17. 编写一个递归函数来计算斐波那契数列的第 N 项。 18. 实现冒泡排序算法,对整型数组进行升序排列。 19. 编写快速排序算法,用于对任意类型的数组进行排序。 20. 构造一个通用交换函数,可以交换两种不同数据类型的变量值。 #### 类与对象 21. 定义一个人类 `Person`,包含姓名、年龄属性以及打招呼的方法 `SayHi()`[^4]。 22. 扩展上一题的人类,增加继承关系,派生出学生类 `Student` 和教师类 `Teacher`。 23. 调用基类构造器,在派生类中重写虚方法[^3]。 24. 实现抽象类的功能,设计一个多态场景下的方法调用。 25. 使用接口定义多个类的行为规范,并验证其实现。 #### 文件读写 26. 编写一个程序,将用户的输入保存到文件中。 27. 从文件中读取内容,并逐行显示在控制台上。 28. 复制一个文本文件的内容到另一个新文件中。 29. 统计文本文件中的总字数、行数和单词数量。 30. 过滤掉文件中的敏感词,并生成一个新的净化版本。 #### 异常处理 31. 捕获并处理除法运算中的被零除异常。 32. 在文件读写过程中加入异常捕获机制,防止路径错误等问题。 33. 自定义一种异常类型,并在适当位置抛出该异常。 34. 测试多种可能发生的异常情况,记录日志以便后续分析。 35. 结合数据库访问操作,演示如何优雅地处理 SQL 查询失败的情况。 #### LINQ 与集合 36. 使用 Lambda 表达式筛选出列表中大于某一阈值的所有元素。 37. 对 List<T> 中的数据按照某种规则分组并汇总结果。 38. 查找 Dictionary<K,V> 中键值最大的条目及其对应值。 39. 合并两个有序数组成新的有序数组。 40. 应用 LINQ 查询语法完成复杂查询任务。 #### 线程与并发 41. 创建多线程环境,分别执行不同的独立任务。 42. 使用锁机制保护共享资源免受竞争条件影响。 43. 展示异步编程模型的优势,通过 Task 或 async/await 关键字实现。 44. 设置定时器触发事件,每隔固定时间间隔运行一次回调函数。 45. 解决生产者消费者问题,利用队列协调两者的工作节奏。 #### 图形界面开发 46. 开发一个简易窗口应用程序,允许用户点击按钮改变背景颜色。 47. 添加菜单栏功能至 GUI 工具集中,提供退出选项。 48. 显示动态进度条控件,反映后台耗时工作的进展状态。 49. 接收键盘快捷键指令,响应相应的 UI 动作。 50. 整合图表库绘制折线图展示统计数据变化趋势。 ... 由于篇幅有限,仅列举部分典型题目作为示范。如果需要完整的百道练习题清单,请进一步说明需求! --- ### 示例代码片段 以下是一个简单例子——判断水仙花数: ```csharp static void Main(string[] args) { int a = 100; while (a <= 999) { int q = (int)(a / 100 % 10); int c = (int)(a / 10 % 10); int d = (int)(a % 10); if (q * q * q + c * c * c + d * d * d == a) Console.WriteLine($"这是一个水仙花数为: {a}"); a++; } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落单枫叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值