当前课程知识点:程序设计基础 > 第九章 可配置的程序设计 > 9.1 自动售卖程序 > 9.1.1 提出问题与初步设计
同学们好 今天是我们课程最后一章了
这门课程是向大家介绍如何用计算思维来分析问题
并设计解决方案
如何代码来真正解决问题的
在实际工作中我们不一定要比问题完全的分析清楚
或者设计出解决方案的所有细节以后再开始写代码
而是可以一边分析一边设计一边写代码
当然一边分析一边设计一边写代码也是有一定方法的
而不是随便来的
我们先考虑问题解决方案的整体框架
再考虑相对细节的部分
这种方法呢 称为自顶向下 逐步求精
下面呢 我们今天是来看一看
我们解决的问题是什么样子的
以及王小二同学是怎么做的
王小二到校园的水果店勤工俭学
老板仍然觉得说人手不够
于是呢 想尝试一种新的模式
叫无人售卖
老板希望顾客挑选完水果以后可以自己去称重
自己去算总价自己去付钱找钱
那这种无人售卖的模式呢
一开始不能搞太大所以我们先从苹果和香蕉两种水果开始
王小二同学记得我们曾经设计基础mooc课程讲过
电子秤的模拟程序
觉得说很好啊可以借鉴一下
写一个程序来支持这种自动售卖的模式
本着学以自用的想法呢
王小二就向老板自告奋勇的说我来写这个程序吧
王小二是这样设计的
首先呢这样一个程序可以考虑用一个菜单的方式
让顾客自己选择相应的操作
然后顾客可以选择买什么水果
输入水果的重量
得到水果总价
最后这个程序能够一直运行
因为有很多顾客依次去购买
就本着这样一些想法呢
王小二同学就先设计了这样一个大概的流程
程序开始的时候就显示一个菜单
然后让用户选择
用户选择1的话就可以处理具体买什么水果
如果用户选择2呢 那程序就结束了
那如果用户输入了别的其他的一些选项
或者说超出了我们1和2的选项
那么显然这个程序就忽略它
继续显示菜单
这就是一个基本的一个售卖流程的控制
现在这里还有很多细节还不清楚
但不影响这王小二同学先构建程序整体的框架了
根据这么一个流程呢
我们就写了这么一个代码 大家请看
由于整个的程序是不停不停的运转的
所以我们写了个while(1)
这永远为真 这个程序不停地执行
直到一个顾客选择了功能2
或者说王小二老板打算今天营业结束了我要关了
那这时候选择程序可以退出
那么在这个不断循环的中间呢
根据我们流程先写是菜单
然后呢 输入一个提示让顾客选择下面的功能
然后用cin呢得到用户的具体输入
根据输入case1、case2进行相应的处理
如果是case1的话呢就意味着顾客需要买水果
那我们就处理这么一个具体的订单就行了
其中显示菜单是个比较容易的事情
假设我们菜单是大概这样一个内容
相当于把菜单要写成内容前后加上cout和endl
我们这个显示菜单的函数可以非常容易的完成
这就是我们逐步求精 我们先把菜单的部分求精了
-1.1 基础知识
-1.2 买菜问题
-1.3 数学运算
-1.4 补充说明
-1.5 总结
--1.5 总结
-程设论道
--程设论道
-师生问答
-第一章 编程初步--语法自测
-2.1 关于超级计算器的几点思考
-2.2 电子秤模拟 — 背景介绍及需求分析
-2.3 电子秤模拟 — 代码实现
-2.4 变量定义与变量类型
-2.5 猜数游戏与数据表示
-2.6 关于变量的讨论
--公告
-2.7 变量体现的计算思维
-程设论道
--程设论道
-师生问答
--师生问答
-第二章 变量与代数思维--语法自测
-3.1 谁做的好事——语义表示
-3.2 谁做的好事——真假检查
-3.3 谁做的好事——循环枚举
-3.4 谁是嫌疑犯——多重循环枚举
-3.5 谁是嫌疑犯——破案线索表示
-3.6 谁是嫌疑犯——用二进制枚举
-程设论道
--程设论道一
--程设论道二
--程设论道三
-师生问答
-第三章 逻辑推理与枚举解题--语法自测
-4.1 插花游戏
-4.2 筛法
-4.3 线性查找
-4.4 折半查找
--4.4.1 提问
-4.5 排序问题
-4.6 总结
--4.6.1 总结
-程设论道
--程设论道二:筛法
-师生问答
-第四章 筛法与查找--语法自测
-5.1 阶乘
-5.2 排序
-5.3 矩阵填充
-5.4 分书与八皇后
-5.5 青蛙过河
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答一
--师生问答二
-第五章 分治思想与递归--语法自测
-6.1 兔子数列问题
-6.2 分鱼问题
-6.3 橱窗的插花问题
-6.4 最长公共子序列问题
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答
-第六章 递推与动态规划--语法自测
-7.1 统计记录总数
-7.2 统计活跃用户数
-7.3 统计在线时长
--7.3.2 结构
-7.4 总结
--7.4.1 总结
-程设论道
--程设论道
-师生问答
--师生问答
-第七章 文本数据处理--语法自测
-8.1 将数据组织成链表
-8.2 提高链表访问效率 —— 哈希链表
-8.3 以二进制文件存储链表
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答
-第八章 非文本数据处理--语法自测
-9.1 自动售卖程序
-9.2 配制水果信息
-9.3 指定界面语言
-程设论道
--程设论道
-师生问答
--师生问答
-第九章 可配置的程序设计--语法自测