摘要:启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。在BIOS将系统的控制权交给硬盘第一个扇区之后,就开始由Linux来控制系统了。 启动第二步--读取MBR 硬盘上第0磁道第一个扇区被称为MBR,也就是MasterBootRecord,即主引导记录,它的大小是512字节,可里面却存放了预启动信息、分区表信息。可分为两部分:第一部分为引... 阅读全文
什么是ERP
2012-03-18 21:02 by Daniel Zheng, 714 阅读, 1 推荐, 收藏, 编辑
摘要:别人写的,感觉不错就转过来了。ERP 一天中午,丈夫在外给家里打电话:“亲爱的老婆,晚上我想带几个同事回家吃饭可以吗?”(订货意向) 妻子:“当然可以,来几个人,几点来,想吃什么菜?” 丈夫:“6个人,我们7点左右回来,准备些酒、烤鸭、番茄炒蛋、凉菜、蛋花汤……。你看可吗?”(商务沟通) 妻子:“没问题,我会准备好的。”(订单确认) 妻子记录下需要做的菜单(MPS计划),具体要准备的东西:鸭、酒、番茄、鸡蛋、调料……(BOM物料清单),发现需要:1只鸭蛋,5瓶酒,4个鸡蛋……(BOM展开),炒蛋需要6个鸡蛋,蛋花汤需要4个鸡蛋(共用物料)。 打开冰箱一看(库房),只剩下2个鸡蛋(缺... 阅读全文
Linux目录介绍
2012-03-14 16:47 by Daniel Zheng, 528 阅读, 2 推荐, 收藏, 编辑
摘要:/bin:存放着一百多个Linux下常用的命令、工具/dev:存放着Linux下所有的设备文件!/home:用户主目录,每建一个用户,就会在这里新建一个与用户同名的目录,给该用户一个自己的空间/lost+found:顾名思义,一些丢失的文件可能可以在这里找到/mnt:外部设备的挂接点,通常用cdrom与floppy两个子目录!它的存在简化了光盘与软盘的使用。你只需在塞入光盘后,运行:mount /mnt/ cdrom,就可以将光盘上的内容Mount到/mnt/cdrom上,你就可以访问了。不过你使用完成后,应该离开该目录,并执行umount /mnt/cdrom。同样 的,软盘就是mount 阅读全文
四种ABAP数据对象(转)
2012-03-04 14:37 by Daniel Zheng, 1031 阅读, 0 推荐, 收藏, 编辑
摘要:在ABAP/4中可以使用四种数据对象 1、内部数据对象 创建内部数据对象供在特定的程序中使用,在该程序之外无效,包括文字、常量、变量 (1)文字 文字是固定值,分为文本文字和数字文字。文本文字是单引号内的字母数字字符序列,最常可达254个字符,如果某文本文字包含引号,必须重复引号,以使系统能够将内容识别为文本文字而不是文字的结尾;数字文字时刻能包含前导符号的数字序列,可包含多达15个数字。 (2)常量 常量是包含值的数据对象,该值是在初始化时确定的,在程序执行期间不能更改常量,可以利用常量语句CONSTANTS语句声明常量。 CONSTANTS PI TYPE P DECIMALS 10 .. 阅读全文
ABAP开发概要
2012-02-18 19:58 by Daniel Zheng, 696 阅读, 0 推荐, 收藏, 编辑
摘要:ABAP产生的最初目的是用以生成简单打印报表程序,ABAP(Advanced Business Application Programming)现在用与编写SAP AG的几乎全部产品源代码。ABAP开发主要的工作分为三类:报表的开发,主要使用数据库读取,AVL,LIST等技术;单据的打印,主要使用数据库读取,SmartForms,Form等技术;数据的上载,主要使用数据库存取,CATT,BDC等技术。相关技术表如下:常用TCODE如下表: 阅读全文
对象生死劫 - 构造函数和析构函数的异常(转)
2011-10-25 18:15 by Daniel Zheng, 464 阅读, 0 推荐, 收藏, 编辑
摘要:构造函数和析构函数分别管理对象的建立和释放,负责对象的诞生和死亡的过程。当一个对象诞生时,构造函数负责创建并初始化对象的内部环境,包括分配内存、创建内部对象和打开相关的外部资源,等等。而当对象死亡时,析构函数负责关闭资源、释放内部的对象和已分配的内存。 在对象生死攸关的地方,如果程序代码出现问题,常常会发生内存泄漏,从而产生可能危害系统运行的孤魂野鬼。大量的事实表明,业务逻辑代码写得非常严谨的程序在运行中仍然发现存在内存泄露,大都是构造和析构部分的代码存在问题。 而许多程序员都习惯于面向对象的编程,需要时就建立一个对象,不用时就将其释放。这样的习惯简化了我们的思路,正是面向对象编程思想带来.. 阅读全文
分组查询的相关说明
2011-10-09 21:50 by Daniel Zheng, 357 阅读, 0 推荐, 收藏, 编辑
摘要:在SQL中使用GROUP BY来对SELECT的结果进行数据分组,在具体使用GROUP BY之前需要知道一些重要的规定。GROUP BY子句可以包含任意数目的列。也就是说可以在组里再分组,为数据分组提供更细致的控制。如果在GROUP BY子句中指定多个分组,数据将在最后指定的分组上汇总。GROUP BY子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在SELECT中使用了表达式,则必须在GROUP BY子句中指定相同的表达式。不能使用别名。出了聚集计算语句外,SELECT语句中的每一列都必须在GROUP BY子句中给出。如果分组列中友NULL值,则NULL将作为一个分组 阅读全文
More Effective C++ 学习笔记(2)
2011-09-03 09:53 by Daniel Zheng, 458 阅读, 1 推荐, 收藏, 编辑
摘要:尽量使用C++风格的类型转换 为什么不要使用C风格的类型转换? C风格的类型转换并不代表所有的类型转换功能。 一来它们过于粗鲁,能允许你在任何类型之间进行转换。不过如果要进行更精确的类型转换,这会是一个优点。在这些类型转换中存在着巨大的不同,例如把一个指向const对象的指针(pointer-to-const-object)转换成指向非const对象的指针(pointer-to-non-const-object)(即一个仅仅去除const的类型转换),把一个指向基类的指针转换成指向子类的指针(即完全改变对象类型)。传统的C风格的类型转换不对上述两种转换进行区分。 二来C风格的类型转换在... 阅读全文
二叉树的基本遍历操作
2011-08-25 19:22 by Daniel Zheng, 402 阅读, 1 推荐, 收藏, 编辑
摘要:1 #include <queue> 2 #include <iostream> 3 using namespace std; 4 5 #define QSIZE 100 6 struct BTree 7 8 { 9 int value; 10 struct BTree* lChild; 11 struct BTree* rChild; 12 }; 13 14 void VisitNode(BTree * T) 15 { 16 cout<<T->value<<" "; 17 } 18 BTree * Insert(BTr 阅读全文
动态规划求解0/1背包问题
2011-08-23 18:08 by Daniel Zheng, 2387 阅读, 2 推荐, 收藏, 编辑
摘要:什么是动态规划?动态规划是一种在数学和计算机科学中使用的,用于求解包含重叠子问题的最优化问题的方法。其基本思想是,将原问题分解为相似的子问题,在求解的过程中通过子问题的解求出原问题的解。动态规划的思想是多种算法的基础,被广泛应用于计算机科学和工程领域。比较著名的应用实例有:求解最短路径问题,背包问题,项目管理,网络流优化等。动态规划在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题。为了避免多次解决这些子问题,它们的结果都逐渐被计算并被保存,从简单的问题直到整个问题都被解决。因此,动态规划保存递归时的结果,因而不会在解决同样的问题时花费时间。动态规划只能应用于有最优子结构的问 阅读全文