久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

3D游戲軟件設計

時間:2019-05-12 16:46:02下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《3D游戲軟件設計》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《3D游戲軟件設計》。

第一篇:3D游戲軟件設計

注:“★考核知識點”后面的標注內容在PPT中均有對應章節,因PPT序號混亂,不在考核知識點后一一羅列,請在PPT中查找。

一、客觀部分:(單項選擇、多項選擇、不定項選擇、判斷)

(一)、選擇部分

(1)OPenGL常用的庫里面,屬于核心庫的是()

A GL B GLU C GLAUX DGLUT ★考核知識點: OpenGL概述

(2)OPenGL渲染流水中,對光柵化描述正確的是()

A 把頂點變換成圖元

B 把幾何數據和像素數據轉換為片斷的過程。它將幾何數據轉換成片元,片元和要顯示的像素一一對應

C OpenGL應用程序可以在幾何物體上應用紋理圖像,使它們看上去更為逼真D主要的內容就是裁剪,它的任務是消除位于半空間之外的那部分幾何圖元。在某些情況下,還要進行透視除法,用以得到歸一化的設備坐標

★考核知識點: OpenGL概述

(3)下面對于OpenGL特點描述正確的有()

A標準支持靈活,可以用軟件例程實現也可以使用軟硬件組合使用 B具有靈活的伸縮性

C提供了一套良好的功能擴充機制,并且各個版本向后兼容 D跨平臺,在科研和教學上是主流

★考核知識點: OpenGL概述

(4)1992年7月,SGI公司發布了OpenGL的1.0版本,隨后又與微軟公司共同開發了NT版本的OpenGL,從而使一些原來必須在高檔圖形工作站上運行的大型3D圖形處理軟件也可以在微機上運用()

★考核知識點: OpenGL概述

(5)OpenGL(開放性圖形庫Open Graphics Library):是圖形硬件的一種軟件接口()

★考核知識點: OpenGL概述

(6)()是用于定義構成物體的三角形單元列表的坐標系。

A 觀察坐標系B世界坐標系C本地坐標系D轉換坐標系

★考核知識點: 狀態管理和繪制幾何物體

(7)glBegin()函數的意義是()A標志著程序的執行的開始 B標志著一個頂點數據列表的開始 C標志著OpenGL的繪制操作的開始 D標志著當前函數的開始

★考核知識點: 狀態管理和繪制幾何物體

(8)在win32程序中,主函數是從哪里進入執行的()

A GLMain B WinMain C Begin Dmain ★考核知識點: 狀態管理和繪制幾何物體

(9)OpenGL中在顏色索引模式下使用的用于選擇單值索引的函數是()。A glIndex BglClampColor C glClear D glColor3f ★考核知識點: 顏色渲染和紋理貼圖(10)下列哪個顏色不屬于三原色()A紅 B藍 C綠D白

★考核知識點: 顏色渲染和紋理貼圖

(11)OpenGL的光照模型根據材料反射的紅、綠和藍光的比例來模擬它的顏色。當一個純紅的球體,如果給球體僅僅投上綠色的光線,那么看起來球的顏色會是黑色()

★考核知識點: 顏色渲染和紋理貼圖

A(0,0,0)B(255,0,255)C(255,255,255)D(1,1,1)(12)用函數glColor3i()函數設置的黑色的顏色值為()

★考核知識點: 顏色渲染和紋理貼圖

(13)OpenGL中光照模型,被物體表面均勻的反射。即使光是被均勻的反射回去的,它直射的物體表面比從某個角度照射過來時要亮()

A環境光B散射光C鏡面光D發射光

★考核知識點:環境光、散射光、鏡面光、發射光

(14)OpenGL中如何判斷一個點接收了光源的多少光線()

A通過距離光源的距離進行計算 B通過法線相對光源的方向進行計算 C通過物體的顏色值進行計算

D通過物體和光源的顏色值的綜合考慮進行計算

★考核知識點:光照

(15)OpenGL提供了最大數目為N的單場景內光照光源模型,N為()

A 1 B 8 C 16

D不限制,只要為2的冪就可以了

★考核知識點:光照

(16)OpenGL光照模型中,有一種會將光源強烈的反射到了另外一個特定的方向。高亮 A鏡面光B聚光燈光C環境光D發射光 度的光柱往往能在被照射的物體上產生稱之為亮斑的亮點()

★考核知識點:光照

(17)OpenGL光照模型中,表面的發射顏色可以增加物體的強度,但是他們不受任何★考核知識點:光照 光源的影響,在整個場景中,并沒有作為一種額外的光照()(18)設置光源位置時,當我們的光源坐標位置(x,y,z,w)中的w為0時代表我們的光為平行光源()

★考核知識點:光照

(19)OpenGL一個場景中至多可以在包含16個光源()

★考核知識點:光照

(20)用函數glColor3i()函數設置的黑色的顏色值為()

★考核知識點:繪制像素、位圖字體和圖像

(21)像素數據從可以開始從緩沖區讀取到內存然后把像素數據從內存寫入到幀緩沖最后在幀緩沖內部復制像素數據()

★考核知識點:繪制像素、位圖字體和圖像

(22)以下哪個函數可以設置當前的光柵位置()

A glTranslatef()B glRasterPos()C glRotatef()D glDrawPos()★考核知識點:繪制像素、位圖字體和圖像

(23)在繪制幾何圖形之時,我們可以使用glColor*()函數去設置當前顏色或者當前顏色索引()

★考核知識點:繪制像素、位圖字體和圖像

(24)在設置了光柵位置之后,我們可以使用glBitmap函數來繪制數據()

★考核知識點:繪制像素、位圖字體和圖像

(25)void glRasterPos2*(type x,type y);用于設置位圖的繪制位置。()

★考核知識點:繪制像素、位圖字體和圖像

(26)glCopyPixels的像素路徑包括()

A像素傳輸操作B基于片斷的操作C在幀緩沖區暫存D光柵化操作

★考核知識點:繪制像素、位圖字體和圖像

(27)當我們的源和目標的alpha值都為0.35時,當使用函數glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)進行像素混合,得出的結果描述正確的是?()

A源和目標混合效果相同 B混合色更接近源 C混合色更接近目標 D無法判斷

★考核知識點:混合抗鋸齒霧多邊形偏移

(28)啟動混合后,如果綠色物體和一個紅色物體用glBlendFunc(GL_ONE,GL_ONE)方式混合后,結果的混合部分的顏色為(D)A紅色B綠色C白色D黃色

★考核知識點:混合抗鋸齒霧多邊形偏移

(29)圖形學中稱由于采樣頻率不足而造成的失真為走樣,反走樣通過多重采樣改善圖形鋸齒效果()

★考核知識點:混合抗鋸齒霧多邊形偏移

(30)如果不進行混和操作,每個新的片元都被OpenGL當成是不透明的,覆蓋掉幀緩存已存在的顏色值。()

★考核知識點:混合抗鋸齒霧多邊形偏移

(31)顏色定義中RGBA的A是alpha值,alpha值的作用是將已處理過的片元顏色值與存儲在幀緩存中的像素顏色結合起來()

