目 录 译者序 前言 第1章 风格 1 1.1 名字 2 1.2 表达式和语句 4 1.3 一致性和习惯用法 8 1.4 函数宏 14 1.5 神秘的数 15 1.6 注释 18 1.7 为何对此费心 22 第2章 算法与数据结构 23 2.1 检索 23 2.2 排序 25 2.3 库 27 2.4 一个Java快速排序 29 2.5 大O记法 31 2.6 可增长数组 33 2.7 表 35 2.8 树 39 2.9 散列表 43 2.10 小结 46 第3章 设计与实现 48 3.1 马尔可夫链算法 48 3.2 数据结构的选择 50 3.3 在C中构造数据结构 51 3.4 生成输出 54 3.5 Java 56 3.6 C++ 59 3.7 Awk和Perl 61 3.8 性能 63 3.9 经验教训 64 第4章 界面 67 4.1 逗号分隔的值 67 4.2 一个原型库 69 4.3 为别人用的库 72 4.4 C++实现 79 4.5 界面原则 82 4.6 资源管理 84 4.7 终止、重试或失败 86 4.8 用户界面 90 第5章 排错 93 5.1 排错系统 94 5.2 好线索,简单错误 95 5.3 无线索,难办的错误 98 5.4 最后的手段 101 5.5 不可重现的错误 103 5.6 排错工具 105 5.7 其他人的程序错误 107 5.8 小结 108 第6章 测试 110 6.1 在编码过程中测试 110 6.2 系统化测试 114 6.3 测试自动化 118 6.4 测试台 120 6.5 应力测试 123 6.6 测试秘诀 125 6.7 谁来测试 126 6.8 测试马尔可夫程序 127 6.9 小结 129 第7章 性能 130 7.1 瓶颈 130 7.2 计时和轮廓 135 7.3 加速策略 138 7.4 代码调整 140 7.5 空间效率 144 7.6 估计 145 7.7 小结 147 第8章 可移植性 149 8.1 语言 149 8.2 头文件和库 154 8.3 程序组织 156 8.4 隔离 159 8.5 数据交换 160 8.6 字节序 161 8.7 可移植性和升级 164 8.8 国际化 165 8.9 小结 167 第9章 记法 169 9.1 数据格式 169 9.2 正则表达式 174 9.3 可编程工具 180 9.4 解释器、编译器和虚拟机 182 9.5 写程序的程序 186 9.6 用宏生成代码 189 9.7 运行中编译 190 后记 195 附录:规则汇编 197 索引 200
2024-04-22 19:35:29 7.62MB 软件工程 程序设计实践
1
1. 动手编码之前,你需要对要编码实现的解决方案有一个正式的或粗略的设计。永远不要在没有任何设计的前提下就开始编码,除非所编代码不重要。 2. 优秀的代码文档跟编程语言知识一样重要。在代码源文件中,为每个主要的代码段添加注释,解释代码的基本逻辑。最好注明程序的构建和修改日期,以及修改的原因也是非常有必要的。 3. 维护程序的各个版本同样重要。当前有些编程工具都自带一个版本管理工具。无论你什么时候改变自己的程序,它们都会将其保存为.bak文件。 我的方法是为每个程序维护三个不同的版本。比如说,我有一个名为program.c的文件,这个文件同时也被其他项目组成员使用。我把这个文件复制为 program.c.old作为备份文件,并且当我修改时,我会备份另一个名为program.c.wrk的副本文件。当成功完成修改时替换 program.c.wrk文件。 你还可以给自己的程序版本添加一个日期或一些注释,像program260505.c或programReadFnWrking.c。 4. 如果工程包含多个源文件,则生成一个README文件,注明每个源文件、数据文件、临时文件以及日志文件
2024-01-17 18:20:44 69KB 软件开发 程序设计
1
/***********STC12C5A60S2单片机驱动74595 8位LED显示实验************* 程序功能:上位机配套的8位数码管下位机代码 开发环境:Keil4 硬件环境:CEPARK多功能开发学习板/实验箱(2017版),STC12C5A60S2,11.0592M晶振 接线说明:单片机P20~P22口接底板JP26,具体接线为:P20-STCP,P21-SHCP,P22-DS 跳线说明:无 实验现象: 打开上位机软件,打开相应串口,注意串口号要选对,注意晶振为11.0592M 点击打开8位数码管界面, 点亮上位机上对应段,底板上8位数码管对应的段也被点亮。 上位机相关://uart0采用独立波特率发生器,独立波特率发生器时钟为1T////SMOD=0,串口波特率=BRT独立波特率发生器的溢出率/32//SMOD=1,串口波特率=BRT独立波特率发生器的溢出率/16//BRTx12=0,BRT独立波特率发生器的溢出率=Fosc/12/(256-BRT)//BRTx12=1,BRT独立波特率发生器的溢出率=Fosc/(256-BRT)//uart0波特\u7387=
2024-01-17 15:00:50 53KB 软件开发 程序设计
1
/******************************************************* 程序功能:双色LED测试程序 开发环境:Keil4 硬件环境:CEPARK多功能开发学习板/实验箱(2017版),STC12C5A60S2,11.092M晶振 接线说明:单片机P10~P11接底板JP19,分别为:P10-I1,P11-I2 跳线说明:无 实验现象: 双色LED交替显示红色和绿色。 论坛支持:http://www.eeskill.com 淘宝店铺:http://cepark.taobao.com 作者:eeskill 时间:2017-07-01 *******************************************************/ #include "REG52.h" void Delay(unsigned int); //延时函数 void main(void){ while(1) { unsigned char i,j; for(i = 0;i < 4;i++) //LED闪烁 { for(j = 0;
2024-01-17 14:50:07 30KB 软件开发 程序设计
1
MATLAB软件的程序设计.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
2022-06-20 14:03:37 1.53MB 文档资料
课程设计-无线遥控器自适应软件解码程序设计
2022-06-15 17:04:00 192KB 文档资料
编写一个气象监测软件,气象监测软件可以定时从气象站获取最新的气象数据包括:温度、湿度、气压。气象监测软件可以把获得的气象数据通过柱状图、可视化数字窗口或控制台呈现动态气象数据的变化。未来还可以根据用户的需求,对数据呈现方式进行扩展。 运用面向对象的思想设计一个气象监测软件。并综合运用Java的Swing包中GUI容器和组件,以及多线程机制等面向对象的方法与技术进行编程实现。
2022-02-01 16:02:47 13KB java 容器 开发语言 后端
目录   译者序   第2版前言   第1版前言   第0章不可知和不可说   0.1和解析体验相关的问题   0.1.1解析模式的冲突   0.1.2检测解析模式   0.1.3思考不准确的思想   0.2沟通的不可能性   0.2.1内部重新组织   0.2.2触及共享体验   0.2.3管理不完美的沟通   0.3聆听的三个层次   0.3.1三个层次和方法集   0.3.2三个层次与本书   0.3.3守-破-离   0.4那么,明天我做什么   第0A章不可知和不可说:演进   0A.1沟通和共享的体验   0A.2守-破-离   第1章创造和沟通的合作博弈   1.1软件和诗歌   1.2软件与博弈   1.2.1博弈的类型   1.2.2软件与攀岩   1.2.3创造和沟通的博弈   1.2.4软件与工程化   1.2.5软件与模型构建   1.3再论合作博弈   1.3.1程序员成为沟通专家   1.3.2更快地博弈   1.3.3标识物和道具   1.3.4减少回报   1.3.5对于首要目标的充分度   1.3.6对于积淀的充分度   1.3.7博弈中的博弈   1.3.8开放源码开发   1.4这对我意味着什么   第1A章创造和沟通的合作博弈:演进   1A.1沼泽游戏   1A.2合作中的竞争   1A.3其他领域的合作博弈   1A.4软件工程的重建   1A.4.1这一词汇从哪里来   1A.4.2我们从哪里走错了   1A.4.3重建软件工程   1A.4.4技艺   1A.4.5合作博弈   1A.4.6精益制造   1A.4.7重建后的软件工程   1A.4.8其他工程化中的协作   第2章个人   2.1人是古怪的   2.1.1寻找特征函数   2.1.2古怪性格的元素   2.1.3不可避免的多样性   2.1.4技术的作用   2.1.5相互冲突的共同点   2.2克服失败模式   2.2.1犯错误   2.2.2宁可失败也要选择保守   2.2.3创新而不研究   2.2.4不能始终如一的习惯动物   2.2.5使用纪律和容忍来应对   2.3以一些更好的方式工作   2.3.1具体化   2.3.2实物   2.3.3在某些东西的基础上进行修改   2.3.4观察和聆听   2.3.5支持专注和沟通   2.3.6工作分配要与个性相匹配   2.3.7天赋   2.3.8奖励要能保留乐趣   2.3.9组合奖励   2.3.10反馈   2.4利用成功模式   2.4.1善于四处寻找   2.4.2人们学习   2.4.3可塑性   2.4.4贡献和采取主动   2.4.5组合成功模式   2.4.6英雄也是普通人   2.5明天我该做什么   第2A章个人:演进   2A.1策略平衡   第3章团队的沟通与合作   3.1信息的对流   3.1.1延迟和机会损失成本   3.1.2尔格-秒   3.1.3渗透式沟通   3.1.4穿堂风   3.1.5信息辐射源   3.1.6热空气理论的应用   3.2跨越沟通的鸿沟   3.2.1沟通的形态   3.2.2去掉某些形态所产生的影响   3.2.3利用各种形态   3.2.4黏度与跨越空间的鸿沟   3.3团队就是集体   3.3.1友善和冲突   3.3.2工作时间的公民意识   3.3.3敌意的XP与友善的XP   3.3.4使用胜利来建立“团队”   3.3.5团队文化与亚文化   3.4团队就是生态系统   3.5我明天该做什么   第3A章团队:演进   3A.1一个修订后的办公室布局样本   第4章方法集   4.1一个交付软件的生态系统   4.2方法集中的概念   4.2.1结构术语   4.2.2范围   4.2.3概念术语   4.2.4发布一个方法集   4.3方法集的设计原则   4.3.1常见设计错误   4.3.2在方法集上成功的项目   4.3.3与作者的相关性   4.3.4七条原则   4.4细看XP   4.4.1XP简介   4.4.2剖析XP   4.4.3调整XP   4.5到底为什么使用方法集   4.5.1方法集解决什么问题   4.5.2如何评估一个方法集   4.6明天我应该做什么   第4A章方法集:演进   4A.1方法集与策略   4A.2组织级的方法集   4A.3过程就是循环   4A.4更简单地描述方法集   第5章敏捷与自适应   5.1轻但足够   5.1.1刚好足够   5.1.2对于编制文档的建议   5.2敏捷   5.2.1最佳击球点   5.2.2虚拟团队的麻烦   5.3变得自适应   5.3.1不厌其烦地进行反思   5.3.2方法集成长技术
2021-11-11 11:32:31 17.95MB 敏捷 软件开发 程序设计 编程
1
本文介绍的读卡电路相比于目前德国Temic公司生产的射频卡基站读写专用芯片U2270B,大大降低了成本。
1
Java教父的又一经典名著--Java Puzzlers,Amazon五星图书 认为你到底有多了解Java?你是一个代码神探吗?你是否曾经花费过数天时间去追踪一个由Java或其类库的陷阱和缺陷而导致的bug?你喜欢智力测验吗?那么这本书正好适合你!
1