C語(yǔ)言程序設(shè)計(jì)課程大型作業(yè)課件_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)課程大型作業(yè)課件_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)課程大型作業(yè)課件_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)課程大型作業(yè)課件_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)課程大型作業(yè)課件_第5頁(yè)
已閱讀5頁(yè),還剩95頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語(yǔ)言程序設(shè)計(jì)課程大型作業(yè)大型作業(yè)內(nèi)容介紹圖形操作簡(jiǎn)介鼠標(biāo)操作簡(jiǎn)介西文狀態(tài)下漢字的顯示DOS下如何發(fā)聲良好的程序設(shè)計(jì)風(fēng)格C語(yǔ)言程序設(shè)計(jì)課程大型作業(yè)大型作業(yè)內(nèi)容介紹1題目簡(jiǎn)介

五子棋游戲的棋盤(pán)功能,要求能悔棋一步,判斷玩家輸贏。中國(guó)象棋游戲的棋盤(pán)功能,能判斷走棋是否合法,允許悔棋一步,并能對(duì)玩家記時(shí)。俄羅斯方塊,要求能選難度,記分規(guī)則同掌上機(jī)。題目簡(jiǎn)介

五子棋游戲的棋盤(pán)功能,要求能悔棋一步,判斷玩家輸贏2所有題目簡(jiǎn)介中文窗口下拉式菜單設(shè)計(jì),漢化界面,只要求實(shí)現(xiàn)菜單,不要求TC功能BMP圖象處理,柔化SMOOTH、銳化SHARPEN、浮雕EMBOSS、擴(kuò)散DIFFUSE和定制過(guò)濾器。對(duì)640*480*256色圖象處理所有題目簡(jiǎn)介中文窗口下拉式菜單設(shè)計(jì),漢化界面,只要求實(shí)現(xiàn)菜單3題目簡(jiǎn)介二維圖象動(dòng)畫(huà)演示,移動(dòng)、翻轉(zhuǎn)、旋轉(zhuǎn)。題目簡(jiǎn)介二維圖象動(dòng)畫(huà)演示,移動(dòng)、翻轉(zhuǎn)、旋轉(zhuǎn)。4題目簡(jiǎn)介三維模型處理,對(duì)一個(gè)立方體進(jìn)行旋轉(zhuǎn)、平移、放大縮小。題目簡(jiǎn)介三維模型處理,對(duì)一個(gè)立方體進(jìn)行旋轉(zhuǎn)、平移、放大縮小。5題目簡(jiǎn)介細(xì)胞生命演示,考慮到二維大數(shù)組的存取,及大數(shù)組的動(dòng)態(tài)生成。數(shù)據(jù)庫(kù)的讀寫(xiě),對(duì)FOXBASE數(shù)據(jù)庫(kù)的DBF和MEM文件進(jìn)行讀寫(xiě)。題目簡(jiǎn)介細(xì)胞生命演示,考慮到二維大數(shù)組的存取,及大數(shù)組的動(dòng)態(tài)6題目簡(jiǎn)介電腦音樂(lè)程序,能根據(jù)樂(lè)譜用PC喇叭演奏。DOS版畫(huà)筆程序,要求用不同粗細(xì)的點(diǎn)、線和不同填充模式的方塊、圓,以不同顏色畫(huà)圖。題目簡(jiǎn)介電腦音樂(lè)程序,能根據(jù)樂(lè)譜用PC喇叭演奏。7題目簡(jiǎn)介漢諾塔的動(dòng)態(tài)演示,自動(dòng)移動(dòng)HANIO,要求能輸入塔盤(pán)的數(shù)量。題目簡(jiǎn)介漢諾塔的動(dòng)態(tài)演示,自動(dòng)移動(dòng)HANIO,要求能輸入塔盤(pán)8題目簡(jiǎn)介數(shù)據(jù)加密技術(shù)探討,DES加密算法的實(shí)現(xiàn),要求能夠加密解密,密鑰位數(shù)可以指定。撲克牌24點(diǎn)游戲,人機(jī)對(duì)弈,提供難度選擇。題目簡(jiǎn)介數(shù)據(jù)加密技術(shù)探討,DES加密算法的實(shí)現(xiàn),要求能夠加密9題目簡(jiǎn)介T(mén)IC-TAC-TOE的人機(jī)對(duì)弈,機(jī)器判斷輸贏。題目簡(jiǎn)介T(mén)IC-TAC-TOE的人機(jī)對(duì)弈,機(jī)器判斷輸贏。10題目簡(jiǎn)介人工智能“重排九宮”,8個(gè)數(shù)字放在3*3九個(gè)格子中,余下一個(gè)格子為空。要求可以用鼠標(biāo)拖動(dòng)數(shù)字,并記錄玩家花費(fèi)的時(shí)間。題目簡(jiǎn)介人工智能“重排九宮”,8個(gè)數(shù)字放在3*3九個(gè)格子中,11題目簡(jiǎn)介跳棋,將三只黑子放在123方格中,3只白子放在567方格中,空格是4,將白子移到黑子位置,黑子移到白子位置。規(guī)則,可以走一步或跳一格,不能后退。題目簡(jiǎn)介跳棋,將三只黑子放在123方格中,3只白子放在56712題目簡(jiǎn)介中文文本文件閱讀器。能處理HOME,END,PGUP,PGDN,ARROW,SPACEBAR,ESCAPE鍵。顯示文件名,文件大小,以及操作提示。題目簡(jiǎn)介中文文本文件閱讀器。能處理HOME,END,PGUP13題目簡(jiǎn)介模擬PCTOOLS對(duì)文件進(jìn)行編輯同時(shí)顯示16進(jìn)制和字符格式信息。題目簡(jiǎn)介模擬PCTOOLS對(duì)文件進(jìn)行編輯同時(shí)顯示16進(jìn)制和字14題目簡(jiǎn)介自動(dòng)發(fā)牌程序,能夠?qū)?4張牌隨機(jī)發(fā)給四個(gè)人。題目簡(jiǎn)介自動(dòng)發(fā)牌程序,能夠?qū)?4張牌隨機(jī)發(fā)給四個(gè)人。15課題要求四個(gè)人一組,自由組合。每組選一個(gè)題目,確定組長(zhǎng)。上機(jī)時(shí)坐在一起。學(xué)期結(jié)束前每組提交一份正規(guī)的源程序清單,要有詳盡的注釋?zhuān)瑫r(shí)注明哪個(gè)人負(fù)責(zé)編寫(xiě)哪部分程序。最后兩周驗(yàn)收。課題要求四個(gè)人一組,自由組合。每組選一個(gè)題目,確定組長(zhǎng)。上機(jī)16圖形操作簡(jiǎn)介必要的頭文件必須的系統(tǒng)變量初始化圖形界面初始化出錯(cuò)處理取得必須的信息關(guān)閉圖形界面一些常用的畫(huà)圖函數(shù)圖形操作簡(jiǎn)介必要的頭文件17必要的頭文件#include<dos.h>#include<conio.h>#include<stdio.h>#include<stdlib.h>#include<graphics.h>必要的頭文件#include<dos.h>18必須的變量intGraphDriver; intGraphMode; doubleAspectRatio; intMaxX,MaxY; intMaxColors; intErrorCode;structpalettetypepalette; 必須的變量intGraphDriver; 19初始化圖形界面GraphDriver=DETECT;initgraph(&GraphDriver,&GraphMode,"");