★考核知識點:混合抗鋸齒霧多邊形偏移

(32)當前屬于顏色索引模式時,我們可以進行的操作有()。

A實現顏色混和操作B實現透明效果C實現顏色疊加D實現顏色漸變效果

★考核知識點:混合抗鋸齒霧多邊形偏移

(33)void glBlendFunc(Glenumafactor,Glenumbfactor)

其中參數afactor和參數bfactor分別用于指定源和目標的混合因子()

★考核知識點:混合抗鋸齒霧多邊形偏移

(34)顏色混合方程中,GL_FUNC_ADD實現的功能是()

A CsS+CdD B CsS-CcD C min(CsS,CdD)D max(CsS,CdD)★考核知識點:混合抗鋸齒霧多邊形偏移

(35)開啟顏色混合的函數方式為()

A GL_BLEND B GL_BLENDING C GL_RENDER D GL_ENABLEBLEND ★考核知識點:混合抗鋸齒霧多邊形偏移

(36)一個矢量加上一個矢量結果為()

A一個矢量 B一個標量

C如果為零則不是矢量,其它情況下皆為矢量 D以上說法都不對

★考核知識點:圖形變換的數學基礎

(37)兩個矢量之間的點乘結果為()

A一個矢量 B一個標量

C如果為零則不是矢量,其它情況下皆為矢量 D以上說法都不對

★考核知識點:圖形變換的數學基礎

(38)glLoadIdentity()函數對于4×4矩陣操作結果為()

A [0,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0] B1,1,1,1;1,1,1,1;1,1,1,1;1,1,1,1] C[1,0,0,1;0,1,0,1;0,0,1,1;0,0,0,1] D[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1] ★考核知識點:圖形變換的數學基礎

(39)我們在使用定義視口函數 glViewport 中,第三個參數有什么作用()

A描述視口的距離屏幕最左位置 B描述視口的距離屏幕最上位置 C描述視口的高度 D描述視口的寬度

★考核知識點:圖形變換的數學基礎

(40)通過矩陣[sx,0;0,sy]對二維的不經過原點的圖元進行縮放變換,有可能得到的結果為()

A圖元相對原點的位置變化了 B圖元自身尺寸變化了

C圖元可以只發生旋轉,相對原點位置沒有移動 D圖元自身發生了旋轉

★考核知識點:圖形變換的數學基礎

(41)從物體坐標到屏幕坐標的顯示流程中我們必須要經過的經典的變換流水包()

A世界坐標系內地變換 B對窗口的裁剪操作 C窗口到視口的變換 D對模型進行坐標進行變換

★考核知識點:OpenGL的視圖變換

(42)函數void gluPerspective(Param1,Param2,Param3,Param4)中,標示近裁剪面的是哪個參數()

A Param1 BParam2 C Param3 D Param4 ★考核知識點:OpenGL的視圖變換

(43)哪些變換分別用于設定物體在世界坐標系中的位置、方向以及模型大小。()

A平移變換B旋轉變換C縮放變換D投影變換

★考核知識點:OpenGL的視圖變換

(44)()變換后的的幾何體位于觀察坐標系中。

A局部變換B取景變換C世界變換D空間變換 ★考核知識點:OpenGL的視圖變換

(45)投影變換包括哪幾種投影方式。()

A平面投影B透視投影C正射投影D縮放投影

★考核知識點:OpenGL的視圖變換

(46)下對函數gluLookAt(0,0,0, 0,0,-3,1,0,0)描述正確的是

A觀察點在原點(AD)B正方向為z軸負方向 C觀察方向指向z軸正方向 D正方向為x軸正方向

★考核知識點:OpenGL的視圖變換

(47)glRotatef(fRot,1,1,0)描述先按照X軸旋轉fRot,接著繞Y軸旋轉fRot()

★考核知識點:OpenGL的視圖變換

(48)在OpenGL中如果要實現運動模糊效果,需要借助以下哪個緩沖區()

A深度緩沖區B幀緩沖區C模版緩沖區D積累緩沖區

★考核知識點:幀緩沖區

(49)當前程序的狀態處于常規的繪圖模式,那么接下來使用下列哪些函數可以退出當前繪圖模式()

A glRender(GL_FEEDBACK);B glRender(GL_SELECT);C glEnd();D glBegin(GL_TRIANGLES)★考核知識點:幀緩沖區

(50)霧化效果在顏色索引模式下是不可用的()

★考核知識點:幀緩沖區

(51)如果我們需要使用OpenGL進行3維點選操作,那么可以通過函數glRenderMode()指定()進入選擇模式

A GL_FEEDBACK BGL_SELECT C GL_PEEK D GL_MODEVIEW ★考核知識點:幀緩沖區

(52)OpenGL中如果鎖住了深度緩沖區,那么所有的物體的深度就無法測試了,物體只是根據繪制的先后相互覆蓋了()

★考核知識點:幀緩沖區

(53)繪制球體,我們使用函數:

void gluSphere(GLUquadricObj *obj,Gldoubleradius,Glintslices,Glint stacks);()

下面,我們對參數描述正確的選項有()A slice代表的就是經線的數目 B stacks參數代表的就是緯線的數目 C slice參數代表的就是緯線的數目 D stacks代表的就是經線的數目

★考核知識點:分割化和二次方程表面

(54)OpenGL中我們需要完成對NURBS對象的銷毀,調用的函數是gluDeleteNurbsRenderer()

★考核知識點:分割化和二次方程表面

(55)常見的紋理尋址模式有()A重疊紋理尋址模式B鏡像紋理尋址模式 C鉗位紋理尋址模式D邊界顏色紋理尋址模式

★考核知識點:分割化和二次方程表面

(56)gluQuadricDrawStyle 函數選擇用于繪制幾何形狀的圖元類型。系統默認的類型是使用三角條狀圖元來填充所要繪制的幾何形狀,填充模式默認為 A GLU_LINE B GL_FILL C GLU_SILHOUETTE D GLU_POINT ★考核知識點:分割化和二次方程表面

(57)繪制球體,我們使用函數:

void gluSphere(GLUquadricObj *obj,Gldoubleradius,Glintslices,Glint stacks);下面,我們對參數描述正確的選項有()

A slice代表的就是經線的數目 B stacks參數代表的就是緯線的數目 C slice參數代表的就是緯線的數目 D stacks代表的就是經線的數目

★考核知識點:求值器和NURBS(58)我們的B樣條曲線(三次)和與貝塞爾曲線很相似,不同之處是此曲線會分解成很多的小段。每個給定段的形狀都僅受到最近4個控制點的影響()

★考核知識點:求值器和NURBS(59)我們的B樣條曲線(三次)和與貝塞爾曲線很相似,不同之處是此曲線會分解成很多的小段。每個給定段的形狀都僅受到最近4個控制點的影響()

★考核知識點:求值器和NURBS(60)()是Direct3D用來存儲繪制到屏幕上的每個像素點深度信息的一塊內存緩沖區

