一.算法的基本概念:
1.算法:是指解題方案的準(zhǔn)確而完整的描述。
? ? ? (1)算法不等于程序踏施,也不等計(jì)算機(jī)方法,程序的編制不可能優(yōu)于算法的設(shè)計(jì)罕邀。程序也可以作為算法的一種描述畅形,但程序通常還要考慮程序運(yùn)行時(shí)的環(huán)境限制等。
(2)算法诉探,是一組嚴(yán)謹(jǐn)?shù)囟x運(yùn)算順序的規(guī)則日熬,并且每一個(gè)規(guī)則都是有效的,是明確的阵具,此順序?qū)⒃谟邢薜拇螖?shù)下終止碍遍。
2.基本特征:
? ? ?(1)可行性定铜。
? ? ?(2)確定性,算法中每一步驟都必須有明確定義怕敬,不允許有模棱兩可的解釋揣炕,不允許有多義性;例在特殊情況時(shí)东跪,數(shù)學(xué)公式是正確的畸陡,但計(jì)算機(jī)就是無(wú)法操作。
? ? ?(3)有窮性虽填,算法必須能在有限的時(shí)間內(nèi)做完丁恭,即能在執(zhí)行有限個(gè)步驟后終止,包括合理的執(zhí)行時(shí)間的含義斋日。例如1/3的無(wú)理數(shù)問(wèn)題牲览。
3.算法的時(shí)間復(fù)雜度:
????指執(zhí)行算法所需要的計(jì)算工作量,可以執(zhí)行算法的過(guò)程中所需要的基本運(yùn)算的執(zhí)行次數(shù)來(lái)度量恶守。分析算法工作量的方法有:平均性態(tài)分析第献、最壞情況分析。
4.算法的空間復(fù)雜度:
????指執(zhí)行這個(gè)算法所需要的內(nèi)存空間兔港。主要包括:算法程序所占的空間庸毫;輸入的初始數(shù)據(jù)所占的空間;算法執(zhí)行過(guò)程中所需要的額外空間衫樊。
二飒赃、軟件工程基本概念
????1.計(jì)算機(jī)軟件:
? ??包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合科侈。是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的部分载佳。軟件按功能分為應(yīng)用軟件、系統(tǒng)軟件臀栈、支撐軟件(或工具軟件)刚盈。
????2.軟件危機(jī):
? ??(1)軟件危機(jī)主要表現(xiàn)在成本、質(zhì)量挂脑、生產(chǎn)率等問(wèn)題藕漱。
????(2)軟件工程的主要思想是強(qiáng)調(diào)在軟件開(kāi)發(fā)過(guò)程中需要應(yīng)用工程化原則,軟件工程學(xué)的主要研究對(duì)象包括軟件開(kāi)發(fā)與維護(hù)的技術(shù)崭闲、方法肋联、工具和管理等方面。
????(3)軟件工程包括三個(gè)要素刁俭,即方法橄仍、工具和過(guò)程。
3.軟件生命周期:
? ??通常指軟件產(chǎn)品從提出、實(shí)現(xiàn)侮繁、使用虑粥、維護(hù)到停止使用(退役)的過(guò)程稱。
4.軟件生命周期分:
? ??軟件定義宪哩、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段娩贷。
5.軟件生命周期活動(dòng)階段:
? ??①可行性研究與計(jì)劃制定;②需求分析锁孟;③軟件設(shè)計(jì)彬祖;④軟件實(shí)現(xiàn);⑤軟件測(cè)試品抽;⑥運(yùn)行和維護(hù)储笑。
筆記:軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合圆恤。
? ?????????軟件=程序+數(shù)據(jù)+相關(guān)文檔突倍。
????軟件危機(jī):
? ? (1)經(jīng)費(fèi)預(yù)算經(jīng)常突破,完成時(shí)間一再拖延盆昙。
????(2)開(kāi)發(fā)的軟件不能滿足用戶要求赘方。
????(3)開(kāi)發(fā)的軟件可維護(hù)性差。
????(4)開(kāi)發(fā)的軟件可靠性差弱左。
????(5)軟件開(kāi)發(fā)費(fèi)用不斷增加。
????(6)軟件開(kāi)發(fā)生產(chǎn)效率低下炕淮。
三拆火、數(shù)據(jù)庫(kù)的基本概念:
1.數(shù)據(jù)庫(kù)的基本概念
????(1)數(shù)據(jù):實(shí)際上就是描述事物的符號(hào)記錄。數(shù)據(jù)的特點(diǎn):有一定的結(jié)構(gòu)涂圆,有型與值之分们镜,如整型、實(shí)型润歉、字符型等模狭。而數(shù)據(jù)的值給出了符合給定型的值,如整型值15踩衩。
????(2)數(shù)據(jù)庫(kù)(DataBase嚼鹉,簡(jiǎn)稱為DB):是數(shù)據(jù)的集合,具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi)驱富,是多種應(yīng)用數(shù)據(jù)的集成锚赤,并可被各個(gè)應(yīng)用程序共享。數(shù)據(jù)庫(kù)存放數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的褐鸥,具有集成與共享的特點(diǎn)线脚。數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問(wèn)題。
2.數(shù)據(jù)庫(kù)系統(tǒng)(DataBaseSystem,簡(jiǎn)稱為DBS)由數(shù)據(jù)庫(kù)(數(shù)據(jù))浑侥、數(shù)據(jù)庫(kù)管理系統(tǒng)(軟件)姊舵、數(shù)據(jù)庫(kù)管理員(人員)、硬件平臺(tái)(硬件)寓落、軟件平臺(tái)(軟件)五個(gè)部分構(gòu)成括丁。
????(1)數(shù)據(jù)庫(kù)管理系統(tǒng)提供以下的數(shù)據(jù)語(yǔ)言:
????①數(shù)據(jù)定義語(yǔ)言(DDL):負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;
????②數(shù)據(jù)操縱語(yǔ)言:負(fù)責(zé)數(shù)據(jù)的操縱零如,如查詢與增加躏将、刪除、修改等考蕾;
????③數(shù)據(jù)控制語(yǔ)言:負(fù)責(zé)數(shù)據(jù)完整性祸憋、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等肖卧。
(2)數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn):
????①數(shù)據(jù)的集成性蚯窥;
????②數(shù)據(jù)高共享性與低冗余性;
????③數(shù)據(jù)獨(dú)立性:數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序之間互不依賴塞帐,也就是數(shù)據(jù)的邏輯結(jié)構(gòu)拦赠、存儲(chǔ)結(jié)構(gòu)與存取方式的改變不會(huì)影響應(yīng)用程序。
3.據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem葵姥,簡(jiǎn)稱為DBMS)是系統(tǒng)軟件荷鼠,負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)組織、數(shù)據(jù)操縱榔幸、數(shù)據(jù)維護(hù)允乐、控制及保護(hù)和數(shù)據(jù)服務(wù)等。數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心削咆。
4.數(shù)據(jù)管理經(jīng)歷了人工管理牍疏、文件系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)三個(gè)階段拨齐。
5.數(shù)據(jù)獨(dú)立性:
????(1)物理獨(dú)立性:數(shù)據(jù)的物理結(jié)構(gòu)(如存儲(chǔ)設(shè)備更換鳞陨、物理存儲(chǔ)方式)的改變,不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)瞻惋,也不引起應(yīng)用程序的變化厦滤。
????(2)邏輯獨(dú)立性:數(shù)據(jù)庫(kù)整體邏輯結(jié)構(gòu)(如修改數(shù)據(jù)、增加新數(shù)據(jù)類型歼狼、改變數(shù)據(jù)間聯(lián)系等)改變馁害,不需要修改應(yīng)用程序。
6蹂匹、數(shù)據(jù)庫(kù)系統(tǒng)在其內(nèi)部具有三級(jí)模式:概念模式碘菜、內(nèi)部模式與外部模式。
????(1)概念模式:它是數(shù)據(jù)庫(kù)系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶(應(yīng)用)的公共數(shù)據(jù)視圖忍啸。概念模式主要描述數(shù)據(jù)的概念記錄類型以及它們之間的關(guān)系仰坦,它還包括一些數(shù)據(jù)間的語(yǔ)義約束,對(duì)它的描述可用DBMS中的DDL語(yǔ)言定義计雌。
????(2)內(nèi)部模式:又稱物理模式悄晃,它給出了數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)凿滤、索引妈橄、集簇及hash等存取方式與存取路徑,內(nèi)模式的物理特性主要體現(xiàn)在操作系統(tǒng)及文件級(jí)上翁脆,它還未深入到設(shè)備級(jí)(如磁盤(pán)及磁盤(pán)操作)上眷蚓。DBMS一般提供相關(guān)的內(nèi)模式描述語(yǔ)言(內(nèi)模式DDL)。
????(3)外部模式:也稱子模式或用戶模式反番,它是用戶的數(shù)據(jù)視圖沙热,也就是用戶所見(jiàn)到的數(shù)據(jù)模式,它由概念模式推導(dǎo)而出罢缸。在一般的DBMS中都提供相關(guān)的外模式描述語(yǔ)言(外模式DDL)篙贸。
7.數(shù)據(jù)庫(kù)系統(tǒng)的兩級(jí)映射:
????(1)數(shù)據(jù)的物理獨(dú)立性:當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)發(fā)生變化時(shí),通過(guò)修改“概念模式到內(nèi)部模式的映射”枫疆,使得數(shù)據(jù)庫(kù)的概念模式不變爵川,其外模式不變,應(yīng)用程序不用修改息楔,保證了數(shù)據(jù)的物理獨(dú)立性寝贡。
????(2)數(shù)據(jù)的邏輯獨(dú)立性:當(dāng)概念模式發(fā)生變化時(shí),通過(guò)修改“外部模式到概念模式的映射”钞螟,使得用戶所用的外模式不變,從而應(yīng)用程序也不用修改谎碍,保證了數(shù)據(jù)的邏輯獨(dú)立性鳞滨。
筆記:
????????數(shù)據(jù)庫(kù)管理系統(tǒng)是運(yùn)行在操作系統(tǒng)之上的支撐軟件,是數(shù)據(jù)庫(kù)系統(tǒng)的核心蟆淀。
? ??????人工管理階段無(wú)共享拯啦,冗余度大;文件管理階段共享性差熔任,冗余度大褒链;數(shù)據(jù)庫(kù)系統(tǒng)管理階段共享性大,冗余度小疑苔。
? ??????數(shù)據(jù)庫(kù)技術(shù)的根本目的是要解決數(shù)據(jù)的共享問(wèn)題甫匹。
? ??????數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心。
? ??????數(shù)據(jù)庫(kù)系統(tǒng)需要操作系統(tǒng)的支持。
? ??????數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語(yǔ)言是數(shù)據(jù)定義語(yǔ)言兵迅。
? ??????數(shù)據(jù)獨(dú)立性是指物理獨(dú)立性和邏輯獨(dú)立性抢韭。
? ??????
四、程序設(shè)計(jì)方法與風(fēng)格
????1.良好的程序設(shè)計(jì)的設(shè)計(jì)風(fēng)格恍箭,需要考慮:
????(1)源程序文檔化:①符號(hào)名的命名有一定含義刻恭,便于理解;②正確的注釋幫助讀者理解程序扯夭;③程序?qū)哟吻逦?/p>
? ? (2)數(shù)據(jù)說(shuō)明的方法:①數(shù)據(jù)說(shuō)明的次序規(guī)范化鳍贾;②說(shuō)明語(yǔ)句中變量安排有序化;③使月注釋來(lái)說(shuō)明復(fù)雜數(shù)據(jù)結(jié)構(gòu)交洗。
????(3)語(yǔ)句的結(jié)構(gòu):程序應(yīng)該簡(jiǎn)單易懂骑科,語(yǔ)句構(gòu)造應(yīng)該簡(jiǎn)單直接。
????(4)輸入和輸出藕筋。
2.注釋分序言性注釋和功能性注釋纵散,語(yǔ)句結(jié)構(gòu)清晰第一、效率第二隐圾。
筆記:
? ??????程序設(shè)計(jì)風(fēng)格是指編寫(xiě)程序時(shí)所表現(xiàn)出的特點(diǎn)伍掀、習(xí)慣和邏輯思路。清晰第一暇藏、效率第二蜜笤。
? ??????
五、結(jié)構(gòu)化程序設(shè)計(jì)
????1.結(jié)構(gòu)化程序設(shè)計(jì)的主要目的是使程序結(jié)構(gòu)良好盐碱、易讀把兔、易理解、易維護(hù)瓮顽。它的原則主要包括:①自頂向下县好;②逐步求精;③模塊化暖混;④限制使用goto語(yǔ)句缕贡。
????2.結(jié)構(gòu)化程序設(shè)計(jì)方法可用三種基本結(jié)構(gòu)實(shí)現(xiàn):①順序結(jié)構(gòu);②選擇結(jié)構(gòu)拣播;③重復(fù)結(jié)構(gòu)晾咪。
????3.結(jié)構(gòu)化程序設(shè)計(jì)應(yīng)注意:
????????(1)使用程序設(shè)計(jì)語(yǔ)言中的順序結(jié)構(gòu)、選擇結(jié)構(gòu)贮配、循環(huán)結(jié)構(gòu)等控制結(jié)構(gòu)來(lái)表示程序的控制邏輯谍倦。
????????(2)選用的控制結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口。
????????(3)程序語(yǔ)句組成容易識(shí)別的程序塊泪勒,每塊只有一個(gè)入口和一個(gè)出口昼蛀。
????????(4)復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來(lái)實(shí)現(xiàn)宴猾。
????????(5)語(yǔ)言中所沒(méi)有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來(lái)模擬曹洽。
????????(6)嚴(yán)格控制goto語(yǔ)句的使用鳍置。
筆記:
? ??????結(jié)構(gòu)化程序設(shè)計(jì)的原則主要包括:①自頂向下;②逐步求精送淆;③模塊化税产;④限制使用goto語(yǔ)句。
? ??????結(jié)構(gòu)化程序設(shè)計(jì)的3種基本控制結(jié)構(gòu)是:選擇結(jié)構(gòu)(分支結(jié)構(gòu))偷崩、循環(huán)
結(jié)構(gòu)辟拷、順序結(jié)構(gòu)。
? ??????結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為:自頂向下阐斜,逐步求精衫冻,模塊化和限制使用GOTO語(yǔ)句,其中不包括多態(tài)性谒出。
? ? ? ? 六隅俘、面向?qū)ο蟮某绦蛟O(shè)計(jì)方法
1、對(duì)象(object):對(duì)象用來(lái)表示客觀世界中的任何實(shí)體笤喳。面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中涉及的對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體为居,是構(gòu)成系統(tǒng)的一個(gè)基本單位,它由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成杀狡。
2蒙畴、類(class)和實(shí)例(instance):將屬性、操作相似的對(duì)象歸為類呜象,類是具有共同屬性膳凝、共同方法的對(duì)象的集合;一個(gè)具體對(duì)象稱為類的實(shí)例恭陡。
3蹬音、消息(message):面向?qū)ο蟮氖澜缡峭ㄟ^(guò)對(duì)象與對(duì)象間彼此的相互合作來(lái)推動(dòng)的,對(duì)象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行休玩,這個(gè)機(jī)制稱為消息著淆。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,是請(qǐng)求對(duì)象執(zhí)行某一處理或回答某一要求的信息哥捕,它統(tǒng)一了數(shù)據(jù)流和控制流牧抽。
4嘉熊、繼承(inheritance):繼承是面向?qū)ο蠓椒ǖ囊粋€(gè)主要特征遥赚。繼承是使用已有的類作為基礎(chǔ)(直接獲得已有的性質(zhì)和特征)建立新類的定義技術(shù)。已有的類可以當(dāng)做基類引用阐肤,則新類可當(dāng)做派生類引用凫佛。
5讲坎、多態(tài)性(polymorphism):對(duì)象根據(jù)所接受的消息而作出動(dòng)作,同樣的消息被不同的對(duì)象接受時(shí)可導(dǎo)致完全不同的行動(dòng)愧薛,該現(xiàn)象稱為多態(tài)性晨炕。
筆記:
? ??????對(duì)象具有如下特征:標(biāo)識(shí)唯一性、分類性毫炉、多態(tài)性瓮栗、封裝性、模塊獨(dú)立
性瞄勾。
? ??????向?qū)ο蟪绦蛟O(shè)計(jì)的三個(gè)主要特征是:封裝性费奸、繼承性和多態(tài)性。
? ??????封裝性即只需知道數(shù)據(jù)的取值范圍和可以對(duì)該數(shù)據(jù)施加的操作进陡,而無(wú)需知道
數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法愿阐。
? ??????繼承性是指使用已有的類定義作為基礎(chǔ)建立新類的定義技術(shù)。
? ??????對(duì)象根據(jù)所接受的消息而做出動(dòng)作趾疚,同樣的消息被不同的對(duì)象接受時(shí)可導(dǎo)致
完全不同的行動(dòng)缨历,該現(xiàn)象稱為多態(tài)性。
? ? 剩下的將在下一次更新糙麦。辛孵。。因?yàn)樾【幰ポd土豆去啦喳资!