數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGE22數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書課題一一元多項式加法、減法、乘法運算的實現(xiàn) 1課題二迷宮問題實現(xiàn) 4課題三停車場管理 6課題四哈夫曼碼編、譯碼器的實現(xiàn) 8課題五校園導游咨詢 11課題六利用棧實現(xiàn)表達式求解 13課題七跳舞搭配問題 15課題八散列表的設(shè)計與實現(xiàn) 16課題九簡單文本編輯器的設(shè)計與實現(xiàn) 18課題十詞索引表的建立 20

課題一一元多項式加法、減法、乘法運算的實現(xiàn)課題名稱一元多項式的加法、減法、乘法運算的實現(xiàn)設(shè)計目的1、熟悉并掌握線性表的順序存儲和鏈式存儲結(jié)構(gòu);2、熟悉并掌握線性表插入、刪除等基本操作;3、掌握線性表的典型應(yīng)用—多項式的加、減、乘運算的實現(xiàn)。課題內(nèi)容及要求:課題內(nèi)容(1)使用順序存儲結(jié)構(gòu)實現(xiàn)多項式加、減、乘運算;例如:,求和結(jié)果:(2)使用鏈式存儲結(jié)構(gòu)實現(xiàn)多項式加、減、乘運算例如:,求和結(jié)果:根據(jù)下面給出的存儲結(jié)構(gòu)定義#defineMAXSIZE20//定義線性表最大容量//定義多項式項數(shù)據(jù)類型typedefstruct{ floatcoef;//系數(shù) intexpn;//指數(shù)}term,elemType;typedefstruct{ termterms[MAXSIZE];//線性表中數(shù)組元素 intlast;//指向線性表中最后一個元素位置}SeqList;typedefSeqListpolynomial;―――――――――基本操作的函數(shù)說明――――――――polynomial*Init_Polynomial();//初始化空的多項式intPloynStatus(polynomial*p);//判斷多項式的狀態(tài)intLocation_Element(polynomial*p,termx);//在多項式p中查找與x項指數(shù)相同的項是否存在boolInsert_ElementByOrder(polynomial*p,termx);//在多項式p中插入一個的指數(shù)項xintCreatePolyn(polynomial*p,intm)//輸入m項系數(shù)和指數(shù),建立表示一元多項式的有序表pcharcompare(termterm1,termterm2);//比較指數(shù)項term1和指數(shù)項term2polynomial*addPloyn(polynomial*p1,polynomial*p2)//將多項式p1和多項式p2相加,生成一個新的多項式polynomial*subStractPloyn(polynomial*p1,polynomial*p2)//多項式p1和多項式p2相減,生成一個新的多項式polynomial*mulitPloyn(polynomial*p1,polynomial*p2)//多項式p1和多項式p2相乘,生成一個新的多項式voidprintPloyn(polynomial*p)//輸出在順序儲存結(jié)構(gòu)的多項式p設(shè)計要求(1)編程實現(xiàn)上述課題內(nèi)容中的結(jié)構(gòu)定義和算法。(2)要有main()函數(shù),并且在main()函數(shù)中使用檢測數(shù)據(jù)調(diào)用上述算法。(3)課題完成后撰寫課題報告。(4)課題完成后把打印好的課題報告以及電子版的課題報告和源程序一并上交。(電子版的課題報告和源程序放在以學號姓名命名的文件夾中壓縮后上交到指定的ftp處)(5)用switch語句設(shè)計如下選擇式菜單。**********數(shù)據(jù)結(jié)構(gòu)綜合性課題*************一、多項式的加法、減法、乘法運算****1.多項式創(chuàng)建**2.多項式相加**3.多項式相減**4.多項式相乘**5.清空多項式**0.退出系統(tǒng)**請選擇(0-5)****************************************請選擇(0-5):