A 廣度緩存 B 深度緩存 C 深度測試 D 廣度測試

★考核知識點:求值器和NURBS(61)OpenGL中我們需要完成對NURBS對象的銷毀,調用的函數是gluDeleteNurbsRenderer()

★考核知識點:求值器和NURBS(62)紋理階段混合狀態用于指定當前紋理顏色值和Alpha值的混合方法()

★考核知識點:求值器和NURBS(63)通常情況下,深度緩存用于判斷三維空間中物體的遮擋情況()

★考核知識點:求值器和NURBS(64)設置深度緩存是指設置深度測試成功時對深度緩存如何操作()

★考核知識點:求值器和NURBS(65)圖形學中稱由于采樣頻率不足而造成的失真為走樣,反走樣通過多重采樣改善圖形鋸齒效果()

★考核知識點:求值器和NURBS(66)渲染后物體模型通常是由三角形圖元組成的,我們稱它為一個Mesh結構()

★考核知識點:求值器和NURBS(67)若要從緩存中只讀不寫數據,就不需要鎖定緩存,用完后解鎖()(68)如果我們需要使用OpenGL進行3維點選操作,那么可以通過函數glRenderMode()指定GL_SELECT,進入選擇模式()

(69)在執行用于操縱名字堆棧的函數或調用glRenderMode()函數之后,如果出現了一次點擊,OpenGL就會在選擇數組中寫入一個點擊記錄,所以,如果共享相同的名稱對象,不會產生多條點擊記錄。()(70)在點擊發生時,名字堆棧的內容從()的元素開始。A最頂部B上一個操作的位置C最底部D任意

(71)如果我們需要使用OpenGL進行3維點選操作,那么可以通過函數glRenderMode()指定GL_SELECT,進入選擇模式()

(72)進行點選操作后,假設當前的選擇緩沖區為pSelectBuff,那么其中的pSelectBuff[0]的值得含義是()

A自上一個點擊記錄之后,與視景體相交的圖元的所有頂點的最小窗口坐標的z值 B自上一個點擊記錄之后,與視景體相交的圖元的所有頂點的最大窗口坐標的z值 C點擊發生時名字堆棧的內容 D名字堆棧中壓入的名字數

(73)OpenGL中如果鎖住了深度緩沖區,那么所有的物體的深度就無法測試了,物體只是根據繪制的先后相互覆蓋了()

★考核知識點:選擇和反饋

(74)名字堆棧形成了返回選擇信息的基礎,如果此時我們需要使用某個名稱來替換名字堆棧頂部的元素,可以使用函數為()

A void glInitNames(void);B void glPushName(GLuint name);C void glPopName(void);D void glLoadName(Gluint name);★考核知識點:選擇和反饋

(75)選擇返回功能函數:

void glSelectBuffer(Glsizeisize,Gluint *buffer)對函數描述正確的是()A buffer參數指向的數組用于存放選擇數據

B buffer參數指向的數組僅僅用于存放選擇的物體ID C size表示這個數組可以存儲單個數據的大小 D size表示這個數組可以存儲的最大值

★考核知識點:選擇和反饋

(76)用glSelectBuffer()函數指定用于返回點擊記錄的數組()

★考核知識點:選擇和反饋

(77)使用函數 void gluPickMatrix(Gldoublex,Gldoubley,Gldoublewidth,Gldoubleheight,Glint viewport[4]);選擇的挑選區域的中心是()A 世界坐標B窗口坐標C物體坐標D可以任意指定

★考核知識點:選擇和反饋

(78)由于粒子之間的碰撞計算量很大并且對于大多數模擬來說沒有必要,所以我們很少使用粒子之間的碰撞。()

★考核知識點:粒子系統

(79)粒子(Particle)是一種微小的物體,在數學上通常用點來表示其模型,所以顯示和表示粒子時,我們通常使用點結構來描述。()

★考核知識點:粒子系統

(80)以下可以通過常見的粒子系統實現的是()A雪花B下雨C噴泉噴水D金屬車漆效果

★考核知識點:粒子系統

(81)如果有兩束光進入人眼,他們的成分為(R1,G1,B1)和(R2,G2,B2)那么疊加在一起的時候,如果藍色分量超出1了,那么最后的疊加結果為()

A(R1, R2,1)B(R1+R2, R1+R2,1-R1-R2)C(R1+R2, R1+R2,1)D(R1, R2, 1-R1-R2)★考核知識點:混合效果

(82)Alpha分量主要是用來指定像素的混合計算比例的()

★考核知識點:混合效果

(83)D3DCOLORVALUE結構體中包含r、g、b和a4個分量,表示物體表面對各種反射光的各種成分的反射比率。r=0.0 g=b=a=1.0;r=g=0.0。此時紅光和藍光照射過來,只有藍光被反射,即材質看上去為藍色()

★考核知識點:混合效果

(84)OpenGL的光照模型根據材料反射的紅、綠和藍光的比例來模擬它的顏色。當一個純紅的球體,如果給球體僅僅投上綠色的光線,那么看起來球的顏色會是()A紅色B綠色C白色D黑色

★考核知識點:混合效果

(85)平面著色模式,所有像素的Alpha值都大于等于該多邊形的第一個頂點的Alpha值()

★考核知識點:混合效果

(86)像素的Alpha值就是用來做紋理Alpha混合時進行加權計算的的權值()

★考核知識點:混合效果

(87)Alpha測試并不把當前像素的顏色與顏色緩沖中像素的顏色混合,像素要么完全不透明,要么完全透明()

★考核知識點:混合效果

(88)OpenGL中指定源混和因子和目標混和因子的函數:

void glBlendFunc(Glenumafactor,Glenumbfactor)描述正確的是()A其中參數afactor和參數用于指定源混合因子 B其中參數bfactor用于指定目標的混合因子 C其中參數afactor用于指定目標的混合因子 D其中參數bfactorb用于指定源的混合因子

★考核知識點:混合效果

(89)常見的紋理尋址模式有()

A重疊紋理尋址模式B鏡像紋理尋址模式C鉗位紋理尋址模式D邊界顏色紋理尋址模式

★考核知識點:紋理的高級技巧

(90)通過矩陣[sx,0;0,sy]對二維的不經過原點的圖元進行縮放變換,有可能得到的結果為 A圖元相對原點的位置變化了()B圖元自身尺寸變化了

C圖元可以只發生旋轉,相對原點位置沒有移動 D圖元自身發生了旋轉

★考核知識點:紋理的高級技巧

(91)創建一個矩形圖元255*255,它的大小恰好與紋理圖中紋理的大小一樣,要映射整個圖元面積,分配給圖元紋理坐標為().A(0.0,0.0)(1.0,0.0)(1.0,1.0)(0.0,1.0)B(0.0,0.0)(255.0,0.0)(255.0,255.0)(0.0,255.0)C(0.0,0.0)(0.0,1.0)(1.0,0.0)(1.0,1.0)D(0.0,0.0)(0.0,255.0)(255.0,0.0)(255.0,255.0)★考核知識點:紋理的高級技巧

