數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì) 一元多項(xiàng)式 迷宮求解 文章編輯 紙牌游戲等

上傳人:仙*** 文檔編號(hào):34027987 上傳時(shí)間:2021-10-20 格式:DOC 頁(yè)數(shù):35 大?。?31.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì) 一元多項(xiàng)式 迷宮求解 文章編輯 紙牌游戲等_第1頁(yè)
第1頁(yè) / 共35頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì) 一元多項(xiàng)式 迷宮求解 文章編輯 紙牌游戲等_第2頁(yè)
第2頁(yè) / 共35頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì) 一元多項(xiàng)式 迷宮求解 文章編輯 紙牌游戲等_第3頁(yè)
第3頁(yè) / 共35頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì) 一元多項(xiàng)式 迷宮求解 文章編輯 紙牌游戲等》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì) 一元多項(xiàng)式 迷宮求解 文章編輯 紙牌游戲等(35頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)報(bào)告 南京林業(yè)大學(xué) 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告 專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 課程名稱: 數(shù)據(jù)結(jié)構(gòu) 姓名: 學(xué)號(hào): 090801126 指導(dǎo)老師: 時(shí)間: 2011年1月 目錄要點(diǎn): 一. 具體內(nèi)容(題目) ……………………………………1 二. 需求分析(功能要求) ………………………………2 三. 概要設(shè)計(jì)(程序設(shè)計(jì)思想) …………………………3 四.

2、 詳細(xì)設(shè)計(jì)(源代碼) ……………………………………6 五. 調(diào)試分析(運(yùn)行結(jié)果顯示及說明) ………………31 六. 課設(shè)總結(jié) ………………………………………………34 具體內(nèi)容: 題目1: 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)** 任務(wù):參加運(yùn)動(dòng)會(huì)有n個(gè)學(xué)校,學(xué)校編號(hào)為1……n。比賽分成m個(gè)男子項(xiàng)目,和w個(gè)女子項(xiàng)目。項(xiàng)目編號(hào)為男子1……m,女子m+1……m+w。不同的項(xiàng)目取前五名或前三名積分;取前五名的積分分別為:7,5,3,2,1,取前三名的積分分別為:5,3,2,;哪些取前五名或前三名由學(xué)生自己設(shè)定。(m〈=20,n〈=20); 題目2:一元多項(xiàng)式** 任務(wù):能夠按照指數(shù)降序

3、排列建立并輸出多項(xiàng)式; 能夠完成兩個(gè)多項(xiàng)式的相加,相減,并將結(jié)果輸入; 題目4:迷宮求解 任務(wù):可以輸入一個(gè)任意大小的迷宮數(shù)據(jù),用非遞歸的方法求出一條走出迷宮的路徑,并將路徑輸出; 題目5:文章編輯** 功能:輸入一頁(yè)文字,程序可以統(tǒng)計(jì)出文字、數(shù)字、空格的個(gè)數(shù)。 靜態(tài)存儲(chǔ)一頁(yè)文章,每行最多不超過80個(gè)字符,共N行; 題目6:Joseph環(huán) 任務(wù):編號(hào)是1,2,……,n的n個(gè)人按照順時(shí)針方向圍坐一圈,每個(gè)人只有一個(gè)密碼(正整數(shù))。一開始任選一個(gè)正整數(shù)作為報(bào)數(shù)上限值m,從第一個(gè)仍開始順時(shí)針方向自1開始順序報(bào)數(shù),報(bào)到m時(shí)停止報(bào)數(shù)。報(bào)m的人出列,將他的密碼作為新的m值,從他在順時(shí)針方

