本书以VisualFoxPro5.0/6.0数据库管理系统作为教学用管理系统。讲解了数据库系统基础知识,基本操作,基本设计,以及数据库管理。还介绍了SQL查询语言及其使用方法,表单设计方法,面向对象程序设计基本知识,建立应用程序子类及应用子类的方法,报表与标签设计方法,菜单程序设计方法,项目管理器及其使用方法等。同时还介绍了使用VFP的远程视图开发客户/服务器应用系统的技术;使用ActiveX控件开发通信软件的技术。本书作者试图给出一种解决方法,使读者既掌握基本原理,又掌握设计方法,还有实例可以参考,以便能很快掌握、解决实际工作中的问题。本书精选的内容同时还是参加VFP等级考试的极好教材。读者对象:应用型高校及高职、高专计算机专业学生、软件人员。前言人类数学能力的提高与采用的手段是分不开的,从远古时候的结绳计数到现在的电子计算器和计算机,每一步的前进都使人们深受鼓舞。计算机不仅发展了应用数学,使数学与其他学科结合得更加紧密,而且发展了数学本身。随着计算机技术的进步,人们越来越依赖计算机去完成复杂的计算任务。现在所使用的各种计算机都是根据冯·诺依曼计算机理论设计和制造的,该理论有三个要点:·计算机硬件系统由运算器、控制器、存储器和输入/输出设备等基本单元组成·计算机内部的运算指令和数据必须采用二进制数字(0或1)表示。·计算机在运行时必须先将事先编制好的程序和数据调入主存储器(即通常所说的内存),然后执行程序中所设置的全部指令。人们使用计算机,使计算机能够按照人类的意志进行工作,就需要与计算机交流信息。然而,计算机硬件只懂自己的指令系统,即只能直接执行用相应机器语言编写的代码程序。计算机语言就是人与计算机之间通信的语言。而程序是为了解决某一个特定问题用一种语言编写的指令序列。程序设计一般包括确定数据结构、确定算法?⒈嗦搿⒌魇猿绦颉⒄聿⑿闯鑫牡底柿系饶谌荨V募扑慊蒲Ъ椅炙迹∟ikiklausWirth)提出的公式是:程序=数据结构+算法直观地说,数据是描述客观事物的数字、字母和符号,是计算机程序使用和加工的“原料”。算法是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的且是明确的,此运算顺序将在有限的次数下终止。计算机解题的过程实际上是在实施某种算法。因此,算法通常是指计算机算法(计算机算法不同于人工处理的算法)。一个问题,如果可以通过一个计算机程序,在有限的存储空间内运行有限长的时间而得到正确的结果,则称该问题是算法可解的。一个算法执行结果总是与输入的初始数据有关,不同的输入将会有不同的结果输出。计算机算法可以分为两大类:数值运算算法和非数值运算算法。数值运算的目的是求数值解,如求方程的根、求函数的定积分等都属于数值运算范围。非数值运算包括的范畴十分广泛,最常见的是用于事物管理领域。目前,计算机在非数值运算方面的应用远远超过了在数值运算方面的应用。由于数值运算有现成的模型,可以运用数值分析的方法,因此对数值运算算法的研究比较深入,算法比较成熟。同时,对各种数值运算都有比较成熟的算法可供选用。人们常常把这些算法汇编成册(写成程序形式),或者将这些程序存放在磁盘或磁带上,供用户调用。例如,有的计算机软件系统提供“数学程序库”,使用起来十分方便。而非数值运算的种类繁多,要求各异,难以规范化,因此目前只对一些典型的非数值运算算法(如排序算法)进行了比较深入的研究。其他的非数值运算问题往往需要使用者参考已有的类似算法,重新设计解决特定问题的专门算法。算法不等于程序,也不等于计算方法。程序可以作为算法的一种描述,但程序通常还需考虑许多与方法和分析无关的细节问题,因为在编写程序时要受到计算机系统运行环境的限制。通常,程序设计的质量不可能优于算法的设计。从程序设计的角度看,一个程序应包括以下两方面的内容:·对数据的描述:在程序中要指定数据的类型和数据的组织形式,即数据结构(datastructure)。〖ZK)〗·对操作的描述:即操作步骤,也就是算法(algorithm)。实际上,一个程序除了数据结构和算法的影响外,还应当采用结构化的程序设计方法进行程序设计,并且用某一种计算机语言表示。因此,可以说程序=算法+数据结构+程序设计方法+语言工具和环境也就是说,算法、数据结构、程序设计方法以及语言工具和环境四个方面共同构成了一个程序设计人员所应具备的基本素质。设计程序要综合地应用好这四个方面的知识。算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用合适的方法。算法解决“做什么”和“怎样做”的问题。程序中的操作语句,实际上就是算?ǖ奶逑帧R嘈闯龊玫某绦颍搜《ê侠淼氖萁峁雇猓话憷此担丶牟街枋巧杓普范行У乃惴ǎ惴ǖ暮没到苯佑跋斐绦虻脑诵行省2涣私馑惴ň吞覆簧铣绦蛏杓啤M保萁峁怪猩晕⒏丛右恍┑乃惴ㄉ杓浦锌赡苡玫蕉嘀旨际鹾头椒ǎ缢惴ㄉ杓频墓顾挤椒ā⒍淞考傲幢怼⒘鞒掏技捌浔浠环椒ā⑺惴ū嗦搿⒌莨榧际酰约坝胩囟ㄎ侍庀喙氐募际醯取D骋换方谠擞貌缓茫蓟嵊跋斓剿惴ǖ恼迳杓啤*?本书主要分为两部分。导言介绍了数据结构、算法与程序的基本概念及相互关系。第1~5章是本书的数值算法部分,其中包括:多项式与线性代数方程组,矩阵与非线性方程,插值、逼近及其应用,数字信号处理,小波算法。第6~9章是非数值算法部分,其中包括:线性表、栈、队和串,树,图,排序、查找与文件操作。第10章介绍并行算法,并初步展望了计算机科学中一个蓬勃发展的新兴学科。5个附录分别是:电子商务系统中的加密算法,用于图像处理的并行计算机结构特征,算法在数据压缩中的应用,COM原理和Web服务的标准与组织。与其他同类书籍相比,本书的特点具体体现在如下几个方面:·将算法知识、数据结构知识融于一体,本着务实和合理应用的原则,全部内容紧紧围绕算法实现这个核心和重点建立结构体系。·在叙述上避免复杂的数学推导,而在那些必需的关键之处,又能做到不省略中间步骤,给出全部的推导过程。·全书大多数章节内容都可自成体系(书中带“*”的内容可根据需要选用),以方便教学的取舍。·在术语的使用上尽量照顾不同层次、不同专业读者的需求。·以例题的方式提供了大量的可实际应用的算法模块。·鉴于算法最终要通过程序来实现,在附录中对算法及其实现的有关新技术的进展做了简要的介绍(如并行计算机体系、MS-COM组件标准和Web服务平台)。吉林大学徐一平教授、南开大学王津涛副教授参与了编写大纲的讨论;徐一平参与撰写了第1章和第3章;王津涛撰写了第4章和第6章;雷于生教授(华中科技大学)参与撰写了第7章和第8章;王学民副教授(天津大学)参与撰写了第8章和第9章;张彤副研究员(天津医科大学)参与撰写了第10章和附录D;夏寅贲(中国航空航天大学博士生)参与撰写了第3章和第7章;黄爱国讲师(天津对外经济贸易职业学院)除参与撰写了第2章、附录C和附录D外,还和周鑫一起对书中所涉及的算法逐一进行了斟定;其余部分为康晓东撰写,全书由康晓东统稿。许多人为此书的内容、评阅和出版贡献了他们的宝贵时间和精力。感激相关领域前辈学人们的工作,是他们的知识和研究成果充实了此书的内容(见参考文献)。感谢天津大学的师长们、南开大学的朋友们和天津医科大学的同事们对本书的关注与关怀,也正是他们的真知灼见减少了本书的纰漏。特别感谢电子工业出版社的熬然副社长、高平副总编辑和章海涛老师,也是正他们的努力才使得本书能早日与读者见面。特别感激西安交通大学张镇西教授、《世界医疗器械》编辑部李晓娴主编和迟寒雪副主编,感谢他/她们对编写本书的理解与支持。作者还特别感谢中国计算机学会教育委员会副主任、全国高等院校计算机基础教育研究会副会长、南开大学刘瑞挺教授的鼓励和指导,特别感谢中国工程院院士、原天津医科大学校长吴咸中教授的关心和扶持,感谢他们于百忙之中为本书赐序。最后,鉴于作者才疏学浅,书中肯定有值得商榷之处。诚恳地希望各位读者,各位研究和从事相关工作的学者专家提出宝贵意见。2002年8月定稿于南开大学教师公寓①①康晓东男,1964年生。主要研究方向:图像信号处理;多媒体信息集成。出版书籍多部,代表作有:《计算机在医疗方面的最新应用》(电子工业出版社);《现代医学影像技术》(天津科技翻译出版公司);《医学图像的数字化处理技术》(人民卫生出版社);《网络多媒体技术与医学信息集成》(人民军医出版社);《网络构建与网页设计》(人民邮电出版社);《新编电学基础》(科学出版社);《计算机程序设计》(中国海关出版社);《网站规划与实施》(清华大学出版社)