软件工程中的数字串转整数函数及其软件危机探讨

需积分: 0 9 下载量 105 浏览量 更新于2024-08-23 收藏 3.5MB PPT 举报
"软件工程清华大学课件 - 实例一个把数字串变成整数的函数" 在计算机科学中,将数字串转换为整数是常见的编程任务。在这个实例中,我们关注的是一个用PASCAL语言编写的函数,名为`strtoint`,其作用是将一个最多6位的字符数组(代表数字串)转换为对应的整数值。PASCAL是一种结构化编程语言,它在定义数据类型和过程方面非常严谨,因此这个函数的实现将涉及到字符串处理和类型转换。 首先,我们来看函数的定义: ```pascal function strtoint (dstr: shortstr): integer; type shortstr = array[1..6] of char; // 定义一个6位的字符数组类型 ``` 这里的`shortstr`类型是一个长度为6的字符数组,用于存储数字字符串。在PASCAL中,数组的索引通常从1开始,所以`shortstr[1]`至`shortstr[6]`分别对应字符串的每一位。函数返回值是`integer`类型,这意味着函数将返回一个16位整数,这与计算机的16位字长相对应。 16位字长能表示的整型数范围是`[-2^15, 2^15-1]`,即`[-32768, 32767]`。在函数`strtoint`内部,通常会涉及以下步骤: 1. 检查输入的`dstr`是否符合数字字符串的格式,例如,确保所有字符都是0-9之间的数字。 2. 将字符数组逆序处理,因为PASCAL的数组索引从1开始,逆序处理可以方便地从高位到低位计算数值。 3. 使用逐位乘法和累加来计算整数值。例如,对于字符串"1234",先将'4'转换为整数4,然后乘以10的0次方(即1),累加到结果;接着乘以10的1次方(即10),加上'3'对应的3,以此类推。 4. 考虑负数的情况,如果字符串以'-'开头,则结果应为负数。 软件工程是解决“软件危机”的关键学科。在60年代中期至70年代,随着计算机的普及,软件开发面临一系列挑战,包括成本估算不准确、用户满意度低、质量问题频发、维护困难、缺乏文档、软件成本增加以及开发效率低下等,这些统称为“软件危机”。为应对这些问题,软件工程学应运而生,它结合了工程方法、数学理论和良好的组织管理,旨在提高软件的质量、可维护性和生产效率。 软件工程学主要包括以下几个方面: 1. 需求分析:确保准确理解用户的需求,避免后期修改导致的成本增加。 2. 设计:规划软件的架构和组件,以支持可扩展性和可维护性。 3. 编程:遵循良好的编程实践,编写清晰、可读性强的代码。 4. 测试:执行多种测试以确保软件的正确性和可靠性。 5. 文档:提供详尽的文档,便于理解和维护软件。 6. 维护:持续改进和更新软件,以适应变化的需求。 通过软件工程学,我们可以采用系统化的方法和工具,如版本控制、自动化测试框架、代码审查等,来提升软件开发的效率和质量,从而有效地应对软件危机。程序设计方法学则更注重于程序设计的理论基础和方法,与软件工程学相辅相成,共同推动软件开发的进步。