4、向的下一個(gè)人開始重新從1報(bào)數(shù),如此下去,直到所有的人出列為止。設(shè)計(jì)一個(gè)程序來求出出列的順序。 題目7:猴子選大王** 任務(wù):一堆猴子都有編號(hào),編號(hào)是1,2,3 ...m ,這群猴子(m個(gè))按照1-m的順序圍坐一圈,從第1開始數(shù),每數(shù)到第N個(gè),該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最后一只猴子,則該猴子為大王?! ? 題目8:建立二叉樹,層序、先序遍歷( 用遞歸或非遞歸的方法都可以) ** 任務(wù):要求能夠輸入樹的各個(gè)結(jié)點(diǎn),并能夠輸出用不同方法遍歷的遍歷序列; 題目9:紙牌游戲** 任務(wù):編號(hào)為1-52張牌,正面向上,從第2張開始,以2為基數(shù),是2的倍數(shù)的牌翻一次,直到最后

5、一張牌;然后,從第3張開始,以3為基數(shù),是3的倍數(shù)的牌翻一次,直到最后一張牌;然后…從第4張開始,以4為基數(shù),是4的倍數(shù)的牌翻一次, 直到最后一張牌;...再依次5的倍數(shù)的牌翻一次,6的,7的 直到 以52為基數(shù)的 翻過,輸出:這時(shí)正面向上的牌有哪些? 需求分析: 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì) 1)可以輸入前三名或前五名的成績(jī); 2)能統(tǒng)計(jì)各學(xué)??偡?; 3)可以按學(xué)校編號(hào),學(xué)校總分,男女團(tuán)體總分排序輸出; 4) 可以按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目的情況;可以按項(xiàng)目編號(hào)查詢查詢?nèi)〉们叭蚯拔迕膶W(xué)校。 規(guī)定:輸入數(shù)據(jù)形式和范圍:20以內(nèi)的整數(shù) 輸出形式:有中文提示,各學(xué)校分?jǐn)?shù)為整形 界面要

6、求:有合理的提示,每個(gè)功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求; 一元多項(xiàng)式計(jì)算 能夠完成兩個(gè)多項(xiàng)式的相加,相減,并將結(jié)果輸入; 迷宮求解 要求:在上交資料中請(qǐng)寫明:存儲(chǔ)結(jié)構(gòu)、基本算法(可以使用程序流程圖)、源程序、測(cè)試數(shù)據(jù)和結(jié)果、算法的時(shí)間復(fù)雜度、另外可以提出算法的改進(jìn)方法; 文章編輯 (1)分別統(tǒng)計(jì)出其中英文字母數(shù)和空格數(shù)及整篇文章總字?jǐn)?shù); (2)統(tǒng)計(jì)某一字符串在文章中出現(xiàn)的次數(shù)并輸出該次數(shù),用函數(shù)letter_num(),figure_num(),space_num(),total_num()來實(shí)現(xiàn)。 (3)刪除某一子串,并將后面的字符前移,用delstr()來

7、實(shí)現(xiàn)。 存儲(chǔ)結(jié)構(gòu)使用線性表,分別用幾個(gè)子函數(shù)實(shí)現(xiàn)相應(yīng)的功能; 輸入數(shù)據(jù)的形式和范圍:可以輸入大寫、小寫的英文字母、任何數(shù)字及標(biāo)點(diǎn)符號(hào)。 輸出形式:(1)分行輸出用戶輸入的各行字符; (2)分4行輸出"全部字母數(shù)"、"數(shù)字個(gè)數(shù)"、"空格個(gè)數(shù)"、"文章總字?jǐn)?shù)" (3)輸出刪除某一字符串后的文章; Joseph環(huán) 利用單向循環(huán)鏈表存儲(chǔ)結(jié)構(gòu)模擬此過程,按照出列的順序輸出各個(gè)人的編號(hào)。 輸入數(shù)據(jù):建立輸入處理數(shù)據(jù),輸入m的初值,n,輸入每個(gè)人的密碼,建立單循環(huán)鏈表。 輸出是什么:建立一個(gè)輸出函數(shù),將正確的輸出序列; 猴子選大王  輸入數(shù)據(jù):輸入m,n m,n 為整數(shù),n