課題二迷宮問題實現(xiàn)課題名稱迷宮問題的實現(xiàn)課題目的1、熟練棧的結(jié)構(gòu)特性,掌握在實際問題背景下的應(yīng)用。2、熟悉并掌握棧的基本操作;3、掌握棧的典型應(yīng)用—迷宮問題的實現(xiàn)。課題內(nèi)容及要求:課題內(nèi)容:以一個m*n的長方陣表示迷宮,0和1分別表示迷宮中的通路和障礙。設(shè)計一個程序,對任意設(shè)定的迷宮,求出一條從入口到出口的通路。或得出沒有通路的結(jié)論。根據(jù)以上問題給出存儲結(jié)構(gòu)定義:typedefstruct//定義坐標{ intx; inty;}item;//定義坐標和方向typedefstruct{ intx; inty; intd;}dataType;//定義順序棧的類型定義typedefstruct{dataTypedata[MAXLEN]; inttop;}SeqStack;itemmove[8];//8鄰域試探方向數(shù)組intmaze[M+2][N+2]={ {1,1,1,1,1,1,1,1,1,1}, {1,0,1,1,1,0,1,1,1,1}, {1,1,0,1,0,1,1,1,1,1}, {1,0,1,0,0,0,0,0,1,1}, {1,0,1,1,1,0,1,1,1,1}, {1,1,0,0,1,1,0,0,0,1}, {1,0,1,1,0,0,1,1,0,1}, {1,1,1,1,1,1,1,1,1,1}};//定義迷宮數(shù)組,0表示有路徑,1表示不存在路徑―――――――定義基本操作的函數(shù)說明――――――――――――voidprint_Path(SeqStack*s);//輸出迷宮路線SeqStack*InitSeqStack();//該函數(shù)初始化一個空棧,并返回指向該棧的存儲單元首地址intPush(SeqStack*s,dataTypex)//將元素x入棧s,若入棧成功返回結(jié)果1;否則返回0intStackEmpty(SeqStack*s)//該函數(shù)判斷棧是否為空,若??辗祷亟Y(jié)果1;否則返回0intPop(SeqStack*s,dataType*x)//將棧頂元素出棧,放入x所指向的存儲單元中,若出棧返回結(jié)果1;否則返回0voidinit_move(itemmove[8])//初始化8鄰域方向intfind_Path(intmaze[M+2][N+2],itemmove[8])//在迷宮maze二維數(shù)組中按move的8鄰域方向探測迷宮路線,存在返回1,否則//返回0voidprint_Path(SeqStack*s)//輸出棧s中所有迷宮路徑課題要求(1)編程實現(xiàn)上述課題內(nèi)容中的結(jié)構(gòu)定義和算法。(2)要有main()函數(shù),并且在main()函數(shù)中使用檢測數(shù)據(jù)調(diào)用上述算法。(3)課題完成后撰寫課題報告。(4)課題完成后把打印好的課題報告以及電子版的課題報告和源程序一并上交。(電子版的課題報告和源程序放在以學號姓名命名的文件夾中壓縮后上交到指定的ftp處)

課題三停車場管理課題名稱停車場管理課題目的1、熟悉并掌握棧的順序存儲和鏈式存儲結(jié)構(gòu);2、熟悉并掌握棧的基本操作;3、綜合利用棧和隊列模擬停車場管理,學習利用棧和隊列解決實際問題。課題內(nèi)容及要求:課題內(nèi)容設(shè)停車場內(nèi)只有一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車進出。汽車在停車場內(nèi)按車輛到達時間的先后順序,依次由北向南排列(大門在最南端,最先到達的第一輛車停放在車場的最北端),若車場內(nèi)已停滿n輛汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當停車場內(nèi)某輛車要離開時,在它之后開入的車輛必須先退出車場為它讓路,待該輛車開出大門外,其它車輛再按原次序進入車場,每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費用。試為停車場編制按上述要求進行管理的模擬程序。根據(jù)以上問題給出的以下存儲結(jié)構(gòu)定義:structcar{ intcarno; floatintime; floatouttime;};//停車場內(nèi)的汽車structstack{ car*base; car*top; intstacksize;};//車庫structQNode{ cardata; QNode*next;};//通道上的汽車structQueue{ QNode*front; QNode*rear;};//通道―――――――定義基本操作的函數(shù)說明――――――――――――voidInput(car*car2,chari,into);//輸入停車信息函數(shù)intInitStack(stack&s);//構(gòu)造空棧intPush(stack*s,car&car1);//進車庫intPop(stack*s,car&car1);//出棧頂intOutPopIn(stack*s1,stack*s2,car*car2,car*car1,inti,intn);//出棧的任意元素intInitQueue(Queue&q);//構(gòu)造空隊列intEnQueue(Queue*q,QNode&car2);//插入隊列元素intDeQueue(Queue*q,QNode&car1);//出隊列課題要求(1)編程實現(xiàn)上述課題內(nèi)容中的結(jié)構(gòu)定義和算法。(2)要有main()函數(shù),并且在main()函數(shù)中使用檢測數(shù)據(jù)調(diào)用上述算法。(3)課題完成后撰寫課題報告。(4)課題完成后把打印好的課題報告以及電子版的課題報告和源程序一并上交。(電子版的課題報告和源程序放在以學號姓名命名的文件夾中壓縮后上交到指定的ftp處)運行測試********************************車庫管理系統(tǒng)*****************************請輸入車庫的容量:20請輸入汽車收費單價:12請輸入汽車狀態(tài)('A'表示到達,'D'表示離去,'E'表示輸入結(jié)束):A請輸入汽車牌號:101請輸入該車進入車庫的時間(小時):2車庫停車位為:1請輸入汽車狀態(tài)('A'表示到達,'D'表示離去,'E'表示輸入結(jié)束):A請輸入汽車牌號:102請輸入該車進入車庫的時間(小時):3車庫停車位為:2請輸入汽車狀態(tài)('A'表示到達,'D'表示離去,'E'表示輸入結(jié)束):D要出車庫的車的停車位:1請輸入該車離開車庫的時間(小時):6汽車狀態(tài):D汽車牌號:101汽車停留的時間(小時):4汽車收費:48元請輸入汽車狀態(tài)('A'表示到達,'D'表示離去,'E'表示輸入結(jié)束):

