admin 管理员组

文章数量: 1184232


2024年12月31日发(作者:pythonpip安装)

第五章

详细设计

目标:确定应该怎样具体地实

现所要求的系统

1

经过这个阶段的设计工作,应该得出

对目标系统的精确描述,从而在编码

阶段可以把这个描述直接翻译成用某

种程序设计语言书写的程序。

详细设计阶段的任务还不是具体地编写

程序,而是要设计出程序的“蓝图”,以

后程序员将根据这个蓝图写出实际的程

序代码。因此,详细设计的结果基本上

决定了最终的程序代码的质量。

2

衡量程序的质量

不仅逻辑正确,性能是否满足要

求,更主要的是看其是否容易理

解和阅读。

§5.1 结构程序设计

产生的背景

3

结构程序设计的概念最早由ra

提出。1965年他在一次会议上指出:“可

以从高级语言中取消GO TO语句”,“程

序的质量与程序中所包含的GO TO 语句

的数量成反比”。1966年Bohm和

Jacopini证明了,只用3种基本的控制结

构就能实现任何单入口单出口的程序。

结构程序设计的经典定义

如果一个程序的代码块仅仅通过

顺序、选择和循环这三种基本控

制结构进行连接,并且每个代码

块只有一个入口和一个出口,则

称这个程序是结构化的。

4

结构程序设计的定义

尽可能少用GO TO语句的程序设计

方法,最好仅在检测出错误时才使

用GO TO 语句,而且应该总是使用

前向GO TO语句。

三种基本结构

A

Exp

B

AB

(a)

(b)

5

exp

F

A

T

exp

T

F

A

(c)

A

CASE

DO

F

exp

case1case2…case n

T

(d)

6

¾

有时需要立即从循环(甚至嵌套的循

环)中转移出来,如果允许使用

LEAVE(或BREAK)结构,则不仅方

便而且会使效率提高很多。

¾

LEAVE或BREAK结构实质上是受

限制的GO TO 语句,用于转移到循

环结构后面的语句。

¾

经典的结构程序设计:只允许使用顺

序、IF-THEN-ELSE型分支和DO-

WHILE型循环。

¾

扩展的结构程序设计:除上述3种基本

控制结构之外,还允许使用DO-CASE

型多分支结构和DO-UNTIL型循环结

构。

¾

修正的结构程序设计:再加上允许使用

LEAVE(或BREAK)结构。

7

结构程序设计的好处

1)自顶向下逐步求精,符合人类普遍规律。

2)清晰的层次结构,易读,易理解。

3)单入/出口结构易保证正确性,易诊断错误

并改正

4)控制结构有确定模式,代码只限于几种直

截了当的方式,易于测试。

5)可重用代码量最大

6)逻辑结构清晰,有利于正确性证明

具体实现结构化设计中

碰到的几个问题

8

问题之一:是否能够将问题解的任何算法都

表示为结构化构造?

1966年由Boehm Jacopini提出,并经Mills

进一步发展,在理论上证明了问题解的任

何算法都可以表示为结构化的构造。其理

论可归纳为:

定理一:假如不增加辅助变量、不

增加额外计算或不改变程序的执行

顺序,则必然存在不能用if-while

表示的构造。

9

定理二:在定理一的假设条件下,

if-while构造的充分必要条件是:

该构造不包含两个(或两个以

上)出口的循环。

定理三:若允许增加辅助变量、或增

加额外计算、或改变程序的执行顺

序,问题解的任何算法都可以表示

为结构化的构造。

10

非结构化流程图

START

S

F

P2

F

P1

T

T

2

1

START

S

T

P1 and P2

F

F

P1

T

21

11

START

START

S

F

S

P2

F

P1

T

T

1

T

2

P1 and P2

F

F

P1

T

21

非结构化流程

12

增加辅助变量

B

13

5.2 人机界面设计

人机界面设计是接口设计的一个重

要的组成部分。对于交互式系统来

说,人机界面设计和数据设计、体

系结构设计及过程设计一样重要。

5.2.1 设计问题

¾

系统响应时间

¾

用户帮助设施

¾

出错信息处理

¾

命令交互

14

1. 系统响应时间

本文标签: 程序 设计 用户 信息 系统

更多相关文章

解锁OpenWRT新功能:USB无线网卡的添加教程

8天前

说明要完成网线网卡的驱动需要在内核中添加驱动,同时还需要将固件放入rootfs中正确的位置,如果需要固件的话。 内核驱动添加 因为内核中对常规的USB网卡均支持,所以直接添加即可, 例如下面是

一插即用,USB无线网卡让台式机无缝接入无线上网,享受ADSL新体验

8天前

轻松无线,USB无线网卡共享台式机接入ADSL无线上网 笔者在去年10月份的时候购置了一部内置无线网卡的笔记本电脑,但这个功能一直没有机会得以应用。今年春节回家的几日中突然萌发了组建无线局域网的想法,因为如果想用自

树莓派5的无线网卡:Raspbian系统下的优化设置

8天前

最近发现无线USB网卡很多,但它的几个概念搞得很不清楚,今天终于搞明白了。 其实无线USB网卡,有以下功能: 1. 作为无线网卡,USB接口。无线网卡的功能就是能连接到外部wifi,上网。 2. 作为无线网卡,

Ubuntu系统中TP-LINK 5200H无线USB网卡的驱动安装:0bda:1a2b型号解决方案

8天前

TP-LINK 5200H无线USB网卡ubuntu驱动 在ubuntu中设备ID0bda:1a2b驱动环境准备;git安装器具体步骤: 1、下载驱动 git clone