8、出形式:中文提示按照m個(gè)猴子,數(shù)n 個(gè)數(shù)的方法,輸出為大王的猴子是幾號(hào) ,建立一個(gè)函數(shù)來實(shí)現(xiàn)此功能;首先用一個(gè)數(shù)組來存放猴子的編號(hào),從1到m,然后用hzxdw()按題目要求,用兩個(gè)雙重循環(huán)來實(shí)現(xiàn)猴子大王的選舉. 建立二叉樹 typedef struct node 是定義二叉樹的存儲(chǔ)結(jié)構(gòu) creat(bitree *bt)是用來建立二叉樹的輸入的 levelorder(bitnode *bt,int m)是用來建立層序遍歷序列的 preorder(bitree bt)是用來實(shí)現(xiàn)非遞歸先序遍歷的 main是主函數(shù) 紙牌游戲 直接用函數(shù)main()按照題目要求的規(guī)則, 只使用數(shù)組和用

9、幾個(gè)循環(huán)來實(shí)現(xiàn). 概要設(shè)計(jì): 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì): 先分配存儲(chǔ)的空間;輸入運(yùn)動(dòng)項(xiàng)目個(gè)數(shù)、參加的學(xué)校的個(gè)數(shù)、男子比賽項(xiàng)目的個(gè)數(shù)、女子比賽項(xiàng)目的個(gè)數(shù);循環(huán)每個(gè)項(xiàng)目的輸入;自行選擇取前三名還是前五名,循環(huán)輸入姓名、成績(jī)、學(xué)校;通過調(diào)用子函數(shù)進(jìn)行計(jì)算;輸出結(jié)果。 一元多項(xiàng)式計(jì)算: 通過typedef struct polynode來定義單鏈表存儲(chǔ)多項(xiàng)式的結(jié)點(diǎn)結(jié)構(gòu)。 利用尾插法建立一元多項(xiàng)式的鏈表,先建立多項(xiàng)式的頭結(jié)點(diǎn),當(dāng)表不為空的時(shí)候,申請(qǐng)新的結(jié)點(diǎn),并分配存儲(chǔ)空間,在當(dāng)前的尾表做插入,最后將表的最后一個(gè)結(jié)點(diǎn)的next置NULL,以表示結(jié)束。 兩個(gè)多項(xiàng)式的相加:當(dāng)兩個(gè)多項(xiàng)式均未掃描結(jié)束時(shí)若

10、指數(shù)不等則到下一個(gè)結(jié)點(diǎn),若指數(shù)相等且不為零時(shí),相應(yīng)的系數(shù)相加,若系數(shù)都為零時(shí),則刪除接點(diǎn)p與q,并將指針指向下一個(gè)結(jié)點(diǎn),否則將q結(jié)點(diǎn)加入到和多項(xiàng)式中。若多項(xiàng)式A中還有剩余,則將剩余的結(jié)點(diǎn)加入到和多項(xiàng)式中否則,將B中的結(jié)點(diǎn)加入到和多項(xiàng)式中。兩個(gè)多項(xiàng)式的相減與相加類似; 總流程圖: 文章編輯: 用串來存放一篇文章,文章錄入以#作為結(jié)束,然后統(tǒng)計(jì)文章各種數(shù)據(jù),直到#號(hào)為止,查找用戶要統(tǒng)計(jì)的和刪除的字符都是一樣的思想,刪除某一子串,并將后面的字符前移。 Joseph環(huán): 建立單循環(huán)鏈表,依次根據(jù)提示輸入m,n,及code值。 猴子選大王:

11、 猴子的存放采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),利用循環(huán)鏈表來實(shí)現(xiàn)建立的,其表示方法是遞歸定義的: typedef struct Mnode { int data; struct Mnode *next; }Mnode; 根據(jù)題目要求,要讓這M只猴子順序圍坐一圈,那就得用循環(huán)鏈表king(Linklist L,int n) 在主函數(shù)中,根據(jù)提示先輸入猴子的總的數(shù)量m,再輸入數(shù)的數(shù)n,最后調(diào)用子函數(shù)進(jìn)行選擇,輸出猴子王的編號(hào)。 建立二叉樹: 在typedef struct node中定義二叉樹bitree的左右結(jié)點(diǎn)分別為l