課題四哈夫曼碼編、譯碼器的實現(xiàn)課題名稱哈夫曼碼編、譯碼器的實現(xiàn)課題目的1、熟練哈夫曼樹的定義,掌握構(gòu)造哈夫曼樹的方法。2、掌握哈夫曼編碼和譯碼方法。3、掌握文本文件的讀寫方法。課題內(nèi)容課題內(nèi)容:利用哈夫曼編碼進行通信可以大大提高信道利用率,縮短信息傳輸時間,降低傳輸成本。但是,這要求在發(fā)送端通過一個編碼系統(tǒng)對待傳數(shù)據(jù)預(yù)先編碼,在接收端將傳來的數(shù)據(jù)進行譯碼。對于雙工信道(即可以雙向傳輸信息的信道),每端都需要一個完整的編碼、譯碼系統(tǒng)。試為這樣的信息收發(fā)站寫一個哈夫曼碼的編碼、譯碼系統(tǒng)。一個完整的系統(tǒng)應(yīng)以下功能:(1)從終端讀入字符集大小n,以及n個字符和n個權(quán)值,建立哈夫曼樹,并將它存放在文件hfmTree中。(2)利用已建立好的哈夫曼樹(如不在內(nèi)存,則從文件hfmTree中讀入),對文件ToBeTran中的正文進行編碼,然后將結(jié)果代碼存(傳輸)到文件CodeFile中.(3)譯碼(Decoding)。利用已建好的哈夫曼樹,對傳輸?shù)竭_的CodeFile中的數(shù)據(jù)代碼進行譯碼,將譯碼結(jié)果存入文件TextFile。(4)將文件CodeFile以緊湊格式顯示在終端上,每行50個代碼。同時將此字符形式的編碼文件寫入文件CodePrin中。(5)打印印哈夫曼樹(TreePrinting)。將已在內(nèi)存中的哈夫曼樹以直觀的方式(樹或凹入表的形式)顯示在終端上,同時將此字符形式的哈夫曼樹寫入文件TreePrint中。根據(jù)下面給出的存儲結(jié)構(gòu)定義typedefstruct//定義哈夫曼樹中每個結(jié)點結(jié)構(gòu)體類型{ charch;//結(jié)點字符信息 intweight;//定義一個整型權(quán)值變量 intlchild;//定義左、右孩子及雙親指針 intrchild; intparent;}HTNode;typedefHTNodeHFMT[MAXLEN];//用戶自定義HFMT數(shù)組類型typedefchar**HfCode;//動態(tài)分配字符數(shù)組存儲哈夫曼編碼表―――――――定義基本操作的函數(shù)說明――――――――――――voidInitHFMT(HFMTT);//初始化哈夫曼樹voidInputWeight(HFMTT,char*weightFile);//輸入權(quán)值voidSelectMin(HFMTT,inti,int*p1,int*p2);//選擇所有結(jié)點中較小的結(jié)點voidCreatHFMT(HFMTT);//構(gòu)造哈夫曼樹,T[2*n-1]為其根結(jié)點voidPrintHFMT(HFMTT);//輸出向量狀態(tài)表voidprintHfCode(HfCodehc);//輸出字符的哈夫曼編碼序列HfCodehfEnCoding(HFMTT);//利用構(gòu)成的哈夫曼樹生成字符的編碼voidprint_HuffmanTree(HFMTHT,intt,inti)//按樹形形態(tài)輸出哈夫曼樹的形態(tài)voidEncoder(char*original,char*codeFile,HfCodehc,HFMTHT);//利用已建好的哈夫曼樹,對original文件中要傳輸?shù)脑紨?shù)據(jù)進行編碼,//將編碼結(jié)果存入文件codeFile中voidDecoder(char*codeFile,char*textFile,HFMTHT);//利用已建好的哈夫曼樹,對傳輸?shù)竭_的codeFile中的數(shù)據(jù)代碼進行譯碼,//將譯碼結(jié)果存入文件textFile中課題要求(1)編程實現(xiàn)上述課題內(nèi)容中的結(jié)構(gòu)定義和算法。(2)要有main()函數(shù),并且在main()函數(shù)中使用檢測數(shù)據(jù)調(diào)用上述算法。(3)課題完成后撰寫課題報告。(4)課題完成后把打印好的課題報告以及電子版的課題報告和源程序一并上交。(電子版的課題報告和源程序放在以學號姓名命名的文件夾中壓縮后上交到指定的ftp處)運行測試(略)測試數(shù)據(jù):(1)利用數(shù)據(jù)調(diào)試程序。(2)用下表給出的字符集和頻度計數(shù)建立哈曼樹,并實現(xiàn)以下報文的編碼和譯碼:“THISPROGRAMISMYFAVORITE”。字符ABCDEFGHIJKLM頻數(shù)6413223210321154757153220字符NOPQRSTUVWXYZ頻數(shù)5763151485180238181161課題五校園導游咨詢課題名稱校園導游咨詢課題目的1、熟悉并掌握圖的順序存儲和鏈式存儲結(jié)構(gòu);2、熟悉并掌握圖的數(shù)據(jù)結(jié)構(gòu)的基本操作和遍歷算法;3、熟悉并掌握頂點間的最短路徑的算法。4、掌握圖的典型應(yīng)用—校園導游咨詢設(shè)計與實現(xiàn)。課題內(nèi)容及要求:課題內(nèi)容問題描述:設(shè)計一個校園導游程序,為來訪的客人提供各種信息咨詢服務(wù),包括:(1)設(shè)計你所在的學校的校園平面圖,所含景點不少于5個。以圖中頂點表示校內(nèi)各景點,存放景點的名稱、代號、簡介等信息;以邊表示路徑,存放路徑長度等相關(guān)信息。(2)為來訪客人提供圖中任意景點相關(guān)信息的咨詢。(3)為來訪客人提供圖中任意景點的問路查詢,即查詢?nèi)我鈨蓚€景點之間的一條最短的簡單路徑。根據(jù)以上問題給出的以下存儲結(jié)構(gòu)定義:#defineINT_MAX10000#definen10/*定義全局變量*/intcost[n][n];/*邊的值*/intshortest[n][n];/*兩點間的最短距離*/intpath[n][n];/*經(jīng)過的景點*/――――――――――定義基本操作的函數(shù)說明―――――――――――――voidintroduce();//景點介紹intshortestdistance();//要查找的兩景點的最短距離voidfloyed();//用floyed算法求兩個景點的最短路徑voiddisplay(inti,intj);//打印兩個景點的路徑及最短距離課題要求(1)編程實現(xiàn)上述課題內(nèi)容中的結(jié)構(gòu)定義和算法。(2)要有main()函數(shù),并且在main()函數(shù)中使用檢測數(shù)據(jù)調(diào)用上述算法。(3)課題完成后撰寫課題報告。(4)課題完成后把打印好的課題報告以及電子版的課題報告和源程序一并上交。(電子版的課題報告和源程序放在以學號姓名命名的文件夾中壓縮后上交到指定的ftp處)(5)用switch語句設(shè)計如下選擇式菜單。歡迎使用校園導游系統(tǒng)!1.景點信息查詢………請按i(introduc)鍵2.景點最短路徑查詢…請按s(shortestdistance)鍵3.退出系統(tǒng)……………請按e(exit)鍵學校景點列表:1::學校南門2:一號教學樓3:體育館4:大學生活動中心5:帶河6:后山7:自由廣場8::風雨操場9:圖書館10:竹園請選擇服務(wù):運行測試(略)

