1.自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。
2.逐步求精:对复杂问题,应设计一些子目标作为过渡,逐步细化。
3.模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。
4.限制使用goto语句
结构化程序设计方法的起源来自对GOTO语句的认识和争论。肯定的结论是,在块和进程的非正常出口处往往需要用GOTO语句,使用GOTO语句会使程序执行效率较高;在合成程序目标时,GOTO语句往往是有用的,如返回语句用GOTO。否定的结论是,GOTO语句是有害的,是造成程序混乱的祸根,程序的质量与GOTO语句的数量呈反比,应该在所有高级程序设计语言中取消GOTO语句。取消GOTO语句后,程序易于理解、易于排错、容易维护,容易进行正确性证明。作为争论的结论,1974年Knuth发表了令人信服的总结,并证实了:
(1)GOTO语句确实有害,应当尽量避免;
(2)完全避免使用GOTO语句也并非是个明智的方法,有些地方使用GOTO语句,会使程序流程更清楚、效率更高。
(3)争论的焦点不应该放在是否取消GOTO语句上,而应该放在用什么样的程序结构上。其中最关键的是,应在以提高程序清晰性为目标的结构化方法中限制使用GOTO语句。
结构化程序设计是一种基于模块化和层次化的编程方法,其核心原则包括以下几点:
1、单一功能原则(Single Responsibility Principle, SRP):每个模块或函数只应该负责一个单一的功能,以确保代码的清晰性和可维护性。
2、开放封闭原则(Open-Closed Principle, OCP):软件实体(类、模块等)应该对扩展开放,对修改关闭,以便于系统的升级和维护。
3、里氏替换原则(Liskov Substitution Principle, LSP):子类对象能够替换基类对象并且仍然保持原来的行为,以确保代码的稳定性和可靠性。
4、接口隔离原则(Interface Segregation Principle, ISP):应该将客户端不需要的接口独立来,以避免客户端对不必要的接口产生依赖。
5、依赖倒置原则(Dependency Inversion Principle, DIP):高层模块不应该依赖低层模块,而应该通过抽象来依赖接口,以提高代码的灵活性和可复用性。
总之,结构化程序设计注重代码的可读性、可维护性和可扩展性,通过分解复杂问题为简单的模块和函数,并遵循一定的设计原则和规范,使得代码更加清晰、易懂、易于测试和调试。
结构化程序设计可以应用于多个领域和情境,包括但不限于以下几个方面:
1、软件开发:在软件开发过程中,可以采用结构化编程的思想和原则,通过分解复杂问题为简单的模块和函数,并尽可能地遵循一定的设计规范,使得代码更加清晰、易懂、易于测试和调试,从而提高软件的质量和可维护性。
2、算法设计:在算法设计和优化过程中,可以运用结构化编程的模块化和层次化思想,将大问题划分为小问题,逐步求解和优化,从而提高算法的效率和可扩展性。
3、数据库设计:在数据库设计和管理过程中,可以采用结构化编程的数据抽象和规范化思想,设计出更加规范、高效、可维护的数据库结构,以满足各种业务需求。
4、Web开发:在Web开发过程中,可以采用MVC(Model-View-Controller)架构,即将业务逻辑、数据模型和表现层分离开来,有利于代码的复用和扩展,提高Web应用的可维护性和易用性。
总之,结构化程序设计的思想和原则可以应用于各个领域和情境,帮助开发人员设计出更加清晰、高效、可维护的程序和系统。
结构化程序设计的基本原则:
1、自顶向下
程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。
2、逐步细化
对复杂问题,应设计一些子目标作为过渡,逐步细化。
3、模块化
一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。
限制使用goto语句 结构化程序设计方法的起源来自对GOTO语句的认识和争论。
4、结构化编码
所谓编码就是把已经设计好的算法用计算机语言表示,即根据已经细化的算法正确写出计算机程序。结构化的语言(如 Pascal,C,QBASIC等)都有与三种基本机构对应的语句。
扩展资料:
结构化程序设计特点:
结构化程序中的任意基本结构都具有唯一入口和唯一出口,并且程序不会出现死循环。在程序的静态形式与动态执行流程之间具有良好的对应关系。
结构化程序设计优点:
由于模块相互独立,因此在设计其中一个模块时,不会受到其它模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为我们可以充分利用现有的模块作积木式的扩展。
参考资料:百度百科-结构化程序设计
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)