大學計算機基礎宋長龍吉林大學現用_第1頁
大學計算機基礎宋長龍吉林大學現用_第2頁
大學計算機基礎宋長龍吉林大學現用_第3頁
大學計算機基礎宋長龍吉林大學現用_第4頁
大學計算機基礎宋長龍吉林大學現用_第5頁
已閱讀5頁,還剩84頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

會計學1大學計算機基礎宋長龍吉林大學現用2/88本章教學目的:

了解程序設計的基本概念、思想和方法,為今后學習程序設計語言打好基礎。第1頁/共89頁3/88本章教學內容:程序設計基本概念指令、指令系統、程序、軟件面向機器的語言面向過程的語言面向對象的語言數據類型、常量、變量、表達式、控制結構、輸入輸出、過程結構化程序設計的原則

程序設計語言概述

程序基本構成

結構化程序設計第2頁/共89頁4/88本章教學內容:面向對象程序設計中的基本概念簡介VB程序設計語言用工程的思想開發軟件介紹幾種常用程序設計語言

面向對象程序設計VB程序設計基礎

軟件工程基礎

典型程序設計語言概述第3頁/共89頁5/88程序的概念程序是為實現預期目的而進行操作的一系列語句和指令。一般分為系統程序和應用程序兩大類。計算機中的程序在港澳臺地區稱為程式。程序就是為使電子計算機執行一個或多個操作,或執行某一任務,按序設計的計算機指令的集合。程序(program)是為實現特定目標或解決特定問題而用計算機語言編寫的命令序列的集合。是用匯編語言、高級語言等開發編制出來的可以運行的文件,在計算機中稱可執行文件(后綴名一般為.exe)。第4頁/共89頁6/88程序設計中的基本概念(1)指令:指揮計算機工作的命令,是計算機執行的最小功能單位。指令的格式:指令通常由操作碼和操作數兩部分組成。操作碼操作數

指令是計算機能夠直接識別和執行的二進制命令,指令的數量和功能是由計算機設計者確定的。第5頁/共89頁7/88操作碼操作數指出指令的種類和性質指出指令操作的數據(或存放位置)第6頁/共89頁8/88程序設計中的基本概念(2)指令系統:一臺計算機中全部指令的集合,由計算機設計者確定。

從微處理器的指令系統來看,有CISC(復雜指令集)和RISC(簡單指令集)兩個分支走向,CISC主要基于PC平臺應用,而RISC則在嵌入式市場大行其道。

如果所有指令的長度都相同,則稱為定長指令系統,否則稱為非定長指令系統。CISC指令集強調指令的數量和功能,通常具有多條指令(200~300條),為編寫程序提供了方便,但整體效率低。RISC指令集強調指令功能和效率,通常具有較少的指令(100條以內),但每條指令的執行效率都較高。第7頁/共89頁9/88程序設計中的基本概念(3)程序:源程序:機器語言程序:從實現層次上理解,程序是為完成某一特定任務、按一定順序組織的計算機指令序列。利用匯編語言或高級語言設計的程序稱為源程序。使用計算機指令編寫的程序,是計算機能夠惟一識別的程序。第8頁/共89頁10/88

源程序需要轉換為機器語言程序才能被計算機識別和執行,這個過程稱為編譯。源程序目標程序機器語言程序編譯鏈接第9頁/共89頁11/88C語言的簡單程序,其作用是在屏幕上顯示信息“Hello,world”第10頁/共89頁12/88編譯源程序連接編譯后的目標程序第11頁/共89頁13/88解釋方式:所謂解釋程序是高級語言翻譯程序的一種,它將源語言(如BASIC)書寫的源程序作為輸入,解釋一句后就提交計算機執行一句,并不形成目標程序。就像外語翻譯中的“口譯”一樣,說一句翻一句,不產生全文的翻譯文本。由于它的方便性和交互性較好,早期一些高級語言采用這種方式,如BASIC、dBASE。但它的弱點是運行效率低,程序的運行依賴于開發環境,不能直接在操作系統下運行。第12頁/共89頁14/88程序設計中的基本概念(4)軟件(Software):注意:是用戶與硬件之間的接口界面,它是程序、數據及相關文檔的集合。程序是軟件,但軟件不僅僅是程序,它還包括功能說明、性能說明等信息,如使用說明、維護說明、操作指南和培訓教材等內容。第13頁/共89頁15/889.2程序設計語言概述