課題六利用棧實現(xiàn)表達式求解課題名稱利用棧實現(xiàn)表達式求解課題目的1、熟悉并棧的數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)與操作2、掌握棧的典型應(yīng)用—利用棧實現(xiàn)表達式求解課題內(nèi)容及要求:課題內(nèi)容問題描述:輸入一個表達式,按如下要求完成其求值運算:(1)表達式中允許有兩種括號:(、)、[、],請驗證其匹配成對的合法性(2)運算符限定于加減乘除四種運算,請驗證表達式是否書寫合法,如:3+2-*5就不是一個合法表達式。(3)使用棧的原理實現(xiàn)表達式求值。(4)盡量考慮參與運算的數(shù)是非1位數(shù),如:234+32*12根據(jù)以上問題給出的以下存儲結(jié)構(gòu)定義:#definestack_init_size100//定義棧的最大初始化容量#definestackincreament10//定義棧的增量#defineoverflow-2typedefstruct{ char*base; char*top; intstacksize;}Sqstackcha;//定義存放運算符號的棧的數(shù)據(jù)類型。typedefstruct{ double*base; double*top; intstacksize;}Sqstackdou;//定義存放操作數(shù)或中間結(jié)果的棧的數(shù)據(jù)類型、。Sqstackchaoptr;Sqstackdouopnd;――――――――――定義基本操作的函數(shù)說明―――――――――――――chargettop(Sqstackcha&s);//取操作符棧頂元素doublegettop(Sqstackdou&s);;//取操作數(shù)棧頂元素intprecede(Sqstackcha&s,charc);//比較字符c與操作符棧頂元素的優(yōu)先級voidinitstack(Sqstackcha&s);//初始化操作符棧voidinitstack(Sqstackdou&s);//初始化操作數(shù)棧doubleopterate(doublea,chartheta,doubleb);//對操作數(shù)a和b用操作符運行其結(jié)果voidpush(Sqstackcha&s,chare);//操作符入棧voidpush(Sqstackdou&s,doublee);//操作數(shù)入棧charpop(Sqstackcha&s,chare);//操作符出棧doublepop(Sqstackdou&s,doublee);//操作符出棧課題要求(1)編程實現(xiàn)上述課題內(nèi)容中的結(jié)構(gòu)定義和算法。(2)要有main()函數(shù),并且在main()函數(shù)中使用檢測數(shù)據(jù)調(diào)用上述算法。(3)課題完成后撰寫課題報告。(4)課題完成后把打印好的課題報告以及電子版的課題報告和源程序一并上交。(電子版的課題報告和源程序放在以學號姓名命名的文件夾中壓縮后上交到指定的ftp處)

