版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第八章大型趣味程序設(shè)計第2節(jié)趣味程序案例前言目的:通過案例解析,領(lǐng)略大型程序的設(shè)計思想和開發(fā)方法,了解程序評價標準案例:通訊錄簡單計算器俄羅斯方塊主要內(nèi)容通訊錄范例解析簡易計算器范例解析俄羅斯方塊范例解析通訊錄問題描述:
以文件的方式保存用戶錄入的通訊錄數(shù)據(jù)供用戶查詢和使用通訊錄信息通訊錄功能分析:
記錄項的基本屬性:姓名、性別、住址、聯(lián)系電話、電子郵件等操作功能:錄入:操作添加一條新的記錄項刪除:刪除一條已經(jīng)存在的記錄項
通訊錄功能分析:修改:改變記錄項的一個或多個屬性,并用新的記錄項覆蓋已經(jīng)存在的記錄項查找:根據(jù)用戶輸入的屬性值查找符合條件的記錄項。通訊錄功能分析:通訊錄數(shù)據(jù)以文件形式存儲在磁盤上,根據(jù)實際需要定義文件的存儲格式;在程序運行中需要對文件進行讀取操作。程序中還要對輸入數(shù)據(jù)的容錯性進行檢查,可以保證通訊錄數(shù)據(jù)的合法性。通訊錄設(shè)計:程序總體結(jié)構(gòu):輸入輸出模塊:人機交互,包括程序界面顯示、用戶輸入響應(yīng)、結(jié)果輸出等管理模塊:管理模塊從輸入輸出模塊讀取用戶命令并進行相應(yīng)的操作,包括錄入、刪除、修改、查找、列表等文件操作模塊:進行存儲文件的讀寫通訊錄模塊結(jié)構(gòu)圖輸入輸出終端輸入輸出模塊管理模塊文件操作模塊存儲文件用戶輸入系統(tǒng)輸出文件寫入文件讀出通訊錄界面設(shè)計:通訊錄數(shù)據(jù)結(jié)構(gòu)設(shè)計:
struct
myrecord{ unsignedintnum; unsignedintgroup; charname[MAXLEN+1]; chargender; datebirthday; charaddress[MAXLEN+1]; charphone[MAXLEN+1]; charemail[MAXLEN+1];};通訊錄數(shù)據(jù)結(jié)構(gòu)設(shè)計:
struct
mydate{ unsignedintyear; unsignedintmonth; unsignedintday;};typedef
struct
mydatedate;通訊錄數(shù)據(jù)結(jié)構(gòu)設(shè)計:三個查詢關(guān)鍵字:記錄編號、組別和聯(lián)系人姓名
unionmysearch_entry{ unsignedintnum; unsignedintgroup; charname[MAXLEN+1];};typedefunionmysearch_entrysearch_entry;通訊錄-函數(shù)設(shè)計函數(shù)原型函數(shù)功能函數(shù)處理描述voidmenulist(void)以文本方式顯示程序主菜單,同時響應(yīng)用戶輸入調(diào)用bioske(0),獲取按鍵的值voidupbar(inty)向上滾動光標條通過改變字體顏色實現(xiàn)光標條移動voiddownbar(inty) 向下滾動光標條通過改變字體顏色實現(xiàn)光標條移動voidmydelay(void)等待用戶響應(yīng)調(diào)用getch()實現(xiàn)voidformat(void)結(jié)果輸出時打印輸出的格式信息調(diào)用printf()實現(xiàn)voidsearchmenu(void)輸出查詢功能的子菜單調(diào)用printf()實現(xiàn)voidinput_search(charch)處理查詢時用戶的輸入,將關(guān)鍵字讀入根據(jù)輸入?yún)?shù)ch,執(zhí)行相應(yīng)的操作intinput_num(void)讀入一個整型數(shù)值(記錄編號),進行合法性檢查采用了遞歸的方法循環(huán)讀取數(shù)據(jù)int
input_new(myrecord*p)進行數(shù)據(jù)修改時,讀入一個新的記錄項,并用它覆蓋輸入?yún)?shù)所指向的數(shù)據(jù)記錄項。參數(shù):新記錄項的指針返回值:返回是否進行了修改的信息,已修改返回1,否則返回0。myrecord*input_app(void)錄入信息時處理鍵盤輸入,對輸入進行合法性檢查逐項錄入通訊記錄int
date_legal(int
year,int
month,intday)檢查日期是否為合法參數(shù):年、月、日的信息返回值:合法日期返回1,否則返回0menu.c輸入輸出文件通訊錄-函數(shù)設(shè)計file.c文件處理文件int
file_app(myrecord*p)添加一條新的記錄項參數(shù):要錄入的記錄項的指針返回值:操作結(jié)果(插入成功返回1,失敗返回0)myrecord*read_record(intn)從文件中讀出下標為n的塊(記錄項)參數(shù):下標值返回值:讀取結(jié)果的指針int
write_record(myrecord*p,intn)向文件中寫入某一塊(如果該塊已經(jīng)存在,將進行覆蓋)參數(shù):指向記錄項的指針和要寫入的塊位置返回值:操作結(jié)果(插入成功返回1,失敗返回0)intfile_search(search_entry*s,intf)對存儲文件進行遍歷,查找符合輸入的記錄項并輸出參數(shù):指向查詢項的指針和查詢類型返回值:符合條件的記錄項總數(shù)(如果是0則查找失?。﹊nt
file_delete(intn)刪除文件中某個記錄塊參數(shù):下標值返回值:操作結(jié)果(插入成功返回1,失敗返回0)通訊錄-函數(shù)設(shè)計control.c控制文件voidappend(void)執(zhí)行數(shù)據(jù)錄入操作調(diào)用input_app()完成數(shù)據(jù)錄入,調(diào)用file_app()完成數(shù)據(jù)保存。voiddelet(void)執(zhí)行數(shù)據(jù)記錄項刪除操作調(diào)用file_search查找要刪除的記錄,然后調(diào)用file_delete()進行刪除voidsearch(void)執(zhí)行數(shù)據(jù)查找操作調(diào)用searchmenu()進入查找的菜單,調(diào)用input_search(ch)獲得要查找的內(nèi)容,file_search()進行查找voidchange(void)執(zhí)行數(shù)據(jù)記錄項修改操作調(diào)用input_num()輸入待修改的記錄,調(diào)用file_search()進行查找,調(diào)用input_new()輸入新的內(nèi)容,調(diào)用write_record()進行更新voidlist_all(void)列出當前所有聯(lián)系人信息打開文件,遍歷所有記錄并輸出voidinit(void)系統(tǒng)初試化操作,保證文件的正確性和合法性調(diào)用fopen()打開文件,初始化voidquit(void)系統(tǒng)退出函數(shù),寫回文件以保證數(shù)據(jù)的一致性關(guān)閉文件,退出系統(tǒng)通訊錄-程序運行示意圖通訊錄源程序:略主要內(nèi)容通訊錄范例解析簡易計算器范例解析俄羅斯方塊范例解析簡單計算器問題描述:
Windows操作系統(tǒng)提供了計算器應(yīng)用程序,它有標準型和科學型兩種模式,是標準的Windows圖形界面應(yīng)用程序,支持鼠標和鍵盤操作。Windows提供的計算器簡單計算器功能分析:簡單計算器是對Windows計算器的模擬,設(shè)計其功能如下:具有加(+)、減(-)、乘(*)、除(/)四則運算和求百分運算;通過鼠標輸入一個數(shù),單擊S按鈕還可計算該數(shù)的平方根簡單計算器設(shè)計:簡單計算器的處理過程:首先進行圖形和鼠標初始化,接著顯示簡單計算器外觀,并接受用戶的鼠標控制使用。如果單擊了鼠標右鍵,則程序關(guān)閉圖形方式并結(jié)束運行。簡單計算器簡單計算器的流程圖主程序流程:voidmain(){
GraphInit();
initmouse(); picture(); compute();
closegraph();}簡單計算器界面外觀
:簡單計算器界面設(shè)計:(1)背景采用淺藍色,用灰色作底色和紅色作前景色畫一個bar3d圖形,模擬立體效果;(2)第1行是數(shù)據(jù)輸入和結(jié)果輸出的信息顯示框,使用bar函數(shù),用黃色填充;(3)信息顯示框下面是4排按鈕,每排5個,同樣使用bar函數(shù)。按鈕被設(shè)計成有按下和彈起兩種狀態(tài),初始是彈起狀態(tài);(4)在每個按鈕框上顯示相應(yīng)的按鈕標簽;(5)在簡單計算器下方輸出使用說明和設(shè)計單位信息。簡單計算器數(shù)據(jù)結(jié)構(gòu)設(shè)計:簡單計算器沒有用到復雜的數(shù)據(jù)結(jié)構(gòu),計算時定義了兩個double變量u、v和一個字符數(shù)組s及幾個標志變量。開始使用時u和v變量分別存儲第1次和第2次輸入的數(shù)據(jù),計算結(jié)果始終保存在u中。繼續(xù)運算時,輸入的數(shù)據(jù)存于v,并與u中的數(shù)據(jù)運算后結(jié)果保存于u中。簡單計算器數(shù)據(jù)結(jié)構(gòu)設(shè)計:簡單計算器進行加減乘除運算的函數(shù)compute()中,定義以下主要標志變量:(1)sign:表示'+'、'-'、'*'、'/'等運算符的整數(shù)變量。值為0表示當前未單擊過運算符。(2)flag:輸入數(shù)據(jù)時是否單擊了小數(shù)點。單擊了小數(shù)點,flag為1,否則為0。簡單計算器函數(shù)設(shè)計:簡單計算器采用了結(jié)構(gòu)化程序設(shè)計思想,由一個.h文件和四個.c文件組成,并構(gòu)造了TC工程文件來管理和生成簡單計算器應(yīng)用。每個源文件包含多個函數(shù)的設(shè)計,這些函數(shù)的功能設(shè)計及處理描述見下表。簡單計算器-函數(shù)設(shè)計文件名函數(shù)原型函數(shù)功能處理描述mouse.cvoidinitmouse()鼠標初始化調(diào)用0x33中斷的0號功能寄存器ax返回值不是-1,表明鼠標初始化失敗voidget_mouse_position(int*x,int*y)獲取鼠標位置坐標調(diào)用0x33中斷的3號功能鼠標位置存于寄存器cx和dx中,然后存于x、y指針變量指向的單元返回調(diào)用函數(shù)int
leftpress()判斷鼠標左鍵是否單擊調(diào)用0x33中斷的3號功能鼠標狀態(tài)存于寄存器bx,其第0位是1表明左鍵被按下int
rightpress()判斷鼠標右鍵是否單擊調(diào)用0x33中斷的3號功能鼠標狀態(tài)存于寄存器bx,其第1位是1表明右鍵被按下簡單計算器-函數(shù)設(shè)計picture.cvoidpicture()繪制計算器界面使用圖形函數(shù)繪制計算器外框調(diào)用公用函數(shù)bottonup()繪制彈起效果的按鈕調(diào)用系統(tǒng)outtextxy()輸出按鈕標簽調(diào)用系統(tǒng)outtextxy()輸出使用說明等信息注:函數(shù)開始繪制鼠標圖標并保存在全局變量imagep中,在compute()函數(shù)(見compute.c文件)中涉及顯示、移動鼠標等操作簡單計算器-函數(shù)設(shè)計util.cvoidGraphInit()圖形初始化調(diào)用系統(tǒng)函數(shù)initgraph()進行初始化失敗則程序結(jié)束運行voidbottondown(int
x,inty)畫按下效果的按鈕框調(diào)用畫線及顏色設(shè)置函數(shù)繪制按下效果的按鈕框(x,y)表示按鈕框的左上角坐標voidbottonup(int
x,inty)畫彈起效果的按鈕框調(diào)用畫線及顏色設(shè)置函數(shù)繪制彈起效果的按鈕框(x,y)表示按鈕框的左上角坐標voidshow(int
x,inty)單擊按鈕的效果顯示顯示按下的按鈕延時顯示彈起的按鈕注:模擬按鈕被單擊簡單計算器-函數(shù)設(shè)計util.cchargetnumber(int
x,inty)獲取單擊按鈕圖標每個按鈕的位置是確定的(即矩形框的左上角坐標和大小已知)根據(jù)單擊按鈕時鼠標的(x,y)可確定單擊了哪個按鈕,函數(shù)返回按鈕的標簽例:左上角坐標為(150,105)和右下角為(200,135)的矩形框表示計算器上數(shù)字'7'按鈕voidclearscreen()清信息顯示框清除信息顯示框中的數(shù)據(jù)(可能是輸入的數(shù)或輸出的計算結(jié)果)int
kx(chard)獲取按鈕的左上角x坐標d表示按鈕的圖標根據(jù)d返回按鈕的左上角x坐標按鈕左上角坐標為模擬單擊按鈕服務(wù)簡單計算器-函數(shù)設(shè)計util.cint
ky(chard)獲取按鈕的左上角y坐標d表示按鈕的圖標根據(jù)d返回按鈕的左上角y坐標按鈕左上角坐標為模擬單擊按鈕服務(wù)voidoutch(doublesum)在信息顯示框中輸出sumsum的絕對值大于1e20,輸出E,即對太大或太小的數(shù)顯示出錯sum小于等于1e20且大于等于1e8,顯示格式為d.dExxsum大于等于-1e20且小于等于-1e8,顯示格式為-d.dExxsum的值在-1e8和1e8之間,若是0,顯示0.其他,按實際顯示compute.cvoidcompute()簡單計算器的主處理函數(shù)最外層循環(huán)由鼠標右鍵控制,單擊右鍵則計算器退出在其內(nèi)層,判斷鼠標左鍵是否單擊,無則僅做移動鼠標光標處理若單擊左鍵,且MouseLeftFlag全局變量為1,則置該變量為0,避免重復進入,并進行相應(yīng)處理若單擊的是'C',則啟用計算器若單擊'0'-'9'數(shù)字鍵,則進行第1個或第2個輸入數(shù)據(jù)的處理若單擊加,減,乘,除,等號按鈕,進行相應(yīng)的計算處理若單擊小數(shù)點按鈕的處理若單擊求平方根按鈕的處理若單擊+/-按鈕的處理doublecalculate(doubleu,doublev,intsign)加減乘除計算處理根據(jù)sign的運算符進行加減乘除的計算處理計算結(jié)果保存在u中,但由函數(shù)返回voidmain()計算器的main()函數(shù)應(yīng)用程序由多個文件組成時,僅能有一個main()函數(shù)簡單計算器-函數(shù)設(shè)計簡單計算器源程序:略簡單計算器測試:關(guān)于測試方法和特殊輸入的測試,針對簡單計算器程序,我們可以從以下幾個方面來檢驗程序功能是否正確。1.界面及按鈕單擊測試檢查界面布局是否合理、正確,單擊按鈕是否有按下再彈起效果,單擊按鈕的輸入是否正確。簡單計算器測試:2.簡單計算器的功能測試(1)加、減、乘、除四則運算的測試。(2)優(yōu)先級處理的測試單擊‘1’、‘+’、‘2’、‘*’、‘4’、‘=’按鈕,結(jié)果是12,即不支持四則運算的優(yōu)先級。因為單擊‘*’按鈕時,1+2的結(jié)果3已經(jīng)計算并顯示在信息顯示框中,此時繼續(xù)計算乘4得結(jié)果12。簡單計算器測試:
(3)求平方根運算的測試
1)計算sqrt(9)
先單擊'9'、再'S'按鈕,看結(jié)果是否正確。
2)計算1+sqrt(9)
檢查是否能正確1+sqrt(9)。通過以上測試可以基本確定計算器程序是否實現(xiàn)了預定的功能。主要內(nèi)容通訊錄范例解析簡易計算器范例解析俄羅斯方塊范例解析俄羅斯方塊問題描述:
要求支持鍵盤操作和7種不同類型方塊的旋轉(zhuǎn)變換,并且界面上顯示下一個方塊的提示以及當前的玩家得分俄羅斯方塊功能分析:俄羅斯方塊游戲需要解決的問題包括:(
1)整個游戲界面的圖形顯示;(2)各種方塊形狀的表示;(3)如何控制方塊的移動、旋轉(zhuǎn)和下落速度;(4)如何判斷方塊是否到底;(5)如何判斷一行是否填滿以及如何消去填滿的行;(6)如何判斷游戲的結(jié)束及如何終止游戲;(7)游戲難度的設(shè)計和得分規(guī)則
俄羅斯方塊功能分析:重點:游戲面板的數(shù)據(jù)結(jié)構(gòu):二維數(shù)組7種形狀方塊的數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體保存每種形狀方塊的坐標、顏色俄羅斯方塊設(shè)計:程序總體結(jié)構(gòu):voidmain(){
InitializeGraph();
SetTimer(newtimer);/*設(shè)置新的時鐘中斷*/ while(1) {
StartGame();
ProcessInGame();
if(bOver)break; }
KillTimer();
closegraph();}俄羅斯方塊界面設(shè)計:分為左右兩個部分:左邊為游戲面板右邊有三個框:下一形狀提示框、速度框和記分框俄羅斯方塊數(shù)據(jù)結(jié)構(gòu)設(shè)計:定義如下的結(jié)構(gòu)體來表示每一個形狀:structblock{
intarrXY[8];
int
nColor;
int
nNext;};可用4*4的格子顯示7種形狀,并用4個數(shù)對來表示:arrXY[0]、arrXY[1]表示第一個數(shù)對,arrXY[2]、arrXY[3]表示第二個數(shù)對…。例如,(-2,0)、(-1,0)、(0,0)、(1,0)表示左邊的方塊
-1012-3□□□□-2□■□□-1□■□□0□■■□俄羅斯方塊數(shù)據(jù)結(jié)構(gòu)設(shè)計:每一種形狀都可以進行旋轉(zhuǎn),旋轉(zhuǎn)后的變形體同樣可用結(jié)構(gòu)體block表示。所有的7種形狀和它們的旋轉(zhuǎn)體(共19個)可保存在一個全局數(shù)組arrayBlock中。Block中的nNext就是當前形狀逆時針旋轉(zhuǎn)后的下一個形狀在該全局數(shù)組中的索引。俄羅斯方塊數(shù)據(jù)結(jié)構(gòu)設(shè)計:第一個形狀和它的旋轉(zhuǎn)體在arrayBlock中的表示□□□□□□□□□□□□□□□□□■□□□□□□□■■□□□□□□■□□□□■□□□■□■■■□□■■□■■■□□□■□■□□□BLOCKarrayBlock[19]={ /*x1,y1,x2,y2,x3,y3,x4,y4,color,next,第一種形狀*/ {0,-2,0,-1,0,0,1,0,CYAN,1},/*第一種形狀,對應(yīng)圖3-12的第一個*/ {-1,0,0,0,1,-1,1,0,CYAN,2},/*一種旋轉(zhuǎn)體,對應(yīng)圖3-12的第二個*/ {0,-2,1,-2,1,-1,1,0,CYAN,3},/*另一種旋轉(zhuǎn)體,對應(yīng)圖3-12的第三個*/ {-1,-1,-1,0,0,-1,1,-1,CYAN,0},/*第三種旋轉(zhuǎn)體,對應(yīng)圖3-12的第四個*/…….}俄羅斯方塊數(shù)據(jù)結(jié)構(gòu)設(shè)計:游戲的主界面:寬10、高20的游戲板數(shù)據(jù)結(jié)構(gòu):全局數(shù)組Gameboard[12][22],1表示已有方塊,0表示這個位置空著。在10*20基礎(chǔ)上各加2行、2列為了便于判斷形狀在移動時是否到邊、到底。整個屏幕的坐標系原先為640*480。在此游戲中,將16個像素定義為一個方格的邊長,所以坐標系轉(zhuǎn)變成為了40*30(640/16=40,480/16=30)。俄羅斯方塊數(shù)據(jù)結(jié)構(gòu)設(shè)計:絕對坐標和相對坐標的轉(zhuǎn)換相對坐標即指在結(jié)構(gòu)體block中的4對坐標某個形狀的絕對坐標:指原點方塊(4*4格子中的第2列、第4行的方塊)在10*20的游戲面板中的坐標
俄羅斯方塊-程序結(jié)構(gòu)1個.h文件和4個.c文件,共20個函數(shù);函數(shù)相互關(guān)系見右圖
俄羅斯方塊-函數(shù)設(shè)計Timer.c文件文件名函數(shù)原型函數(shù)功能函數(shù)處理描述Timer.cVoidinterrupt(*oldtimer)(void)指向原來時鐘中斷處理過程入口的中斷處理函數(shù)指針(句柄)Voidinterruptnewtimer(void)新的時鐘中斷處理函數(shù)調(diào)用(*oldtimer)()函數(shù)句柄,計時器自加1VoidSetTimer(voidinterrupt(*IntProc)(void))設(shè)置新的時鐘中斷處理過程調(diào)用setvect()設(shè)置新的時鐘中斷處理過程voidKillTimer()恢復原有的時鐘中斷處理過程調(diào)用setvect()恢復原有的時鐘中斷處理過程俄羅斯方塊-函數(shù)設(shè)計Drawing.c文件文件名函數(shù)原型函數(shù)功能函數(shù)處理描述Drawing.cvoidInitializeGraph()初始化圖形模式①調(diào)用initgraph()切換到圖形模式②初始化若發(fā)生錯誤,則返回錯誤碼。VoidInitializeGameboard()初始化游戲面板以及下一形狀提示框、計分框和難度框①調(diào)用bar()、rectangle()等庫函數(shù)繪圖函數(shù)繪制游戲界面。②調(diào)用outtextxy()函數(shù)顯示文字。俄羅斯方塊-函數(shù)設(shè)計Util.c文件函數(shù)原型函數(shù)功能函數(shù)處理描述Util.cvoidDrawSquare(intx,inty)在坐標(x,y)處畫方塊調(diào)用庫函數(shù)bar()繪制方塊VoidDrawBlock(int
BlockIndex,int
sx,int
sy,intcolor)在坐標(sx,sy)處繪制顏色為color的形狀調(diào)用DrawSquare()函數(shù)繪制形狀I(lǐng)nt
IsConflict(int
BlockIndex,intx,inty)判斷形狀是否能存在于坐標(x,y)處無沖突返回0,有沖突返回1VoidHandleLeft(int
BlockIndex,int*x,int*y)按下左方向鍵時的處理函數(shù)調(diào)用IsConflic()函數(shù)判斷形狀是否可以左移,VoidHandleRight(int
BlockIndex,int*x,int*y)按下右方向鍵時的處理函數(shù)調(diào)用IsConflic()函數(shù)判斷形狀是否可以右移,VoidHandleUp(int*BlockIndex,int*x,int*y)按下上方向鍵(旋轉(zhuǎn)鍵)時的處理函數(shù)調(diào)用IsConflic()函數(shù)判斷形狀是否可以旋轉(zhuǎn),int
HandleDown(int
BlockIndex,int*x,int*y)按下向下方向鍵或自由下落時的處理函數(shù)形狀在自由下落返回0,無法下落了返回1,并做相應(yīng)處理int
IsLineFull(inty)判斷第y行是否已被填滿填滿返回1,否則返回0voidKillLine(inty)消去第y行將消去的行置為背景色int
KillLines(inty)消去第y行以及與第y行連續(xù)的上面被填滿的行返回消去的行數(shù)int
IsGameOver()判斷游戲是否結(jié)束游戲結(jié)束返回1,否則返回0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024屯溪區(qū)旅游信息化建設(shè)合同
- 2024年5G網(wǎng)絡(luò)部署:電信設(shè)備采購意向書
- 04版物業(yè)公司重大突發(fā)事件應(yīng)對策略合同
- 2024年企業(yè)環(huán)保治理技術(shù)服務(wù)合同
- 2023年資陽市錄用公務(wù)員(參照管理工作人員)考試真題
- 2023年銀川市西夏區(qū)鎮(zhèn)北堡第一幼兒園教師招聘考試真題
- 2024年地煉煤油購銷運輸一體化合同
- 2024年工程護坡勞務(wù)分包Specification
- 2023年南寧市政協(xié)辦公室招聘考試真題
- 2023年惠州市龍門縣退役軍人事務(wù)局招聘考試真題
- 電力專業(yè)標準化技術(shù)委員會管理細則
- 《用一元一次方程求解數(shù)軸上動點問題》 課件
- Loadport控制系統(tǒng)設(shè)計畢業(yè)論文
- APOGEE系統(tǒng)集成培訓ppt課件
- 心理健康教育和家校協(xié)同育人工作匯報
- 10kV線路損耗計算
- 群文閱讀《父母的愛》
- 看圖寫話二年級公開課已修改版
- 安徽省淮北市地方婚禮流程資料
- 附件3-4歐曼金融服務(wù)經(jīng)銷商融資業(yè)務(wù)介紹
- 中醫(yī)骨傷科學9肩周炎上肢傷筋
評論
0/150
提交評論