(92)三維紋理圖像可以看成是由一層一層的二維子圖像矩陣構成的,在內存中,這些矩形按順序排列在一起。()

★考核知識點:紋理的高級技巧(93)對函數void glTexImage3D(Glenum target, Glint level,GlintinternalFormat ,Glsizeiwidth,Glsizeiheight,Glsizeidepth,Glintborder,Glenumformat,Glenum type, constGlvoid * texels);參數描述正確的是()A level是紋理目標在內存中的優先級 Blevel是mipmap細節層的序號 C level描述了紋理的強度程度 D描述了紋理的有效值取值范圍

★考核知識點:紋理的高級技巧

(94)glCopyPixels()函數,但是并不把像素讀到緩沖區,而是放在紋理內存中()

★考核知識點:紋理的高級技巧

(95)對OpenGL實現的Mipmap描述正確的是()

A它必須根據被貼圖的物體的大小手動的確定應該使用哪個紋理 B它會根據被貼圖的物體的大小自動確定應該使用哪個紋理 C Mipmap不需要一些額外的計算

D Mipmap并不需要額外的一些紋理存儲區域

★考核知識點:紋理的高級技巧

(96)glPixelStore*()函數可以用于設置像素存儲模式,使用諸如*ROW_LENGTH、*ALIGNMENT、*SKIP_PIXELS和*SKIP_ROWS這樣的參數。這個函數用于控制對一個完整的像素或紋理單元矩形的一個子矩形的引用()

★考核知識點:紋理的高級技巧

(97)一個帶有紋理圖像的物體迅速的遠離觀察點而去時,紋理圖像必須隨必須被投影的圖像一起縮小。為了避免閃爍抖動等人工痕跡,可以指定一系列預先過濾的分辨率遞減的紋理圖像稱為()

A Vertex Shader B mipmap C HLSL D Cg ★考核知識點:紋理的高級技巧

(98)void glTexParameteri 第三個參數類型為GL_CLAMP描述正確的是

A將大于1.0的數值設置為1.0,將超出[0.0,1.0]范圍的數值截取到[0.0,1.0]范圍內 B這樣會導致紋理邊緣的重復 C將小于0.0的數值設置為0.0 D圖象在物體表面上不斷重復,但是每次重復的時候對圖象進行鏡像或者反轉(99)紋理坐標比一定非要在RGBA模式下才可以能使用()

★考核知識點:紋理的高級技巧

(100)void glTexParameteri 第三個參數類型為GL_REPEAT描述正確的是A A圖象在表面上重復出現

B自動將超出[0.0,1.0]范圍的數值截取到[0.0,1.0]范圍內

C圖象在物體表面上不斷重復,但是每次重復的時候對圖象進行鏡像或者反轉 D這樣的模式在紋理邊緣處比較連貫

★考核知識點:紋理的高級技巧

(101)對函數glTexParameteri邊界截取類型描述正確的是()

A GL_CLAMP_TO_EDGE B CLAMP_TO_BORDER_ARB C GL_REPEAT D GL_CLAMP ★考核知識點:紋理的高級技巧

二、主觀部分:(程序設計,簡答題)

1關于現實字體的一段程序如下,運行截圖如下,現有若干空缺,請完成填空。

我們完成創建字體的功能函數CreateFont()如下:

HFONT hFont;HFONT hOldFont;iBase=glGenLists(256);hFont=CreateFont(-24, 0, 0, 0,//高度 //寬度 //旋轉角度 //定位角 //字寬設置 FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_TT_PRECIS,CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, FF_DONTCARE|DEFAULT_PITCH, “Courier New”);

//使用字體名稱為Courier New //保存之前的字體

hOldFont=(HFONT)SelectObject(hdc,hFont);//從系統下載的字體文件中生成這些位圖

wglUseFontOutlines(hdc,32,96,iBase,0.0,0.2f,WGL_FONT_POLYGONS,gmf);//還原設備句柄為hdc,還原原來的字體類型 SelectObject(hdc,hOldFont);//釋放資源

DeleteObject(hFont);2.關于二次曲面的一段程序如下,運行截圖如下,現有若干空缺,請完成填空。

我們生成二次曲面的功能函數如下: //二次曲面的生成狀態 GLUquadric *Quadric;//創建一個二次方程對象,指定這個二次方程對象的屬性 Quadric = gluNewQuadric();//自動為二次表面生成紋理坐標 gluQuadricTexture(Quadric,GL_TRUE);//顯示燈的列表 iLamp = glGenLists(1);glNewList(iLamp,GL_COMPILE);//激活紋理0地板的紋理

glBindTexture(GL_TEXTURE_2D,texture[2]);//綁定紋理

glBindTexture(GL_TEXTURE_2D,texture[2]);

2.如下一段程序,運行完成加載紋理的功能,現在有若干空缺,請根據上下文完成填寫。

程序截圖1 LoadTexture(){);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR

glPixelStorei(GL_UNPACK_ALIGNMENT,4);//綁定紋理

glBindTexture(GL_TEXTURE_2D,m_nBodyTex);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);//BMP文件的handle HBITMAP hBMP;//存儲BMP的數據結構 BITMAP BMP;byte Texture[1]={IDB_MISSILE};//產生三個紋理

glGenTextures(1,&m_nBodyTex);hBMP=(HBITMAP)LoadImage(GetModuleHandle(NULL),MAKEINTRESOURCE(Texture[0]),IMAGE_BITMAP,0, 0, LR_CREATEDIBSECTION);

if(hBMP){ GetObject(hBMP,sizeof(BMP),&BMP);

//構建二維Mipmap gluBuild2DMipmaps(GL_TEXTURE_2D,3,BMP.bmWidth,BMP.bmHeight,GL_BGR_EXT, GL_UNSIGNED_BYTE, BMP.bmBits);//刪除位圖資源

}

3.如下一段程序,運行完成物體顏色和材質屬性相關功能,現在有若干空缺,請根據上下文完成填寫。DeleteObject(hBMP);

}//if

程序截圖1 在進行光照和材質相關的計算時,需要先進行必要設置操作,我們需要進行如下操作:

{ glClearColor(1.0,1.0,1.0,1.0);voidInitScene()

//設置明暗處理模型 glShadeModel(GL_SMOOTH);//glShadeModel(GL_FLAT);//開啟深度測試

glEnable(GL_DEPTH_TEST);glDepthFunc(GL_LEQUAL);glClearColor(0.0f,0.0f,0.0f,0.0f);glClearDepth(1.0f);//使光源生效

glEnable(GL_LIGHTING);//設置環境光

GLfloatambientLignt[]={0.8,0.7,0.9,1.0};glLightModelfv(GL_LIGHT_MODEL_AMBIENT,ambientLignt);//設置材料屬性,自身的反光屬性 GLfloatShininess[]={80.0};//鏡面強度,白色

GLfloatSpecular[]={1.0,1.0,1.0,1.0};//設置材質顏色屬性

GLfloatMatColor[]={0.9,0.9,0.9,1.0};//光源位置

GLfloatPostion[]={1.0,1.0,1.0,0};//具體設置GL_FRONT_AND_BACK

//GL_FLAT

glMaterialfv(GL_FRONT,GL_SPECULAR,Specular);glMaterialfv(GL_FRONT,GL_SHININESS,Shininess);//設置光照模型

glLightfv(GL_LIGHT0,GL_POSITION,Postion);//給光源設置位置*/ glLightfv(GL_LIGHT0,GL_SPECULAR,MatColor);//給鏡面光設置顏色 glLightfv(GL_LIGHT0,GL_DIFFUSE,MatColor);//設置漫反射顏色 //開啟光照特征 glEnable(GL_LIGHT0);

}//endfnc 4.如下一段程序,運行完成霧化功能,現在有若干空缺,請根據上下文完成填寫。