12、child、rchild。 在輸入函數(shù)中,把輸入‘.’代表空;若輸入不為空,則分配存儲(chǔ)空間,并使其產(chǎn)生左右結(jié)點(diǎn)。 在層序遍歷函數(shù)中,先定義一個(gè)數(shù)組,然后遍歷他的左孩子結(jié)點(diǎn),若不為空就放到數(shù)組中,再遍歷右孩子結(jié)點(diǎn),若不為空也放到數(shù)組中。二叉樹的層序遍歷是由上至下一層一層地遍歷的。 主函數(shù)中,先提示輸入一個(gè)樹調(diào)用二叉樹輸入函數(shù),然后調(diào)用層序遍歷函數(shù),再調(diào)用遞歸先序遍歷函數(shù)。 紙牌游戲: 通過循環(huán)和連續(xù)乘-1進(jìn)行翻牌,把值為1的定義為朝上的牌。 先定義52個(gè)牌;把每個(gè)牌都賦值為1;通過循環(huán)(52張牌的循環(huán)和基數(shù)的循環(huán)),并判斷基數(shù),每翻一次牌都乘-1,最后為1的數(shù)就是朝上的牌。

13、 時(shí)間復(fù)雜度為o[1]; 程序?qū)崿F(xiàn)思想: 首先必須確定實(shí)現(xiàn)這個(gè)課程設(shè)計(jì)的主算法是使用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)還是棧又或是數(shù)組和廣義表。 根據(jù)題目要求需要實(shí)現(xiàn)的功能有: 1、 數(shù)據(jù)錄入:輸入各種數(shù)據(jù); 此處即創(chuàng)建鏈表的過程,調(diào)用一個(gè)成員函數(shù)負(fù)值。在此處還有一個(gè)方法實(shí)現(xiàn),即先輸入數(shù)據(jù),然后再調(diào)用構(gòu)造實(shí)現(xiàn)。 2、數(shù)據(jù)統(tǒng)計(jì): 存儲(chǔ)方式的選擇,是使用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)還是棧又或是數(shù)組和廣義表;遵守先定義后調(diào)用的原則;數(shù)組定義時(shí)注意下標(biāo)的起始值和上限;鏈表定義時(shí)注意結(jié)點(diǎn)中的項(xiàng);準(zhǔn)確運(yùn)用結(jié)點(diǎn)。 3、 數(shù)據(jù)輸出:按要求的格式打印 調(diào)用do循環(huán)和for循環(huán),通過遍歷鏈表實(shí)現(xiàn)輸出,用printf語(yǔ)句輸

14、出。 4、 查找,修改,刪除: 這三個(gè)功能的核心是尋找成員,先遍歷鏈表,然后尋找對(duì)應(yīng)的ID號(hào)來找到結(jié)點(diǎn),然后再對(duì)結(jié)點(diǎn)實(shí)行刪除,修改操作。 詳細(xì)設(shè)計(jì)(源程序): 1.運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì): #include #include #include #include #include #define MAX 50 #define NULL 0 typedef struct node1{ int school;

15、 /*學(xué)校編號(hào)*/ int record; /*項(xiàng)目成績(jī)*/ struct node1 *next; }Schools; typedef struct { int item; /*項(xiàng)目編號(hào)*/ Schools *firstschool; }ITEM; typedef struct {

16、int z; /* 項(xiàng)目總數(shù) */ ITEM a[MAX]; }ALLitems; typedef struct node2 { int item; /*該學(xué)校獲獎(jiǎng)的項(xiàng)目*/ int record; /*項(xiàng)目成績(jī)*/ struct node2 *next; }Items; typedef struc