程序設計語言種類豐富,每種程序設計語言都有其適用范圍,如匯編語言用于控制過程、C語言用于開發系統軟件,而JAVA則適合網頁設計。第14頁/共89頁16/889.2.1面向機器語言機器語言程序:使用計算機指令直接書寫的程序,能夠被計算機直接識別和執行。

編程者需要了解計算機的指令系統及計算機的硬件結構;指令的二進制格式使得程序的編寫和維護不方便。缺點:第15頁/共89頁17/88101110000000100000000000000001010000011100000000以簡單計算8+7為例:在微機中對應的機器語言為:注意:可執行程序是有格式文件,即這類文件有特定的結構,不能簡單地只編輯文件內容部分。第16頁/共89頁18/88常用面向機器語言為匯編語言。匯編語言以助記詞來代表命令及操作單元,為編寫程序提供了方便。例如,加法使用add表示減法使用sub表示寄存器使用AX等表示第17頁/共89頁19/88使用匯編語言編寫的源程序同樣需要編譯成機器語言程序才能被計算機識別和執行。注意:在微機中對應的匯編語言為:movAX,8addAX,7以簡單計算8+7為例:第18頁/共89頁20/88由于不同種類計算機的性能、體系結構的差別,機器語言程序具有機器相關性,即為一類計算機編寫的程序一般不能應用在另一類計算機系統中。注意:第19頁/共89頁21/889.2.2面向過程高級程序設計語言脫離具體計算機指令,使用人們熟悉的表達方式書寫程序。如BASIC、FORTRAN、Pascal、C等。

面向過程程序設計的核心是數據結構及其算法,即著名的沃思公式:

程序=數據結構+算法。

對數據的描述,包括數據類型及其組織形式。

對操作的描述,即操作步驟(先后次序)。第20頁/共89頁22/88常用面向過程的語言:

Basic、FORTRAN、Pascal和C等。例如,如下C語言程序實現兩個數的簡單計算。main(){inta,b;a=10;b=20;printf(“a+b=%d\n”,a+b);}定義數據定義數據操作數據(算法)面向過程程序設計語言主要考慮控制流程問題.第21頁/共89頁23/889.2.3面向對象程序設計語言面向過程的語言將數據和處理數據的方法分割開來,對問題的描述帶來困難。面向對象的程序設計語言引入類、對象等概念,使得數據和處理數據的方法融為一體,更方便處理現實世界中復雜的事物。如C++、Delphi、VisualStudio系列、java等。第22頁/共89頁24/88類是對對象的抽象,

將一個對象的相關數據和代碼封裝在一起,成為一個單元。對象是類的實例化,是程序可以操作的基本單元。身份證號姓名性別駕駛證號身份證號姓名性別駕駛證號踩剎車踩油門轉方向盤第23頁/共89頁25/88如何定義對象(程序環境提供操作)定義哪些對象(即程序界面如何布局)設置每個對象的屬性值(對象的外觀)為對象編寫事件的響應代碼(確定方法)對象之間通過消息傳遞形成一個完整的應用系統面向對象程序設計主要考慮的是:第24頁/共89頁26/889.3程序基本構成數據運算控制傳輸

描述程序中涉及的數據,能夠處理的數據類型越豐富,則語言應用范圍越廣。

能夠對數據進行的加工處理操作。例如,數值能夠進行乘除運算,而文本則不能進行乘除運算。

對數據進行加工處理的先后順序。

獲得加工數據、將數據送入加工處理單元、將加工的結果通過各種形式進行利用。第25頁/共89頁27/889.3.1數據類型(1)基本數據類型:

