本書以VisualFoxPro5.0/6.0數據庫管理系統(tǒng)作為教學用管理系統(tǒng)。講解了數據庫系統(tǒng)基礎知識,基本操作,基本設計,以及數據庫管理。還介紹了SQL查詢語言及其使用方法,表單設計方法,面向對象程序設計基本知識,建立應用程序子類及應用子類的方法,報表與標簽設計方法,菜單程序設計方法,項目管理器及其使用方法等。同時還介紹了使用VFP的遠程視圖開發(fā)客戶/服務器應用系統(tǒng)的技術;使用ActiveX控件開發(fā)通信軟件的技術。本書作者試圖給出一種解決方法,使讀者既掌握基本原理,又掌握設計方法,還有實例可以參考,以便能很快掌握、解決實際工作中的問題。本書精選的內容同時還是參加VFP等級考試的極好教材。讀者對象:應用型高校及高職、高專計算機專業(yè)學生、軟件人員。前言人類數學能力的提高與采用的手段是分不開的,從遠古時候的結繩計數到現在的電子計算器和計算機,每一步的前進都使人們深受鼓舞。計算機不僅發(fā)展了應用數學,使數學與其他學科結合得更加緊密,而且發(fā)展了數學本身。隨著計算機技術的進步,人們越來越依賴計算機去完成復雜的計算任務?,F在所使用的各種計算機都是根據馮·諾依曼計算機理論設計和制造的,該理論有三個要點:·計算機硬件系統(tǒng)由運算器、控制器、存儲器和輸入/輸出設備等基本單元組成·計算機內部的運算指令和數據必須采用二進制數字(0或1)表示。·計算機在運行時必須先將事先編制好的程序和數據調入主存儲器(即通常所說的內存),然后執(zhí)行程序中所設置的全部指令。人們使用計算機,使計算機能夠按照人類的意志進行工作,就需要與計算機交流信息。然而,計算機硬件只懂自己的指令系統(tǒng),即只能直接執(zhí)行用相應機器語言編寫的代碼程序。計算機語言就是人與計算機之間通信的語言。而程序是為了解決某一個特定問題用一種語言編寫的指令序列。程序設計一般包括確定數據結構、確定算法?⒈嗦?、掉|猿絳頡⒄聿⑿闖鑫牡底柿系饒諶蕁V募撲慊蒲Ъ椅炙跡∟ikiklausWirth)提出的公式是:程序=數據結構+算法直觀地說,數據是描述客觀事物的數字、字母和符號,是計算機程序使用和加工的“原料”。算法是一組嚴謹地定義運算順序的規(guī)則,并且每一個規(guī)則都是有效的且是明確的,此運算順序將在有限的次數下終止。計算機解題的過程實際上是在實施某種算法。因此,算法通常是指計算機算法(計算機算法不同于人工處理的算法)。一個問題,如果可以通過一個計算機程序,在有限的存儲空間內運行有限長的時間而得到正確的結果,則稱該問題是算法可解的。一個算法執(zhí)行結果總是與輸入的初始數據有關,不同的輸入將會有不同的結果輸出。計算機算法可以分為兩大類:數值運算算法和非數值運算算法。數值運算的目的是求數值解,如求方程的根、求函數的定積分等都屬于數值運算范圍。非數值運算包括的范疇十分廣泛,最常見的是用于事物管理領域。目前,計算機在非數值運算方面的應用遠遠超過了在數值運算方面的應用。由于數值運算有現成的模型,可以運用數值分析的方法,因此對數值運算算法的研究比較深入,算法比較成熟。同時,對各種數值運算都有比較成熟的算法可供選用。人們常常把這些算法匯編成冊(寫成程序形式),或者將這些程序存放在磁盤或磁帶上,供用戶調用。例如,有的計算機軟件系統(tǒng)提供“數學程序庫”,使用起來十分方便。而非數值運算的種類繁多,要求各異,難以規(guī)范化,因此目前只對一些典型的非數值運算算法(如排序算法)進行了比較深入的研究。其他的非數值運算問題往往需要使用者參考已有的類似算法,重新設計解決特定問題的專門算法。算法不等于程序,也不等于計算方法。程序可以作為算法的一種描述,但程序通常還需考慮許多與方法和分析無關的細節(jié)問題,因為在編寫程序時要受到計算機系統(tǒng)運行環(huán)境的限制。通常,程序設計的質量不可能優(yōu)于算法的設計。從程序設計的角度看,一個程序應包括以下兩方面的內容:·對數據的描述:在程序中要指定數據的類型和數據的組織形式,即數據結構(datastructure)?!糧K)〗·對操作的描述:即操作步驟,也就是算法(algorithm)。實際上,一個程序除了數據結構和算法的影響外,還應當采用結構化的程序設計方法進行程序設計,并且用某一種計算機語言表示。因此,可以說程序=算法+數據結構+程序設計方法+語言工具和環(huán)境也就是說,算法、數據結構、程序設計方法以及語言工具和環(huán)境四個方面共同構成了一個程序設計人員所應具備的基本素質。設計程序要綜合地應用好這四個方面的知識。算法是靈魂,數據結構是加工對象,語言是工具,編程需要采用合適的方法。算法解決“做什么”和“怎樣做”的問題。程序中的操作語句,實際上就是算?ǖ奶逑幀R嘈闖齪玫某絳潁搜《ê俠淼氖萁峁雇猓話憷此擔丶牟街枋巧杓普范行У乃惴?,算法的簺]到苯佑跋斐絳虻腦誦行省2渙私饉惴ň吞覆簧銑絳蟶杓?。同时,数据结构中蓵灑竻灿一些的算法设计咒\贍苡玫蕉嘀旨際鹺頭椒?,瓤O惴ㄉ杓頻墓顧擠椒?、动态变量及链睉虎流程图及茲′画h(huán)椒?、算法编码、递归茧H?,壹s壩胩囟ㄎ侍庀喙氐募際醯取D騁換方讜擻貌緩?,端E嵊跋斕剿惴ǖ惱逕杓啤*?本書主要分為兩部分。導言介紹了數據結構、算法與程序的基本概念及相互關系。第1~5章是本書的數值算法部分,其中包括:多項式與線性代數方程組,矩陣與非線性方程,插值、逼近及其應用,數字信號處理,小波算法。第6~9章是非數值算法部分,其中包括:線性表、棧、隊和串,樹,圖,排序、查找與文件操作。第10章介紹并行算法,并初步展望了計算機科學中一個蓬勃發(fā)展的新興學科。5個附錄分別是:電子商務系統(tǒng)中的加密算法,用于圖像處理的并行計算機結構特征,算法在數據壓縮中的應用,COM原理和Web服務的標準與組織。與其他同類書籍相比,本書的特點具體體現在如下幾個方面:·將算法知識、數據結構知識融于一體,本著務實和合理應用的原則,全部內容緊緊圍繞算法實現這個核心和重點建立結構體系。·在敘述上避免復雜的數學推導,而在那些必需的關鍵之處,又能做到不省略中間步驟,給出全部的推導過程。·全書大多數章節(jié)內容都可自成體系(書中帶“*”的內容可根據需要選用),以方便教學的取舍。·在術語的使用上盡量照顧不同層次、不同專業(yè)讀者的需求。·以例題的方式提供了大量的可實際應用的算法模塊。·鑒于算法最終要通過程序來實現,在附錄中對算法及其實現的有關新技術的進展做了簡要的介紹(如并行計算機體系、MS-COM組件標準和Web服務平臺)。吉林大學徐一平教授、南開大學王津濤副教授參與了編寫大綱的討論;徐一平參與撰寫了第1章和第3章;王津濤撰寫了第4章和第6章;雷于生教授(華中科技大學)參與撰寫了第7章和第8章;王學民副教授(天津大學)參與撰寫了第8章和第9章;張彤副研究員(天津醫(yī)科大學)參與撰寫了第10章和附錄D;夏寅賁(中國航空航天大學博士生)參與撰寫了第3章和第7章;黃愛國講師(天津對外經濟貿易職業(yè)學院)除參與撰寫了第2章、附錄C和附錄D外,還和周鑫一起對書中所涉及的算法逐一進行了斟定;其余部分為康曉東撰寫,全書由康曉東統(tǒng)稿。許多人為此書的內容、評閱和出版貢獻了他們的寶貴時間和精力。感激相關領域前輩學人們的工作,是他們的知識和研究成果充實了此書的內容(見參考文獻)。感謝天津大學的師長們、南開大學的朋友們和天津醫(yī)科大學的同事們對本書的關注與關懷,也正是他們的真知灼見減少了本書的紕漏。特別感謝電子工業(yè)出版社的熬然副社長、高平副總編輯和章海濤老師,也是正他們的努力才使得本書能早日與讀者見面。特別感激西安交通大學張鎮(zhèn)西教授、《世界醫(yī)療器械》編輯部李曉嫻主編和遲寒雪副主編,感謝他/她們對編寫本書的理解與支持。作者還特別感謝中國計算機學會教育委員會副主任、全國高等院校計算機基礎教育研究會副會長、南開大學劉瑞挺教授的鼓勵和指導,特別感謝中國工程院院士、原天津醫(yī)科大學校長吳咸中教授的關心和扶持,感謝他們于百忙之中為本書賜序。最后,鑒于作者才疏學淺,書中肯定有值得商榷之處。誠懇地希望各位讀者,各位研究和從事相關工作的學者專家提出寶貴意見。2002年8月定稿于南開大學教師公寓①①康曉東男,1964年生。主要研究方向:圖像信號處理;多媒體信息集成。出版書籍多部,代表作有:《計算機在醫(yī)療方面的最新應用》(電子工業(yè)出版社);《現代醫(yī)學影像技術》(天津科技翻譯出版公司);《醫(yī)學圖像的數字化處理技術》(人民衛(wèi)生出版社);《網絡多媒體技術與醫(yī)學信息集成》(人民軍醫(yī)出版社);《網絡構建與網頁設計》(人民郵電出版社);《新編電學基礎》(科學出版社);《計算機程序設計》(中國海關出版社);《網站規(guī)劃與實施》(清華大學出版社)