17、t { int school; /*學(xué)校編號(hào)*/ int score; /*學(xué)??偡?/ int boys; /*男團(tuán)體總分*/ int girls; /*女團(tuán)體總分*/ Items *firstitem; }SCHNode; typedef struct {

18、 int n; /* 學(xué)??倲?shù) */ SCHNode b[MAX]; }ALLNode; ALLitems *g1; ALLNode *g2; void funct1(ALLitems *g1,ALLNode *g2) /* 輸入各個(gè)項(xiàng)目成績(jī) */ { Schools *p1; Items *p2; int i,j,k,m,w,h,x; printf("\n*** enter the informa

19、tion of every item ***\n\n"); printf("enter the total number of male-items m:"); scanf("%d",&m); if(m<0||m>20) { printf("enter error,m<=20,please enter again:"); scanf("%d",&m); } printf("enter the total number of female-items w:"); scanf("%d",&w

20、); if(w<0||w>20) { printf("enter error,w<=20,please enter again:"); scanf("%d",&w); } printf("enter the total number of schools n:"); scanf("%d",&g2->n); if(g2->n<0||g2->n>20) { printf("entr error,n<=20,please enter again:"); scanf("%d

21、",&g2->n); } g1->z=m+w; printf("item number for boys 1-%d,girls %d-%d",m,m+1,g1->z); printf("\n\n*** record ***\n(0 stands for ending)"); for(k=1;k<=g1->z;k++) /* 對(duì)兩個(gè)鄰接表置初態(tài) */ { g1->a[k].item=k; g1->a[k].firstschool=NULL; }

22、 for(k=1;k<=g2->n;k++) { g2->b[k].school=k; g2->b[k].firstitem=NULL; g2->b[k].score=g2->b[k].boys=g2->b[k].girls=NULL; } g2->b[0].score=g2->b[0].boys=g2->b[0].girls=NULL; while(i!=0) { printf("\nitem:"); scanf("%d",&i); if(i

23、!=0) { printf("1.the three or 2.the five \n"); printf("please choose 1 or 2:"); scanf("%d",&j); if(j!=1&&j!=2) { printf("enter error,please enter again:"); scanf("%d",&j); } if(j==1)

24、/* 該項(xiàng)目只有前三名時(shí)執(zhí)行此語(yǔ)句 */ { h=3; do{ printf("arrange %d:school(school is number)",h); scanf("%d",&x); p1=(Schools *)malloc(sizeof(Schools)); p1->school=x; p2=(Items *)malloc(sizeof(Items)); p2->i

25、tem=i; if(h==3) p2->record=p1->record=2; if(h==2) p2->record=p1->record=3; if(h==1) p2->record=p1->record=5; p1->next=g1->a[i].firstschool; g1->a[i].firstschool=p1; p2->next=g2->b[x].firstitem;

26、 g2->b[x].firstitem=p2; g2->b[x].score=g2->b[x].score+p2->record; /* 累計(jì)總分 */ if(i<=m) g2->b[x].boys=g2->b[x].boys+p2->record; /* 累計(jì)男團(tuán)體總分 */ else g2->b[x].girls=g2->b[x].girls+p2->record; /* 累計(jì)女團(tuán)體總分 */ h--; }while

27、(x!=0&&h!=0); } if(j==2) /* 該項(xiàng)目有前五名時(shí)執(zhí)行此語(yǔ)句 */ { h=5; do{ printf("arrange %d:school(school is number)",h); scanf("%d",&x); p1=(Schools *)malloc(sizeof(Schools)); p1->school=x;

28、 p2=(Items *)malloc(sizeof(Items)); p2->item=i; if(h==5) p2->record=p1->record=1; if(h==4) p2->record=p1->record=2; if(h==3) p2->record=p1->record=3; if(h==2) p2->record=p1->record=5; if(

29、h==1) p2->record=p1->record=7; p1->next=g1->a[i].firstschool; g1->a[i].firstschool=p1; p2->next=g2->b[x].firstitem; g2->b[x].firstitem=p2; g2->b[x].score=g2->b[x].score+p2->record; /* 累計(jì)總分 */ if(i<=m) g2-

30、>b[x].boys=g2->b[x].boys+p2->record; /* 累計(jì)男團(tuán)體總分 */ else g2->b[x].girls=g2->b[x].girls+p2->record; /* 累計(jì)女團(tuán)體總分 */ h--; }while(x!=0&&h!=0); } } } } void save() /* 存儲(chǔ)數(shù)據(jù)文件 */ { FILE *fp1,*fp2; if((fp1=

31、fopen("sports1","wb"))==NULL) { printf("cannot open file.\n"); return; } if(fwrite(g1,sizeof(ALLitems),1,fp1)!=1) printf("file write error.\n"); fclose(fp1); if((fp2=fopen("sports2","wb"))==NULL) { printf("cannot open file.\n"); return;

32、 } if(fwrite(g2,sizeof(ALLNode),1,fp2)!=1) printf("file write error.\n"); fclose(fp2); } void funct2(ALLNode *g2) /* 輸出各學(xué)校總分 */ { int k; printf("\n\n*** output the score ***\n"); printf("school\t score \n"); for(k

33、=1;k<=g2->n;k++) printf("%d\t\t %d\n",k,g2->b[k].score); printf("\n"); printf("press any butter to the main menu......"); getch(); } void funct3(ALLNode *g2) /* 按學(xué)校編號(hào)排序輸出 */ { int k; Items *p2; printf("\n\n*** arranging output by sch

34、ool ***\n"); printf("school\t\t\t the grade of item \n"); for(k=1;k<=g2->n;k++) { printf("%d\t",k); p2=g2->b[k].firstitem; while(p2!=NULL) { printf("item %d:get the grade of %d ",p2->item,p2->record); p2=p2->next; } printf("\n");

35、 } printf("\n"); printf("press any butter to the main menu......"); getch(); } void funct4(ALLNode *g2) /* 按學(xué)校總分排序輸出 */ { int i,j,k; printf("\n\n*** arranging output by the score ***\n"); printf("school\t score \n"); for(i=

36、2;i<=g2->n;i++) { g2->b[0].score=g2->b[i].score; g2->b[0].boys=g2->b[i].boys; g2->b[0].girls=g2->b[i].girls; g2->b[0].school=g2->b[i].school; j=i-1; while(g2->b[0].scoreb[j].score&&j>0) { g2->b[j+1].score=g2->b[j].score; g2->b[j+1]

37、.boys=g2->b[j].boys; g2->b[j+1].girls=g2->b[j].girls; g2->b[j+1].school=g2->b[j].school; j--; } g2->b[j+1].score=g2->b[0].score; g2->b[j+1].boys=g2->b[0].boys; g2->b[j+1].girls=g2->b[0].girls; g2->b[j+1].school=g2->b[0].school;

38、 } for(k=1;k<=g2->n;k++) printf("%d \t\t%d\n",g2->b[k].school,g2->b[k].score); printf("press any butter to the main menu......"); getch(); } void funct5(ALLNode *g2) /* 按男團(tuán)體總分排序輸出 */ { int i,j,k; printf("\n*** arranging output by boy

39、s ***\n"); printf("school\t boys \n"); for(i=2;i<=g2->n;i++) { g2->b[0].score=g2->b[i].score; g2->b[0].boys=g2->b[i].boys; g2->b[0].girls=g2->b[i].girls; g2->b[0].school=g2->b[i].school; j=i-1; while(g2->b[0].boysb[j].boys&&j>0)

40、 { g2->b[j+1].score=g2->b[j].score; g2->b[j+1].boys=g2->b[j].boys; g2->b[j+1].girls=g2->b[j].girls; g2->b[j+1].school=g2->b[j].school; j--; } g2->b[j+1].score=g2->b[0].score; g2->b[j+1].boys=g2->b[0].boys; g2->b[j+1].girls=g2-

41、>b[0].girls; g2->b[j+1].school=g2->b[0].school; } for(k=1;k<=g2->n;k++) printf("%d\t\t %d\n",g2->b[k].school,g2->b[k].boys); printf("press any butter to the main menu......"); getch(); } void funct6(ALLNode *g2) /* 按女團(tuán)體總分排序輸出 */

42、 { int i,j,k; printf("\n*** arranging output by girls ***\n"); printf("school\t girls \n"); for(i=2;i<=g2->n;i++) { g2->b[0].score=g2->b[i].score; g2->b[0].boys=g2->b[i].boys; g2->b[0].girls=g2->b[i].girls; g2->b[0].school=g2->b[i].school; j

43、=i-1; while(g2->b[0].girlsb[j].girls&&j>0) { g2->b[j+1].score=g2->b[j].score; g2->b[j+1].boys=g2->b[j].boys; g2->b[j+1].girls=g2->b[j].girls; g2->b[j+1].school=g2->b[j].school; j--; } g2->b[j+1].score=g2->b[0].score;

44、 g2->b[j+1].boys=g2->b[0].boys; g2->b[j+1].girls=g2->b[0].girls; g2->b[j+1].school=g2->b[0].school; } for(k=1;k<=g2->n;k++) printf("%d\t\t %d\n",g2->b[k].school,g2->b[k].girls); printf("press any butter to the main menu......"); getch(); } vo

45、id funct7(ALLNode *g2) /* 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況 */ { int i,j,k; Items *p2; printf("\n *** look for the grade of a item by school ***\n"); printf("enter the school you are looking for:"); scanf("%d",&i); printf("enter the item you are looking for:"); sc

46、anf("%d",&j); p2=g2->b[i].firstitem; while(p2!=NULL) { if(p2->item==j) printf("school:%d\t item:%d\t record:%d\n",i,p2->item,p2->record); p2=p2->next; } printf("\n"); printf("press any butter to the main menu......"); getch(); }

47、 void funct8(ALLitems *g1) /* 按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校 */ { int i,k; Schools *p1; printf("\n*** look for the win-school by item ***\n"); printf("enter the item you are looking for:"); scanf("%d",&i); printf("item \t\t\tthe win-school\n"); printf("%d\

48、t",i); p1=g1->a[i].firstschool; while(p1!=NULL) { printf(" school %d:get the grade of %d ",p1->school,p1->record); p1=p1->next; } printf("\n\n"); printf("press any butter to the main menu......"); getch(); } void main() { int t;

49、 ALLitems *g1; ALLNode *g2; for(;;) { printf("\t\t the score of the sports \n"); /* 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)*/ printf("\t\t* * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n"); printf("\t\t \n");

50、 printf("\t\t* * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n"); printf("\t\t* 1.entering each record and save it *\n"); /* .輸入各個(gè)項(xiàng)目成績(jī)并存儲(chǔ)文件 */ printf("\t\t* 2.accumulating the score of each school *\n"); /* 統(tǒng)計(jì)各學(xué)??偡?/ printf("\t\t*

51、 3.arranging output by the school *\n"); /* 按學(xué)校編號(hào)排序輸出*/ printf("\t\t* 4.arranging output by the score *\n"); /* 按學(xué)??偡峙判蜉敵?/ printf("\t\t* 5.arranging output by boys *\n"); /* 按男團(tuán)體總分排序輸出*/ printf("\t\t*

52、 6.arranging output by girls *\n"); /* 按女團(tuán)體總分排序輸出*/ printf("\t\t* 7.looking for the score of a item by school *\n"); /* 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況*/ printf("\t\t* 8.looking for the win-school by item *\n"); /* 按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校*/ printf("\t\t*

53、 0.exit *\n"); printf("\t\t* * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n"); printf("\t\t please choose (0-8):"); loop:scanf("%d",&t); switch(t) { case 1:funct1(g1,g2);save();break; ca

54、se 2:funct2(g2);break; case 3:funct3(g2);break; case 4:funct4(g2);break; case 5:funct5(g2);break; case 6:funct6(g2);break; case 7:funct7(g2);break; case 8:funct8(g1);break; case 0:exit(0); default:{ printf("enter error,p

55、lease enter again:"); goto loop;} } } } 2.一元多項(xiàng)式計(jì)算 #include #include #include #define LEN sizeof(struct poly) struct poly { int coef; int index

56、; struct poly * next; }; void print_poly(struct poly *head) { struct poly *p1; printf("%d次%d項(xiàng)式:",head->index,head->coef); p1=head->next; while(p1!=NULL) { if(p1->coef>0) { if(p1->index!=1&&p1->index!=0) printf("%dx^%d+",p1->coef,p1->index); else if(p1->index==1) pri

57、ntf("%dx+",p1->coef); else printf("%d+",p1->coef); } else if(p1->coef<0) { if(p1->index!=1&&p1->index!=0) printf("(%d)x^%d+",p1->coef,p1->index); else if(p1->index==1) printf("(%d)x+",p1->coef); else printf("(%d)+",p1->coef); } p1=p1->next; } print

58、f("\b \n"); } struct poly * creat_poly() { struct poly *p1,*p2,*head; head=(struct poly *)malloc(LEN); head->coef=head->index=0; head->next=NULL; printf("請(qǐng)輸入要?jiǎng)?chuàng)建的多項(xiàng)式(如A(x)=5x^17+9x^8+3x+7,請(qǐng)輸入\"5^17 9^8 3^1 7^0 0^0\":\n"); p1=(struct poly *)malloc(LEN); scanf("%d^%d",&p1->coef,&p1

59、->index); while(p1->coef!=0) { p2=head; while(p2->next!=NULL) { if(p2->next->indexindex) break; p2=p2->next; } p1->next=p2->next; p2->next=p1; (head->coef)++; if(p1->index>head->index) head->index=p1->index; p1=(struct poly *)malloc(LEN);

60、 scanf("%d^%d",&p1->coef,&p1->index); } p1->next=NULL; return(head); } struct poly * add_poly(struct poly *head1,struct poly *head2) { struct poly *p1,*p2,*head3,*p3; p1=head1->next; p2=head2->next; head3=(struct poly *)malloc(LEN); p3=head3; head3->coef=head3->index=0

61、; head3->next=NULL; while(p1!=NULL&&p2!=NULL) { if(p1->index>p2->index) { p3->next=p1; (head3->coef)++; p1=p1->next; p3=p3->next; } else if(p1->index==p2->index) { if(p1->coef+p2->coef!=0) { p3->next=(struct poly *)malloc(LEN); (p

62、3->next)->coef=p1->coef+p2->coef; (p3->next)->index=p1->index; (head3->coef)++; p3=p3->next; } p1=p1->next; p2=p2->next; } else if(p1->indexindex) { p3->next=p2; (head3->coef)++; p2=p2->next;

63、 p3=p3->next; } } if(p1==NULL) p3->next=p2; else if(p2==NULL) p3->next=p1; p3=p3->next; while(p3!=NULL) { (head3->coef)++; p3=p3->next; } if(head3->next!=NULL) head3->index=head3->next->index; return(head3); } struct poly * sub_poly(struct poly *head1,str

64、uct poly *head2) { struct poly *p1,*head3; p1=head2->next; while(p1!=NULL) { p1->coef=0-p1->coef; p1=p1->next; } head3=add_poly(head1,head2); return(head3); } int main() { struct poly *head1,*head2,*head3; char flag; printf("正在創(chuàng)建多項(xiàng)式一:\n"); head1=creat_poly

65、(); printf("您創(chuàng)建的多項(xiàng)式為:\n\t"); print_poly(head1); printf("\n正在創(chuàng)建多項(xiàng)式二:\n"); head2=creat_poly(); printf("您創(chuàng)建的多項(xiàng)式為:\n\t"); print_poly(head2); do{ printf("\n請(qǐng)選擇運(yùn)算符號(hào)(+或-):"); getchar(); flag=getchar(); if(flag!=+&&flag!=-) printf("\n輸入錯(cuò)誤!請(qǐng)重新輸入!\n"); }while(fla

66、g!=+&&flag!=-); switch(flag) { case +:head3=add_poly(head1,head2);break; case -:head3=sub_poly(head1,head2);break; } printf("\n計(jì)算的結(jié)果是:\n"); print_poly(head3); printf("\n按[Enter]結(jié)束。"); getchar(); getchar(); } 4.迷宮求解 #include #include #define M 10 /* 10*10 */ #define OK 1 #define ERROR 0 #define OVERFLOW -1 #define STACK_INIT_SIZE 100 #define

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!