欢迎光临
免费的PDF电子书下载网站

程序设计与数据结构 PDF下载

编辑推荐

1. C语言学习中的痛点:针对当前工程师在C语言学习中的痛点,如指针函数与函数指针,如何灵活应用结构体等。从变量的三要素(变量的类型,变量的值和变量的地址)出发,采用推导的方式,深入浅出的分析了广大C程序员学习和开发中遇到的难点。

2. 从方法论的高度对C语言在数据结构和算法方面的应用进行了深入讲解和阐述。

3. 讲解了绝大多数C程序员开发生涯中没有考虑过的问题。

 ;

2. 从方法论的高度对C语言在数据结构和算法方面的应用进行了深入讲解和阐述。

3. 讲解了绝大多数C程序员开发生涯中没有考虑过的问题。

内容简介

本书是C程序设计的进阶书籍,在介绍C语言基础知识的同时,重点强调了软件设计的思想:共性与可变性分析、面向对象的编程思想等,并提供了详尽的范例程序。使读者体会到思想的重要性,面向对象编程并不局限于特定语言,使用C语言同样可以进行面向对象的编程。本书分为4章:第1章,主要介绍C语言的基础知识,并提及了共性与可变性分析;第2章,主要介绍C语言的进阶用法,特别是结构体及函数指针;第3章,主要介绍算法与数据结构,包含链表、哈希表、队列等;第4章,主要介绍面向对象的编程思想,包含面向对象的基础概念、虚函数的妙用、状态机设计等。

本书既可作为高等院校本科、高职高专电子信息工程、自动化、机电一体化及计算机专业的教材,也可作为电子及计算机编程爱好者的自学用书,还可作为软件开发工程技术人员的参考书。

本书既可作为高等院校本科、高职高专电子信息工程、自动化、机电一体化及计算机专业的教材,也可作为电子及计算机编程爱好者的自学用书,还可作为软件开发工程技术人员的参考书。

作者简介

周立功:周立功单片机发展有限公司总经理,江西理工大学机电学院自动化教研室教授,硕士生导师,嵌入式系统技术方向学科带头人,中国计算机学会高级会员,中国计算机学会嵌入式系统学会(微机专委)理事,中国单片机学会理事。从1981年开始从事单片机与嵌入式系统的应用、开发与推广。在教学实践过程中,为了培养具有较好工程实践能力"零适应期"的大学生,周立功创立了"3+1"嵌入式系统应用创新教学模式。

程序设计与数据结构 PDF下载

目录

第1章 程序设计基础………………………………………………………………… 11.1 思想的力量……………………………………………………………………… 1
1.1.1 过程主题…………………………………………………………………… 1
1.1.2 思维差异…………………………………………………………………… 2
1.1.3 语言的鸿沟…………………………………………………………………… 3
1.2 变量与指针……………………………………………………………………… 12
1.2.1 变量 ……………………………………………………………………… 12

前沿

 1.存在的问题

最近十多年来,软件产业和互联网产业的迅猛发展,给人们提供了用武之地,同时也对软件工程教育提出了巨大的挑战。从教育现状看,通过灌输知识可以让人具有很强的考试能力,却往往经不起用人单位的检验(笔试和机试)。虽然大家都知道,教育的本质在于培养人的创造力、好奇心、独特的思考能力和解决问题的能力,但实际上我们的教学实践背离了教育理念。代码的优劣不仅直接决定了软件的质量,还将直接影响软件成本。软件成本是由开发成本和维护成本组成的,但维护成本却远高于开发成本,蛮力开发的现象比比皆是,大量来之不易的资金就这样被无声无息地吞没了,造成了社会资源的严浪费。

2.核心域和非核心域

一个软件系统封装了若干领域的知识,其中一个领域的知识代表了系统的核心竞争力,这个领域就称为“核心域”,其他领域称为“非核心域”。虽然更通俗的说法是“业务”和“技术”,但使用“核心域”和“非核心域”更严谨。非核心域就是别人的领域,如底层驱动、操作系统和组件,即便自己有一些优势,那也是暂时的,竞争对手也能通过其他渠道获得。非核心域的改进是必要的,但不充分,还是要在核心域上深入挖掘,让竞争对手无法轻易从第三方获得。只有在核心域中深入挖掘,达到基于核心域的复用,才能获得和保持竞争力。要达到基于核心域的复用,有必要将核心域和非核心域分开考虑。因为过早地将各个领域的知识混杂,会增加不必要的负担,从而导致开发人员腾不出脑力思考核心域中更深刻的问题,待解决问题的规模一旦变大,而人脑的容量和运算能力又是有限的,就会造成顾此失彼,因此必须分而治之。核心域与非核心域的知识都是独的,比如,一个计算器要做到没有漏洞,其中的问题也很复杂。如果不使用状态图对程序设计与数据结构?领域逻辑显式地建模,再根据模型映射到实现,而是直接下手编程,领域逻辑的知识靠临时去想,最终得到的代码肯定破绽百出。其实有利润的系统,其内部都是很复杂的,千万不要幼稚地认为“我的系统不复杂”。

