《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)報(bào)告運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì) 一元多項(xiàng)式 迷宮求解 文章編輯 紙牌游戲等
《《數(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頁珍藏版)》請?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é)號: 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é)校編號為1……n。比賽分成m個(gè)男子項(xiàng)目,和w個(gè)女子項(xiàng)目。項(xiàng)目編號為男子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:文章編輯** 功能:輸入一頁文字,程序可以統(tǒng)計(jì)出文字、數(shù)字、空格的個(gè)數(shù)。 靜態(tài)存儲(chǔ)一頁文章,每行最多不超過80個(gè)字符,共N行; 題目6:Joseph環(huán) 任務(wù):編號是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ù):一堆猴子都有編號,編號是1,2,3 ...m ,這群猴子(m個(gè))按照1-m的順序圍坐一圈,從第1開始數(shù),每數(shù)到第N個(gè),該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最后一只猴子,則該猴子為大王。 題目8:建立二叉樹,層序、先序遍歷( 用遞歸或非遞歸的方法都可以) ** 任務(wù):要求能夠輸入樹的各個(gè)結(jié)點(diǎn),并能夠輸出用不同方法遍歷的遍歷序列; 題目9:紙牌游戲** 任務(wù):編號為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)可以輸入前三名或前五名的成績; 2)能統(tǒng)計(jì)各學(xué)校總分; 3)可以按學(xué)校編號,學(xué)??偡?,男女團(tuán)體總分排序輸出; 4) 可以按學(xué)校編號查詢學(xué)校某個(gè)項(xiàng)目的情況;可以按項(xiàng)目編號查詢查詢?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é)果輸入; 迷宮求解 要求:在上交資料中請寫明:存儲(chǔ)結(jié)構(gòu)、基本算法(可以使用程序流程圖)、源程序、測試數(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)符號。
輸出形式:(1)分行輸出用戶輸入的各行字符;
(2)分4行輸出"全部字母數(shù)"、"數(shù)字個(gè)數(shù)"、"空格個(gè)數(shù)"、"文章總字?jǐn)?shù)"
(3)輸出刪除某一字符串后的文章;
Joseph環(huán)
利用單向循環(huán)鏈表存儲(chǔ)結(jié)構(gòu)模擬此過程,按照出列的順序輸出各個(gè)人的編號。
輸入數(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ù)的方法,輸出為大王的猴子是幾號 ,建立一個(gè)函數(shù)來實(shí)現(xiàn)此功能;首先用一個(gè)數(shù)組來存放猴子的編號,從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)輸入姓名、成績、學(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í)候,申請新的結(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ù),直到#號為止,查找用戶要統(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)行選擇,輸出猴子王的編號。
建立二叉樹:
在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語句輸 14、出。
4、 查找,修改,刪除:
這三個(gè)功能的核心是尋找成員,先遍歷鏈表,然后尋找對應(yīng)的ID號來找到結(jié)點(diǎn),然后再對結(jié)點(diǎn)實(shí)行刪除,修改操作。
詳細(xì)設(shè)計(jì)(源程序):
1.運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì):
#include 15、 /*學(xué)校編號*/
int record; /*項(xiàng)目成績*/
struct node1 *next;
}Schools;
typedef struct {
int item; /*項(xiàng)目編號*/
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)目成績*/
struct node2 *next;
}Items;
typedef struc 17、t {
int school; /*學(xué)校編號*/
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)目成績 */
{ 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++) /* 對兩個(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í)行此語句 */
{ 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í)行此語句 */
{ 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é)校編號排序輸出 */
{ 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].score 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].boys 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].girls 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é)校編號查詢學(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)目編號查詢?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)目成績并存儲(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é)校編號排序輸出*/
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é)校編號查詢學(xué)校某個(gè)項(xiàng)目情況*/
printf("\t\t* 8.looking for the win-school by item *\n"); /* 按項(xiàng)目編號查詢?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 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("請輸入要?jiǎng)?chuàng)建的多項(xiàng)式(如A(x)=5x^17+9x^8+3x+7,請輸入\"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->index 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->index 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請選擇運(yùn)算符號(+或-):");
getchar();
flag=getchar();
if(flag!=+&&flag!=-) printf("\n輸入錯(cuò)誤!請重新輸入!\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
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案