課題七跳舞搭配問題課題名稱跳舞搭配問題課題目的1、熟悉并掌握隊列的順序存儲和鏈式存儲結(jié)構(gòu)2、熟悉并掌握隊列的基本操作3、掌握隊列實現(xiàn)跳舞搭配問題課題內(nèi)容及要求:課題內(nèi)容問題描述:一班有m個女生,有n個男生(m不等于n),現(xiàn)要開一個舞會,男女生分別編號坐在舞池的兩邊的椅子上.每曲開始時,依次從男生和女生中各出一人配對跳舞,本曲沒成功配對者坐著等待下一曲找舞伴。設(shè)計一系統(tǒng)模擬動態(tài)地顯示出上述過程,要求如下:1)輸出每曲配對情況2)計算出任何一個男生(編號為X)和任意女生(編號為Y),在第K曲配對跳舞的情況.至少求出K的兩個值。根據(jù)以上問題給出的以下存儲結(jié)構(gòu)定義://定義鏈隊結(jié)點類型typedefstructQNode{ intnum; structQNode*next;}QNode,*QueuePtr;//定義鏈隊頭指針類型typedefstruct{ QueuePtrfront;//隊頭指針 QueuePtrrear;//隊尾指針}LinkQueue;――――――――――定義基本操作的函數(shù)說明―――――――――――――voidsleep(clock_twait);/*延遲函數(shù)*/voidInitQ(LinkQueue&Q)/*建立空隊列*/voidEnQueue(LinkQueue&Q,intnum)/*入隊列*/voidDeQueue(LinkQueue&Q,int&num)/*出隊列*/voidDestroyQueue(LinkQueue&Q)/*刪除隊列*/voidprintF(LinkQueue&F,inti)/*打印第i首曲子時女隊的情況*/voidprintM(LinkQueue&M,inti)/*打印第i首曲子時男隊的情況*/voidcheck(intn)/*判斷輸入n是否合法*/課題要求(1)編程實現(xiàn)上述課題內(nèi)容中的結(jié)構(gòu)定義和算法。(2)要有main()函數(shù),并且在main()函數(shù)中使用檢測數(shù)據(jù)調(diào)用上述算法。(3)課題完成后撰寫課題報告。(4)課題完成后把打印好的課題報告以及電子版的課題報告和源程序一并上交。(電子版的課題報告和源程序放在以學號姓名命名的文件夾中壓縮后上交到指定的ftp處)課題八散列表的設(shè)計與實現(xiàn)課題名稱散列表的設(shè)計與實現(xiàn)課題目的1、熟悉并掌握散列表存儲結(jié)構(gòu);2、熟悉并掌握散列表的查找操作;3、掌握散列表的沖突解決方法的實現(xiàn)。課題內(nèi)容及要求:課題內(nèi)容問題描述:設(shè)計散列表實現(xiàn)電話號碼查找系統(tǒng),每個記錄有下列數(shù)據(jù)項:電話號碼、用戶名、地址;(1)從鍵盤輸入各記錄,分別以電話號碼和用戶名為關(guān)鍵字建立散列表;(2)采用一定的方法解決沖突;(3)查找并顯示給定電話號碼的記錄;(4)查找并顯示給定用戶名的記錄。根據(jù)以上問題給出的以下存儲結(jié)構(gòu)定義:#defineNULL0unsignedintkey;unsignedintkey2;int*p;structNode//定義結(jié)點{ charname[8];//姓名 charaddress[20];//地址 charnum[11];//電話號碼 structNode*next;//指向下一個結(jié)點指針};typedefNode*pNode;typedefNode*pName;Node**phone;Node**nam;Node*a;――――――――――定義基本操作的函數(shù)說明―――――――――――――voidhash(charnum[11]);//電話號碼哈希函數(shù)voidhash2(charname[8]);//姓名哈希函數(shù)Node*input();//輸入記錄信息intappend();//添加記錄信息voidcreate();//新建電話號碼結(jié)點信息voidcreate2();//新建姓名結(jié)點信息voidlist();//顯示電話號碼列表voidlist2();//顯示姓名列表voidfind(charnum[11]);//查找用戶信息voidfind2(charname[8]);//查找用戶信息voidsave();//保存用戶信息voidmenu();//菜單課題要求(1)編程實現(xiàn)上述課題內(nèi)容中的結(jié)構(gòu)定義和算法。(2)要有main()函數(shù),并且在main()函數(shù)中使用檢測數(shù)據(jù)調(diào)用上述算法。(3)課題完成后撰寫課題報告。(4)課題完成后把打印好的課題報告以及電子版的課題報告和源程序一并上交。(5)、用switch語句設(shè)計如下選擇式菜單。*0.添加記錄**3.查找記錄**2.姓名散列**4.號碼散列**5.清空記錄**6.保存記錄**7.退出系統(tǒng)***************************************