包括整型、字符型、實型等。整型:用來描述整型數值,又可以分為短整型(short)、整型(integer)和長整型(long)等。實型:用來描述實數,又可以分為單精度(single)和雙精度(double)兩種類型。字符型:用來描述單個字符(char)信息,如‘a’

。第26頁/共89頁28/889.3.1數據類型(2)數組:使用一個標識符定義多個變量。程序中用到的變量名、函數名等。

數組描述的是同類型的若干個量。例如,處理500名學生的成績信息,不可能定義500個簡單整型量。

C語言中的定義:intscore[500];

VB中的定義:dimscore(100)asintegerVFP中的定義:dimesionscore(100)標識符,數組變量名

數組的定義:第27頁/共89頁29/889.3.1數據類型(3)記錄:

用于描述復雜數據信息,例如描述學生檔案信息。

在數據庫中,數據庫表存儲的就是記錄信息,其他程序設計語言通常要定義記錄類型。第28頁/共89頁30/88VB中記錄的定義:TyperkjszljsbhasintegerxmasstringxbasbytezzdhasstringyddhasstringEndtype記錄類型名記錄類型的教師編號屬性記錄類型的教師姓名屬性記錄類型的性別屬性記錄類型的住宅電話屬性記錄類型的移動電話屬性結束記錄類型rkjszl的定義第29頁/共89頁31/88記錄類型相當于數據庫表的結構部分;對應數據庫表的內容(表體),可以定義數組實現。例如,