3.利润从哪里来

早期创业时,只要抓住一个机会,多参加展会,多做广告,成功的概率就很大了。在互联网时代,突然发现入口多了,聚焦用户的难度也越来越大了。当产品面临竞争时,你会发现“没有最低只有更低”。而且现在已经没有互联网公司了,携程变成了旅行社,新浪变成了新媒体……机会驱动、粗放经营的时代已经过去了。Apple之所以能成为全球最赚钱的手机公司,关键在于产品的性能超越了用户的预期,且因为大量 可 重 用 的 核 心 领 域 知 识,综 合 成 本 做 到了 极 致。Yourdon 和Constantine在《结构化设计》一书中,将经济学作为软件设计的底层驱动力,软件设计应该致力于降低整体成本。人们发现软件的维护成本远远高于它的初始成本,因为理解现有代码需要花费时间,而且容易出错。同时改动之后,还要进行测试和部署。更多的时候,程序员不是在编码,而是在阅读程序。由于阅读程序需要从细节和概念上理解,因此修改程序的投入会远远大于最初编程的投入。基于这样的共识,让我们操心的一系列事情,需要不断地思考和总结使之可以重用,这就是方法论的缘起。通过财务数据分析可知,由于决策失误,我们开发了一些周期长、技术难度大且回报率极低的产品。由于缺乏科学的软件工程方法,不仅软件难以重用,而且扩展和维护难度很大,从而导致开发成本居高不下。显而易见,从软件开发来看,软件工程与计算机科学是完全不同的两个领域的知识。其主要区别在于人,因为软件开发是以人为中心的过程。如果考虑人的因素,软件工程更接近经济学,而非计算机科学。如果不改变思维方式,则很难开发出既好卖成本又低的产品。

4.优秀人才在哪里

学徒模式是过去造就大师、传承技艺的方法,而现在指导和辅导却成为了一项被忽略的活动,团队成员得不到所需的支持。技术领导人不仅要引导整个项目,而且还要为员工提供必需的协助。除此之外,指导和辅导提供了一种增强员工技能的方式,可帮助他们完善自己的职业生涯。这种协助有时是技术性的,有时是软技能的。可惜的是,在我们的行业里,许多优秀的开发者在转向管理岗位之后,就放弃了对技术的追求,甚至再也不写代码了,因而团队中失去了最有价值的技术领导和导师,导致今天的开发者还会继续重蹈覆辙。很多优秀的导师都消失了,让开发者到哪里去获得经验呢? 未来的优秀人才从哪里来?

 5.告知读者

这本书如同培训讲师的教案,是我和同事们的读书笔记及程序设计实践的心得,并不是一本从零开始编写的专著或图书。其中的很多内容并非我们原创,而是重用了一些公开出版物的内容,详见本书的参考文献。

6.丛书简介

这套丛书命名为《嵌入式软件工程方法与实践丛书》,目前已经完成《程序设计与数据结构》、《面向 AMetal框架和接口的 C编程》和《面向 AWorks框架和接口的 C编程(上)》,后续还将推出《面向 AWorks框架和接口的 C编程(下)》、《面向 AMetal框架和 接 口 的 LoRa 编 程》、《面 向 AWorks 框 架 和 接 口 的 C 编 程》、《面 向AWorks框架和接口的 GUI编程》、《面向 AWorks框架和接口的 CAN 编程》、《面向AWorks框架和接口的网络编程》、《面向 AWorks框架和接口的 EtherCAT 编程》和《嵌入式系统应用设计》等系列图书,最新动态详见 www.zlg.cn(致远电子官网)和www.zlgmcu.com(周立功单片机官网)

周立功

2018年9月2

程序设计与数据结构 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:程序设计与数据结构