用伪代码模拟洗衣机的运转流程

今天的软导课又学到了不少“骚操作”,其中就包括Pseudocode和Top-down design。
不如现在就借着介绍洗衣机的运转流程向大家介绍一下这两个简单的东西。

在这里插入图片描述

题目如下

仔细观察您洗衣机的运作过程,运用Top-down设计方法和Pseudocode 描述洗衣机控制程序。
假设洗衣机可执行的基本操作如下: 
water_in_switch(open_close) // open 打开上水开关,close关闭 
water_out_switch(open_close) // open 打开排水开关,close关闭 
get_water_volume() //返回洗衣机内部水的高度
motor_run(direction) // 电机转动。left左转,right右转,stop停
time_counter() // 返回当前时间计数,以秒为单位 
halt(returncode) //停机,success 成功 failure 失败 

1)请使用伪代码分解“正常洗衣”程序的大步骤。包括注水、浸泡等 

2)进一步用基本操作、控制语句(IF、FOR、WHILE等)、变量与表达式,写出每 个步骤的伪代码 

3)根据你的实践,请分析“正常洗衣”与“快速洗衣”在用户目标和程序上的异同。 你认为是否存在改进(创新)空间,简单说明你的改进意见? 

4)通过步骤3),提取一些共性功能模块(函数),简化“正常洗衣”程序,使程序 变得更利于人类理解和修改维护。

例如: 
wait(time) //等待指定的时间; 
注水(volume,timeout) //在指定时间内完成注水,否则停机; 
排水(timeout)。 
等子程序 

在这里插入图片描述

1.“正常洗衣”程序的大步骤

注水→浸泡→转动→排水 (我这个洗衣机没有脱水功能= =)

water_in_switch(open)
get_water_volume()
water_in_switch(close)
motorrun(left)
motorrun(right)
motorrun(stop)
water_out_switch(open)
get_water_volume()
water_out_switch(close)

2.进一步完善

从上面的伪代码中,我们可以知道这些大步骤跟现实生活的洗衣机还是有很大差距的,我们不如继续进行改善。
下面我为它添加计时功能,各大步骤的时间限制功能,注水高度限制功能,结束音乐,以及故障停机功能。

check wrong
if success 
then
	record time
	water_in_switch(open)
	get_water_volume()
	
	if enough
	then
		tiemlimit
		water_in_switch(close)
		motorrun(left)
		motorrun(right)
		motorrun(stop)
		water_out_switch(open)
		get_water_volume()
		
		if empty
		then
			water_out_switch(close)
			return time
			music

3.结合生活实践

现实生活中,洗衣机存在多种模式,比如“正常洗衣”与“快速洗衣”,这取决于用户自己的时间安排,因此应该加入模式选择的功能。

4.结合3中的观点继续完善

check wrong
if success 
then
	read mod    //mod1为正常洗衣 mod2为快速洗衣
	record time
	water_in_switch(open)
	get_water_volume()
	
	if enough
	then
		if mod=mod1 then timelimit=tiemlimit1
		if mod=mod2 then timelimit=tiemlimit2
		water_in_switch(close)
		motorrun(left)
		motorrun(right)
		motorrun(stop)
		water_out_switch(open)
		get_water_volume()
		
		if empty
		then
			water_out_switch(close)
			return time
			music

好了,整个设计洗衣机的过程终于告一段落了,希望大家能认识到Pseudocode和Top-down design的好处~~
(强行校徽水印)
在这里插入图片描述

以下是一个简单的伪代码示例,描述了鲜花销售管理系统的功能流程: ``` // 产品管理 class Product { string name; string category; float price; int stock; // 其他属性和方法 } // 订单管理 class Order { string orderId; string customerId; List<Product> products; // 其他属性和方法 } // 客户管理 class Customer { string customerId; string name; string address; string contactNumber; // 其他属性和方法 } // 供应商管理 class Supplier { string supplierId; string name; List<Product> products; // 其他属性和方法 } // 销售统计与报表 class SalesReport { // 生成销售报表的方法 } // 库存管理 class Inventory { List<Product> products; // 更新库存的方法 } // 财务管理 class Finance { // 记录财务数据的方法 } // 物流配送管理 class Logistics { // 安排配送和跟踪订单的方法 } // 主程序 function main() { // 初始化产品、订单、客户等实例对象 List<Product> products = initializeProducts(); List<Order> orders = initializeOrders(); List<Customer> customers = initializeCustomers(); List<Supplier> suppliers = initializeSuppliers(); // 用户交互循环 while (true) { displayMenu(); // 显示菜单供用户选择操作 int choice = getUserChoice(); // 获取用户选择的操作 switch (choice) { case 1: // 产品管理操作 productManagement(products); break; case 2: // 订单管理操作 orderManagement(orders, customers); break; case 3: // 客户管理操作 customerManagement(customers); break; case 4: // 供应商管理操作 supplierManagement(suppliers); break; case 5: // 销售统计与报表操作 salesReportManagement(orders); break; case 6: // 库存管理操作 inventoryManagement(products); break; case 7: // 财务管理操作 financeManagement(); break; case 8: // 物流配送管理操作 logisticsManagement(orders); break; case 9: // 退出程序 exitProgram(); break; default: displayErrorMessage(); } } } // 其他函数和方法的实现 // ... ``` 请注意,以上只是一个简单的伪代码示例,实际情况中可能需要根据具体需求进行更详细和复杂的设计和实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值