dimjs(50)asrkjszl記錄類型記錄類型數組{第30頁/共89頁32/889.3.2常量、變量和運算符

常量:程序運行過程中其內容保持不變的量,例如:固定的數值和字符串等。常量分類:普通常量,如100,10.5,“中國”等。

符號常量,用標識符代表某個常量。符號常量的定義:

C語言#definePI3.1415926VBconstPI=3.1415926VFP數據庫#definePI3.1415926第31頁/共89頁33/889.3.2常量、變量和運算符

變量:程序運行過程中其內容可以變化的量,用來保存程序中用到的臨時數據。程序中用到的變量具有名稱和類型,先定義后使用,例如,在C語言中,

intk=10;即定義了一個整型變量,其名字為k,當前存儲的值為10,在程序中可以為其重新賦值,從而改變其存儲值,例如語句k=20;則變量k存儲的內容變為20。第32頁/共89頁34/889.3.2常量、變量和運算符算術運算:+-*/^等字符運算:&等關系運算:>>=<<===!=等邏輯運算:

andornot等運算符第33頁/共89頁35/889.3.2常量、變量和運算符表達式:由常量、變量及函數等通過運算符連接而成的式子。具有某種功能的完整程序段,可以分為系統函數和自定義函數。例如sin函數、cos函數等都是系統函數。例如,在C語言中給定半徑計算圓的面積:

intr=10,s;s=3.1415926*pow(r,2);定義變量r,存儲半徑的值定義變量s,用來存儲計算的面積表達式3.1415926*pow(r,2)給變量s賦值,表達式中用到了常量3.1415926,變量r和冪函數pow第34頁/共89頁36/889.3.3控制結構程序中語句的執行順序構成了程序的控制結構,通常控制結構分為順序、分支和循環三種。使用三種結構可以描述任何復雜的控制過程。第35頁/共89頁37/88控制結構——順序結構按語句書寫的先后順序執行。例如,有如下程序代碼:

a=10b=a+18c=a+b則執行上述程序后,三個變量的值分別為:

a=10,b=28,c=38第36頁/共89頁38/88控制結構——分支分支也稱為選擇,是按條件決定是否執行某段代碼。條件代碼A代碼B成立不成立例如,求X=|Y|Y(Y≥0)-Y(Y<0){[C實現]if(y>=0)x=y;elsex=-y;第37頁/共89頁39/88分支語句舉例:判斷一個一元二次方程實根是否存在[C實現]

main(){inta,b,c;printf(“請輸入方程系數的值:”);scanf(“%d,%d,%d”,&a,&b,&c);if(b*b-4*a*c>=0)printf(“方程有兩個實根”);

elseprintf(“方程沒有實根”);

}第38頁/共89頁40/88控制結構——循環循環也稱為重復,是根據條件決定是否要反復執行某段程序代碼。循環結構在程序中較為常見,例如,計算1+2+3+……+1000,是一種有規律的計算;工資管理系統中打印職工工資條,是一種重復操作。第39頁/共89頁41/88需要反復執行的程序代碼稱為循環體。循環有控制條件,可以根據控制條件確定循環是否還需要執行。例如1+2+3+……+1000運算中,加上值1000后就不再計算;而打印職工工資條程序在打印出滿足條件的最后一名員工信息后將停止打印。循環可以分為當型循環和直到型循環兩種。循環控制條件始終為真的循環稱為恒真循環。第40頁/共89頁42/88當型循環:當條件成立時執行循環體。不成立成立循環條件循環體語句第41頁/共89頁43/88直到型循環:一直執行循環體,直到條件成立。成立循環體語句不成立循環條件第42頁/共89頁44/88循環舉例:計算1+2+3+……+100的和。用C語言實現:

inti=1,sum=0;while(i<=100){sum=sum+i;i=i+1;}順序執行循環語句(當型循環)循環執行過程:首先判斷條件,成立執行語句sum=sum+ii=i+1此時sum=1,i=2轉去判斷條件i<=100,即2<=100,成立,執行語句sum=sum+i,i=i+1,此時sum=3,i=3再去判斷條件,如此反復,直到i=101,判斷條件不成立,結束循環。第43頁/共89頁45/889.3.4輸入輸出輸入輸出是計算機系統與用戶之間信息交流的一種主要手段。標準輸入設備:鍵盤、鼠標標準輸出設備:顯示器、打印機其他設備:如磁盤、掃描儀、數碼相機、U盤等。存儲文件:如數據庫等。第44頁/共89頁46/889.3.5過程過程也稱為函數,是功能獨立的一段程序。例如:給出半徑,計算對應圓面積的過程。

floatarea(floatr){return3.14*r*r;}

使用過程可以使程序設計層次清晰、結構易讀第45頁/共89頁47/889.4結構化程序設計為規范程序設計而提出的一種程序設計方法。軟件生產的發展程序設計時代:個體手工勞動程序系統時代:作坊式小集團生產,提出了結構化方法軟件工程時代:工程化生產,生產效率極大提高,但未能完全擺脫軟件危機第46頁/共89頁48/88結構化程序設計原則:自頂向下:先考慮整體結構逐步求精:再考慮局部細節模塊化:用功能模塊表現各部分性能限制使用GOTO語句:避免程序中出現隨意轉移問題,使程序結構清晰、易懂第47頁/共89頁49/88結構化程序設計說明:設計一個學生綜合信息管理系統學生綜合信息管理代碼維護學生信息各科成績統計報表①首先考慮整體功能第48頁/共89頁50/88結構化程序設計說明:設計一個學生綜合信息管理系統②隨后考慮每部分的實現細節例如,成績信息,在總體設計中已經確定劃分為錄入成績、查詢成績和修改成績三個功能模塊,逐步求精即確認每個功能模塊的是實現細節,例如修改成績,要有修改者的身份確認方式、可以修改的內容等細節因素。修改成績成績信息錄入成績查詢成績第49頁/共89頁51/88結構化程序設計說明:設計一個學生綜合信息管理系統③將每個功能模塊通過定義函數、過程等形式加以實現,整體程序通過函數之間的調用形成一個整體。例如修改成績模塊,可以定義函數xgcj()實現,查詢成績模塊可以定義函數cxcj()函數實現。修改成績成績信息錄入成績查詢成績第50頁/共89頁52/889.5面向對象程序設計對象是對客觀事物的描述,這里的客觀事物即可以是客觀實體,也可以是事件、過程或概念等。面向對象程序設計中的基本概念:類:對象:類是對象的抽象,是具有相同特征對象的集合。

客觀世界中任何事物都可以視為對象,是描述內容的客觀表示。第51頁/共89頁53/88類的定義:classstudent_info{public:

voidsetinfo(intxh,charxm[]);voidprintinfo();private:intnum;charname[8];

floatscore[20];};方法setinfo,用于設置學生信息方法printinfo,用于顯示學生信息屬性num,存儲學號屬性name,保存姓名屬性score,存儲各科成績第52頁/共89頁54/88對象的定義:student_info

st_1,

st_2;類名對象名對象名第53頁/共89頁55/88類的特性:類的繼承性繼承是在已有類的基礎上生成新類。已有類稱為父類,新生成的類稱之為派生類或子類。通過繼承可以獲得已有類的數據和方法,而不必再次重復定義它們,而且在子類中還可以增加新屬性和新方法。

第54頁/共89頁56/88類的封裝性類的特性:所謂封裝,指的就是類中定義的數據只能被類中定義的方法所訪問,除此之外別無它法。

封裝性體現出來的是對類中數據成員的有效保護,可以避免與此類無關的其他過程和方法訪問類中數據。

第55頁/共89頁57/88類的多態性類的特性:多態性是指同一事件被不同對象接收可以引起不同反應。

多態性通常體現在繼承上:在父類中定義的屬性和方法,被子類繼承后,可以具有不同的數據類型或表現出不同的行為。

第56頁/共89頁58/889.6VB程序設計基礎VB的特點:可視化的設計界面

面向對象程序設計方法

事件驅動編程機制

開放的數據庫功能與網絡支持

充分利用Windows資源

VB即VisualBasic,是微軟公司推出的一種面向對象程序設計語言。第57頁/共89頁59/88VB中的基本概念VB中控件窗體對象對象

控件是在VB中事先定義好的、在程序中可以直接使用的對象,每個控件都有多個屬性、事件和方法

窗體(Form)也就是所謂的窗口,它是Windows環境下應用程序的主要界面形式。

VB程序中窗體、窗體中的各種控件都是對象第58頁/共89頁60/88VB中的基本概念對象的事件對象的屬性對象的方法

屬性是描述對象特征的一組數據,不同對象具有并不相同的屬性,如命令按鈕具有大小、位置、提示信息等屬性。

在VB中,事件是預先定義好的、能夠被對象識別的動作,如命令按鈕可以單擊、雙擊等。

一般來說,方法就是要執行的動作,如刷新等。第59頁/共89頁61/88創建VB應用程序的步驟:1、新建一個工程文件2、創建用戶界面4、編寫事件響應代碼3、設置界面對象屬性5、測試和調試應用程序7、發布應用程序6、創建可執行文件在VB環境中開發的每一個應用程序都被稱為工程。新建了一個工程后,系統自動給出工程中的一個空白窗體,可以在該窗體中根據需要進行設計操作。在窗體中添加了控件對象后,應該為對象進行屬性設置。

事件響應代碼是應用程序所要完成的主要操作,窗體中的每一個對象都可以添加多種事件代碼。

通過“運行”菜單→“啟動”來運行窗體進行功能測試“文件”菜單→“生成<工程名>.exe”菜單項來生成可執行文件工程名.exe。

使用VB系統提供的Package&Deployment向導創建安裝程序,可以確保將要發布的應用程序具有運行時所需的全部系統文件。第60頁/共89頁62/889.7軟件工程基礎軟件工程是將工程的思想應用到軟件開發設計過程中,是軟件設計方法學和工程管理學的結合體。軟件工程學出現的目的是為緩解軟件危機。第61頁/共89頁63/88軟件危機軟件危機是泛指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。軟件需求的增長得不到滿足

軟件開發成本和進度無法控制

軟件質量差,維護困難

軟件的可移植性差

第62頁/共89頁64/88軟件危機的原因:對軟件需求的描述不正確

軟件開發人員對需求的理解和用戶的初衷不一致過分依賴程序設計人員在軟件開發過程中的技巧和創造性,加劇了軟件產品的個性化大型項目管理人員缺少開發經驗,而開發人員又缺少管理經驗第63頁/共89頁65/88軟件工程目標:

低成本、高性能。開發的軟件易于移植、易于維護。能按時完成開發,及時交付使用。第64頁/共89頁66/88軟件生命周期將軟件產品從提出、實現、使用維護到停止使用退役的過程稱為軟件生命周期。軟件生命周期可以分為軟件定義(可行性研究與計劃制定;需求分析)、軟件開發(概要設計;詳細設計;實現;測試)及軟件運行維護(使用;維護;退役)三個階段。第65頁/共89頁67/88軟件生命周期模型:瀑布模型:可行性研究需求分析概要設計詳細設計實現測試使用維護退役第66頁/共89頁68/88用最小的代價在盡可能短的時間內確定問題是否能夠解決。其包括:

1、經濟可行性研究

2、技術可行性研究

3、法律可行性研究

4、開發方案的選擇性研究軟件開發步驟1:可行性研究第67頁/共89頁69/88軟件開發步驟2:需求分析軟件需求分析是指用戶對目標軟件系統在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發現需求、求精、建模和定義需求的過程。需求分析階段的工作:需求獲取;需求分析;編寫需求規格說明書;需求評審。第68頁/共89頁70/88軟件需求規格說明書包括的內容

一、概述二、數據描述(數據流圖、數據字典、系統接口說明、內部接口)三、功能描述(功能、處理說明、設計的限制)四、性能描述(性能參數、測試種類、預期的軟件響應、應考慮的特殊問題)五、參考文獻目錄六、附錄第69頁/共89頁71/88軟件開發步驟3:概要設計(總體設計)概要設計的基本任務:1、設計軟件的系統結構:整體特性2、數據結構及數據設計:抽象數據類型3、編寫概要設計文檔:概要設計說明書,用戶手冊,測試計劃等。4、概要設計文檔評審:方案的可行性、正確性、有效性和一致性。第70頁/共89頁72/88學生綜合信息管理系統結構圖學生綜合信息管理代碼維護學生信息各科成績統計報表第71頁/共89頁73/88軟件開發步驟4:詳細設計詳細設計的任務是為軟件結構圖中的每一個模塊確定實現算法和局部數據結構,用某種選定的表達工具表示算法和數據結構的細節。

常見的過程設計工具有:

1、圖形工具:程序流程圖,N-S,PAD(ProblemAnalysisDiagram,問題分析圖)

2、表格工具:判定表

3、語言工具:PDL(pseudocode,偽碼)⊙第72頁/共89頁74/88軟件開發步驟5:編碼實現

編碼實現是程序員使用合適的程序設計語言實現系統分析人員在詳細設計階段規定的具體任務,是真正意義上的編寫程序,也是程序員發揮創造性的階段。編碼實現的依據是詳細設計說明書。

第73頁/共89頁75/88軟件開發步驟6:軟件測試軟件測試是保證軟件質量的重要手段,其主要過程涵蓋了整個軟件生命周期的過程,包括需求定義階段的需求測試、編碼階段的單元測試、集成測試以及后期的確認測試、系統測試。第74頁/共89頁76/88軟件測試的目的查找軟件中的可能存在的錯誤。測試是為查找軟件中的錯誤,不是演示軟件功能。第75頁/共89頁77/88軟件測試的準則所有測試都應追溯到需求嚴格執行測試計劃充分注意測試中的群集現象程序員應避免檢查自己的程序窮舉測試不可能保存測試各結果,為維護提供方便第76頁/共89頁78/88軟件測試方法從是否需要執行被測試軟件的角度,可以將測試分為靜態測試和動態測試。按照功能劃分可以將測試分為白盒測試和黑盒測試。第77頁/共8

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論