程序截圖1 { //Get FPS void DrawScene()if(GetTickCount()-g_dwLastFPS >= 1000)

glClear(GL_COLOR_BUFFER_BIT);glLoadIdentity();//設置位圖

glPixelTransferf(GL_RED_SCALE, 1.0);{

g_dwLastFPS = GetTickCount();

char szTitle[256]={0};

sprintf(szTitle, “ Current %d FPS”, g_nFrames);SetWindowText(hwnd, szTitle);g_nFrames = 0;

}//if g_nFrames++;*/ glPixelTransferf(GL_GREEN_SCALE, 0.0);glPixelTransferf(GL_BLUE_SCALE, 0.0);glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);glEnable(GL_BLEND);glFlush();}//endfnc //初始化操作

五、簡答題(共15 分)

關于構建一個立體曲面的程序有如下截圖,程序有部分功能空缺,請完成

//渲染場景 void DrawScene(){ //調用顯示列表進行渲染

glCallList(drawlist);if(showCPoints){

//禁止紋理

glDisable(GL_TEXTURE_2D);

glColor3f(1.0f,0.0f,0.0f);

for(i=0;i<4;i++){

//繪制控制點

glBegin(GL_LINE_STRIP);for(j=0;j<4;j++){ glVertex3d(pCtrData[i][j].x, pCtrData[i][j].y, pCtrData[i][j].z);

}//for glEnd();}//for for(i=0;i<4;i++){

glBegin(GL_LINE_STRIP);for(j=0;j<4;j++)//繪制點

glVertex3d(pCtrData[j][i].x, pCtrData[j][i].y,pCtrData[j][i].z);glEnd();}//for glColor3f(1.0f,1.0f,1.0f);//啟用紋理

glEnable(GL_TEXTURE_2D);

}//if glFlush();

}//endfnc

2.關于現實Bezier曲線的一段程序如下,運行截圖如下,關于功能現有部分空缺,請完成。