initgraph(&GraphDriver,&GraphMode,”d:\\tc");初始化圖形界面GraphDriver=DETECT;20初始化出錯(cuò)處理ErrorCode=graphresult(); if(ErrorCode!=grOk){printf("GraphicsSystemError:%s\n",grapherrormsg(ErrorCode));exit(1);}初始化出錯(cuò)處理ErrorCode=graphresul21取得必須的參數(shù)getpalette(&palette); MaxColors=getmaxcolor()+1; MaxX=getmaxx();MaxY=getmaxy(); AspectRatio=(double)xasp/(double)yasp;取得必須的參數(shù)getpalette(&palette)22關(guān)閉圖形界面closegraph(); /*Returnthesystemtotextmode*/關(guān)閉圖形界面closegraph(); 23一些常用的畫(huà)圖函數(shù)outtext(buffer),outtextxy(x,y,buffer)line(x0,y0,x1,y1);linerel();lineto()circle(intx,inty,intradius);arc()bar(intl,intt,intr,intb);bar3d();moveto(intx,inty);moverel(dx,dy);getx()putpixel(x,y,color);getpixel(x,y)setcolor();setbkcolor();getcolor();getbkcolor一些常用的畫(huà)圖函數(shù)outtext(buffer),out24鼠標(biāo)操作鼠標(biāo)簡(jiǎn)介鼠標(biāo)驅(qū)動(dòng)程序的主要功能鼠標(biāo)功能調(diào)用方法鼠標(biāo)的初始化鼠標(biāo)光標(biāo)的顯示與隱藏讀取按鈕狀態(tài),讀取或設(shè)置光標(biāo)位置設(shè)置鼠標(biāo)的光標(biāo)形狀和移動(dòng)范圍鼠標(biāo)操作鼠標(biāo)簡(jiǎn)介25鼠標(biāo)簡(jiǎn)介鼠標(biāo)系統(tǒng)實(shí)際上由兩個(gè)主要元素組成:鼠標(biāo)機(jī)制和稱(chēng)作鼠標(biāo)驅(qū)動(dòng)程序的內(nèi)存駐留程序。鼠標(biāo)驅(qū)動(dòng)程序提供與鼠標(biāo)通信所需的全部低級(jí)支持。此外,它自動(dòng)維持鼠標(biāo)光標(biāo)位置和發(fā)現(xiàn)是否按下了某個(gè)鍵。一旦裝入驅(qū)動(dòng)程序,鼠標(biāo)就可以被隨后執(zhí)行的任意程序使用。鼠標(biāo)簡(jiǎn)介鼠標(biāo)系統(tǒng)實(shí)際上由兩個(gè)主要元素組成:鼠標(biāo)機(jī)制和稱(chēng)26鼠標(biāo)簡(jiǎn)介可以通過(guò)PC中斷33H訪問(wèn)鼠標(biāo)和鼠標(biāo)驅(qū)動(dòng)程序的各種功能。所選擇的特定函數(shù)依賴(lài)于中斷時(shí)AX寄存器的值。三個(gè)其它寄存器(BX、CX和DX)用于把各種參數(shù)傳送給鼠標(biāo)例程。同樣,鼠標(biāo)函數(shù)使用這四個(gè)寄存器把鼠標(biāo)的位置和按鈕的狀態(tài)返回給調(diào)用函數(shù)。鼠標(biāo)簡(jiǎn)介可以通過(guò)PC中斷33H訪問(wèn)鼠標(biāo)和鼠標(biāo)驅(qū)動(dòng)程序的27鼠標(biāo)驅(qū)動(dòng)程序主要功能鼠標(biāo)驅(qū)動(dòng)程序主要功能28鼠標(biāo)驅(qū)動(dòng)程序主要功能鼠標(biāo)驅(qū)動(dòng)程序主要功能29鼠標(biāo)功能調(diào)用方法用TC通過(guò)INT33H中斷來(lái)編制基本函數(shù),有三種常用方法:嵌入?yún)R編程序,如:ASMCLI清中斷利用全程變量賦予寄存器值,然后通過(guò)函數(shù)geninterrupt()調(diào)用中斷實(shí)現(xiàn)利用聯(lián)合類(lèi)型REGS,SREGS通過(guò)函數(shù)int86(),int86x()調(diào)用中斷,原型在鼠標(biāo)功能調(diào)用方法用TC通過(guò)INT33H中斷來(lái)編制基本30鼠標(biāo)的初始化InitMouse(){unionREGSregs; regs.x.ax=0; int86(0x33,®s,®s); if(regs.x.ax==0) returnfalse; elsereturntrue;}鼠標(biāo)的初始化InitMouse()31鼠標(biāo)光標(biāo)的隱藏HideCur(){unionREGSregs; if(visual){ regs.x.ax=2; int86(0x33,®s,®s); visual=false;}}鼠標(biāo)光標(biāo)的隱藏HideCur()32鼠標(biāo)光標(biāo)的顯示ShowCur(){unionREGSregs; if(!visual){ regs.x.ax=1; int86(0x33,®s,®s); visual=true;}}鼠標(biāo)光標(biāo)的顯示ShowCur()33鼠標(biāo)光標(biāo)的顯示與隱藏在鼠標(biāo)驅(qū)動(dòng)程序中,鼠標(biāo)的顯示狀態(tài)用0值表示,隱藏用負(fù)值表示,每調(diào)用一次顯示功能則該值加一,每調(diào)用一次隱藏功能,則該值減一。這樣,在多次調(diào)用了驅(qū)動(dòng)程序的隱藏鼠標(biāo)光標(biāo)功能后,再調(diào)用顯示鼠標(biāo)光標(biāo)功能時(shí),將不能正常顯示鼠標(biāo)光標(biāo)。需要加入一個(gè)visual布爾型變量,來(lái)取代驅(qū)動(dòng)程序中的數(shù)值。鼠標(biāo)光標(biāo)的顯示與隱藏在鼠標(biāo)驅(qū)動(dòng)程序中,鼠標(biāo)的顯示狀態(tài)用034讀取鼠標(biāo)的狀態(tài)Status(){ unionREGSregs; regs.x.ax=3; int86(0x33,®s,®s); x=regs.x.cx;y=regs.x.dx; status=regs.x.bx;}讀取鼠標(biāo)的狀態(tài)Status()35讀取鼠標(biāo)的狀態(tài)其中X,Y為光標(biāo)位置status&1左鍵狀態(tài),1為按下,0為未按status&2右鍵狀態(tài),1為按下,0為未按status&4中鍵狀態(tài),1為按下,0為未按要注意循環(huán)檢測(cè)時(shí)的抖動(dòng)現(xiàn)象,可增加一些空循環(huán)或延時(shí)來(lái)清除剩余的按鍵信號(hào)。讀取鼠標(biāo)的狀態(tài)其中X,Y為光標(biāo)位置36設(shè)置光標(biāo)位置voidMoveMouse(intx,inty){ REGSregs; regs.x.ax=4; regs.x.cx=x; regs.x.dx=y; int86(0x33,®s,®s);}設(shè)置光標(biāo)位置voidMoveMouse(intx,int37設(shè)置鼠標(biāo)光標(biāo)形狀設(shè)置鼠標(biāo)光標(biāo)需要三個(gè)方面信息:鼠標(biāo)的外邊界:8*8點(diǎn)陣,16個(gè)整數(shù)鼠標(biāo)的內(nèi)部形狀:8*8點(diǎn)陣,16個(gè)整數(shù)以及鼠標(biāo)的熱點(diǎn)的相對(duì)坐標(biāo):intx,y其中外邊界和內(nèi)邊界連續(xù)存放,為長(zhǎng)度為32的整型數(shù)組intmarks[32]設(shè)置鼠標(biāo)光標(biāo)形狀設(shè)置鼠標(biāo)光標(biāo)需要三個(gè)方面信息:38設(shè)置鼠標(biāo)光標(biāo)形狀SetCurs(unsignedmasks[32],x,y){ unionREGSregs; structSREGSsregs; regs.x.ax=9; regs.x.bx=x;regs.x.cx=y;/*hotspot*/ regs.x.dx=(unsigned)masks; segread(&sregs);int86(0x33,®s,®s);}設(shè)置鼠標(biāo)光標(biāo)形狀SetCurs(unsignedmasks39手的光標(biāo)數(shù)據(jù){0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,/*cursormask*/0x0c00,0x1200,0x1200,0x1200,0x13fe,0x1249,0x1249,0x1249,0x7249,0x9001,0x9001,0x9001,0x8001,0x8001,0x4002,0x3ffc/*cursormask*/}{4,0}/*hotspot*/手的光標(biāo)數(shù)據(jù){0xffff,0xffff,0xffff40設(shè)置鼠標(biāo)的移動(dòng)范圍SetMouseArea(intx0,inty0,intx1,inty1){ unionREGSregs; regs.x.ax=7;regs.x.cx=x0;regs.x.dx=x1; int86(0x33,®s;®s); regs.x.ax=8;regs.x.cx=y0;regs.x.dx=y1; int86(0x33,®s,®s);}設(shè)置鼠標(biāo)的移動(dòng)范圍SetMouseArea(intx0,i41西文狀態(tài)下漢字的顯示漢字庫(kù)簡(jiǎn)介取得字節(jié)的某一位顯示24點(diǎn)陣漢字顯示16點(diǎn)陣漢字在字庫(kù)中取字模西文狀態(tài)下漢字的顯示漢字庫(kù)簡(jiǎn)介42漢字庫(kù)簡(jiǎn)介程序中可直接使用UCDOS中的HZK16,ASC16和HZK24三個(gè)文件。HZK16中存儲(chǔ)的是16*16點(diǎn)陣漢字是按行存儲(chǔ)的以便于顯示,每個(gè)漢字字模32BYTE,按照國(guó)標(biāo)碼順序存儲(chǔ),其中也包含了682個(gè)純中文符號(hào)字母。漢字庫(kù)簡(jiǎn)介程序中可直接使用UCDOS中的HZK16,AS43漢字庫(kù)的情況ASC16存儲(chǔ)256個(gè)西文ASCII碼的8*16點(diǎn)陣格式,按行存儲(chǔ),每個(gè)ASCII碼16字節(jié)。HZK24X存儲(chǔ)24*24點(diǎn)陣打印字模,按列存儲(chǔ),每個(gè)漢字字模占576字節(jié)。24*24點(diǎn)陣漢字存儲(chǔ)兩比較大,所以從16區(qū)1位“啊”字開(kāi)始存儲(chǔ),以減少字庫(kù)大小。其中X為KS表示楷體,宋體等。漢字庫(kù)的情況ASC16存儲(chǔ)256個(gè)西文ASCII碼的8*1644取得字節(jié)某一位的值intgetbit(unsignedcharbyte,intbit){ if(bit<0||bit>7) return0; return(byte>>bit)&0x1;}函數(shù)getbit用于得出一個(gè)字節(jié)中每個(gè)位(bit)是0還是1。取得字節(jié)某一位的值intgetbit(unsignedc45顯示24點(diǎn)陣的漢字voidPutChn24(x,y,char*by,color){ inti1,i2,i3; for(i1=0;i1<24;i1++)//LINES for(i2=0;i2<3;i2++) //3bytesperline for(i3=0;i3<8;i3++) f(getbit(by[i1*3+i2],7-i3)) putpixel(x+i1,y+(i2*8+i3),color);}顯示24點(diǎn)陣的漢字voidPutChn24(x,y,cha46顯示16點(diǎn)陣的漢字voidPutChn16(x,y,char*buf,color){ inti1,i2,i3; for(i1=0;i1<16;i1++) for(i2=0;i2<2;i2++) for(i3=0;i3<8;i3++) if(getbit(buf[i1*2+i2],7-i3)) putpixel(x+i2*8+i3,y+i1,color);}顯示16點(diǎn)陣的漢字voidPutChn16(x,y,cha47在字庫(kù)中找字模qu=c1-0xa1;wei=c2-0xa1;通過(guò)計(jì)算個(gè)計(jì)算出該區(qū)位碼在漢字庫(kù)中的偏移量:lenth=32longoffset=((qu)*94+wei)*(long)lenth;24*24點(diǎn)陣漢字字模的讀取類(lèi)似,只是其偏移量計(jì)算稍有不同:lenth=72longoffset=((qu-15)*94+wei)*(long)lenth;在字庫(kù)中找字模qu=c1-0xa1;wei=c248DOS下如何發(fā)聲在下,有如下三個(gè)函數(shù)可以處理聲音:sound(longfreq):發(fā)出特定頻率的聲音nosound():停止發(fā)聲delay():延時(shí)特定時(shí)間DOS下如何發(fā)聲在下,有如下三個(gè)函數(shù)可以處理聲音:49良好的程序設(shè)計(jì)風(fēng)格使用有意義的變量名匈牙利式命名法文檔的模塊化組織(縮進(jìn)、對(duì)齊)自頂向下的設(shè)計(jì)方法增加程序的可讀性(增加注釋?zhuān)┎灰獮E用語(yǔ)言技巧良好的程序設(shè)計(jì)風(fēng)格使用有意義的變量名50C語(yǔ)言程序設(shè)計(jì)課程大型作業(yè)大型作業(yè)內(nèi)容介紹圖形操作簡(jiǎn)介鼠標(biāo)操作簡(jiǎn)介西文狀態(tài)下漢字的顯示DOS下如何發(fā)聲良好的程序設(shè)計(jì)風(fēng)格C語(yǔ)言程序設(shè)計(jì)課程大型作業(yè)大型作業(yè)內(nèi)容介紹51題目簡(jiǎn)介

五子棋游戲的棋盤(pán)功能,要求能悔棋一步,判斷玩家輸贏。中國(guó)象棋游戲的棋盤(pán)功能,能判斷走棋是否合法,允許悔棋一步,并能對(duì)玩家記時(shí)。俄羅斯方塊,要求能選難度,記分規(guī)則同掌上機(jī)。題目簡(jiǎn)介

五子棋游戲的棋盤(pán)功能,要求能悔棋一步,判斷玩家輸贏52所有題目簡(jiǎn)介中文窗口下拉式菜單設(shè)計(jì),漢化界面,只要求實(shí)現(xiàn)菜單,不要求TC功能BMP圖象處理,柔化SMOOTH、銳化SHARPEN、浮雕EMBOSS、擴(kuò)散DIFFUSE和定制過(guò)濾器。對(duì)640*480*256色圖象處理所有題目簡(jiǎn)介中文窗口下拉式菜單設(shè)計(jì),漢化界面,只要求實(shí)現(xiàn)菜單53題目簡(jiǎn)介二維圖象動(dòng)畫(huà)演示,移動(dòng)、翻轉(zhuǎn)、旋轉(zhuǎn)。題目簡(jiǎn)介二維圖象動(dòng)畫(huà)演示,移動(dòng)、翻轉(zhuǎn)、旋轉(zhuǎn)。54題目簡(jiǎn)介三維模型處理,對(duì)一個(gè)立方體進(jìn)行旋轉(zhuǎn)、平移、放大縮小。題目簡(jiǎn)介三維模型處理,對(duì)一個(gè)立方體進(jìn)行旋轉(zhuǎn)、平移、放大縮小。55題目簡(jiǎn)介細(xì)胞生命演示,考慮到二維大數(shù)組的存取,及大數(shù)組的動(dòng)態(tài)生成。數(shù)據(jù)庫(kù)的讀寫(xiě),對(duì)FOXBASE數(shù)據(jù)庫(kù)的DBF和MEM文件進(jìn)行讀寫(xiě)。題目簡(jiǎn)介細(xì)胞生命演示,考慮到二維大數(shù)組的存取,及大數(shù)組的動(dòng)態(tài)56題目簡(jiǎn)介電腦音樂(lè)程序,能根據(jù)樂(lè)譜用PC喇叭演奏。DOS版畫(huà)筆程序,要求用不同粗細(xì)的點(diǎn)、線和不同填充模式的方塊、圓,以不同顏色畫(huà)圖。題目簡(jiǎn)介電腦音樂(lè)程序,能根據(jù)樂(lè)譜用PC喇叭演奏。57題目簡(jiǎn)介漢諾塔的動(dòng)態(tài)演示,自動(dòng)移動(dòng)HANIO,要求能輸入塔盤(pán)的數(shù)量。題目簡(jiǎn)介漢諾塔的動(dòng)態(tài)演示,自動(dòng)移動(dòng)HANIO,要求能輸入塔盤(pán)58題目簡(jiǎn)介數(shù)據(jù)加密技術(shù)探討,DES加密算法的實(shí)現(xiàn),要求能夠加密解密,密鑰位數(shù)可以指定。撲克牌24點(diǎn)游戲,人機(jī)對(duì)弈,提供難度選擇。題目簡(jiǎn)介數(shù)據(jù)加密技術(shù)探討,DES加密算法的實(shí)現(xiàn),要求能夠加密59題目簡(jiǎn)介T(mén)IC-TAC-TOE的人機(jī)對(duì)弈,機(jī)器判斷輸贏。題目簡(jiǎn)介T(mén)IC-TAC-TOE的人機(jī)對(duì)弈,機(jī)器判斷輸贏。60題目簡(jiǎn)介人工智能“重排九宮”,8個(gè)數(shù)字放在3*3九個(gè)格子中,余下一個(gè)格子為空。要求可以用鼠標(biāo)拖動(dòng)數(shù)字,并記錄玩家花費(fèi)的時(shí)間。題目簡(jiǎn)介人工智能“重排九宮”,8個(gè)數(shù)字放在3*3九個(gè)格子中,61題目簡(jiǎn)介跳棋,將三只黑子放在123方格中,3只白子放在567方格中,空格是4,將白子移到黑子位置,黑子移到白子位置。規(guī)則,可以走一步或跳一格,不能后退。題目簡(jiǎn)介跳棋,將三只黑子放在123方格中,3只白子放在56762題目簡(jiǎn)介中文文本文件閱讀器。能處理HOME,END,PGUP,PGDN,ARROW,SPACEBAR,ESCAPE鍵。顯示文件名,文件大小,以及操作提示。題目簡(jiǎn)介中文文本文件閱讀器。能處理HOME,END,PGUP63題目簡(jiǎn)介模擬PCTOOLS對(duì)文件進(jìn)行編輯同時(shí)顯示16進(jìn)制和字符格式信息。題目簡(jiǎn)介模擬PCTOOLS對(duì)文件進(jìn)行編輯同時(shí)顯示16進(jìn)制和字64題目簡(jiǎn)介自動(dòng)發(fā)牌程序,能夠?qū)?4張牌隨機(jī)發(fā)給四個(gè)人。題目簡(jiǎn)介自動(dòng)發(fā)牌程序,能夠?qū)?4張牌隨機(jī)發(fā)給四個(gè)人。65課題要求四個(gè)人一組,自由組合。每組選一個(gè)題目,確定組長(zhǎng)。上機(jī)時(shí)坐在一起。學(xué)期結(jié)束前每組提交一份正規(guī)的源程序清單,要有詳盡的注釋?zhuān)瑫r(shí)注明哪個(gè)人負(fù)責(zé)編寫(xiě)哪部分程序。最后兩周驗(yàn)收。課題要求四個(gè)人一組,自由組合。每組選一個(gè)題目,確定組長(zhǎng)。上機(jī)66圖形操作簡(jiǎn)介必要的頭文件必須的系統(tǒng)變量初始化圖形界面初始化出錯(cuò)處理取得必須的信息關(guān)閉圖形界面一些常用的畫(huà)圖函數(shù)圖形操作簡(jiǎn)介必要的頭文件67必要的頭文件#include<dos.h>#include<conio.h>#include<stdio.h>#include<stdlib.h>#include<graphics.h>必要的頭文件#include<dos.h>68必須的變量intGraphDriver; intGraphMode; doubleAspectRatio; intMaxX,MaxY; intMaxColors; intErrorCode;structpalettetypepalette; 必須的變量intGraphDriver; 69初始化圖形界面GraphDriver=DETECT;initgraph(&GraphDriver,&GraphMode,"");