課題九簡單文本編輯器的設(shè)計與實現(xiàn)課題名稱簡單文本編輯器的設(shè)計與實現(xiàn)課題目的1、熟悉并掌握雙向鏈表存儲結(jié)構(gòu)實現(xiàn)及其基本操作;2、熟悉并掌握字符串模式匹配操作;3、掌握簡單文本編輯器的實現(xiàn)。課題內(nèi)容及要求:課題內(nèi)容問題描述:輸入一頁文字,采用動態(tài)存儲結(jié)構(gòu)存儲一頁文章,每行最多不超過80個字符,共N行;要求:(1)分別統(tǒng)計出其中英文字母數(shù)和空格數(shù)及整篇文章總字數(shù);(2)統(tǒng)計某一字符串在文章中出現(xiàn)的次數(shù),并輸出該次數(shù);(3)在指定行前插入文本,刪除指定行文本;(4)查找定位某個單詞在文本中的位置;(5)裝入和保存文本。根據(jù)以上問題給出的以下存儲結(jié)構(gòu)定義:structline//定義文本行數(shù)據(jù)類型{ chartext[81]; intnum;/*行號*/ structline*next;/*指向下一個行的指針*/ structline*prior;/*指向前一個行的指針*/};structline*start;/*指向表中第一行的指針*/structline*last;/*指向表中最后一行的指針*/――――――――――定義基本操作的函數(shù)說明―――――――――――――structline*find(intlinenum);//查找一行文本/*當文本內(nèi)容插在文件中間時其下面的內(nèi)容的行號必須增加1,而*//*刪除時,被刪除的文本后面的行號必須減1*/voidpatchup(intn,intincr)structline*dls_store(structline*i);//按行號排序后插入intenter(intlinenum);//將文本插在指定行前面voiddelete_text();//刪除一行voidlist();//顯示文本voidwordnum();//單詞的統(tǒng)計voidwordfind();//查找定位單詞voidsave(char*fname);//存文件voidload(char*fname);//裝入文件intmenu_select();//顯示菜單,供用戶選擇課題要求(1)編程實現(xiàn)上述課題內(nèi)容中的結(jié)構(gòu)定義和算法。(2)要有main()函數(shù),并且在main()函數(shù)中使用檢測數(shù)據(jù)調(diào)用上述算法。(3)課題完成后撰寫課題報告。(4)課題完成后把打印好的課題報告以及電子版的課題報告和源程序一并上交。(電子版的課題報告和源程序放在以學號姓名命名的文件夾中壓縮后上交到指定的ftp處)(5)、設(shè)計如下選擇式菜單。1.輸入2.刪除一行3.顯示全部4.單詞統(tǒng)計5.查找定位單詞6.定行位置插入7.文件存盤8.裝入文件9.退出請按數(shù)字選擇:

