温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
程序设计
教程
高等学校计算机规划教材 程序设计实训教程 主 编 李 敏 薛冰冰 副主编 俞卫华 高艳平 万志伟 内 容 简 介 本书是河南省省级精品课程C 语言程序设计(ISBN 978-7-121-18839-8)的配套教材,全书的内容从软件设计基础讲起,通过实例,详细讲述了综合程序设计的过程,以及综合程序设计实训的内容,最后,介绍了综合程序设计报告的书写规范。本书结构清晰、通俗易懂,综合性例题典型丰富,注重读者进行综合程序设计方法的训练,注重培养读者编写、调试大型程序的能力及良好的程序设计风格。本书既可作为高等院校各专业C 语言程序设计课程的实训教材,也可作为计算机程序设计人员的参考书。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 程序设计实训教程/李敏,薛冰冰主编北京:电子工业出版社,2015.5 ISBN 978-7-121-24715-6.程.李 薛.C 语言程序设计高等学校教材.TP312 中国版本图书馆 CIP 数据核字(2014)第 260380 号 策划编辑:袁 玺 责任编辑:郝黎明 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 开 本:7871 092 1/16 印张:13 字数:332.8 千字 版 次:2015 年 5 月第 1 版 印 次:2015 年 5 月第 1 次印刷 定 价:32.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。服务热线:(010)88258888。PREFACE 学好程序设计语言,不仅要掌握基本的语法规则和基本的语句,以及基本的编程算法,更重要的是要针对实际问题进行综合程序设计的训练,通过大量的实训,规范综合程序设计的方法,积累编程的经验,提高程序设计的能力,为进行大型的软件设计打下良好的基础。该教材由长期从事一线教学的优秀教师编写,凝聚了教师多年来讲授程序设计课程的宝贵经验,引入软件工程的方法,注重实训例题和习题与相关专业相结合,各部分内容均以训练学生实际编程能力、分析解决问题能力为出发点,注重学生计算机综合程序设计应用能力的培养和综合素质的提高。突出实际应用,强调理论联系实际,提高学生软件设计能力,体现规范的软件设计理念。全书共分十二个教学实训项目,主要综合了 C 语言程序设计的基本结构、函数、数组、指针、结构体、链表和文件等内容,在编写每个实训案例时,都针对案例进行问题分析、总体设计、详细设计、代码编写、程序调试、程序文档制作六个阶段的训练,并在代码中给出大量的注释,系统地训练了综合程序设计的能力,掌握结构化程序设计的基本方法、程序设计的基本开发过程、调试和测试程序的基本技巧。本书编者具有多年的 C 语言程序设计和相关专业课程的教学经验。本书由李敏、薛冰冰担任主编,俞卫华、高艳平、万志伟担任副主编。具体分工如下:李敏编写了第 1 章;高艳平编写了第 2 章;俞卫华编写了第 3 章;薛冰冰编写了第 4 章和附录 A、B;万志伟参加了部分程序的调试工作。在本书的编写过程中,参阅并引用了国内外诸多同行的著作,并在互联网上摘录了部分例题,在此向他们致意。由于作者学术水平有限,书中错误和不妥之处在所难免,敬请读者批评指正,在此表示由衷的感谢。CONTENTS 第 1 章 软件设计基础.1 1.1 软件概述.1 1.1.1 软件定义.1 1.1.2 软件发展.1 1.1.3 软件特点.2 1.1.4 软件危机.3 1.1.5 软件生命周期.5 1.1.6 软件开发过程.7 1.1.7 软件开发工具.8 1.2 软件的详细设计.9 1.2.1 基本概念.9 1.2.2 传统流程图.10 1.2.3 N-S 图.11 1.2.4 过程描述语言.11 1.2.5 数据字典.12 1.2.6 程序设计风格.13 第 2 章 程序设计实训指导.15 2.1 综合程序设计概述.15 2.1.1 综合程序设计过程.15 2.2 学生成绩信息管理系统设计.17 2.2.1 设计要求.17 2.2.2 设计过程.18 2.2.3 程序运行结果.41 2.3 通讯录信息管理系统.46 2.3.1 设计要求.46 2.3.2 设计过程.47 VI 2.3.3 程序运行结果.72 第 3 章 综合程序设计实训.79 3.1 字符串处理问题.79 3.1.1 功能描述与要求.79 3.1.2 问题分析.80 3.1.3 总体设计.81 3.1.4 源代码参考框架.83 3.1.5 功能测试.85 3.1.6 拓展思考.89 3.2 选票问题.90 3.2.1 功能描述与要求.90 3.2.2 问题分析.91 3.2.3 总体设计.92 3.2.4 源代码参考框架.95 3.2.5 功能测试.98 3.2.6 拓展思考.102 3.3 产品销售记录处理系统.102 3.3.1 功能描述与要求.102 3.3.2 问题分析.104 3.3.3 总体设计.104 3.3.4 源代码参考框架.108 3.3.5 功能测试.111 3.3.6 拓展思考.116 3.4 图书管理系统.117 3.4.1 功能描述与要求.117 3.4.2 问题分析.118 3.4.3 总体设计.119 3.4.4 源代码参考框架.123 3.4.5 功能测试.126 3.4.6 拓展思考.132 3.5 银行账户管理系统.133 3.5.1 功能描述与要求.133 3.5.2 问题分析.134 3.5.3 总体设计.135 3.5.4 源代码参考框架.139 VII 3.5.5 功能测试.143 3.5.6 拓展思考.149 3.6 实训题目.149 第 4 章 综合程序设计报告.153 4.1 综合程序设计报告的意义.153 4.2 综合程序设计报告的内容及规范.153 附录 A 全国计算机等级考试二级 C 语言模拟试题及答案.173 参考答案.184 附录 B 全国计算机等级考试二级 C 语言上机考试.185 参考文献.197 第 1 章 软件设计基础 软件是计算机程序、规程以及运行程序所需的相关文档和数据。例如,开发一个学生信息管理系统,就要对学生的基本信息、班级信息、课程信息、成绩信息等进行管理,通过该系统,可以做到信息的规范管理、科学的统计和快速的查询,从而减少管理方面的工作量,提高信息管理工作的效率。开发这样一个系统,就像盖一座大楼,是一项工程,这就是软件工程技术研究的内容,几万个学生的各种信息要存储在计算机中,这些信息不是杂乱无章的,而是按照一定的原则来组织和存储的,那么就需要数据库技术和软件设计。计算机软件作为一种逻辑系统,它和计算机硬件有着显著的差别,它主要是对软件进行定义、开发和维护。本章主要介绍软件的基本概念、软件开发的过程、软件的详细设计,而软件工程是计算机专业的一门专业课程,要提高软件的开发能力还需要进一步学习相关课程,这里仅仅简单介绍软件设计的一些基本概念。1.1 软件概述 软件的规模大小、复杂程度决定了软件开发的难度。对一个软件而言,它的程序复杂性将随着程序规模的增加而呈指数级上升趋势。因此,必须采用科学的软件开发方法,采用抽象、分解等科学方法降低复杂度,以工程的方法管理和控制软件开发的各个阶段,以保证大型软件系统的开发具有正确性、易维护性、可读性和可重用性。1.1.1 软件定义 软件是程序、数据及相关文档的集合。其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护及使用密切相关的图文资料的总体。1.1.2 软件发展 软件的发展大致可划分为以下四个阶段。1程序设计阶段(19501965 年)这个阶段是计算机软件发展的早期阶段,软件开发采用低级语言,开发效率比较低,应用领域基本局限于科学和工程的数值计算,人们不重视软件文档的编制,只注重代码的编写。计算机编程很简单,没有系统化的方法,在硬件的生产已经开始趋于标准化的时候,软件的生产仍是个体化,软件产品处在初级阶段,大多数软件是由使用者自己开发的。2程序系统阶段(19651974 年)这个阶段是计算机软件发展的第二阶段,相继诞生了大量的高级程序设计语言,程序 2 开发的效率明显提高,实时系统和第一代数据库管理系统也相继出现,并产生了成熟的操作系统和数据库管理系统。到后期,由于软件规模不断扩大,复杂程度大幅度提高,许多程序的个人化特性使得它们根本不能维护,在软件维护上所花费的精力和消耗资源的速度是惊人的,这就产生了“软件危机”,同时出现了有针对性地进行软件开发方法的理论研究和实践。3软件工程阶段结构化方法(19741989 年)这个阶段是计算机软件发展的第三阶段,在这一阶段,软件规模越来越大,结构越来越复杂,软件开发管理既困难又复杂,软件开发费用不断增加。软件的开发技术落后,生产方式落后,仍采用手工方式,开发工具也落后,生产效率低,这就是软件危机产生的原因。在这一阶段,以软件的产品化、系列化、工程化、标准化为特征的软件产业发展起来,消除了软件生产的个体化特征,有了可以遵循的软件工程化的设计原则、方法和标准,并且结构化方法也得到发展。4软件工程阶段面向对象方法(1989至今)这个阶段是计算机软件发展的第四阶段,在这一阶段,已经不再着重于单台计算机和计算机程序,而是面向计算机和软件的综合影响。由复杂的操作系统控制的强大的桌面机、广域网络和局域网络,配以先进的软件应用已成为标准。计算机体系结构迅速地从集中的主机环境转变为分布的客户机/服务器环境。世界范围的信息网提供了一个基本结构,信息高速公路和网际空间连通已成为令人关注的热点问题。事实上,Internet 可以看做能够被单个用户访问的软件。计算机发展正朝着社会信息化和软件产业化方向发展,由于软件编程方法及软件设计思想不断更新,导致软件工程进入了面向对象方法的时代,出现了占据主导地位的面向对象技术,它将在许多领域中迅速取代传统的软件开发方法。同时,软件开发技术继续发展,并逐步转向智能化、自动化、集成化、并行化和工程化。另外,计算机网络技术、分布式技术对软件工程的发展也起到了促进作用,使得当前采用面向对象技术开发的软件系统越来越多。1.1.3 软件特点 1工具性特征 计算机软件包括程序和文档两个部分。计算机程序包括源程序和目标程序,源程序是用计算机高级语言(如 BASIC、Algol、C、C+等)编写的程序,表现为数字、文字和符号的组合,构成符号化指令序列或符号化语句序列;目标程序是用机器语言编写的,体现为电脉冲序列的一串二进制数(0 和 1)指令编码,直接用于驱动计算机硬件工作,保证计算机系统发挥各项功能,获得一定结果,因而又具有工具性特征。软件在调入计算机运行之前,首先表现为作品性,人们无法通过“阅读”或“欣赏”计算机程序与文档而制造任何有形产品和实现任何操作。但当软件调入计算机运行时,则更主要地表现为工具性,即通过控制计算机硬件动作过程,获得某种结果。第 1 章 软件设计基础 3 2软件开发工作量大、成本高,但复制容易且成本低 软件开发必须经过功能限定、逻辑设计和编码三个步骤,要求软件开发人员必须具有丰富而超前的专业和相关知识,极强的逻辑和形象思维能力,了解计算机硬件的最新发展状况与发展前景,熟练掌握和使用编程语言。开发具有实用商业价值的计算机软件,通常需要按照专业化分工、流水线作业的方式由一批人共同完成。可见,开发计算机软件必须具备相应的物质和技术条件,有充足的开发资金和良好的开发环境。复制是对计算机软件的客观再现,不改变软件内容和本身的价值,复制后的软件以一定的客观物质形式体现,具有可感知性。计算机软件的可复制性决定了其可以广泛传播和有效利用,创造经济和社会效益。3软件具有无形性,可以多次使用 计算机软件是智力劳动产生的精神产品,如计算机程序、说明程序的文档等都