快速上手TP-LINK150M无线USB网卡免驱版:wifiautoinstallsetup安装包的简便安装流程

8天前

`声明Copyrighte2018普联技术有限公司版权所有,保留所有权利未经普联技术有限公司明确书面许可,任何单位或个人不得擅自仿制、复制、誉抄或转译本书部分或全部内容。不得以任何形式或任何方式(电子、机械、影

当你的双系统遭遇了删除的厄运,这里有绝地翻盘的大招!

8天前

引言 “手贱”是科技进步的第一动力——至少在我的电脑上是这样。 前几天,我决定给硬盘来一次“断舍离”。看着那块装着老Windows 10系统的F盘,心想既然主力系统已经是Windows 11了,留着它也是浪费空间。于是

NTBOOTAutoFix:双系统启动菜单的终极修复大师

8天前

简介:双系统启动菜单工具NTBOOTautofix是一款专业软件,用于管理和修复双系统或多系统的启动菜单问题。它特别适用于Windows系列操作系统,并提供修复启动菜单、恢复MBR、修复BCD、数据备份与恢复、命令行模式操作、安全扫描

重新激活QQ浏览器自动更新功能,升级体验从这里开始!

8天前

QQ浏览器自动更新功能关闭后的开启方法详解 在日常使用QQ浏览器的过程中,部分用户可能会遇到自动更新功能被意外关闭的情况。当该功能处于禁用状态时,浏览器将无法自动检测并安装新版本,可能导致安全漏洞修复延迟、功能更新滞后等问题。

Ubuntu Linux新手必学:解决QQ自动关闭的技巧

8天前

原文地址: 前几天每次开机启动电脑,Ubuntu 9.10 linux qq 老是自动退出,QQ登陆了还没几分钟呢,刚想聊几句天的,悄无声息的QQ自动关闭了。 然后今天也奇怪了,QQ登陆后不会自动退出了,而且可以同时登

Ubuntu系统QQ频繁断线?一文教你快速修复方法!

8天前

每次开机启动电脑,Ubuntu  10 linux qq 老是自动退出,QQ登陆了还没几分钟呢,刚想聊几句天的,悄无声息的QQ自动关闭了。 只要修改一下qq配置文件(usrbinqq)就可以了。 具体如下。

一步到位:教你彻底关闭QQ小程序的不二法门

8天前

我有3个QQ,每天都要登录,可是登录后,"腾讯网迷你首页"就会自动弹出,干扰了我的心情(呵呵~~只有会员才免遭此罪哦).于是,我编写了个程序:在10分钟内主动查找"腾讯网迷你首页",发现就把它关掉,不

无线路由器桥接掉线?5个实用方案让网络流畅

8天前

半年前用两个tplink无线路由器搭建了一个桥接的网络,但是二级路由器总是断线需要重启。经过大半年的摸索,偶然间解决了问题,在这里共享给为同样问题困扰的朋友。我的配置是tp 742做主路由器,连接联通的光纤。t

从入门到精通:TP-Link与Netcore桥接实操指南

8天前

朋友的无线到我家就很微弱,天气状况好的时候,还是可以接受的,糟的时候网络质量就非常的差。 于是果断入手了TPLink,通过桥接的方式 扩展他的信号,让wifi覆盖无死角。 基本配置如下(参考网络上的资料,但是不同的路由

一文详解:轻松进入192.168.1.1路由器控制台

8天前

快速体验打开 输入框输入如下内容 帮我开发一个路由器登录页面模拟系统,用于展示常见路由器的管理界面登录流程。系统交互细节:1.输入正确IP地址跳转登录页 2.输入错误地址提示更正 3.忘记密码时显示重置指

轻松搞定192.168.0.1,从初学者到高手的路由器设置技巧

8天前

摘 要 (导读:192.168.0.1路由器设置)1、路由器正确安装:2、IP地址设置3、登录路由器4、设置路由器目录本文将介绍192.168.0.1路由器设置的方法及教程;适用于小白新手换新路由器或者路" (导读

深度解析Dism++:打造Windows的私人优化专家

8天前

Dism++终极指南:免费高效的Windows系统优化解决方案 Dism++是一款功能强大的Windows系统优化工具,通过Dism-Multi-language项目提供全面的多语言支持,让全球用户都能以母语轻松使用其强大的系

Dism命令新探索:深入理解与实践Windows映像文件维护

8天前

Dism是什么? dism 命令(Deployment Image Servicing and Management)是Windows操作系统中的一个命令行工具,用于管理和维护映像文件(如Windows安装映像或修复映像)。d

当Windows系统出问题时,如何借助DISM挂载映像进行修复,让电脑焕然一新?

8天前

如何使用DISM对Windows系统映像进行修复在前些天我更新电脑驱动的时候,更新程序报错了。我检查后发现是系统映像完整性的问题。在我解决完问题后,我决定把这个解决的过程记录下来,希望能帮到别人。 那么正文开始

Ubuntu系统安全大计,备份技巧大公开

8天前

本文主要参考这个博客。全文一半内容是复制粘贴的这个博客内容,提前声明一下,以防侵权。还参考了下这个ubuntu有时候用着用着崩了,或者想回退到历史某个版本。这就需要系统备份了:把当前某个能用的状态备

Linux系统安全小贴士:掌握备份与恢复,安心每一天

8天前

系统备份linux秉承一切皆文件的思想,系统备份就相当于把整个(根目录)所有文件打包压缩保存。 备份前先切换到root用户,避免权限问题,然后切换到(根目录)。 tar -cvpzf mediaDisk

发表评论

全部评论 0
暂无评论