initgraph(&GraphDriver,&GraphMode,”d:\\tc");初始化圖形界面GraphDriver=DETECT;70初始化出錯(cuò)處理ErrorCode=graphresult(); if(ErrorCode!=grOk){printf("GraphicsSystemError:%s\n",grapherrormsg(ErrorCode));exit(1);}初始化出錯(cuò)處理ErrorCode=graphresul71取得必須的參數(shù)getpalette(&palette); MaxColors=getmaxcolor()+1; MaxX=getmaxx();MaxY=getmaxy(); AspectRatio=(double)xasp/(double)yasp;取得必須的參數(shù)getpalette(&palette)72關(guān)閉圖形界面closegraph(); /*Returnthesystemtotextmode*/關(guān)閉圖形界面closegraph(); 73一些常用的畫(huà)圖函數(shù)outtext(buffer),outtextxy(x,y,buffer)line(x0,y0,x1,y1);linerel();lineto()circle(intx,inty,intradius);arc()bar(intl,intt,intr,intb);bar3d();moveto(intx,inty);moverel(dx,dy);getx()putpixel(x,y,color);getpixel(x,y)setcolor();setbkcolor();getcolor();getbkcolor一些常用的畫(huà)圖函數(shù)outtext(buffer),out74鼠標(biāo)操作鼠標(biāo)簡(jiǎn)介鼠標(biāo)驅(qū)動(dòng)程序的主要功能鼠標(biāo)功能調(diào)用方法鼠標(biāo)的初始化鼠標(biāo)光標(biāo)的顯示與隱藏讀取按鈕狀態(tài),讀取或設(shè)置光標(biāo)位置設(shè)置鼠標(biāo)的光標(biāo)形狀和移動(dòng)范圍鼠標(biāo)操作鼠標(biāo)簡(jiǎn)介75鼠標(biāo)簡(jiǎn)介鼠標(biāo)系統(tǒng)實(shí)際上由兩個(gè)主要元素組成:鼠標(biāo)機(jī)制和稱(chēng)作鼠標(biāo)驅(qū)動(dòng)程序的內(nèi)存駐留程序。鼠標(biāo)驅(qū)動(dòng)程序提供與鼠標(biāo)通信所需的全部低級(jí)支持。此外,它自動(dòng)維持鼠標(biāo)光標(biāo)位置和發(fā)現(xiàn)是否按下了某個(gè)鍵。一旦裝入驅(qū)動(dòng)程序,鼠標(biāo)就可以被隨后執(zhí)行的任意程序使用。鼠標(biāo)簡(jiǎn)介鼠標(biāo)系統(tǒng)實(shí)際上由兩個(gè)主要元素組成:鼠標(biāo)機(jī)制和稱(chēng)76鼠標(biāo)簡(jiǎn)介可以通過(guò)PC中斷33H訪問(wèn)鼠標(biāo)和鼠標(biāo)驅(qū)動(dòng)程序的各種功能。所選擇的特定函數(shù)依賴(lài)于中斷時(shí)AX寄存器的值。三個(gè)其它寄存器(BX、CX和DX)用于把各種參數(shù)傳送給鼠標(biāo)例程。同樣,鼠標(biāo)函數(shù)使用這四個(gè)寄存器把鼠標(biāo)的位置和按鈕的狀態(tài)返回給調(diào)用函數(shù)。鼠標(biāo)簡(jiǎn)介可以通過(guò)PC中斷33H訪問(wèn)鼠標(biāo)和鼠標(biāo)驅(qū)動(dòng)程序的77鼠標(biāo)驅(qū)動(dòng)程序主要功能鼠標(biāo)驅(qū)動(dòng)程序主要功能78鼠標(biāo)驅(qū)動(dòng)程序主要功能鼠標(biāo)驅(qū)動(dòng)程序主要功能79鼠標(biāo)功能調(diào)用方法用TC通過(guò)INT33H中斷來(lái)編制基本函數(shù),有三種常用方法:嵌入?yún)R編程序,如:ASMCLI清中斷利用全程變量賦予寄存器值,然后通過(guò)函數(shù)geninterrupt()調(diào)用中斷實(shí)現(xiàn)利用聯(lián)合類(lèi)型REGS,SREGS通過(guò)函數(shù)int86(),int86x()調(diào)用中斷,原型在鼠標(biāo)功能調(diào)用方法用TC通過(guò)INT33H中斷來(lái)編制基本80鼠標(biāo)的初始化InitMouse(){unionREGSregs; regs.x.ax=0; int86(0x33,®s,®s); if(regs.x.ax==0) returnfalse; elsereturntrue;}鼠標(biāo)的初始化InitMouse()81鼠標(biāo)光標(biāo)的隱藏HideCur(){unionREGSregs; if(visual){ regs.x.ax=2; int86(0x33,®s,®s); visual=false;}}鼠標(biāo)光標(biāo)的隱藏HideCur()82鼠標(biāo)光標(biāo)的顯示ShowCur(){unionREGSregs; if(!visual){ regs.x.ax=1; int86(0x33,®s,®s); visual=true;}}鼠標(biāo)光標(biāo)的顯示ShowCur()83鼠標(biāo)光標(biāo)的顯示與隱藏在鼠標(biāo)驅(qū)動(dòng)程序中,鼠標(biāo)的顯示狀態(tài)用0值表示,隱藏用負(fù)值表示,每調(diào)用一次顯示功能則該值加一,每調(diào)用一次隱藏功能,則該值減一。這樣,在多次調(diào)用了驅(qū)動(dòng)程序的隱藏鼠標(biāo)光標(biāo)功能后,再調(diào)用顯示鼠標(biāo)光標(biāo)功能時(shí),將不能正常顯示鼠標(biāo)光標(biāo)。需要加入一個(gè)visual布爾型變量,來(lái)取代驅(qū)動(dòng)程序中的數(shù)值。鼠標(biāo)光標(biāo)的顯示與隱藏在鼠標(biāo)驅(qū)動(dòng)程序中,鼠標(biāo)的顯示狀態(tài)用084讀取鼠標(biāo)的狀態(tài)Status(){ unionREGSregs; regs.x.ax=3; int86(0x33,®s,®s); x=regs.x.cx;y=regs.x.dx; status=regs.x.bx;}讀取鼠標(biāo)的狀態(tài)Status()85讀取鼠標(biāo)的狀態(tài)其中X,Y為光標(biāo)位置status&1左鍵狀態(tài),1為按下,0為未按status&2右鍵狀態(tài),1為按下,0為未按status&4中鍵狀態(tài),1為按下,0為未按要注意循環(huán)檢測(cè)時(shí)的抖動(dòng)現(xiàn)象,可增加一些空循環(huán)或延時(shí)來(lái)清除剩余的按鍵信號(hào)。讀取鼠標(biāo)的狀態(tài)其中X,Y為光標(biāo)位置86設(shè)置光標(biāo)位置voidMoveMouse(intx,inty){ REGSregs; regs.x.ax=4; regs.x.cx=x; regs.x.dx=y; int86(0x33,®s,®s);}設(shè)置光標(biāo)位置voidMoveMouse(intx,int87設(shè)置鼠標(biāo)光標(biāo)形狀設(shè)置鼠標(biāo)光標(biāo)需要三個(gè)方面信息:鼠標(biāo)的外邊界:8*8點(diǎn)陣,16個(gè)整數(shù)鼠標(biāo)的內(nèi)部形狀:8*8點(diǎn)陣,16個(gè)整數(shù)以及鼠標(biāo)的熱點(diǎn)的相對(duì)坐標(biāo):intx,y其中外邊界和內(nèi)邊界連續(xù)存放,為長(zhǎng)度為32的整型數(shù)組intmarks[32]設(shè)置鼠標(biāo)光標(biāo)形狀設(shè)置鼠標(biāo)光標(biāo)需要三個(gè)方面信息:88設(shè)置鼠標(biāo)光標(biāo)形狀SetCurs(unsignedmasks[32],x,y){ unionREGSregs; structSREGSsregs; regs.x.ax=9; regs.x.bx=x;regs.x.cx=y;/*hotspot*/ regs.x.dx=(unsigned)masks; segread(&sregs);int86(0x33,®s,®s);}設(shè)置鼠標(biāo)光標(biāo)形狀SetCurs(unsignedmasks89手的光標(biāo)數(shù)據(jù){0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,/*cursormask*/0x0c00,0x1200,0x1200,0x1200,0x13fe,0x1249,0x1249,0x1249,0x7249,0x9001,0x9001,0x9001,0x8001,0x8001,0x4002,0x3ffc/*cursormask*/}{4,0}/*hotspot*/手的光標(biāo)數(shù)據(jù){0xffff,0xffff,0xffff90設(shè)置鼠標(biāo)的移動(dòng)范圍SetMouseArea(intx0,inty0,intx1,inty1){ unionREGSregs; regs.x.ax=7;regs.x.cx=x0;regs.x.dx=x1; int86(0x33,®s;®s); regs.x.ax=8;regs.x.cx=y0;regs.x.dx=y1; int86(0x33,®s,®s);}設(shè)置鼠標(biāo)的移動(dòng)范圍SetMouseArea(intx0,i91西文狀態(tài)下漢字的顯示漢字庫(kù)簡(jiǎn)介取得字節(jié)的某一位顯示24點(diǎn)陣漢字顯示16點(diǎn)陣漢字在字庫(kù)中取字模西文狀態(tài)下漢字的顯示漢字庫(kù)簡(jiǎn)介92漢字庫(kù)簡(jiǎn)介程序中可直接使用UCDOS中的HZK16,ASC16和HZK24三個(gè)文件。HZK16中

溫馨提示

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

評(píng)論

0/150

提交評(píng)論