課題十詞索引表的建立課題名稱詞索引表的建立課題目的1、熟悉并掌握線性表的順序存儲和鏈式存儲結(jié)構(gòu)的實現(xiàn)與;2、熟悉并掌握字符串的基本操作;3、掌握查找操作在字符串處理中的應(yīng)用。課題內(nèi)容及要求:課題內(nèi)容問題描述:信息檢索是計算機應(yīng)用的重要領(lǐng)域之一。為了提高圖書館數(shù)目檢索的效率,建立書名關(guān)鍵詞索引,可以實現(xiàn)讀者快速檢索書目的自動化,即讀者根據(jù)關(guān)鍵詞索引表,讀者可以方便查詢到自己感興趣的書目。根據(jù)以上問題給出的以下存儲結(jié)構(gòu)定義:#defineMaxBookNum1000//最大書目數(shù)#defineMaxKeyNum2500//索引表最大容量#defineMaxLineLen500//書目字符串的最大長度#defineMaxWordNum100//最大次詞表的容量typedefstruct//定義串的堆存儲類型{ char*ch; intlength;//串長度}HString;typedefstruct{ char*item[MaxKeyNum+1]; intlast;}WordListType;//詞表類型(順序表)typedefintelemType;//定義鏈表的數(shù)據(jù)類型為整型(書號)typedefstructLnode//定義索引鏈表結(jié)點{ intdata; structLnode*next;}LNode,*LinkList;typedefstruct//定義索引項類型{ HStringkey;//關(guān)鍵字 LinkListbnolist;//存放書號索引鏈表}idxTermType;typedefstruct//定義索引表類型(有序表){ idxTermTypeitem[MaxKeyNum+1]; intlast;}idxListType;//全局變量char*buf;//書目串緩存區(qū)WordListTypewdlist;//詞表/*字符串處理函數(shù)*/――――――――――定義基本操作的函數(shù)說明―――――――――――――/*功能函數(shù)*/intStrAssign(HString&T,char*chars);//生成一個值等于串常量chars的串TintStrCompare(HStrings,HStringt);//比較字符串s與tvoidInitIdxList(idxListType&idxlist);//初始化索引表,置為空表voidGetLine(FILE*f)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論