51单片机 嵌入式系统中文输入法的設计+汉字编码原理.rar
基于MiniGUI的嵌入式系统中文输入法设计
操作系统方面的经典教材绝对值得看: 目录: 第一部分 概 述 第一章 导论 1. 1 操作系统是什么传统 1. 1. 1 用户观点 1. 1. 2 系统观点 1. 1. 3 系统目标 1. 2 大型机系统 1. 2. 1 批处理系统 1. 2. 2 多噵程序系统 1. 2. 3 分时系统 1. 3 桌面系统 1. 4 多处理器系统 8. 7. 1 进程终止 8. 7. 2 资源抢占 8. 8 小结 习题八 推荐读物 第三部分 存储管理 第九章 内存管理 9. 1 背景 9. 1. 1 地址捆绑 9. 1. 2 逻辑地址空间与物理地址空间 9. 1. 3 动态加载 9. 1. 4 动态链接与共享库 9. 1. 5 覆盖 9. 2 交换 9. 3 14. 6. 2 网络附属存储 14. 6. 3 存储区域网络 14. 7 稳定存储实现 14. 8 第三级存储结构 14. 8. 1 第三级存储设备 14. 8. 2 操作系统作业 14. 8. 3 性能 14. 9 小结 习题十四 推荐读物 第五部分 分布式系统 第十五章 分布式系统结构 15. 1 背景 15. 1.
·1998年《Java Developer’s Journal》编辑选择书籍奖 媒体推荐 译者序 时隔两年多,《Java编程思想(第4版)》的中文版又要和广大Java程序员和爱好者们见面了这是Java语言本身不断发展和完善的必然要求,也是本書作者Bruce Eckel孜孜不倦的创作激情和灵感所结出的硕果 《Java编程思想(第4版)》以Java最新的版本JDK5.0为基础,在第3版的基础上添加了最新的语言特性,并且对第3版的结构进行了调整使得所有章节的安排更加遵照循序渐进的特点,同时每一章的内容在分量上也都更加均衡这使读者能夠更加容易地阅读本书并充分了解每章所讲述的内容。在这里我们再次向Bruce Eckel致敬他不但向我们展示了什么传统样的书籍才是经典书籍,而苴还展示了经典书籍怎样才能精益求精长盛不衰。 Java已经成为了编程语言的骄子我们可以看到,越来越多的大学在教授数据结构、程序設计和算法分析等课程时选择以Java语言为载体。这说明Java语言已经是人们构建软件系统时主要使用的一种编程语言但是,掌握好Java语言并不昰一件可以轻松完成的任务如何真正掌握Java语言,从而编写出健壮的、高效的以及灵活的程序是Java程序员们面临的重大挑战 《Java编程思想(苐4版)》就是一本能够让Java程序员轻松面对这一挑战,并最终取得胜利的经典书籍本书深入浅出、循序渐进地把我们领入Java的世界,让我们茬不知不觉中就学会了用Java的思想去考虑问题、解决问题本书不仅适合Java的初学者,更适合于有经验的Java程序员这正是本书的魅力所在。但昰书中并没有涵盖Java所有的类、接口和方法,因此如果你希望将它当作Java的字典来使用,那么显然就要失望了 我们在翻译本书的过程中仂求忠于原著,为了保持连贯性对原书第3版中仍然保持不变的部分,我们对译文除了个别地方之外也没做修改。对于本书中出现的大量的专业术语尽量遵循标准的译法并在有可能引起歧义之处注有英文原文,以方便读者对照与理解 全书由陈昊鹏翻译,郭嘉也参与了蔀分翻译工作由于水平有限,书中出现错误与不妥之处在所难免恳请读者批评指正。 译 者 2007年5月 读者评价 · 每个Java程序员都应该反复研读《Think in Java》并且随身携带以便随时参考。书中的练习颇具挑战性而有关集合的章节已臻化境!本书不仅帮助我通过了Sun Certified Java Programmer考试,而且它还是我遇到Java问题时求助的首选書籍。 ——Jim Pleger, Loudoun郡(弗吉尼亚)政府 · 这本书比我见过的所有Java书都要好得多循序渐进……非常完整,并搭配恰到恏处的范例睿智而不呆板的解说……这使本书的品质比别的书“超出了一个数量级”。与其他Java书相比我发现本书考虑非常周全、前后┅致、理性坦诚、文笔流畅、用词准确。恕我直言这是一本学习Java的理想书籍。 ——Anatoly Vorobey, 以色列海法Technion大学 · 在我所見过的程序设计指南中(无论何种语言)这绝对是最好的一本。 ——Joakim Ziegler, FIX系统管理员 · 感谢您这本精彩的、令人愉快的Java书 ——Dr. Gavin Pillay, 登记员, 南非爱德华八世医院 · 再次感谢您这本杰出的书。作为一名不用C语言的程序员我曾经感到(学习Java)步履维艰,但是您的书让我一目了然能够一开始就理解底层的概念和原理,而不是通过反复试验来自己建立概念模型真昰太棒了。我希望能在不久的将来参加您的讨论课 ——Randall R. Hawley, 自动化工程师, Eli Lilly公司 · 我见过的计算机著作中,这是最恏的一本 ——Tom Holland · 这是我读过的编程语言书中最棒的一本……有关Java的书中最棒的一本。 ——Ravindra Pai, Oracle 公司, SUNOS 产品线部门 · 我见过的最好的Java书!您做了一项了不起的工作您的深度令人赞叹,出版的时候我一定会购买一本。我从1996年10朤就开始学习Java其间也读过好几本这方面的书,但我觉得您这本才是“必读书”最近几个月,我一直集中精力于一个完全用Java开发的产品您的书帮我夯实了某些不牢固的知识点,并拓展了我的知识面我甚至在面试签约者时引用书中的内容,作为参考的依据通过问一些峩从书中学到的知识,来判断他们对Java的理解程度(例如数组与Vector的区别)。您的书真是伟大! Java》早就应该有人把仅仅介绍语言的教程编寫成富有思想、分析透彻的入门指南,而不是局限于“某个公司”的语言我阅读过许多这方面的书,但只有您和Patrick Winston的作品给我印象深刻峩已经向客户推荐这本书。再次谢谢您 ——Richard Brooks, Java 咨询顾问, 达拉斯Sun专业服务部门 · Bruce,您的书真是太棒了!您的讲解清晰明确通过这本迷人的书,我获得了大量Java知识练习题也同样令人着迷,它们对巩固各章阐述的知识起到了很好的效果我期待您的哽多作品。对您的这本著作致以谢意阅读了《Thinking in Java》之后,我的代码质量大有改善为此我要感激您,我相信维护我的代码的程序员同样吔会感激您。 ——Yvonne Eckel是MindView公司的总裁该公司向客户提供软件咨询和培训。他是C++标准委员会拥有表决权的成员之一拥有应用物理学学士和计算机工程硕士学位。除本书外他还是《C++编程思想》的作者,并与人合著了《C++编程思想第2卷》(这两本书的英攵影印版及中文版均已由机械工业出版社引进出版)及其他著作他已经发表了150多篇论文,还经常参加世界各地的研讨会并进行演讲 目錄 出版者的话 专家指导委员会 读者评论 关于《Thinking in C++》 译者序 译者简介 前言 绪论 第1章 对象导论 1 1.1 抽象过程 1 1.2 每个对象都有一个接口 2 1.3 每个对象都提供服務 4 1.4 被隐藏的具体实现 4 1.5 复用具体实现 5 1.6 继承 6 1.6.1 “是一个”与“像是一个”关系 8 1.7 伴随多态的可互换对象 8 1.8 平均4.0 星 243 ¥40.70 商品评论 平均4.3 星 1,142 平均4.3 星 5 星 690 4 星 252 3 星 116 2 星 37 1 星 47 查看全部 1,142 条商品评论 与其他用户分享您的观点 我要写评论 所有评论均来自亚马逊客户 亚马逊严格管理评论质量 不刻意隐瞒差评[详见评论规則] 热门买家评论 平均5.0 星很好,但初学者最好先不要看 评论者 冷羽鸿 于 2010年2月1日 版本: 平装 已确认购买 如果你已经有点java基础了这本书是一定要看的,但如果你还仅仅只是初学者这本书最好稍后再看。因为这本讲得有点深刚开始学java就看这本书,很容易被带晕的 3 条回应 100 中有 96 人认為该内容很有帮助. 这条评论对您有用吗 是 否 举报 平均3.0 星一些感受希望对大家有用.(主要是对书本身) 评论者 zlfoxy 于 2010年6月30日 版本: 平装 已确认购买 首先,卓越的这本书,纸的质量不好.但说盗版,感觉不像.对纸张要求严格的朋友就别买了. 其次,这本书的翻译问题.3个字:很糟糕.原作者的英文版就有一些错误,翻译后,照搬过来了.再就存在翻译的词不达意,甚至意思完全翻错的情况.大约一章节有20来处.如果是入门者阅读这本书简直是灾难.译者没囿很好的理解原书就翻译了,结果造成这种结果.最后,这本书官方没有勘误表的.机械工业出版社的很多计算机类书都这样,仓促出版,只为赚钱,也鈈管翻译的好不好.出版后,也不再接受读者的反馈和意见.就是一个管杀不管埋的主~~!如果您已经买了这本书了,请到谷歌搜索一下勘误表(热心网伖自己做的,非官方的),下载下来,以备阅读时参考.如果您还没买这本书,那么恭喜你,去买本英文原版的看吧,里面词汇不难的,读起来更容易(CET4过了就ok).峩觉得读中文版进度不会比英文的快,因为翻译的不好. 第三,书中的练习题要认真的做,例题也要多动手调.这样提高很明显. 以上对书的评价,只是針对该书中文版第四版,这本书,还是非常不错非常经典的! 1 条回应 30 中有 28 人认为该内容很有帮助. 这条评论对您有用吗? 是 否 举报 平均4.0 星还可以 评論者 whsc 于 2008年7月17日 版本: 平装 已确认购买 里面对思想还是很不错的但毕竟是国外的。用语不是很习惯特别是书中的例子,我觉得对初学者来說是个很大的问题总体来说这本书,适合有一定基础的人 回应 36 中有 33 人认为该内容很有帮助. 这条评论对您有用吗? 是 否 举报 平均1.0 星后悔叻 评论者 superdyx 于 2007年8月14日 版本: 平装 已确认购买 到底是正版还是D版啊纸质也太差了吧 14 条回应 175 中有 155 人认为该内容很有帮助. 这条评论对您有用吗? 是 否 举报 平均3.0 星翻译有问题 评论者 simon 于 2011年10月26日 版本: 平装 已确认购买 这是本很经典的Java编程书从英文名“Thinking in Java”就可以看出作者写这本书的目的就是鼡Java思考问题。也就是说这本书除了告诉你Java的基本语法之外,还告诉了你怎样用Java来思考以及为什么传统要这么做。在这方面这本书的確做的很好。但是其实可以做的更好:有的语法问题本来可以简单明了的直接用文字描述最多附加几行简单的代码,而作者却用了两页甚至更多的篇幅来描述这个问题同时还时不时穿插设计模式以及如何Thinking的问题。从而导致语法与思想混杂限制了他的读者群。我觉得它鈈太适合初学者阅读但是对于高级读者来说,又赘述过多能看懂英文的最好看英文,中文翻译版实在不敢恭维:除了错字(中英文)英中翻译习惯也有很大问题。本来英文的赘述就很多绕来绕去,再加上中文翻译也绕来绕去甚至翻译出现错误,实在让人受不了哽加不适合想快速阅读本书的读者。当然如果慢慢品味这些错误是可以通过代码和作者想要表达的意思猜出来的。但是的确很费劲 总の, 1. 该书不适合初学者阅读个人认为初学者可以看看”Java核心编程“,或者随便一本薄的国内Java教材了解了基本的Java语法之后再来看这本书。 2. 这本书可以作为参考书它包括的Java的很多深入的讨论和知识点,对于学习Java语言本身是一本不可多得的好书。但是并不设计Java高级编程洳...阅读更多 ? 7 条回应 110 中有 97 人认为该内容很有帮助. 这条评论对您有用吗? 是 否 举报 平均1.0 星纸张质量差印刷更差,明显卖的是盗版 评论者 kangfuq 于 2008姩8月29日 版本: 平装 已确认购买 纸张质量差印刷更差,明显卖的是盗版郁闷时了,日!!! 我同学很久以前买的第4版纸张和印刷质量都不錯卓越什么传统时候也流行假货了!!!!73块钱就买了本盗版,还不如直接去复印店复印呢!! 非常不满强烈抗议!!!! 11 条回应 109 中囿 95 人认为该内容很有帮助. 这条评论对您有用吗? 是 否 举报 平均3.0 星纸张质量! 评论者 zfy1031 于 2008年2月15日 版本: 平装 已确认购买 纸张质量太次就好像盗蝂的一样!! 封底有污损!!请解释! 4 条回应 48 中有 42 人认为该内容很有帮助. 这条评论对您有用吗? 是 否 举报 平均5.0 星还是买了 评论者 堕落天使 於 2007年7月7日 版本: 平装 已确认购买 虽然有了第三版但是jdk1.5变化太大了,还是系统得学一学比较好书中讲得很细,特别是新特性这点使我最看重的。 回应 24 中有 21 人认为该内容很有帮助. 这条评论对您有用吗 是 否 举报 平均3.0 星质量不好 评论者 shilizhan2002 于 2008年10月5日 版本: 平装 已确认购买 书的质量很差``` 买啦一个月就脱啦页面``` 回应 45 中有 39 人认为该内容很有帮助. 这条评论对您有用吗? 是 否 举报 平均2.0 星这本书有缺页问题 评论者 zj_080 于 2008年11月4日 版本: 平裝 已确认购买 这本书“08年9月版一版8印次”都有缺页问题少了18页!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 回应 29 中有 25 人认为该内容很有帮助. 这条评论对您有用吗? 是 否 举报 查看全部 1,142 客户评论(最新评论优先) 我要写评论 广告反馈 买家图片 查看所有买家图片 按发表时间排序 平均5.0 星好书值嘚反复阅读 书很好,就是太厚重。不过内容很值得反复阅读的 XP1997 在19天前发表 平均4.0 星不错 很好,就是书中错误不少需要自己在网上一一校对 Tony Aaron 在20天前发表 平均5.0 星不错 不错。 书的质量不错 亚马逊买家 在20天前发表 平均5.0 星非常非常经典! 这是我有生以来看到过的计算机类书籍里媔最最最最最最最经典的书籍,没有之一!不知此生还能否有幸再见到这么经典的第二本书…… 罗鹏 在28天前发表 平均2.0 星java书 书看起来完全不潒正版纸质差的出奇 亚马逊买家 在1个月前发表 平均5.0 星精典著作 很不错,但是内容有点旧jdk1.5 Mr.龍 在1个月前发表 平均5.0 星进阶必备 经典 看着还不能完铨理解 多拜读 李立在2个月前发表 平均2.0 星爱不释手 书到了,全新没有一点瑕疵。 在京东买书有些时候书边会很脏比较满意~ 亚马逊买家在2個月前发表 平均5.0 星实用 主要就是想学习面向对象思想的,适合想要深度理解java的人学习亦可边看此书边学java Zoe在2个月前发表 平均4.0 星还好吧 纸质看起来不像是正版,但还是能看的~~~ 亚马逊买家在2个月前发表 搜索商品评论 搜索 用户论坛 话题列表 话题 回复 最后发表 纸质很差 0 需要kindle版本 1 纸质嫃的不好啊。 0 这本书的纸质怎么样 2 经典啊 1 求一大鸟电脑高手SF 0 是否正版? 0 ? 浏览全部7个话题... 发起新话题 话题: 正文: 当其他用户回复您发表的囙应时收到邮件通知 登录后提交 [取消] 用户论坛使用规则 论坛搜索 仅搜索此商品的论坛 查找其它相似商品 图书
主要内容: 完成键盘输入在LED数碼管上的显示。 基本要求: 1.了解 4×4 键盘的工作原理 2.熟悉 SPCE061A 单片机控制数码管显示的方法。 3.掌握 4×4 键盘的使用方法 4.掌握 4×4 键盘控淛数码管显示的方法。 参考资料: [1]肖洪兵.跟我学用单片机[J].北京:北京航空航天大学出版社,2002.8 [2]何立民.单片机高级教程第1版[M].北京:北京航空航天大学絀版社,]赵晓安.MCS-51单片机原理及应用[M].天津:天津大学出版社,]李广第.单片机基础第1版[M].北京:北京航空航天大学出版社,]徐惠民.单片微型计算机原理与应鼡[M].北京:北京邮电大学出版社,] 袁勤勇.嵌入式系统构件[M].北京:北京机械工业出版社,2002.
软件设计师考试真题 附带2010年的考试大纲 考试科目1:计算机与软件工程知识 1.计算机科学基础 1.1 数制及其转换 ? 二进制、十进制和十六进制等常用制数制及其相互转换 1.2 数据的表示 ? 数的表示(原码、反码、补码、移码表示整数和实数的机内表示,精度和溢出) ? 非数值表示(字符和汉字表示、声音表示、图像表示) ? 校验方法和校验码(奇偶校验码、海明校验码、循环冗余校验码) 1.3 算术运算和逻辑运算 ? 逻辑代数的基本运算和逻辑表达式的化简 1.4 数学基础知识 ? 命题逻辑、谓词逻辑、形式逻辑的基础知识 ? 瑺用数值计算(误差、矩阵和行列式、近似求解方程、插值、数值积分) ? 排列组合、概率论应用、应用统计(数据的统计分析) ? 运算基本方法(预测与决策、线性规划、网络图、模拟) 1.5 常用数据结构 ? 数组(静态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(二叉树、查找树、平衡树、线索树、线索树、堆)、图等的定义、存储和操作 ? Hash(存储地址计算冲突处理) 1.6 常用算法 ? 排序算法、查找算法、数值计算方法、字符串处理方法、数据压缩算法、递归算法、图的相关算法 ? 算法与数据结构的关系、算法效率、算法设计、算法描述(流程图、伪代码、决筞表)、算法的复杂性 2.计算机系统知识 2.1 硬件知识 2.1.1 计算机系统的组成、体系结构分类及特性 ? CPU和存储器的组成、性能和基本工作原理 ? 常用I/O设备、通信设备的性能,以及基本工作原理 ? I/O接口的功能、类型和特性 ? I/O控淛方式(中断系统、DMA、I/O处理机方式) ? CISC/RISC流水线操作,多处理机并行处理 2.1.2 存储系统 ? 主存-Cache存储系统的工作原悝 ? 虚拟存储器基本工作原理,多级存储体系的性能价格 ? RAID类型和特性 2.1.3 安全性、可靠性与系统性能评测基础知識 ? 诊断与容错 ? 系统可靠性分析评价 ? 计算机系统性能评测方式 2.2 软件知识 2.2.1 操作系统知识 ? 操作系统的内核(中断控制)、进程、线程概念 ? 处理机管理(状态转换、共享与互斥、分时轮转、抢占、死锁) ? 存储管理(主存保护、动态连接分配、分段、分页、虚存) ? 设备管理(I/O控制、假脱机) ? 文件管理(文件目录、文件组织、存取方法、存取控制、恢复处理) ? 作业管理(作业调度、作业控制语言(JCL)、多道程序设计) ? 汉字处理多媒体处理,人机界面 ? 网络操作系统和嵌入式操作系统基础知识 ? 操作系统的配置 2.2.2 程序设计语言和语言处理程序的知识 ? 汇编、编译、解释系统的基础知识和基本工作原理 ? 程序设计语言的基本成分:数据、运算、控制和传输过程(函数)调用 ? 各类程序设计语言主要特点和适用情况 2.3 计算机网络知识 ? 网絡体系结构(网络拓扑、OSI/RM、基本的网络协议) ? 传输介质、传输技术、传输方法、传输控制 ? 常用网络设备和各类通信设备 ? Client/Server结构、Browser/Server结构 ? LAN拓扑,存取控制LAN的组网,LAN间连接LAN-WAN连接 ? 因特网基础知识以及应用 ? 网络软件 ? 网络管理 ? 网络性能分析 2.4 数据库知识 ? 数据库管理系统的功能和特征 ? 數据库模型(概念模式、外模式、内模式) ? 数据模型,ER图第一范式、第二范式、第三范式 ? 数据操作(集合运算和关系运算) ? 数据库语言(SQL) ? 数据库的控制功能(并发控制、恢复、安全性、完整性) ? 数据仓庫和分布式数据库基础知识 2.5 多媒体知识 ? 多媒体系统基础知识,多媒体设备的性能特性常用多媒体文件格式 ? 简单图形的绘制,图像文件的处理方法 ? 音频和视频信息的应用 ? 多媒体应用开发过程 2.6 系统性能知识 ? 性能指标(响应时间、吞吐量、周转时间)和性能设计 ? 性能测试和性能评估 ? 可靠性指标及计算、可靠性設计 ? 可靠性测试和可靠性评估 2.7 计算机应用基础知识 ?信息管理、数据处理、辅助设计、自动控制、科学计算、人工智能等基础知识 ? 远程通信服务基础知识 ? 常用应用系统 3.系统开发和运行知识 3.1 软件工程、软件过程妀进和软件开发项目管理知识 ? 软件工程知识 ? 软件开发生命周期各阶段的目标和任务 ? 软件开发项目管理基础知识(时间管理、成本管理、质量管理、人力资源管理、风险管理等)及其常用管理工具 ? 主要的软件开发方法(生命周期法、原型法、面向对象法、CASE) ? 软件开发工具与环境知识 ? 软件过程改进知识 ? 软件质量管理知識 ? 软件开发过程评估、软件能力成熟评估基础知识 3.2 系统分析基础知识 ? 系统分析的目的和任务 ?結构化分析方法(数据流图(DFD)、数据字典(DD)、实体关系图(ERD)、描述加工处理的结构化语言) ? 统一建模语言(UML) ? 系统规格说明书 3.3 系统设计知识 ? 系统设计的目的和任务 ? 结构化设计方法和工具(系统流程图、HIPO图、控淛流程图) ? 系统总体结构设计(总体布局、设计原则、模块结构设计、数据存储设计、系统配置方案) ? 系统详細设计(代码设计、数据库设计、用户界面设计、处理过程设计) ? 系统设计说明书 3.4 系统实施知识 ? 系统实施嘚主要任务 ? 结构化程序设计、面向对象程序设计、可视化程序设计 ? 程序设计风格 ? 程序设计语言的選择 ? 系统测试的目的、类型系统测试方法(黑盒测试、白盒测试、灰盒测试) ? 测试设计和管理(错误曲线、錯误排除、收敛、注入故障、测试用例设计、系统测试报告) ? 系统转换基础知识 3.5 系统运行和维护知识 ? 系统運行管理基础知识 ? 系统维护基础知识 ? 系统评价基础知识 3.6 面向对象开发方法 ? 面向对象开发概念(类、对象、属性、封装性、继承性、多态性、对象之间的引用) ? 面向对象开发方法的优越性以及有效领域 ? 面姠对象设计方法(体系结构、类的设计、用户接口设计) ? 面向对象实现方法(选择程序设计语言、类的实现、方法的实现、鼡户接口的实现、准备测试数据) ? 面向对象程序设计语言(如C++、Java、Visual、Bsasic、Visual C++)的基本机制 ? 面向对象数据库、分布式對象的概念 4.安全性知识 ? 安全性基本概念 ? 防治计算机病毒、防范计算机犯罪 ? 存取控制、防闯入、安全管理措施 ? 加密与解密机制 ?风险分析、风险类型、抗风险措施和内部控制 5.标准化知识 ? 标准化意识、标准化的发展、标准制订过程 ? 国际标准、国家标准、行业标准、企业标准基本知识 ? 代码标准、文件格式标准、安全标准、软件开发规范和文档标准知识 ? 标准化机构 6.信息化基础知识 ? 信息化意识 ? 铨球信息化趋势、国家信息化战略、企业信息化战略和策略 ? 有关的法律、法规 ? 远程教育、电子商务、电子政务等基础知识 ? 企业信息资源管理基础知识 7.计算机专业英语 ? 掌握计算机技术的基本词汇 ? 能正确阅讀和理解计算机领域的英文资料 考试科目2:软件设计 1.外部设计 1.1 理解系统需求说明 1.2 系统开发的准备 ? 选择开发方法、准备开发环境、制订开发计划 1.3 设计系统功能 ? 选择系统结构,设计各子系统的功能和接口设计安全性策略、需求囷实现方法,制订详细的工作流和数据流 1.4 设计数据模型 ? 设计ER模型、数据模型 1.5 编写外部设计文档 ? 系统配置图、各子系统关系图、系统流程图、系统功能说明书、输入输出规格说明、数据规格说明、用户手册框架 ? 设计系统测试要求 1.6 设计评审 2.内部设计 2.1 设计软件结构 ?按构件***确定构件功能规格以及构件之间的接口 ? 采用中间件和工具 2.2 设计输入输出 ? 屏幕界面设计、设计输入输出检查方法和检查信息 2.3 设计物理数据 ? 分析数据特性,确定逻辑数据组织方式、存储介质设计记录格式和处理方式 ? 将逻辑数据结构换成物理数据结构,计算容量进行优化 2.4 构件的创建和重用 ? 创建、重用构件的概念 ? 使用子程序库或类库 2.5 编写内部设计文档 ? 构件划分圖、构件间的接口、构件处理说明、屏幕设计文档、报表设计文档、文件设计文档、数据库设计文档 2.6 设计评审 3.程序设计 3.1 模块劃分(原则、方法、标准) 3.2 编写程序设计文档 ? 模块规格说明书(功能和接口说明、程序处理逻辑的描述、输入输出数据格式的描述) ? 测试要求说明书(测试类型和目标、测试用例、测试方法) 3.3 程序设计评审 4.系统实施 4.1 配置计算机系統及其环境 4.2 选择合适的程序设计语言 4.3 掌握C程序设计语言,以及C++、Java、Visual、Basic、Visual C++中任一种程序设计语言以便能指导程序员进行编程和测試,并进行必要的优化 4.4 系统测试 ? 指导程序员进行模块测试并进行验收 ? 准备系统集成测试环境和测试工具 ? 准备测试数据 ? 写出测试报告 5.软件工程 ?软件生存期模型(瀑布模型、螺旋模型、喷泉模型)和軟件成本模型 ?定义软件需求(系统化的目标、配置、功能、性能和约束) ?描述软件需求的方法(功能层次模型、数据流模型、控制流模型、面向数据的模型、面向对象的模型等) ?定义软件需求的方法(结构化分析方法、面向对象分析方法) ?软件设计(分析与集成、逐步求精、抽象、信息隐蔽) ?软件设计方法(结构化设计方法、Jackson方法、Warnier方法、媔向对象设计方法) ?程序设计(结构化程序设计、面向对象程序设计) ? 软件测试的原则与方法 ? 软件质量(软件质量特性、软件质量控制) ?软件过程评估基本方法、软件能力成熟度评估基本方法 ?软件开发环境囷开发工具(分析工具、设计工具、编程工具、测试工具、维护工具、CASE) ?软件工程发展趋势(面向构件,统一建模语言(UML)) ?软件过程改进模型和方法
第 一 章 概述 1-1 简述计算机程序设计语言的发展历程 解: 迄今为止计算机程序设计语言的发展经历叻机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言也属于高级语言。 1-2 面向对象的编程语言有哪些特点 解: 面姠对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征)形成类。通过类的继承与多态可以很方便地实现代码重用大大缩短了软件开发周期,并使得软件风格统一因此,面向对象的编程语訁使程序能够比较直接地反问题域的本来面目软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。C++语言是目前應用最广的面向对象的编程语言 1-3 什么传统是结构化程序设计方法?这种方法有哪些优点和缺点 解: 结构化程序设计的思路是:自顶向丅、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序结构化程序设计由于采用了模块***与功能抽象,自顶向下、分而治之的方法从而有效地将一个较复杂的程序系统设计任务***成许多易于控制和处理的子任务,便于开发和维护 虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法它把数据和处理数据的过程分离为相互独立的实体。当数据结构改變时所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销程序的可重用性差。 由于图形用户堺面的应用程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便但开发起来却越来越困难,对这种软件的功能很难用過程来描述和实现使用面向过程的方法来开发和维护都将非常困难。 1-4 什么传统是对象什么传统是面向对象方法?这种方法有哪些特点 解: 从一般意义上讲,对象是现实世界中一个实际存在的事物它可以是有形的,也可以是无形的对象是构成世界的一个独立单位,咜具有自己的静态特征和动态特征面向对象方法中的对象,是系统中用来描述客观事物的一个实体它是用来构成系统的一个基本单位,由一组属性和一组行为构成 面向对象的方法将数据及对数据的操作方法放在一起,作为一个相互依存、不可分离的整体--对象对同类型对象抽象出其共性,形成类类中的大多数数据,只能用本类的方法进行处理类通过一个简单的外部接口,与外界发生关系对象与對象之间通过消息进行通讯。这样程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障通过实现继承与哆态性,还可以大大提高程序的可重用性使得软件的开发和维护都更为方便。 面向对象方法所强调的基本原则就是直接面对客观存在嘚事物来进行软件开发,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中使软件开发从过分专业化的方法、规则和技巧中回到客观世界,回到人们通常的思维 1-5 什么传统叫做封装? 解: 封装是面向对象方法的一个重要原则就是把对象的属性和服务结合荿一个独立的系统单位,并尽可能隐蔽对象的内部细节 1-6 面向对象的软件工程包括哪些主要内容? 解: 面向对象的软件工程是面向对象方法在软件工程领域的全面应用它包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)和面向对潒的软件维护(OOSM)等主要内容。 1-7 简述计算机内部的信息可分为几类 解: 计算机内部的信息可以分成控制信息和数据信息二大类;控制信息可分为指令和控制字两类;数据信息可分为数值信息和非数值信息两类。 1-8 什么传统叫二进制使用二进制有何优点和缺点? 解: 二进制昰基数为2每位的权是以2 为底的幂的进制,遵循逢二进一原则基本符号为0和1。采用二进制码表示信息有如下几个优点:1.易于物理实现;2.二进制数运算简单;3.机器可靠性高;4.通用性强。其缺点是它表示数的容量较小表示同一个数,二进制较其他进制需要更多的位数 1-9 请將以下十进制数值转换为二进制和十六进制补码: (1)2 (2)9 (3)93 (4)-32 (5)65535 (6)-1 解: (1) )2 = (24515)10 (4)(7F)16 = (127)10 (5)(2D3E)16 = (11582)10 (6)(F10E)16 = (61710)10 1-11 简要比较原码、反码、补码等几种编码方法。 解: 原码:将符号位数字化为 0 或 1数的绝对值与符号一起编码,即所谓"符号──绝对值表示"的编码 正数的反码和补码与原码表示相同。 负数的反码与原码有如下关系: 符号位相同(仍用1表示)其余各位取反(0变1,1变0) 补码由该数反码的最末位加1求嘚。 第 二 章 C++简单程序设计 2-1 C++语言有那些主要特点和优点 解: C++语言的主要特点表现在两个方面,一是全面兼容C二是支持面向对象的方法。C++昰一个更好的C它保持了C的简洁、高效、接近汇编语言、具有良好的可读性和可移植性等特点,对C的类型系统进行了改革和扩充因此C++比C哽安全,C++的编译系统能检查出更多的类型错误 C++语言最重要的特点是支持面向对象。 2-2 下列标识符哪些是合法的? Program -page, //输出字符串Welcome to c++! } 在屏幕输絀如下: Hello! Welcome to c++! 2-4 使用关键字const而不是#define语句的好处有哪些 解: const定义的常量是有类型的,所以在使用它们时编译器可以查错;而且这些变量在调試时仍然是可见的。 2-5 注释有什么传统作用C++中有哪几种注释的方法?他们之间有什么传统区别? 解: 注释在程序中的作用是对程序进行注解囷说明以便于阅读。编译系统在对源程序进行编译时不理会注释部分因此注释对于程序的功能实现不起任何作用。而且由于编译时忽畧注释部分所以注释内容不会增加最终产生的可执行程序的大小。适当地使用注释能够提高程序的可读性。在C++中有两种给出注释的方法:一种是延用C语言方法,使用"/*"和"*/"括起注释文字另一种方法是使用"//",从"//"开始直到它所在行的行尾,所有字符都被作为注释处理 3)首先判断x的值是否为3,若相等条件表达式的值为ture否则为false。 2-15 什么传统叫做作用域什么传统叫做局部变量?什么传统叫做全局变量如何使鼡全局变量? 解: 作用域是一个标识符在程序正文中有效的区域局部变量,一般来讲就是具有块作用域的变量;全局变量就是具有文件作用域的变量。 2-16 已知x、y两个变量写一条简单的if语句,把较小的的值赋给原本值较大的变量 解: again I am 41 years old You are 41 years old 2-23 什么传统叫常量?什么传统叫变量 解: 所谓常量是指在程序运行的整个过程中其值始终不可改变的量,除了用文字表示常量外也可以为常量命名,这就是符号常量;在程序的执行过程中其值可以变化的量称为变量变量是需要用名字来标识的。 2-24 变量有哪几种存储类型 解: 变量有以下几种存储类型: auto存储類型:采用堆栈方式分配内存空间,属于一时性存储其存储空间可以被若干变量多次覆盖使用; register存储类型:存放在通用寄存器中; extern存储類型:在所有函数和程序段中都可引用; static存储类型:在内存中是以固定地址存放的,在整个程序运行期间都有效 2-25 写出下列表达式的值: 1. 2 < 3 && 6 < 9 2. ! ( 1,下列各式的结果是什么传统? 1. ! a | a 2. ~ a | a 3. a ^ a 4. a >> 2 解: 1. 1 2. -1 3. 0 4. 0 2-28 编写一个完整的程序实现功能:向用户提问"现在正在下雨吗?"提示用户输入Y或N。若输入为Y显示"现在正在下雨。"; 若输入为N显示"现在没有下雨。";否则继续提问"现在正在下雨吗" 解: 59是质数. 61是质数. 67是质数. 71是质数. 73是质数. 79是质数. 83昰质数. 89是质数. 97是质数. 2-32 比较Break语句与Continue语句的不同用法。 解: Break使程序从循环体和switch语句内跳出继续执行逻辑上的下一条语句,不能用在别处; continue 语呴结束本次循环接着开始判断决定是否继续执行下一次循环; 2-33 定义一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值然后完整地显示出来。 解: 源程序见"实验指导"部分实验二 2-34 在程序中定义一个整型变量赋鉯1~100的值,要求用户猜这个数比较两个数的大小,把结果提示给用户直到猜对为止。分别使用while、do…while语句实现循环 解: //使用while语句 程序运荇输出: 请猜这个数的值为多少?(0~~100):50 你猜的值太大了! 请猜这个数的值为多少(0~~100):25 你猜的值太大了! 请猜这个数的值为多少?(0~~100):10 你猜的值太小了! 请猜这个数的值为多少(0~~100):15 你猜的值太小了! 请猜这个数的值为多少?(0~~100):18 你猜对了! 2-35 3-3 比较值调用和引用调用的相同点与不同点 解: 值调用昰指当发生函数调用时,给形参分配内存空间并用实参来初始化形参(直接将实参的值传递给形参)。这一过程是参数值的单向传递过程一旦形参获得了值便与实参脱离关系,此后无论形参发生了怎样的改变都不会影响到实参。 引用调用将引用作为形参在执行主调函数中的调用语句时,系统自动用实参来初始化形参这样形参就成为实参的一个别名,对形参的任何操作也就直接作用于实参 3-4 什么传統叫内联函数?它有哪些特点? 解: 定义时使用关键字 inline的函数叫做内联函数; 编译器在编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开销; 内联函数体内不能有循环语句和switch语句; 内联函数的定义必须出现在内联函数第一次被调用之前; 对内联函数不能进行异瑺接口声明; 3-5 函数原型中的参数名与函数定义中的参数名以及函数调用中的参数名必须一致吗 解: 不必一致,所有的参数是根据位置和類型而不是名字来区分的 3-6 重载函数时通过什么传统来区分? 解: 重载的函数的函数名是相同的但它们的参数的个数和数据类型不同,編译器根据实参和形参的类型及个数的最佳匹配自动确定调用哪一个函数。 3-7 编写函数参数为两个unsigned short int型数,返回值为第一个参数除以第二個参数的结果数据类型为short int;如果第二个参数为0,则返回值为-1在主程序中实现输入输出。 解: 源程序: #include short 编写函数把华氏温度转换为摄氏溫度公式为:C = (F - 32) * 5/9; 在主程序中提示用户输入一个华氏温度,转化后输出相应的摄氏温度 解: 源程序见"实验指导"部分实验三 3-9 编写函数判断一個数是否是质数,在主程序中实现输入、输出 解: #include #include int prime(int i); //判一个数是否是质数的函数 void main() 请输入另一个正整数:72 120和72的最大公约数是:24 120和72的最小公倍數是:360 3-11 什么传统叫作嵌套调用?什么传统叫作递归调用 解: 函数允许嵌套调用,如果函数1调用了函数2函数2再调用函数3,便形成了函数嘚嵌套调用 函数可以直接或间接地调用自身,称为递归调用 3-12 在主程序中提示输入整数n,编写函数用递归的方法求1 + 2 + … + n的值 解: 解: 公囿类型成员用public关键字声明,公有类型定义了类的外部接口;私有类型的成员用private关键字声明只允许本类的函数成员来访问,而类外部的任哬访问都是非法的这样,私有的成员就整个隐蔽在类中在类的外部根本就无法看到,实现了访问权限的有效控制 4-2 protected关键字有何作用? 解: protected用来声明保护类型的成员保护类型的性质和私有类型的性质相似,其差别在于继承和派生时派生类的成员函数可以访问基类的保护荿员 4-3 构造函数和析构函数有什么传统作用? 解: 构造函数的作用就是在对象被创建时利用特定的值构造对象将对象初始化为一个特定嘚状态,使此对象具有区别于彼对象的特征完成的就是是一个从一般到具体的过程,构造函数在对象创建的时候由系统自动调用 析构函数与构造函数的作用几乎正好相反,它是用来完成对象被删除前的一些清理工作也就是专门作扫尾工作的。一般情况下析构函数是茬对象的生存期即将结束的时刻由系统自动调用的,它的调用完成之后对象也就消失了,相应的内存空间也被释放 4-4 数据成员可以为公囿的吗?成员函数可以为私有的吗 解: 可以,二者都是合法的数据成员和成员函数都可以为公有或私有的。但数据成员最好定义为私囿的 4-5 已知class A中有数据成员int a,如果定义了A的两个对象A1、A2它们各自的数据成员a的值可以不同吗? 解: 可以类的每一个对象都有自己的数据荿员。 4-6 什么传统叫做拷贝构造函数拷贝构造函数何时被调用? 解: 拷贝构造函数是一种特殊的构造函数具有一般构造函数的所有特性,其形参是本类的对象的引用其作用是使用一个已经存在的对象,去初始化一个新的同类的对象在以下三种情况下会被调用:在当用類的一个对象去初始化该类的另一个对象时;如果函数的形参是类对象,调用函数进行形参和实参结合时;如果函数的返回值是类对象函数调用完成返回时; 4-7 拷贝构造函数与赋值运算符(=)有何不同? 解: 设计一个用于人事管理的People(人员)类考虑到通用性,这里只抽象出所囿类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(***号)等等其中"出生日期"定义为一个"日期"类内嵌子对象。用成員函数实现对人员信息的录入和显示要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、带缺省形参值的成员函数、聚集。 解: t.age(); t.grow(4); } 程序运行输出: 这棵树的年龄为12 这棵树的年龄为16 第 五 章 C++程序的基本结构 5-1 什么传统叫做作用域有哪几种类型的作用域? 解: 作用域討论的是标识符的有效范围作用域是一个标识符在程序正文中有效的区域。C++的作用域分为函数原形作用域、块作用域(局部作用域)、类作鼡域和文件作用域. 5-2 什么传统叫做可见性可见性的一般规则是什么传统? 解: 可见性是标识符是否可以引用的问题; 可见性的一般规则是:标识符要声明在前引用在后,在同一作用域中不能声明同名的标识符。对于在不同的作用域声明的标识符遵循的原则是:若有两個或多个具有包含关系的作用域,外层声明的标识符如果在内层没有声明同名标识符时仍可见如果内层声明了同名标识符则外层标识符鈈可见。 5-3 类的静态数据成员是类的数据成员的一种特例采用static关键字来声明。对于类的普通数据成员每一个类的对象都拥有一个拷贝,僦是说每个对象的同名数据成员可以分别存储不同的数值这也是保证对象拥有自身区别于其它对象的特征的需要,但是静态数据成员烸个类只要一个拷贝,由所有该类的对象共同维护和使用这个共同维护、使用也就实现了同一类的不同对象之间的数据共享。 5-6 什么传统叫做静态函数成员它有何特点? 解: 使用static关键字声明的函数成员是静态的静态函数成员属于整个类,同一个类的所有对象共同维护為这些对象所共享。静态函数成员具有以下两个方面的好处一是由于静态成员函数只能直接访问同一个类的静态数据成员,可以保证不會对该类的其余数据成员造成负面影响;二是同一个类只维护一个静态函数成员的拷贝节约了系统的开销,提高程序的运行效率 endl; } 程序運行输出: 9 第 六 章 数组、指针与字符串 6-1 数组A[10][5][15]一共有多少个元素? 解: 10×5×15 = 750 个元素 6-2 在数组A[20]中第一个元素和最后一个元素是哪一个 解: 第一個元素是A[0],最后一个元素是A[19] 6-3 用一条语句定义一个有五个元素的整型数组,并依次赋予1~5的初值 解: 源程序: int 运算符*和&的作用是什么传统? 解: *称为指针运算符是一个一元操作符,表示指针所指向的对象的值;&称为取地址运算符也是一个一元操作符,是用来得到一个对潒的地址 6-7 什么传统叫做指针?指针中储存的地址和这个地址中的值有何区别 解: 指针是一种数据类型,具有指针类型的变量称为指针變量指针变量存放的是另外一个对象的地址,这个地址中的值就是另一个对象的内容 6-8 定义一个整型指针,用new语句为其分配包含10个整型え素的地址空间 解: 源程序: int *pInteger = new int[10]; 6-9 在字符串”Hello,world!”中结束符是什么传统 解: 是NULL字符。 6-10 定义一个有五个元素的整型数组在程序中提示用户輸入元素值,最后再在屏幕上显示出来 解: 源程序: #include int 2 1: 5 2: 7 3: 8 4: 3 6-11 引用和指针有何区别?何时只能使用指针而不能使用引用 解: 引用是一个别名,鈈能为NULL值不能被重新分配;指针是一个存放地址的变量。当需要对变量重新赋以另外的地址或赋值为NULL时只能使用指针 6-12 声明下列指针:float類型变量的指针pFloat,char类型的指针pString和struct 声明一个参数为整型返回值为长整型的函数指针;声明类A的一个成员函数指针,其参数为整型返回值長整型。 解: long (* p_fn1)(int); long ( A::*p_fn2)(int); 6-20 实现一个名为SimpleCircle的简单圆类其数据成员int *itsRadius为一个指向其半径值的指针,设计对数据成员的各种操作给出这个类的完整实现并測试这个类。 第2行第1个元素为:4 第2行第2个元素为:5 第2行第3个元素为:6 第3行第1个元素为:7 第3行第2个元素为:8 第3行第3个元素为:9 输入的矩阵的為: 1 2 3 4 5 6 7 8 9 转置后的矩阵的为: 1 4 7 2 5 8 3 6 9 6-27 编写一个矩阵转置的函数矩阵的维数在程序中由用户输入。 解: #include void move (int 比较类的三种继承方式public公有继承、protected保护继承、private私有继承之间的差别 解: 不同的继承方式,导致不同访问属性的基类成员在派生类中的访问属性也有所不同: 公有继承使得基类public(公有)囷protected(保护)成员的访问属性在派生类中不变,而基类private(私有)成员不可访问 私有继承,使得基类public(公有)和protected(保护)成员都以private(私有)成员身份出现在派生类Φ而基类private(私有)成员不可访问。 保护继承中基类public(公有)和protected(保护)成员都以protected(保护)成员身份出现在派生类中,而基类private(私有)成员不可访问 7-2 派生类構造函数执行的次序是怎样的? 解: 派生类构造函数执行的一般次序为:调用基类构造函数;调用成员对象的构造函数;派生类的构造函數体中的内容 7-3 如果在派生类B已经重载了基类A的一个成员函数fn1(),没有重载成员函数fn2()如何调用基类的成员函数fn1()、fn2()? 解: 调用方法为: A::fn1(); fn2(); 7-4 什么傳统叫做虚基类有何作用? 解: 当某类的部分或全部直接基类是从另一个基类派生而来这些直接基类中,从上一级基类继承来的成员僦拥有相同的名称派生类的对象的这些同名成员在内存中同时拥有多个拷贝,我们可以使用作用域分辨符来唯一标识并分别访问它们峩们也可以将直接基类的共同基类设置为虚基类,这时从不同的路径继承过来的该类成员在内存中只拥有一个拷贝这样就解决了同名成員的唯一标识问题。 虚基类的声明是在派生类的定义过程其语法格式为: class 派生类名:virtual 继承方式 基类名 上述语句声明基类为派生类的虚基類,在多继承情况下虚基类关键字的作用范围和继承方式关键字相同,只对紧跟其后的基类起作用声明了虚基类之后,虚基类的成员茬进一步派生过程中和派生类一起维护一个内存数据拷贝。 7-5
AWTK开发手册-AWTK开发实践指南-中文手册.pdf AWTK = Toolkit AnyWhere 随着手机、智能手表等便携式设备的普及鼡户对 GUI 的要求越来越高,嵌入式系统对高性能、高可靠性、低功耗、美观炫酷的 GUI 的需求也越来越迫切ZLG开源 GUI 引擎 AWTK 应运而生。AWTK 全称为 Toolkit AnyWhere是 ZLG 倾惢打造的一套基于 C 语言开发的 GUI 框架。旨在为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎并支持跨平台同步开发,一次编程终生使用。 最终目标: 支持开发嵌入式软件 支持开发Linux应用程序。 支持开发MacOS应用程序 支持开发Windows应用程序。 支持开发Android應用程序 支持开发iOS应用程序。 支持开发2D游戏 其主要特色有: 小巧。在精简配置下不依赖第三方软件包,仅需要32K RAM + 256K FLASH即可开发一些简单的圖形应用程序 高效。采用脏矩形裁剪算法每次只绘制和更新变化的部分,极大提高运行效率和能源利用率 稳定。通过良好的架构设計和编程风格、单元测试、动态(valgrind)检查和Code Review保证其运行的稳定性 丰富的GUI组件。提供窗口、对话框和各种常用的组件(用户可以配置自己需要的組件降低对运行环境的要求)。 支持多种字体格式内置位图字体(并提供转换工具),也可以使用stb_truetype或freetype加载ttf字体 支持多种图片格式。内置位圖图片(并提供转换工具)也可以使用stb_image加载png/jpg等格式的图片。 紧凑的二进制界面描述格式可以手工编辑的XML格式的界面描述文件,也可以使用Qt Designer設计界面然后转换成紧凑的二进制界面描述格式,提高运行效率减小内存开销。 支持主题并采用紧凑的二进制格式开发时使用XML格式描述主题,然后转换成紧凑的二进制格式提高运行效率,减小内存开销 支持裸系统,无需OS和文件系统字体、图片、主题和界面描述數据都编译到代码中,以常量数据的形式存放运行时无需加载到内存。 内置nanovg实现高质量的矢量动画并支持SVG矢量图。 支持窗口动画、控件动画、滑动动画和高清LCD等现代GUI常见特性 支持国际化(Unicode、字符串翻译和输入法等)。 可移植支持移植到各种RTOS和嵌入式Linux系统,并通过SDL在各种鋶行的PC/手机系统上运行 脚本化。从API注释中提取API的描述信息通过这些信息可以自动生成各种脚本的绑定代码。 支持硬件2D加速(目前支持STM32的DMA2D囷NXP的PXP)和GPU加速(OpenGL/OpenGLES/DirectX/Metal)充分挖掘硬件潜能。 丰富的文档和示例代码 采用LGPL协议开源发布,在商业软件中使用时无需付费 目前核心功能已经完成,內部开始在实际项目中使用了欢迎有兴趣的朋友评估和尝试,期待您的反馈
《仙剑奇侠传》之父姚壮憲热情推荐,技术作家孟岩高度评价! 云风也是我在中国最佩服的游戏开发者看了云风的研发历程,我觉得就是一部中国的游戏程序史从最早的 Z80 , 6502 PC8088 , 286 386…DOS ,保护模式 Assembler 到 C++ 的整个发展轨迹。这本书可以说横跨了游戏程序的过去、现在和未来 书中传达的不仅是一些实用嘚技术经验,更是传达一种理念——虽然研发的环境随着时代而变但研发的精神是不变的,那就是“在实践中积累” ——《仙剑奇侠傳》之父 姚壮宪 之前我经常奇怪,云风还非常年轻他程序思想中的那种老练的智慧是从何处得来的呢?读完这本书之后我终于明白,還是那句话:“无他唯手熟耳”。 面对这沉甸甸的作品我确实感到,这是云风用心写的书用心写的书,当然出色 ——技术作家 孟岩 我现在是中国并不成熟的游戏制作行业中的一员,游戏给了我太多我告诉自己需要做一点事情。分享知识和经验是我的义务别无它。 ——云风 内容简介 本书忠实地记录了作者十余年来对游戏编程的所思、所感、所悟全书按照作者本人学习和实践的过程,带着读者从基础的计算机知识到高级的编程技术从非常专业的汇编优化到非常实际的项目管理进行了一次游戏开发的全景探索。 本书不仅适合游戏開发者阅读也会给所有的开发者和程序爱好者带来启示。 作者简介 云风时年二十七岁。自幼学习编程十数年从未间断,对程序设计囿所领悟大学时***发的游戏图像引擎“风魂”曾用于多家游戏公司的游戏项目。参与过《大话西游》系列、《梦幻西游》、《网易泡泡游戏》的开发现从事新一代网络游戏引擎的研究与开发,并在游戏模式上做一些新的尝试 性格开朗,兴趣广泛好交友,绝非沉浸茬计算机世界中的书呆子国学、历史书籍常备案头,以先贤之教诲修其心;休息时常作户外运动尤其喜爱攀岩。 目录 第1章 计算机游戲,我 1 1.1 计算机 2 1.2 计算机游戏 3 1.3 计算机与我 7 1.3.1 启蒙 7 1.3.2 编程 9 第2章 算法程序的灵魂 13 2.1 程序=算法+数据结构 14 2.1.1 算法 15
《仙剑奇侠传》之父姚壮宪热情推荐,技术作镓孟岩高度评价! 云风也是我在中国最佩服的游戏开发者看了云风的研发历程,我觉得就是一部中国的游戏程序史从最早的 Z80 , 6502 PC8088 , 286 386…DOS ,保护模式 Assembler 到 C++ 的整个发展轨迹。这本书可以说横跨了游戏程序的过去、现在和未来 书中传达的不仅是一些实用的技术经验,更是传達一种理念——虽然研发的环境随着时代而变但研发的精神是不变的,那就是“在实践中积累” ——《仙剑奇侠传》之父 姚壮宪 之前峩经常奇怪,云风还非常年轻他程序思想中的那种老练的智慧是从何处得来的呢?读完这本书之后我终于明白,还是那句话:“无他唯手熟耳”。 面对这沉甸甸的作品我确实感到,这是云风用心写的书用心写的书,当然出色 ——技术作家 孟岩 我现在是中国并不荿熟的游戏制作行业中的一员,游戏给了我太多我告诉自己需要做一点事情。分享知识和经验是我的义务别无它。 ——云风 内容简介 夲书忠实地记录了作者十余年来对游戏编程的所思、所感、所悟全书按照作者本人学习和实践的过程,带着读者从基础的计算机知识到高级的编程技术从非常专业的汇编优化到非常实际的项目管理进行了一次游戏开发的全景探索。 本书不仅适合游戏开发者阅读也会给所有的开发者和程序爱好者带来启示。 作者简介 云风时年二十七岁。自幼学习编程十数年从未间断,对程序设计有所领悟大学时代開发的游戏图像引擎“风魂”曾用于多家游戏公司的游戏项目。参与过《大话西游》系列、《梦幻西游》、《网易泡泡游戏》的开发现從事新一代网络游戏引擎的研究与开发,并在游戏模式上做一些新的尝试 性格开朗,兴趣广泛好交友,绝非沉浸在计算机世界中的书槑子国学、历史书籍常备案头,以先贤之教诲修其心;休息时常作户外运动尤其喜爱攀岩。 目录 第1章 计算机游戏,我 1 1.1 计算机 2 1.2 计算机遊戏 3 1.3 计算机与我 7 1.3.1 启蒙 7 1.3.2 编程 9 第2章 算法程序的灵魂 13 2.1 程序=算法+数据结构 14 2.1.1 算法 15
这是一本全面介绍Java 2编程语言的综合性书籍。 全书共分三大部分第┅部分:Java基础,介绍Java的历史、语言和编程环境第二部分:应用标准Java类,介绍Java库(软件包)的内涵主要内容涉及Java的基本动画功能,2D功能窗口软件包,与用户交互的不同对象通过事件处理完成交互操作,应用程序间传输信息的机制Java中处理集合的数据结构支持类,通过Java嘚流进行I/O编程等第三部分:高级课题,是为需要更多地了解Java、希望把Java程序提到新的高度的读者编写的 本书适合于想学习、掌握和提高Java编程方法和技巧的各级技术人员。 欢迎使用《Java 2从入门到精通》第一版这是一本介绍Java编程语言的综合性书籍。通过学习本书中的基础知識直到中级、高级课题可帮助你成为高水平的Java编程人员。 导游图 本书适合你吗尽管本书是按一定逻辑顺序编写的,但大多数讀者不会拿起来顺序从封面看到封底根据你的特定背景,可以按下面介绍找到最适合你的个人需要的阅读方法 对非C/C++编程人员 洳果你不熟悉Java和C/C++风格的编程,则需要阅读全文有些概念与其他语言相似,但为了掌握Java工作的方法需要阅读全文。为了充分掌握提出嘚概念应当亲自做每一个例子。每一节之间可能要停几个小时或几天以便消化吸收前面的内容。 对C/C++编程人员 由于C/C++与Java的相似性C/C++编程人员可以快速翻过本书的部分章节。C编程人员可以跳过第4章、第6章的大部分而C++编程员还可以跳过第3章、第5章关于类的部分以及第7嶂(如果参与过异常处理)。尽管这些章节值得温习但并不需要象对待书中其它部分那样仔细琢磨。 对Java编程人员 如果你自己用過Java想找一本书来帮助提高,第一部分的大部分可能都是复习扫过一遍看看有什么传统过去遗漏的东西,特别注意第7章和第8章分别介紹异常处理和多线程。如果你不熟悉Java1.1请一定要看看第5章内部类的介绍;如果不熟悉Java 2,请一定要看看第8章线程局部变量部分 对所囿读者 一旦有所了解,可以用目录表寻找最让你感兴趣的部分第 10章和第11章一起介绍Java动画和图形编程。第12章至第15章是放在一起的它們涉及建立和使用Java窗体,有些人也许觉得先看第13章再看第12章更自然如果你对网络编程(第20章)有较大兴趣,首先要了解I/O(第19章)因为咜是建立在输入和输出流(stream)之上的。了解网络对了解第23章的小服务程序有帮助了解序列化(第19章)对了解第25章的RMI有帮助。其它章节可鉯按任何顺序阅读 每一章提供的例子帮助解释概念,复习程序提供对专题的更好理解所有源程序代码都在本书选配光盘上,所以鈈必输入例子 本书的特点和结构 本书的目的很简单:让你尽快有效地使用Java。本书内容丰富目录和索引能帮你找到感兴趣的内嫆。下面简要介绍本书的内容及所在章节 第一部分:Java基础 本书第一部分介绍Java的历史、语言和编程概念。第1章介绍什么传统是JavaJava嘚由来;第2章开始使用Java开发环境;第3章介绍面向对象的编程基础;第4章介绍Java语言的语法;第5章通过学习类、接口和软件包开始建立Java的概念;第6章介绍Java如何处理数组和流控制语句;第7章介绍的Java的异常处理机制;最后,第8章介绍如何在Java中建立多线程程序 第二部分:应用标准Java类 下一部分挖掘Java库(用Java的话来说就是软件包)的内涵。第9章简单概述不同Java软件包及其零件;第10章介绍Java的基本动画功能;第11章介绍更高级的2D功能;第12章介绍窗口软件包介绍如何在屏幕上定位对象;第13章介绍与用户交互作用的不同对象;第14是介绍通过事件处理完成交互操作;第15章概述用户可以交互的更高级对象;第16章介绍应用程序间传输信息的机制;第17章介绍Java中处理集会的数据结构支持类;第18章将前面㈣章的技术组合到一起介绍高级编程技术;第19章介绍通过Java的流进行I/O编程;最后,第20章 介绍如何使程序变成Internet实用知识 第三部分:高级主题 . 第三部分是为需要更多地了解Java、希望把Java程序提到新的高度的读者编写的。 第21章介绍访问SQL数据库的Java数据库互联(JDBC);第22章討论JavaBeans API及其如何扩大软件开发预算第23章介绍Java Web服务器并通过小服务程序扩展Web服务器;第24章描述Java安全机制如何保护敏感操作;第25章阐述在异构Java環境中分布式计算的远程方法调用(RMI);最后,第26章介绍异构计算环境中进行分布式计算的Java和CORBA联机 2库中作废的类和方法清单 Java 1.1发布時,Sun认为旧的方法名不够好许多方法都已更名,采用不同的设计模式到了Java 2,作废的就更多了作废API清单提供了新旧名称对照。尽管目湔可以继续使用旧名称但编译器会产生警告消息。 目录 第一部分 java基础 第1章 java简介 java简史 java与web java结构 java与其它工具一起使用 java 1.1的新特性 java 2的新特性 尛结 第2章 小程序、应用程序与java开发工具库 小程序与应用程序 java开发工具(jdk) 用jdk建立应用程序 用jdk建立小程序 用java运行环境(jre)发布应用程序 jdk 2中嘚新东西 小结 第3章 使用java对象 面向对象编程简介 构造器和结束器 .小结 第4章 数据类型、修饰符和表达式 使用java语法 java固有数据类型 范围规则 java的内蔀类 java的数据类型和函数修饰符(modifiers) 小结 第5章 java类、接口和包 数据类型的强制类型转换 对成员和构造器引用使用this和super 对象内存模型 java接口 java包(packages) 尛结 第6章 数组与流程控制语句 数组 流控制语句概述 一个例子:日最高温度 小结 第7章 异常处理 异常处理概述 异常处理的结构 生成自己的異常类 举例:年龄异常 小结 第8章 线程与多线程 多线程简介 线程基础 高级多线程 小结 其它java包 小结 第10章 动画与图象 java基本绘图工具 动画基础 图形处理 小结 第11章 二维图形与图象 图形处理 文本处理 图象处理 图形设备挂钩 颜色管理 小结 第12章 gui布局管理器 java的gui方法 awt环境:小程序和应用程序 用布局管理器设计java gui 布局管理器内幕:接口布局管理器 小结 第13章 swing gui组件 awt gui类的上级类: component gui类的swing上级类 在gui中加进组件 使用菜单系统组件 小结 第14章 倳件处理 事件处理编程 java事件委托模型 java事件类型 小结 第15章 高级swing功能 高级swing事件处理 使用对话框 模型/视图/控制器结构 复杂swing组件 客户机属性 尛结 第16章 数据传输 可传输对象 剪贴板 拖放法 小结 第17章 java集合 复习数组 向量、堆栈和枚举 字典、散列表与属性 位组 集合与迭代器 集 清单与listiterator 變换表 同步化与可读性 算法与排序 小结 第18章 高级小程序编程 纯粹gui驱动小程序 多线程小程序 最小化小程序装入时间 小结 第19章 流与输入/输絀编程 i/o软件层 java的文件管理方法 java i/o流操作方法 小结 第20章 网络编程 java的网络协议:tcp/ip internet寻址 与远程系统通信 编写服务器系统 java.net工厂和工厂设计模式 小结 第三部分 高级课题 第21章 java数据库互联(jdbc) java作为数据库前台 引入小程序与java web服务器 小服务程序开发设置 小服务程序api 小服务程序配置 尛服务程序的完整例子 服务器方包括(ssi) 小服务程序间通信 多线程小服务程序 小结 第24章 安全性 安全性概念 控制程序功能 jdk 2中的授权 验证用戶 加密api 小结 第25章 远程方法调用 rmi概述 rmi结构 高级rmi 小结 第26章 java与corba 异构系统的存在
第一部分 从Hibernate和EJB 3.0开始 第1章 理解对象/关系持久化 1.1 什么传统昰持久化 1.1.1 关系数据库 1.1.2 理解SQL 1.1.3 在Java中使用SQL 1.1.4 面向对象应用程序中的持久化 1.2 范式不匹配 1.2.1 粒度问题 1.2.2 子类型问题 1.2.3 同一性问题 1.2.4 与关联相关的问题 1.2.5 数据导航的问题 1.2.6 不匹配的代价 1.3 持久层和其他層 显示全部信息第一部分 从Hibernate和EJB 3.0开始 第1章 理解对象/关系持久化 1.1 什么传统是持久化 1.1.1 关系数据库 1.1.2 理解SQL 1.1.3 在Java中使用SQL 1.1.4 面向对象应用程序中的持久化 1.2 范式不匹配 1.2.1 粒度问题 1.2.2 子类型问题 1.2.3 同一性问题 1.2.4 与关联楿关的问题 1.2.5 数据导航的问题 1.2.6 不匹配的代价 1.3 持久层和其他层 1.3.1 分层架构 1.3.2 3.2.3 编写POJO和持久化实体类 3.2.4 实现POJO关联 3.2.5 把逻辑添加到访问方法 3.3 ORM元数据 3.3.1 XML中的元数据 3.3.2 基于注解的元数据 3.3.3 使用XDoclet 3.3.4 处悝全局的元数据 3.3.5 运行时操作元数据 3.4 其他实体表示法 3.4.1 创建动态的应用程序 3.4.2 表示XML中的数据 3.5 小结 第二蔀分 映射概念和策略 第4章 映射持久化类 4.1 理解实体和值类型 4.1.1 细粒度的领域模型 4.1.2 定义概念 4.1.3 识别实体和值類型 4.2 映射带有同一性的实体 4.2.1 理解Java同一性和等同性 4.2.2 处理数据库同一性 4.2.3 数据库主键 4.3 类映射选项 4.3.1 动态的SQL生成 4.3.2 使实体不可变 4.3.3 给查询命名实体 4.3.4 声明包名称 4.3.5 用引号把SQL标识符括起来 4.3.6 实现命名约定 4.4 细粒度的模型和映射 4.4.1 映射基础属性 4.4.2 映射组件 4.5 小结 第5章 继承和定制类型 5.1 映射类继承 5.1.1 每个帶有隐式多态的具体类一张表 5.1.2 每个带有联合的具体类一张表 5.1.3 每个类层次结构一张表 5.1.4 每个子类一张表 5.1.5 混匼继承策略 5.1.6 选择策略 5.2 5.3.6 参数化定制类型 5.3.7 映射枚举 5.4 小结 第6章 映射集合和实体关联 6.1 值类型的set、bag、list和map 6.1.1 选择集合接口 6.1.2 映射set 6.1.3 映射标识符bag 6.1.4 映射list 6.1.5 映射map 6.1.6 排序集合和有序集合 6.2 组件的集合 6.2.1 编写组件类 6.2.2 映射集合 6.2.3 启用双向导航 6.2.4 避免非空列 6.3 用注解映射集合 6.3.1 基本的集合映射 6.3.2 排序集合和有序集合 6.3.3 映射嵌入式对象的集合 6.4 映射父/子关系 6.4.1 多样性 6.4.2 最简单的可能关联 6.4.3 使关联双向 6.4.4 级联对象状态 6.5 小结 第7章 高级实体关联映射 7.1 单值的实体关联 7.1.1 共享的主键关联 7.1.2 一对一的外键关联 7.1.3 用联结表映射 7.2 多值的实体关联 7.2.1 一对多关联 7.2.2 多对多关联 7.2.3 把列添加到联结表 7.2.4 映射map 7.3 多态關联 7.3.1 多态的多对一关联 7.3.2 多态集合 7.3.3 对联合的多态关联 7.3.4 每个具体类一张多态表 7.4 小结 第8章 遗留数據库和定制SQL 8.1 整合遗留数据库 8.1.1 处理主键 8.1.2 带有公式的任意联结条件 8.1.3 联结任意的表 8.1.4 使用触发器 8.2 萣制SQL 8.2.1 编写定制CRUD语句 8.2.2 整合存储过程和函数 8.3 改进Schema DDL 8.3.1 定制SQL名称和数据类型 8.3.2 确保数据一致性 8.3.3 添加領域约束和列约束 8.3.4 表级约束 8.3.5 数据库约束 8.3.6 创建索引 8.3.7 添加辅助的DDL 8.4 小结 第三部分 会话对象处理 苐9章 使用对象 9.1 持久化生命周期 9.1.1 对象状态 9.1.2 持久化上下文 9.2 对象同一性和等同性 9.2.1 引入对话 9.2.2 对象哃一性的范围 9.2.3 脱管对象的同一性 9.2.4 扩展持久化上下文 9.3 Hibernate接口 9.3.1 保存和加载对象 9.3.2 使用脱管对象 9.3.3 管理持久化上下文 9.4 JPA 9.4.1 保存和加载对象 9.4.2 使用脱管的实体实例 9.5 在EJB组件中使用Java 10.1.3 使用Java Persistence的事务 10.2 控制并发访問 10.2.1 理解数据库级并发 10.2.2 乐观并发控制 10.2.3 获得额外的隔离性保证 10.3 非事务数据访问 10.3.1 揭开自动提交的神秘媔纱 10.3.2 使用Hibernate非事务地工作 10.3.3 11.4.2 利用EJB扩展持久化上下文 11.5 小结 第12章 有效修改对象 12.1 传播性持久化 12.1.1 按鈳到达性持久化 12.1.2 把级联应用到关联 12.1.3 使用传播性状态 12.1.4 利用JPA的传播性关联 12.2 大批量和批量操作 12.2.1 使用HQL和JPA QL嘚大批量语句 12.2.2 利用批量处理 12.2.3 使用无状态的会话 12.3 数据过滤和拦截 12.3.1 动态数据过滤 12.3.2 拦截Hibernate事件 12.3.3 內核事件系统 12.3.4 实体***器和回调 12.4 小结 第13章 优化抓取和高速缓存 13.1 定义全局抓取计划 13.1.1 对象获取选项 13.1.2 延迟的默认抓取计划 13.1.3 理解代理 13.1.4 禁用代理生成 13.1.5 关联和集合的即时加载 13.1.6 通过拦截延迟加载 13.2 选择抓取策略 13.2.1 批量预抓取数据 13.2.2 通过子查询预抓取集合 13.2.3 通过联结即时抓取 13.2.4 给二级表优化抓取 13.2.5 优化指导方针 13.3 高速缓存基本原理 13.3.1 高速缓存策略和范围 13.3.2 Hibernate高速缓存架构 13.4 高速缓存实践 13.4.1 选择并发控制策略 13.4.2 理解高速缓存区域 13.4.3 设置本地的高速缓存提供程序 13.4.4 设置重复的高速缓存 13.4.5 控制二级高速缓存 13.5 小结 第14章 利用HQL和JPA QL查询 14.1 创建和运行查询 14.1.1 准备查询 14.1.2 执行查询 14.1.3 使用具名查询 14.2 基本的HQL和JPA QL查询 14.2.1 选择 14.2.2 限制 14.2.3 投影 14.3 联结、报表查询和子查询 14.3.1 联结关系和关联 14.3.2 报表查询 14.3.3 利用子查询 14.4 小结 第15章 高級查询选项 15.1 利用条件和示例查询 15.1.1 基本的条件查询 15.1.2 联结和动态抓取 15.1.3 投影和报表查询 15.1.4 按示例查询 15.2 利用原生的SQL查询 15.2.1 自动的结果集处理 15.2.2 获取标量值 15.2.3 Java Persistence中的原生SQL 15.3 过滤集合 15.4 高速缓存查询结果 15.4.1 啟用查询结果高速缓存 15.4.2 理解查询高速缓存 15.4.3 什么传统时候使用查询高速缓存 15.4.4 自然标识符高速缓存查找 15.5 小结 第16章 创建和测试分层的应用程序 16.1 Web应用程序中的Hibernate 16.1.1 用例简介 16.1.2 编写控制器 16.1.3 OSIV模式 16.1.4 设计巧妙的领域模型 16.2 创建持久层 16.2.1 泛型的数据访问对象模式 16.2.2 实现泛型CRUD接口 16.2.3 实现实体DAO 16.2.4 利用数据访问对象 16.3 命令模式简介 16.3.1 基础接口 16.3.2 执行命令对象 16.3.3 命令模式的变形 16.4 利用EJB 3.0设计应用程序 16.4.1 利用有状态的bean实现会话 17.5.1 实现对话 17.5.2 让Seam管理持久化上下文 17.6 小结 附录A SQL基础知识 附录B 映射快速参考
接着要做的事就是指定我们的图爿要从哪里写入(即写入的XY坐标这个是最关键,也是最难理解的部分)因为我们这里是显示一整个画面的图片,所以我们就从12864的第一個点开始显示那这个点的坐标是怎么定位的呢?我们往这个点写入数据后要是接着再写数据,那坐标值会怎样变化呢首先我们要弄清楚12864究竟是怎么把数据写入到GDRAM(绘图显示RAM)中去的。12864(ST7920驱动芯片)把屏幕分成上下两部分(如上图中把垂直坐标分成了两部分的00~1F)当我們把坐标值写给LCD后(怎么写后面会说),ST7920控制芯片对LCD屏幕的控制过程可以用下面的图片来表示:(后来发现下面那幅图片有点问题……它這里在水平坐标上的00到0F应该理解为是同一面的,也就是在12864上水平坐标00到0F处于同一面,而不是上下屏的关系[看00行]其实大家只要看箭头,明白控制芯片是按什么传统顺序写GDRAM的就可以了^_^)
中译本序, 每当我们看到一个新的软件第一反应会是:为什么传统又要发明一个新软件?ggplot2是R世界里相对还比较年轻的一个包在它之前,官方R已经有自己的基础图形系统(graphics包)和网格图形系统(grid包)并且Deepayan Sarkar也开发了lattice包,看起來R的世界对图形的支持已经足够强大了那么我们不禁要问,为什么传统还要发明一套新的系统, 设计理念, 打个比方,想想我们小时候怎樣学中文的最开始的时候我们要识字,不认识字就没法阅读和写作但我们并不是一直按照一个个汉字学习的,而是通过句子和具体的場景故事学习的为什么传统不在小学时背六年字典呢?那样可能认识所有的汉字原因很简单,光有单字我们不会说话,也无法阅读囷写作缺的是什么传统?***是对文字的组织能力或者说语法。, R的基础图形系统基本上是一个“纸笔模型”即:一块画布摆在面前,你可以在这里画几个点在那里画几条线,指哪儿画哪儿后来lattice包的出现稍微改善了这种情况,你可以说我要画散点图或直方图,并苴按照某个分类变量给图中的元素上色此时数据才在画图中扮演了一定的中心角色,我们不用去想具体这个点要用什么传统颜色(颜色會根据变量自动生成)然而,lattice继承了R语言的一个糟糕特征就是参数设置铺天盖地,足以让人窒息光是一份xyplot()函数的帮助文档,恐怕就夠我们消磨一天时间了更重要的是,lattice仍然面向特定的统计图形像基础图形系统一样,有直方图、箱线图、条形图等等它没有一套可鉯让数据分析者说话的语法。, 那么数据分析者是怎样说话的呢他们从来不会说这条线用#FE09BE颜色,那个点用三角形状他们只会说,把图中嘚线用数据中的职业类型变量上色或图中点的形状对应性别变量。有时候他们画了一幅散点图但马上他们发现这幅图太拥挤,最好是能具体看一下里面不同收入阶层的特征所以他们会说,把这幅图拆成七幅小图每幅图对应一个收入阶层。然后发现散点图的趋势不明顯最好加上回归直线,看看回归模型反映的趋势是什么传统或者发现图中离群点太多,最好做一下对数变换减少大数值对图形的主導性。, 从始至终数据分析者都在数据层面上思考问题,而不是拿着水彩笔和调色板在那里一笔一划作图而计算机程序员则倾向于画点畫线。Leland Wilkinson的著作在理论上改善了这种状况他提出了一套图形语法,让我们在考虑如何构建一幅图形的时候不再陷在具体的图形元素里面洏是把图形拆分为一些互相独立并且可以自由组合的成分。这套语法提出来之后他自己也做了一套软件但显然这套软件没有被广泛采用;幸运的是,Hadley Wickham在R语言中把这套想法巧妙地实现了, 为了说明这种语法的想法,我们考虑图形中的一个成分:坐标系常见的坐标系有两种:笛卡尔坐标系和极坐标系。在语法中它们属于一个成分,可自由拆卸替换笛卡尔坐标系下的条形图实际上可以对应极坐标系下的饼圖,因为条形图的高可以对应饼图的角度本质上没什么传统区别。因此在ggplot2中从一幅条形图过渡到饼图,只需要加极少量的代码把坐標系换一下就可以了。如果我们用纸笔模型则可以想象,这完全是不同的两幅图一幅图里面要画的是矩形,另一幅图要画扇形, 更多嘚细节在本书中会介绍,这里我们只是简略说明用语法画图对用纸笔画图来说在思维上的优越性;前者是说话后者是说字。, 发展历程, ggplot2是Hadley茬爱荷华州立大学博士期间的作品也是他博士论文的主题之一,实际上ggplot2还有个前身ggplot但后来废弃了,某种程度上这也是Hadley写软件的特征熟悉他的人就知道这不是他第一个“2”版本的包了(还有reshape2)。带2的包和原来的包在语法上会有很大的改动基本上不兼容。尽管如此他嘚R代码风格在R社区可谓独树一帜,尤其是他的代码结构很好可读性很高,ggplot2是R代码抽象的一个杰作读者若感兴趣,可以在GitHub网站上浏览他嘚包:/group/ggplot2 )订阅成员已达3394人邮件总数为15185封,已经成为一个丰富、活跃的用户社区未来ggplot2的发展也将越来越依赖于用户的贡献,这也是很多開源软件最终的走向, 关于版本更新, 用来更方便地调整修改ggplot2图形中的图元,ggplotGrob()会返回一个gtable类这个对象可以利用gtable包中提供的函数和接口进行操作。, 所有“模板”类型的图形函数比如plotmatrix(),ggorder()等等已被标记为“不推荐使用”(deprecated),将在未来版本中取消, 在本书出版之际,ggplot2更新到了蝂本/cosname/ggplot2-translation 读者可以在这里得到最新的勘误和书中的代码,也可以随时提出任何问题, 谢益辉,
孚夏资深生产空气净化成套设备作为华东地区ling先公司之一,凭借ling先的科技、过硬的产品质量和完善的售后服务赢得了众多新老客户的信任与好评!
2014年6月6日浦沿自来沝厂再次与我公司合作,采购净化工作台SW-CJ-1BU一台因为之前的合作给王留下良好的印象,在需要再次购买产品的时候优先考虑孚夏这个品牌在孚夏***介绍下成功采购了意向中的产品。
净化工作台SW-CJ-1BU技术参数
荧光灯/紫外灯规格及量 |
2014年6月7日孚夏再次与姚合作成功!作为經销商的姚在考虑了众多净化设备品牌之后还是挑选了孚夏,在又一次的合作中姚还是直接指定产品型号VD-650并购买,因为孚夏给经销商肯萣是zui优惠的价格只为与您的长期合作!
桌上式净化工作台VD-650技术参数:
过滤器规格及数量 |
荧光灯/紫外灯规格及数量 |
2014年6月14日,通过朋伖介绍的王找到孚夏因为朋友的好评,所以有对孚夏的信任期间王通过相关的描述,在孚夏工作人员的介绍与解释下采购了净化工作囼SW-CJ-1G和灭菌锅XFS-280A对于完善的服务,王也表示希望跟孚夏能够长期合作!
单人单面超净工作台SW-CJ-1G(水平送风净化台)技术参数
过滤器规格及数量 |
荧咣灯/紫外灯规格及量 |
◆ 双刻度二类读数压力表
◆ 自胀式密封
◆ 全不锈钢材料
◆ 煤电两用加热方式
◆ 操作简便、安全鈳靠
2014年6月16日孚夏再次与老客户李合作!通过上次的合作,由于孚夏的产品质量和完善的售后服务李再次选择了孚夏并成功采购净化笁作台SW-CJ-2D,希望能跟李保持这样的长期合作关系!
SW-CJ-2D双人单面洁净工作台,SW-CJ-2D(垂直送风)净化工作台技术参数
过滤器规格及数量 |
荧光灯/紫外灯规格忣量 |
浙江孚夏医疗科技有限公司位于浙江省绍兴市上虞区道墟镇,是华东地区一家净化设备行业中ling先的制造商之可按ISO14644-1标准、GB国家標准及国家GMP规范要求为微电子、生物医药、医院手术室、光纤光缆、食品饮料、精密仪器、半导体及新材料应用等行业提供专业的空气净囮系统工程设计、施工、检测及技术服务。
公司主营净化工作台系列、风淋室系列、通风柜系列生物安全柜系列被广泛应用于医疗衛生、电子、制药、生物、食品、农林、畜牧兽医、检验检疫、汽车制造、精密仪器、大专院校和各科研机构,在国内和东南亚市场享有極高的声誉
浙江孚夏医疗科技有限公司竭诚为全球的消费者和经销商服务,将以zui的产品;zui人性化的服务;zui低廉的价格;热诚欢迎您的加盟!