freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

c語言課程設計c語言文本編輯器-免費閱讀

2025-07-19 06:24 上一頁面

下一頁面
  

【正文】 cprintf(%c,196)。 cprintf(%c,179)。i3。 break。 switch(n%4) { case 0:gotoxy(29,3)。 gotoxy(29,5)。 gotoxy(39,2)。i7。i++) { gotoxy(28+i,2)。 for(i=1。 textcolor(0)。 break。 switch(n%5) { case 0:gotoxy(9,3)。i++) { gotoxy(8+i,7)。 gotoxy(9,4)。 /*輸出四個邊角表格符*/ gotoxy(8,9)。 cprintf( )。 /*窗口內文本的輸出函數,在窗口右邊輸出 | */ } for(i=1。 } window(1,1,80,25)。void drawmenu(int m,int n) /*畫菜單,m:第幾項菜單,n:第m項的第n個子菜單*/ { int i。 if(r[i].ch!=13amp。 } colorview(Hhead,wherex(),wherey())。 if(r[abs(value)].ch==1) r[abs(value)].ch=13。amp。 gotoxy(wherex()+1,wherey())。amp。 } } }在文本編輯區(qū)選定文本的工作由control(int A,Hnode*Hhead)函數和colorview(Hnode*Hhead,int x,int y)函數配合完成。(num1==1)) { num1++。/**/ if(q!=NULL) test(Hhead,++n)。 /*新建一個行單鏈表節(jié)點,相當于添加一個新行*/ qnextlnextl=NULL。i75。 q=Hhead。 /*給此節(jié)點的數據域賦值*/ if(n==1) /*插入之前,若只有一個字符在行中,則插在此節(jié)點之前*/ { pnext=qnext。im。 /*返回num,表示當前行的最后一個字符為回車符,不計算在內*/ else return 1。amp。 for(i=1。 /*若第m行,第n列的字符為回車鍵,則返回1*/ if(pch=32amp。 for(i=1。 if(p2ch==13) break。 tailnext=p1。 } else { p1next=p2next。i++) /*定位至行單鏈表中的第m個元素*/ q=qnextl。 /*第1行,第0列不存在*/ if(n==0amp。(1) 調用check(Hnode*Head,int m,int n)函數,在單鏈表中檢查第m行、第n列位置的字符,若為常規(guī)字符,則返回該字符;否則返回0或1., (2) 調用judge(Hnode*Hhead,int m)函數,在單鏈表中統(tǒng)計第m行中的常規(guī)字符的總個數,并返回統(tǒng)計值。 /*指向下一個節(jié)點*/ } q=qnextl。pch=32amp。i++) insline()。/*輸出一個回車*/ }while(q!=NULL)。 /*p指向保存行數據的列單鏈表的首節(jié)點的地址*/ cprintf()。(1) 通過qview(hnode*q)函數,可實現文本字符的快速預覽。 /* | |*/ gotoxy(47,1)。 /*在窗口左下角,輸出*/ gotoxy(80,1)。i++) { gotoxy(1+i,2)。 /*在文本窗口的(1,1)位置處中插入一個空行*/ for(i=1。 /*指向下一個節(jié)點的指針*/ }Hnode。 /*保存一字符*/ int col, line。12)menuctrl()函數原型:int menuctrl(Hnode*Hhead,int A)menuctrl()函數用于菜單控制。3)view()函數原型:viod view(Hnode*q)view()函數用于按行顯示保存在單鏈表中的文本字符,q為指向行單鏈表中第一個節(jié)點的指針。結構體中各字段表示的意義如下。node結構體定義了在一個單鏈表中保存行中的單個字符的結構,我們稱由node類型的節(jié)點構成的單鏈表為列單鏈表。}record。同樣,文本的快速預覽模塊是在原來主窗口顯示模塊的基礎上,去除了菜單的顯示。若當前菜單為最左邊的File菜單,則切換至最右邊的Help菜單。(1) 先取value除以3的余數m(因為有3個菜單項,所以除數選擇3),根據m的值來繪制不同的菜單。(3) 重新在文本編輯器中顯示單鏈表中保存的所有字符,并將光標置位到原來的位置。(4)重新在文本編輯器中顯示單鏈表中保存的所有字符,并將光標置位到原來的位置。1) 選定文本用戶可按Ctrl+或Ctrl+來選定文本,就具體實現而言,兩者基本相同。(2) 判斷第m行是否存在并且判斷在此行中是否有字符,若第m行不存在,或此行中沒有字符,則結束字符刪除過程,否則執(zhí)行步驟(3)。 其test()檢查處理過程描述如下:(1) 用指針tail指向已經插入了新節(jié)點的列單鏈表中的最后一個節(jié)點。2) 插入字符若光標所在處已經存在字符,當用戶在當前位置輸入字符時,程序會調用insert()函數將輸入的字符在光標所在的位置處在列單鏈表中插入,插入完成后,會調用test()函數來檢查各行是否滿足只有76個字符的條件,若不滿足此條件,則在此函數中會對多出的字符進行處理。(2) 以只寫方式打開此文件,若成功打開此文件,則執(zhí)行步驟(3);否則退出。例如,第4行第4列的字符保存在行單鏈表的第4個節(jié)點的數據域所指的列單鏈表的第4個節(jié)點的數據域中。(6) 若按鍵為F10鍵,則調用qview()函數,實現文本的快速預覽。(3) 若按鍵為光標移動鍵(左,右,上,下)且移動后的位置滿足相關條件,則執(zhí)行gotoxy()操作,將光標移動至目標位置。同時,他還規(guī)定整個屏幕的左上角坐標為(1,1),右下角坐標為(80,25)。用戶可按光標上移或下移鍵在某菜單項的子菜單之間循環(huán)移動,也可使用光標的左移或右移鍵在3個菜單項之間循環(huán)移動。在剪貼板操作模塊中,主要完成對已選定文本的剪切,復制,粘貼工作。在文件的打開,保存和另存為操作中,系統(tǒng)會提示用戶輸入文件路徑及文件名。再次文本編輯器中,用戶可以通過快捷和選擇菜單項,完成基本的文本編輯器和文件處理工作。比如,Windows下的記事本,寫字板,EditPlus,UltraEdit等都是十分優(yōu)秀的文本編輯器和處理工具。(1) 文件操作模塊。用戶可以使用BackSpace鍵刪除光標前一個字符,也可以使用Del鍵刪除當前位置的字符或刪除Ctrl+左移(右移)鍵i選定了的多個字符。在菜單控制模塊中,主要完成菜單的顯示。用戶可按F10功能鍵來打開快速預覽窗口,在快速預覽窗口中沒有功能菜單條。他首先初始化一些全局變量及結構數組,接著調用drawmain()函數來顯示主窗口,然后調用while(1)進入主循環(huán),等待用戶按鍵,最后程序根據用戶的按鍵值,進行相應的處理,完成文本編輯的相關工作。若為Ctrl+X鍵,則將選定相關內容保存起來,且從單鏈表中刪除選定的字符后重新顯示單鏈表的內容。在介紹之前,我們先簡單描述一下程序中用到的保存數據的數據結構。 注意:由于本程序中每行以回車符(ASCII碼為13)結束,而當用Windows的記事本創(chuàng)建一個文本文件,打開此文件并用fgetc()函數讀取時,程序寫入列單鏈表節(jié)點中的值是ASCII碼為13的回車符。3.文件編輯模塊在文件編輯模塊中,主要完成以添加或插入的方式輸入字符、刪除光標所在的當前位置或前一個位置的單個字符、朝上下左右4個方向的光標的移動操作。(4) 若字符插入在第m行第1列,則直接將行單鏈表中第m個節(jié)點的數據域的值改變?yōu)樾碌牧袉捂湵砉?jié)點的地址,新的列單鏈表節(jié)點的指針域指向列單鏈表中原來的第1個節(jié)點。3) 刪除字符當用戶按下Del鍵時,系統(tǒng)會調用del()函數在單鏈表中刪除當前光標所在處的字符;當用戶按下BackSpace鍵時,系統(tǒng)也會調用這個函數在單鏈表中刪除當前光標所在處前一個位置的字符。例如,如果當前光標在第m行第1列,且按下了光標左移鍵,只需將光標移至第m1行,第76列。它的實現過程如下:(1)若全局變量value的值大于0(大于0表示已經有文本選定),則執(zhí)行下面操作。這一操作必須在剪切或復制操作之后出現。在menuctrl()函數中,會根據功能鍵的鍵值調用drawmenu(value,flag)函數,參數value、flag都為局部變量,分別用來保存調用某個菜單、某個菜單下的第幾個菜單選項。(4) 根據t的值,用不同的前景色和背景色在原來的位置重新顯示菜單選項,以達到光帶條的效果。選取不同菜單選項后,a的值不同。下面分別介紹這3個結構體及幾個全局變量。2. 與列單鏈表相關的node結構體typedef struct node{char ch。struct Hnode *next1。.1)drawmain()函數原型:void drawmain()drawmain()函數用于在程序中會只包括菜單欄,編輯區(qū)和狀態(tài)欄在內的主窗口。9)control()函數原型:void control(int A,Hnode*Hhead)control()函數用于對左移鍵(右移鍵)進行響應,A為按鍵的整數值,Hhead為行單鏈表的首地址。.4程序實現. 源碼分析程序預處理包括頭文件的加載,以及結構體,常量和全局變量的定義。 /*指針域:指向下一個結點的指針*/ }node。 /*在文本窗口中設置光標至(1,1)處*/ textbackground(7)。 cprintf(%c,196)。 cprintf(%c,196)。 cprintf(%c %c File %c %c,179,17,179)。 gotoxy(68,25)。 window(1,1,80,25)。 /*輸出各行中的字符到預覽窗口*/ p=pnext。 textbackground(9)。 /*清屏*/ /*雙重循環(huán),讀取并顯示保存在單鏈表中字符*/ do{ p=qnext。amp。 /*逐行逐列顯示文本字符*/ }程序調用del(Honde*Hhead,int m,int n)函數來完成刪除第行、第列位置的字符。 if(n==0amp。/*移至第m1行,第76列*/ flag=1。 p2=p1next。 tail=p1。i76num。 Hnode *q。in。 node *p。 while(pnext!=NULL) { p=pnext。 /*返回num+1,表示當前行的最后一個字符為常規(guī)字符*/ if(pch==13amp。 node *p,*p1,*p2。i++) /*定位至列單鏈表中的第n1個元素*/ p1=p1next。 /*在插入新元素后,檢驗并處理單鏈表中第m行開始的元素,使其滿足規(guī)則*/} /*執(zhí)行insert()后,檢驗第n行及后面的數據,使其滿足規(guī)則*/ int test(Hnode *Hhead,int n) { int i=0,num1=1。 if(p1==NULL) return。 /*在此行的最后一個字符的前一個字符處斷行,因為插入在此行插入了一個新的字符*/ if(tailch!=13) /*若此行行尾不是回車
點擊復制文檔內容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1