intInitScene(){

glShadeModel(GL_SMOOTH);

glClearColor(1.0f, 1.0f, 1.0f, 0.5f);//設置清空顏色為白色 glClearDepth(1.0f);

//初始化深度緩存最大為 1.0f //開啟深度測試 glEnable(GL_DEPTH_TEST);glDepthFunc(GL_LEQUAL);glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);//開啟求值器

glEnable(GL_MAP1_VERTEX_3);//設置控制點的類型,起始位置從0-100,控制點數目為4,跨度為3 //點的存儲數組為B_Points[4][3]

} glMap1f(GL_MAP1_VERTEX_3,0.0f, 100.0f, 3,//起始 //終止范圍

//點數目 iNumPoint,&B_Points[0][0]);//均勻分布網格,有100個單位,從u1到u2 glMapGrid1d(100,0.0,100);return TRUE;

boolDrawScene(){

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glLoadIdentity();glTranslatef(0,0,-20.0f);inti;//設置點的尺寸大小為 10 glPointSize(10);//設置控制點為紅色 glColor3f(1.0,0.0,0.0);glBegin(GL_POINTS);

for(i=0;i

{ glVertex2fv(B_Points[i]);}//for glEnd();return true;

}//DrawScene 3.關于實現光照效果對比的程序。左圖為加光照,右邊為未加光照。部分功能空缺,請完成

void DrawScene(){ GLfloat spotPostion[]={0.0,0.0,1.0,1.0};

//清空緩沖區

glClear(GL_COLOR_BUFFER_BIT |GL_DEPTH_BUFFER_BIT);glLoadIdentity();

glPushMatrix();glColor3f(1.0,0.0,0.0);glRotatef(fRot, 1.0f, 0.0f, 0.0f);//使用燈光

glLightfv(GL_LIGHT2,GL_POSITION,spotPostion);glLightfv(GL_LIGHT2,GL_SPOT_DIRECTION,spotDir);glTranslatef(spotPostion[0],spotPostion[1],spotPostion[2]);glutSolidCone(0.05f,3.0f,15,15);glPopMatrix();glTranslatef(0,0,-6.0);//glRotatef(fRot,1,0,0);//繞y軸旋轉60° glRotatef(60,0,1,0);//屬性堆棧壓棧

// glPushAttrib(GL_LIGHTING_BIT);// glDisable(GL_LIGHTING);

glColor3f(1.0f,1.0f,1.0f);glBegin(GL_TRIANGLES);//計算法線一

calNormal(vTrangle1,vector);glNormal3fv(vector);

glVertex3fv(vTrangle1[0]);glVertex3fv(vTrangle1[1]);glVertex3fv(vTrangle1[2]);glFlush();}//endfnc

第二篇:3D游戲軟件設計

《3D游戲軟件設計》

一、單選題(共 20 道試題,共 40 分。)

1.現有三組逆時針環繞的輪廓線,依次包含?,F在,如果把區域的環繞屬性設置為奇數類型,那么最終繪制出的區域描述正確的是 A.一個環形 B.實體塊

C.一個環形加一個實體塊 D.無法確定具體填充區域 滿分:2 分

2.在進行點選操作時,我們使用一個名稱標識了三個重疊的圓形?,F在對它進行一次點擊,那么它產生的點擊記錄為多少次 A.3 B.1 C.2 D.0 滿分:2 分

3.在利用矩陣進行圖形三維變換時,我們只用3×3矩陣無法完成的變換操作是

A.平移 B.旋轉 C.錯切

D.以上說法都不對 滿分:2 分

4.在復合變換中,固定坐標模式的變換,對于坐標變換操作的調用和執行順序描述中,正確的是

A.相對于同一個固定坐標系先調用的變換先執行 B.相對于同一個固定坐標系先調用的變換后執行

C.相對于同一個固定坐標系調用和執行的順序沒有必然聯系 D.以上說法都不對 滿分:2 分

5.函數glAlpaFunc用于設置alpha測試的參考值和比較函數的參數中,哪個參數的意義表示“絕不接受這個片段” A.GL_NERVER B.GL_ALWAYS C.GL_LESS D.GL_EQUAL 滿分:2 分

6.函數void glBlendEquation(Glenum mode)函數中的mode對取值為GL_FUNC_SUBSTRACT描述正確的是 A.CsS+CdD B.CsS-CdD C.CdD-CsS D.CsopCd 滿分:2 分

7.我們在繪制完物體后,如果鎖定了深度緩沖區,接著再調換物體的z方向的次序,此時關于遮擋關系以下說法中正確的是 A.AB物體重疊部分會發生混合

B.遮擋關系發生改變,AB物體遮擋關系互調 C.遮擋關系不變 D.無法判斷 滿分:2 分

8.glPixelMap{ui us f}v(Glenum map,Glint mapsize,const TYPE* values)函數被加載,它的函數參數參數mapsize的取值有意義的是 A.10 B.20 C.32 D.42

滿分:2 分

9.一束白光照射一個有光澤的藍色球體,那么這個球體的整體看上去是藍色的,它上面的亮點則是什么顏色的 A.紅色 B.綠色 C.白色 D.藍色 滿分:2 分

10.白色的顏色值為

A.(0,0,0)B.(255,0,255)C.(255,255,255)D.(1,1,1)滿分:2 分

11.現在有控制點為四個,每個頂點有三個坐標,現在我們想利用函數gluNurbsSurface進行NURBS表面設置,那么u_stride的值應該設置為 A.3 B.4 C.12 D.48 滿分:2 分

12.進行點選操作后,假設當前的選擇緩沖區為pSelectBuff,那么其中的pSelectBuff[0]的值得含義是

A.名字堆棧中壓入的名字數

B.自上一個點擊記錄之后,與視景體相交的圖元的所有頂點的最小窗口坐標的z值 C.自上一個點擊記錄之后,與視景體相交的圖元的所有頂點的最大窗口坐標的z值 D.點擊發生時名字堆棧的內容 滿分:2 分 13.下列哪個不屬于計算機上支持的像素位數

A.4位 B.24位 C.20位 D.32位 滿分:2 分

14.OpenGL中如何判斷一個點接收了光源的多少光線

A.通過距離光源的距離進行計算 B.通過法線相對光源的方向進行計算 C.通過物體的顏色值進行計算

D.通過物體和光源的顏色值的綜合考慮進行計算 滿分:2 分

15.OpenGL提供的投影矩陣堆棧個數為

A.1 B.2 C.4 D.8 滿分:2 分

16.利用3×3矩陣進行二維點集變化時,我們使用的矩陣為[1,0,0;0,-1,0;0,0,1],那么變化后的效果為

A.沿著X軸對稱變換 B.沿著Y軸對稱變換 C.沿著原點對稱變換 D.沿著直線y=x對稱變換 滿分:2 分

17.下列哪個顏色不屬于三原色

A.紅

B.藍 C.綠 D.黑 滿分:2 分

18.如果有兩束光進入人眼,他們的成分為(R1,G1,B1)和(R2,G2,B2)那么疊加在一起的時候,如果紅色分量超出1了,那么最后的疊加結果為 A.R1+R2 B.1-R1-R2 C.1 D.R1+R2-1 滿分:2 分

19.通常,我們的運動模糊效果,可以利用哪個緩沖區實現

A.顏色緩沖區 B.深度緩沖區 C.模板緩沖區 D.積累緩沖區 滿分:2 分

20.OpenGL中復雜的圖形繪制一般都是如何實現的

A.用曲線模擬 B.用四邊形拼接 C.用三角形拼接

D.只要是凸多邊形拼接就可以 滿分:2 分

二、多選題(共 10 道試題,共 20 分。)

V

1.下列哪些是OpenGL的常用庫

A.GL B.GLU

C.GLAUX D.GLUT 滿分:2 分

2.在多邊形偏移中,可以有哪幾種模式用于不同的多邊形光柵化

A.GL_FILL B.GL_LINE C.GL_POINT D.GL_TRANGLES 滿分:2 分

3.對計算機圖形進行顯示的方法中可以起到抗鋸齒作用的有哪些方法

A.提高屏幕分辨率 B.采用區域覆蓋法 C.加權覆蓋法 D.抖動技術 滿分:2 分

4.OpenGL允許把與顏色相關的哪三個不同參數和光源相關聯

A.GL_AMBIENT B.GL_DIFFUSE C.GL_SPECULAR D.GL_AMBIENT 滿分:2 分

5.OpenGL包含有哪幾個緩沖區

A.顏色緩沖區 B.深度緩沖區 C.模板緩沖區 D.積累緩沖區

滿分:2 分

6.實現物體坐標到達屏幕坐標的處理管線中,包括的處理步驟有

A.視圖模型矩陣操作 B.投影操作

C.透視除法進行規范化 D.視口變換 滿分:2 分

7.在局部光源模型中,隨著光源的距離增加,光的強度不會隨之衰減的有

A.環境光 B.散射光 C.鏡面光 D.發射光 滿分:2 分

8.以下是正交投影glOrtho函數作用特點的是

A.視體是一個椎體 B.物體近大遠小 C.視體為立方體

D.物體的距離并不影響它看上去的大小 滿分:2 分

9.以下是描述glBindTexture函數功能的是

A.將生成的紋理的名稱綁定到指定的紋理上 B.創建紋理并加載

C.選擇已經加載的紋理進行貼紋理操作 D.以上都對 滿分:2 分

10.一下那些屬于OpenGL的特點

A.標準支持靈活

B.具有良好伸縮性 C.具有良好擴展性 D.擴展性不強 E.滿分:2 分

三、判斷題(共 20 道試題,共 40 分。)

V

1.設置光源位置時,當我們的光源坐標位置(x,y,z,w)中的w為0時代表我們的光為局部光源 A.錯誤 B.正確 滿分:2 分

2.glNormal*函數是glBegin和glEnd之間的合法函數

A.錯誤 B.正確 滿分:2 分

3.無論是在反饋模式下還是選擇模式下,物體的信息總是在任何片斷測試之前返回

A.錯誤 B.正確 滿分:2 分

4.函數glLoadName用于將當前的名字替換名字堆棧頂部的元素

A.錯誤 B.正確 滿分:2 分

5.函數glPerspective(GLdouble fogy,GLdouble aspect, GLdouble near,GLdouble far)所定義的視體僅限于和X和Y軸對稱的平截頭體 A.錯誤 B.正確 滿分:2 分

6.視圖變換和模型變換可以互逆變換

A.錯誤 B.正確 滿分:2 分

7.位圖字體無法進行旋轉

A.錯誤 B.正確 滿分:2 分

8.過濾函數中的參數GL_LINER它會對一小塊區域的紋理單元值進行加權平均,用于放大或者縮小 A.錯誤 B.正確 滿分:2 分

9.對物體進行平移變換和縮放變換的順序不會對最后結果產生影響

A.錯誤 B.正確 滿分:2 分

10.OpenGL至少可以在場景中包含1個光源

A.錯誤 B.正確 滿分:2 分

11.已知兩個向量,可以通過運算V1^.V^2獲得它們所在平面的法線

A.錯誤 B.正確 滿分:2 分

12.glEnable(GL_DEPTH_TEST)函數的作用是開啟深度測試

A.錯誤 B.正確 滿分:2 分

13.為了使用mipmap,必須提供全系列的大小為2的整數次方的紋理圖像,其范圍從2*2到紋理的最大單元

A.錯誤 B.正確 滿分:2 分

14.紋理坐標必須在RGBA模式下才能使用

A.錯誤 B.正確 滿分:2 分

15.函數glDepthMask的flag參數設置為GL_TRUE,則標志著深度緩沖區可以寫入

A.錯誤 B.正確 滿分:2 分

16.對于基本的求值器使用繪制步驟為先開啟求值器,設置控制點,設置繪制屬性和模式,最后進行渲染 A.錯誤 B.正確 滿分:2 分

17.位圖是由0和1組成的矩形數組

A.錯誤 B.正確 滿分:2 分

18.鏡面亮點的顏色就是光源的鏡面光的顏色

A.錯誤 B.正確 滿分:2 分

19.顏色混合操作在顏色索引模式下是非法的

A.錯誤 B.正確 滿分:2 分

20.glRotatef(fRot,0.0f,1.0f,0.0f)函數可以讓圖形繞著X軸偏轉fRot角度

A.錯誤

B.正確 滿分:2 分

第三篇:軟件設計報告

軟件設計報告

姓名: 方軼琦

學號:10005808

2013年6月18日~2013年6月28日

第一章 軟件設計介紹.........................................................1 第三章 軟件設計的內容.......................................................4 3.1 分數統計軟件(A1)...................................................4 3.1.1設計題目及要求.....................................................4 3.1.2設計思想及程序流程框圖.............................................4 3.1.3邏輯功能程序.......................................................5 3.1.4結果及完善方向.....................................................5 3.2 打字軟件(A2).......................................................9 3.2.1設計題目及要求.....................................................9 3.2.2設計思想及程序流程框圖.............................................9 3.2.3邏輯功能程序......................................................10 3.2.4結果及完善方向....................................................10 3.3 文本編輯器(A3)....................................................13 3.3.1設計題目及要求....................................................13 3.3.2設計思想及程序流程框圖............................................14 3.3.3邏輯功能程序......................................................14 3.3.4結果及完善方向....................................................17 3.4 加密軟件(A4)......................................................19 3.4.1設計題目及要求....................................................19 3.4.2設計思想及程序流程框圖............................................19 3.4.3邏輯功能程序......................................................19 3.4.4結果及完善方向....................................................19 3.5 進制轉換器(A5)....................................................23 3.5.1設計題目及要求....................................................23 3.5.2設計思想及程序流程框圖............................................23 3.5.3邏輯功能程序......................................................24 3.5.4結果及完善方向....................................................29 3.6 學生成績核算系統的設計與實現(B1)..................錯誤!未定義書簽。3.6.1設計題目及要求....................................................30 3.6.2設計思想及程序流程框圖............................................30 3.6.3邏輯功能程序......................................................32 3.6.4結果及完善方向....................................................32 3.7 模擬電信計費系統的設計與實現(B2)..................................39 3.7.1設計題目及要求....................................................39 3.7.2設計思想及程序流程框圖............................................40 3.7.3邏輯功能程序......................................錯誤!未定義書簽。3.7.4結果及完善方向....................................................41 第四章 心得體會............................................................49

軟件設計報告 10005808 方軼琦

軟件設計介紹

一. 軟件的設計概念

軟件設計是把許多事物和問題抽象起來,并且抽象它們不同的層次和角度。建議用數學語言來抽象事務和問題,因為數學是最好的抽象語言,并且它的本質就是抽象。將復雜的問題分解成可以管理的片斷會更容易。將問題或事物分解并模塊化這使得解決問題變得容易,分解的越細模塊數量也就越多,它的副作用就是使得設計者考慮更多的模塊之間耦合度的情況。

二.軟件設計的性質、目的:

本課程是一門技能訓練課,為在校學生的必修課程。通過設計培養學生良好的編程習慣,使學生掌握編程的基本步驟,規范學生的編寫程序的格式,鍛煉學生編寫程序的能力,為將來編寫較大程序的打好基礎。

三.軟件設計總時間:二周

四.實驗設備:南京郵電大學微機室微機。五.軟件設計的任務

通過集中時間上機實驗,使學生充分發揮已有的編程能力,熟悉編譯環境,選擇若干課題,進行審題、分析、設計和調試,并根據要求寫出實驗報告。

六.實驗內容

軟件設計課題共分A、B兩檔。A檔共5題,第一周完成;B檔共2題,第二周完成。

軟件設計報告 10005808 方軼琦

第二章

軟件開發平臺簡介

Visual Studio 2008 簡介

Microsoft? Visual Studio? 2008 使開發人員能夠快速創建高質量、用戶體驗豐富而又緊密聯系的應用程序,充分展示了 Microsoft 開發智能客戶端應用程序的構想。借助 Visual Studio 2008,采集和分析信息將變得更為簡單便捷,業務決策也會因此變得更為有效。任何規模的組織都可以使用 Visual Studio 2008 快速創建能夠利用 Windows Vista? 和 2007 Visual Studio system 的更安全、更易于管理并且更可靠的應用程序。

Visual Studio 2008 提供了高級開發工具、調試功能、數據庫功能和創新功能,幫助在各種平臺上快速創建當前最先進的應用程序。

Visual Studio 2008 包括各種增強功能,例如可視化設計器(使用.NET Framework 3.5 加速開發)、對 Web 開發工具的大量改進,以及能夠加速開發和處理所有類型數據的語言增強功能。Visual Studio 2008 為開發人員提供了所有相關的工具和框架支持,幫助創建引人注目的、令人印象深刻并支持 AJAX 的 Web 應用程序。開發人員能夠利用這些豐富的客戶端和服務器端框架輕松構建以客戶為中心的 Web 應用程序,這些應用程序可以集成任何后端數據提供程序、在任何當前瀏覽器內運行并完全訪問 ASP.NET 應用程序服務和 Microsoft平臺。

Visual Studio 2008 具備如下優勢:

快速開發新突破

從建模到編碼,再到調試,Visual Studio 2008 提供了增強的編程語言、設計器、編輯器以及和數據相關的新功能,可以幫助您體驗到生產力的突破。

創建杰出的用戶體驗

Visual Studio 2008為開發人員提供了新的工具,通過使用最新的平臺,如Web, Windows Vista、2007 Microsoft Office System、Microsoft SQL Server 2008、Windows Mobile?以及Windows Server?2008,開發人員可以快速創建個性化很強的用戶體驗以及互聯的應用程序。

跨越開發周期的協作

Visual Studio 2008 可以讓開發人員、設計人員、測試人員、架構師以及項目經理通過共享工具以及過程整合的方式,實現協同工作,從而減少了解決方案所花費的時間。

采用統一整合的方式處理數據

Visual Studio 2008 可以顯著的改進開發人員處理數據的方法。傳統方式中,開發人員不得不根據數據的存儲位置以及用戶的連接方法,對數據進行不同的操作。通過語言集成查詢(Language-Integrated Query, LINQ), 開發人員可以使用單獨的模型來查詢并轉換XML, Microsoft SQL Server?和對象數據,而不需要學習或使用特定的編程語言,這樣就降低了復雜度并提高了生產力。

體驗全新的Web開發工具

Visual Studio 2008為公司或開發團隊提供了一個健壯的、端到端的平臺來構建應用程序并通過Web 方式提供應用程序。通過Visual Studio 2008, 開發人員可以很容易的將最新的Windows Presentation Foundation(WPF)功能整合到現

有的Windows Forms 應用程序以及新的應用程序中,并在Windows平臺上創建高保真的用戶體驗。通過額外的ASP.NET AJAX 1.0和Microsoft

軟件設計報告 10005808 方軼琦

IntelliSense?以及對調試JavaScript 8.0的支持,構建AJAX 應用程序將會更加快捷。增強的Web 設計器帶有分離視圖編輯功能,可以讓開發人員同時看到HTML 頁面以及結果頁面,從而提升了Web 開發的體驗。

將數據庫功能整合到應用程序生命周期的管理中

Visual Studio 2008為不同的團隊成員提供了一系列針對架構、設計、程序開發、數據庫開發以及應用程序測試的相關工具。Microsoft Visual Studio Team System 2008 Database Edition 目前已經全部整合到了Microsoft Visual Studio Team System 2008 Team Suite 中。

構建運行在多個版本的.NET Framework 之上的應用程序

通過Visual Studio 2008, 開發人員可以使用一個工具來管理并構建針對多個版本的.NET Framework 的應用程序。Visual Studio 2008將會自動讓項目以及設置適應開發人員所指定的.NET framework 版本。開發人員不再需要安裝多個版本的Visual Studio 來維護運行于多個版本的.NET Framework 之上的應用程序。

為Microsoft Office 系列構建可靠的、可伸縮的應用程序

Visual Studio Tools for Office 目前已經完全整合到了Visual Studio 2008 專業版當中。Visual Studio 2008可以讓開發人員自己定制Microsoft Office Word, Microsoft Office Excel ,Microsoft Office PowerPoint , Microsoft Office Outlook ,Microsoft Office Visio , Microsoft Office InfoPath , 以及Microsoft Office Project, 從而提升用戶生產力并且更有效的利用了Office 2007 中的新增功能。對Microsoft Office 進行自定義,同時應用程序支持ClickOnce 部署,從而使開發人員可以采用正確的工具以及框架來實現對Microsoft Office 解決方案進行從容部署。

為Windows Vista 構建完美的應用程序

Visual Studio 2008可以讓開發人員快捷的創建出同Windows Vista 外觀風格一樣炫的應用程序,并且可以利用Windows Vista 中所提供的8000多種新API.在開發人員和設計人員之間實現無縫協作

Microsoft已經針對設計人員發布了名為Microsoft Expression的工具。在Visual Studio 2008中,來自于Microsoft Expression Web 以及Microsoft Expression Blend?中的設計元素可以在不更改后臺代碼的情況下,從Visual

Studio 中進行導入導出的操作。這就意味著開發人員和設計人員可以實時的進行無縫協作,并且不用擔心用戶界面設計更改所引起的開發問題。

軟件設計報告 10005808 方軼琦

第三章 軟件設計的內容

3.1 分數統計軟件(A1)

3.1.1設計題目及要求 設計題目:分數統計 要求:(1)、輸入某班級學生的姓名、分數;

(2)、對(1)的分數進行降冪排列并輸出;(3)、具有輸入輸出界面。3.1.2設計思想及程序流程框圖

這道題我是用C# 的可視化環境制作了一個分數統計系統。制作的界面如圖3.1-1所示:

實現的功能和設計方法:

1.在“姓名”和“分數”后面的文本框內輸入學生信息,輸入完畢后,按“輸入”按鈕,學生信息就會顯示到左下方的listbox中。

2.當用戶輸入若干名學生信息后,按“排序”按鈕,右下方的listbox中就會顯示按成績降冪排序后的學生信息。排序方法是使用冒泡排序法。

3.當用戶輸入學生信息出錯時,用鼠標選擇出錯項,按下“刪除選中的輸入項”,即可刪除輸錯項,繼續輸入學生信息。方法是用listBox.SelectedIndex找到選中的索引值,然后刪除數組中該學生信息和listbox中信息就可以了。

4.當用戶想重新輸入學生信息,按下“重新開始”清空數組和listbox中的信息。

5.當用戶要結束操作,按下“結束”,調用close()函數就可以跳出界面。主程序的流程圖如圖3.1-2所示。冒泡排序的流程圖如圖3.1-3所示。

軟件設計報告 10005808 方軼琦

開始N=學生數i=0ii?N開始輸入學生信息score[j-1]

圖3.1-1 主流程圖

圖3.1-2冒泡排序流程圖 3.1.3邏輯功能程序 具體程序如下:

#include #include #include struct student //存放學生信息的結構體 { char name[20];//字符型數組存放姓名

int grade;//成績類型 } temp,std[100];int main(){ int err;char x[5];int n;int i;int m;char ch[20];

軟件設計報告 10005808 方軼琦

do { system(“cls”);printf(“ nn”);printf(“

--------n”);printf(“ | 歡迎使用本系統 | n”);printf(“

--------n”);printf(“ n”);printf(“

-------------請輸入學生數--------------nn”);do{ printf(“tt學生數: ”);

err=0;i=0;

scanf(“%s”,x);//輸入選項

getchar();

while(x[i]!='

主站蜘蛛池模板: 国产美女裸体无遮挡免费视频| 国产美女爽到喷出水来视频| 国产农村一国产农村无码毛片| 毛片一区二区三区无码蜜臀| 日韩中文字幕免费视频| 欧美综合精品久久久久成人影院| 国产精品久久久久不卡无毒| 无码人妻专区免费视频| 成年女人wwxx免费国产| 久久精品亚洲一区二区三区浴池| 亚洲第一区无码专区| 99国产精品白浆无码流出| 少妇无码av无码专区线| 国产成人亚洲综合| 国产亚洲精品久久久久久大师| 精品亚洲成在人线av无码| 中文字幕亚洲综合久久2020| 天堂а√在线中文在线新版| 国产av一区最新精品| 久久精品国产丝袜人妻| 日本人妻伦在线中文字幕| 国产稚嫩高中生呻吟激情在线视频| 久久久久久曰本av免费免费| 亚洲成a人无码av波多野| 亚洲国产精品久久艾草| 伊人色综合一区二区三区影院视频| 性饥渴的少妇av无码影片| 亚洲精品国偷拍自产在线麻豆| 无码欧美毛片一区二区三| 久久精品国产精品亚洲精品| 亚洲人成色44444在线观看| 成人网站免费看黄a站视频| 在线观看一区二区三区国产免费| 亚洲色婷婷久久精品av蜜桃| 亚洲国产熟妇无码一区二区69| 99久久九九免费观看| 97超级碰碰碰久久久久| 中文字幕乱码免费视频| 欧美亚洲日本国产综合在线美利坚| 蜜臀av人妻国产精品建身房| 妺妺窝人体色www在线观看|