版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《C高級(jí)語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告</p><p> ?。?2014 /2015 學(xué)年 第 1 學(xué)期)</p><p> 學(xué)生姓名: </p><p> 學(xué)生專(zhuān)業(yè): </p><p> 學(xué)生班級(jí): </p><p> 學(xué)
2、生學(xué)號(hào): </p><p> 指導(dǎo)教師: </p><p> 2015年 1 月 9 日</p><p> 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院</p><p><b> 課程設(shè)計(jì)任務(wù)書(shū)</b></p><p> 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院</p>
3、<p><b> 課程設(shè)計(jì)成績(jī)?cè)u(píng)審表</b></p><p><b> 目錄</b></p><p> 設(shè)計(jì)問(wèn)題描述與分析..............................1</p><p> 1.1問(wèn)題描述...........................................
4、......1</p><p> 1.2 系統(tǒng)功能分析..............................................1</p><p> 第二章.算法設(shè)計(jì)與流程圖..................................2</p><p> 2.1算法設(shè)計(jì).................................
5、...............2</p><p> 2.2流程圖...................................................5</p><p> 第三章.程序設(shè)計(jì)編碼與測(cè)試................................7</p><p> 3.1程序代碼........................
6、..........................7</p><p> 3.2測(cè)試......................................................14</p><p> 第四章.設(shè)計(jì)過(guò)程總結(jié)或分析...............................19</p><p> 第一章.設(shè)計(jì)問(wèn)題描述與分析<
7、/p><p> 1 .問(wèn)題描述; </p><p> 在游戲中,玩家們用手表示石頭、剪刀或布中的一個(gè),出拳頭表示石頭,伸出兩根手指表示剪刀,伸手表示布,玩家和計(jì)算機(jī)做出他們的選擇,如果所作的選擇是一樣的,則表示平局,否則就按如下規(guī)則決定勝負(fù):(1)石頭砸壞剪刀;(2)剪刀剪碎布;(3)布覆蓋石頭。 </p><p> 編寫(xiě)程序?qū)崿F(xiàn)計(jì)
8、算機(jī)與人進(jìn)行游戲。</p><p> 2. 系統(tǒng)功能分析: </p><p> 游戲中可能出現(xiàn)的選擇情況都可以估計(jì)到,因此,定義一個(gè)枚舉類(lèi)型把游戲中可能出現(xiàn)的選擇項(xiàng)都列出來(lái),包括cloth(布),hammer(錘子),scissors(剪刀),game(游戲結(jié)果),help(幫助),instructions(游戲方法指導(dǎo)),quit(退出游戲)。 </p>
9、;<p> 定義一個(gè)類(lèi)Game,把需要讓外界調(diào)用的成員函數(shù)指定為公用的,類(lèi)中的公用部分包含玩家選擇命令(select( ))、機(jī)器選擇(mach( ))、提示游戲規(guī)(gamehelp( ))、判斷輸贏(Win_lose( ))、游戲結(jié)果(gameshow( ))、幫助(gamehelp( ))游戲說(shuō)明(instruct( )) 每局游戲結(jié)果(
10、solution( ))七個(gè)成員函數(shù),另外有一個(gè)用來(lái)賦初值構(gòu)造函數(shù)(Game());而為了保證類(lèi)的封裝性和信息的隱蔽,把數(shù)據(jù)成員指定為私有的。</p><p> 創(chuàng)建游戲類(lèi)對(duì)象g,調(diào)用對(duì)象g的成員函數(shù)solution( ),開(kāi)始游戲。</p><p> 第二章.算法設(shè)計(jì)與流程圖</p><p><b> 1.算法設(shè)計(jì):</b
11、></p><p> (1)在頭文件head.h中定義枚舉類(lèi)型enum c_h_s{cloth,hammer,scissors,game ,help,instructions,quit}來(lái)列出游戲選擇項(xiàng),同時(shí)定義一個(gè)類(lèi)Game把需要讓外界調(diào)用的成員函數(shù)select( )、mach( )、gamehelp( )、Win_lose(
12、160;)、gameshow( )、solution( )、instruct( )、Game()指定為公用的, 為了保證類(lèi)的封裝性和信息的隱蔽, 把數(shù)據(jù)成員int win、int lose、int tie 、enum c_h_s player、enum c_h
13、_s machine指定為私有的。 </p><p> ?。?)在源文件head.cpp中定義構(gòu)造函數(shù)Game(),對(duì)贏、輸、平局的數(shù)據(jù)成員初始化為0。 </p><p> ?。?)在源文件head.cpp中定義成員函數(shù)select(),獲取玩家選擇一個(gè)命令(即在石頭、剪刀、布、游戲結(jié)果、游戲幫助、游戲介紹、退出中做出選擇),并將選擇的結(jié)果返回。 &
14、#160; </p><p> (4)在源文件head.cpp中定義成員函數(shù)mach(),實(shí)現(xiàn)機(jī)器對(duì)錘子、剪刀或布選擇,這中間用到隨機(jī)函數(shù),利用到time.h和stdlib.h頭文件,以及關(guān)鍵字rand、srand。 </p><p> ?。?)在源文件head.cpp中定義成員函數(shù)gameshow(int win,int lose,int
15、0;tie ),輸出游戲結(jié)果,包含有贏、輸、平局以及游戲總次數(shù)的情況。 </p><p> ?。?)在源文件head.cpp中定義成員函數(shù)gamehelp( ),輸出各字符所表示的意義,以幫助玩家進(jìn)行選擇。 </p><p> ?。?)在源文件head.cpp中定義成員函數(shù)成員函數(shù)win_lose(enum c_h_s playe
16、r,enum c_h_s machine ),讀取玩家和電腦的選擇,根據(jù)游戲規(guī)則判斷玩家贏、輸或平局,返回判斷結(jié)果。 </p><p> (8)在源文件head.cpp中定義成員函數(shù)instruct( ),對(duì)游戲規(guī)則進(jìn)行說(shuō)明。最后定義成員函數(shù)solution( ),統(tǒng)計(jì)游戲從開(kāi)始運(yùn)行到現(xiàn)在運(yùn)行的結(jié)果,并輸出每局的游戲結(jié)果。 </p>
17、;<p> ?。?)在源文件game.cpp中,定義主函數(shù)。在主函數(shù)中,創(chuàng)建游戲類(lèi)對(duì)象g,調(diào)用對(duì)象g的成員函數(shù)solution( ),開(kāi)始游戲。</p><p><b> 2.流程圖:</b></p><p><b> 2.1功能模塊圖:</b></p><p><b> 圖2.1
18、功能模塊</b></p><p> 2.2用戶(hù)選擇模塊:</p><p><b> 圖2.2用戶(hù)選擇圖</b></p><p> 2.3機(jī)器選擇模塊:</p><p> 圖2.3 機(jī)器選擇圖</p><p><b> 2.4判斷模塊:</b></p
19、><p><b> 圖2.4 判斷模塊</b></p><p> 2.5顯示模塊: &
20、lt;/p><p><b> 圖2.5顯示模塊圖</b></p><p> 第三章.程序設(shè)計(jì)編碼與測(cè)試</p><p><b> 3.1程序代碼:</b></p><p><b> //head.h</b></p><p> enum c_h_s
21、</p><p><b> {</b></p><p> cloth,hammer,scissors,game,help,instructions,quit</p><p><b> };</b></p><p> class Game //Game類(lèi)</p><p>
22、;<b> {</b></p><p><b> public:</b></p><p> Game(); //構(gòu)造函數(shù)</p><p> enum c_h_s select( ); //選擇命令函數(shù)</p><p> enum c_h_s mach( ); //機(jī)器選擇函
23、數(shù)</p><p> void gamehelp( );//幫助函數(shù)</p><p> int Win_lose(enum c_h_s player,enum c_h_s machine);//判斷輸贏函數(shù)</p><p> void gameshow(int,int,int );//游戲結(jié)果函數(shù)</p><p> void solu
24、tion( );//游戲結(jié)果函數(shù)</p><p> void instruct( );//游戲說(shuō)明函數(shù)</p><p><b> private:</b></p><p> int win; // 贏的次數(shù)</p><p> int lose; //輸?shù)拇螖?shù)</p&
25、gt;<p> int tie; //平局次數(shù)</p><p> enum c_h_s player; //玩家的選擇</p><p> enum c_h_s machine; //機(jī)器的選擇</p><p><b> };</b></p><p> //head.cpp&
26、lt;/p><p> #include<iostream.h></p><p> #include<stdlib.h></p><p> #include<time.h></p><p> Game::Game()</p><p><b> {</b>&l
27、t;/p><p><b> win=0;</b></p><p><b> lose=0;</b></p><p><b> tie=0;</b></p><p><b> }</b></p><p> enum c_h_s
28、Game::select()</p><p><b> {</b></p><p><b> char c;</b></p><p> enum c_h_s p;</p><p> cout<<"請(qǐng)選擇"<<'c'<<&
29、#39;,'<<'h'<<"或"<<'s'<<":";</p><p><b> cin>>c;</b></p><p><b> switch(c)</b></p><p>&l
30、t;b> {</b></p><p> case 'c': p=cloth;</p><p> cout<<"玩家的選擇:\n";</p><p> cout<<" @@@@@ @ @@ \n";</p><p> cou
31、t<<" @ @ @ @@ \n";</p><p> cout<<" @ @ @ @@ \n";</p><p> cout<<" @@@@@ @ @@ \n";</p><p> cout<<&quo
32、t; \n"; break;</p><p> case 'h': p=hammer;</p><p> cout<<"玩家的選擇:\n";</p><p> cout<<" @@@@@ \n";</p><p>
33、 cout<<" @ @ @ \n";</p><p> cout<<" @ @ @ \n";</p><p> cout<<" @@@@@ \n"; </p><p><b> break;</b>
34、</p><p> case 's': p=scissors;</p><p> cout<<"玩家的選擇:\n";</p><p> cout<<" @@@@@ @@ \n";</p><p> cout<<"
35、 @ @ @ @ \n";</p><p> cout<<" @ @ @ @ \n";</p><p> cout<<" @@@@@ @@ \n"; </p><p><b> break;</b>&
36、lt;/p><p> case 'g': p=game;break;</p><p> case 'p': p=help;break;</p><p> case 'i': p=instructions;break;</p><p> case 'q': p=quit;bre
37、ak;</p><p> default: cout<<"輸入有誤,請(qǐng)重新輸入:"<<endl;</p><p><b> }</b></p><p><b> return p;</b></p><p><b> }</b>
38、</p><p> enum c_h_s Game::mach() //機(jī)器選則結(jié)果</p><p><b> {</b></p><p><b> int i;</b></p><p> srand((unsigned)time(NULL));</p><p>
39、<b> 8</b></p><p> //函數(shù)rand()是真正的隨機(jī)數(shù)生成器,</p><p> 而srand()會(huì)設(shè)置供rand()使用的隨機(jī)數(shù)種子。</p><p> //如果你在第一次調(diào)用rand()之前沒(méi)有調(diào)用srand(),</p><p> 那么系統(tǒng)會(huì)為你自動(dòng)調(diào)用srand()。</p&g
40、t;<p> //而使用同種子相同的數(shù)調(diào)用 srand()會(huì)導(dǎo)致相同的隨機(jī)數(shù)序列被生成。</p><p><b> i=rand();</b></p><p><b> i=i%3;</b></p><p><b> if(i==0)</b></p><p&g
41、t;<b> { </b></p><p> cout<<"電腦的選擇:\n";</p><p> cout<<" @@@@@ @ @@ \n";</p><p> cout<<" @ @ @ @@ \n";
42、</p><p> cout<<" @ @ @ @@ \n";</p><p> cout<<" @@@@@ @ @@ \n";</p><p> cout<<" \n";</p><p>
43、 return cloth;</p><p><b> }</b></p><p><b> else</b></p><p><b> {if(i==1)</b></p><p><b> { </b></p><p>
44、; cout<<"電腦的選擇:\n";</p><p> cout<<" @@@@@ \n";</p><p> cout<<" @ @ @ \n";</p><p> cout<<" @ @ @ \
45、n";</p><p> cout<<" @@@@@ \n";</p><p> return hammer;</p><p><b> }</b></p><p><b> else</b></p><p>&
46、lt;b> {</b></p><p> cout<<"電腦的選擇:\n";</p><p> cout<<" @@@@@ @@ \n";</p><p> cout<<" @ @ @ @ \n";&l
47、t;/p><p> cout<<" @ @ @ @ \n";</p><p> cout<<" @@@@@ @@ \n"; </p><p> return scissors;</p><p><b> }</b&g
48、t;</p><p><b> }</b></p><p><b> }</b></p><p> void Game::gameshow(int win,int lose,int tie )</p><p><b> {</b></p><p>
49、; cout<<"游戲結(jié)果如下:"<<endl</p><p> <<" 玩家獲勝的次數(shù)是:"<<win<<endl</p><p> <<" 電腦獲勝的次數(shù)是:"<<lose<<endl</p>
50、<p> <<" 平局的次數(shù)是:"<<tie<<endl</p><p> <<" 游戲的總次數(shù)是:"<<win+lose+tie<<endl;</p><p><b> }</b></p><p&g
51、t; void Game::gamehelp( )</p><p><b> {</b></p><p> cout<<" 玩家可以輸入下列的字符:"<<endl</p><p> <<" c 表示布 "<<endl
52、</p><p> <<" h 表示錘子 "<<endl </p><p> <<" s 表示剪刀 "<<endl</p><p> <<" g 查看游戲結(jié)果 "<&
53、lt;endl</p><p> <<" p 可獲得游戲幫助 "<<endl</p><p> <<"i 游戲指導(dǎo)信息 "<<endl</p><p> <<" q 退出游戲 "<
54、;<endl;</p><p><b> }</b></p><p> int Game::Win_lose(enum c_h_s player,enum c_h_s machine )</p><p><b> {</b></p><p> int victory;</p>
55、;<p> if(player==cloth)</p><p> victory=machine==hammer;</p><p><b> else</b></p><p><b> {</b></p><p> if(player==hammer)</p>
56、<p> victory=machine==scissors;</p><p><b> else</b></p><p> victory=machine==cloth;</p><p><b> }</b></p><p> return victory;</p>
57、;<p><b> }</b></p><p> void Game::instruct( )</p><p><b> {</b></p><p> cout<<" 剪刀 錘子 布 小游戲 " <<en
58、dl</p><p> <<"在這個(gè)游戲中" <<endl</p><p> <<"c 表示布" <<endl</p><p> <<"h 表示錘子" <<endl</p><p> <<&q
59、uot;s 表示剪刀." <<endl</p><p> <<"游戲者和計(jì)算機(jī)都只選擇 c,h,s中的一個(gè).</p><p> 如果二者的選擇相同,那么這一局就是平局.此外:" <<endl</p><p> <<"\"布包錘子\"(布獲勝)."
60、; <<endl</p><p> <<"\"錘子打爛剪刀\"(錘子獲勝)." <<endl</p><p> <<"\"剪刀剪布\"(剪刀獲勝)." <<endl</p><p> <<"還有其它的
61、選擇是:" <<endl</p><p> <<"g 表示游戲的結(jié)果(至今獲勝的次數(shù))" <<endl</p><p> <<"p 可獲得幫助" <<endl</p><p> <<"i 可獲得游戲方法的指導(dǎo)信息" &l
62、t;<endl</p><p> <<"q 表示退出游戲" <<endl</p><p> <<"這個(gè)游戲一直重復(fù)到游戲者選擇 q 為止." <<endl</p><p> <<"goodluck" <<endl;<
63、/p><p><b> }</b></p><p> //game.cpp</p><p> void Game::solution( ) //游戲結(jié)果</p><p><b> {</b></p><p> Game::instruct( );</p&g
64、t;<p> while((player=select( ))!=quit)</p><p><b> {</b></p><p> switch(player)</p><p><b> {</b></p><p> case cloth:</p><p
65、> case hammer:</p><p> case scissors: </p><p><b> {</b></p><p> machine=mach();</p><p> if(player==machine)</p><p><b> {</b&g
66、t;</p><p> tie=tie+1;</p><p> cout<<"平局"<<endl;</p><p> } </p><p><b> else</b></p><p><b> {</b>&
67、lt;/p><p> if(Win_lose(player, machine)){win=win+1;</p><p> cout<<"玩家獲勝"<<endl;</p><p><b> }</b></p><p><b> else</b><
68、/p><p><b> {</b></p><p> lose=lose+1;</p><p> cout<<"電腦獲勝"<<endl;</p><p><b> }</b></p><p><b> }</b
69、></p><p><b> }</b></p><p> case game: Game::gameshow(win,lose,tie ); break;</p><p> case instructions: Game::instruct( );break;</p><p> case quit: ga
70、meshow(win,lose,tie );break;</p><p> case help: Game::gamehelp( );break;</p><p><b> }</b></p><p><b> }</b></p><p> Game::gameshow(win,lose,t
71、ie );</p><p> cout<<"bye"<<endl;}</p><p> #include<iostream.h></p><p> void main()</p><p><b> {</b></p><p> co
72、ut <<"軟件132001 201320020122 呂毅"<<endl;</p><p><b> Game g;</b></p><p> g.solution( );</p><p><b> }</b></p><p><b
73、> 3.2測(cè)試:</b></p><p> 1.游戲規(guī)則及說(shuō)明截圖:</p><p> 圖3.1游戲規(guī)則及說(shuō)明截圖</p><p> 2. 游戲運(yùn)行及統(tǒng)計(jì)結(jié)果截圖:</p><p><b> (1).</b></p><p> 圖3.2游戲運(yùn)行截圖</p>
74、<p><b> 13</b></p><p> 圖3.2中玩家輸入選擇c(cloth)即選擇布,此時(shí)電腦選擇的也是c(cloth)布,所以結(jié)果是平局,總次數(shù)一次。</p><p><b> (2).</b></p><p> 圖3.3游戲運(yùn)行截圖</p><p> 圖3.3
75、中當(dāng)玩家選擇h(hammer)即錘子時(shí),電腦選擇s(scissors)剪刀,玩家獲勝,總次數(shù)兩次,平局一次。</p><p><b> ?。?).</b></p><p> 圖3.4游戲運(yùn)行截圖</p><p> 圖3.4中玩家選擇s(scissors)即剪刀,電腦選擇h錘子,此時(shí)電腦獲勝,總次數(shù)三場(chǎng),平局一場(chǎng)。</p>&l
76、t;p> 3.查看游戲結(jié)果截圖:</p><p> 圖3.5游戲結(jié)果截圖</p><p> 圖3.5中輸入g命令即查看游戲結(jié)果。</p><p><b> 4.游戲幫助截圖:</b></p><p> 圖3.6游戲幫助截圖</p><p> 圖3.6中輸入p命令即(help)命令
77、得到游戲幫助信息</p><p><b> 游戲指導(dǎo)說(shuō)明截圖:</b></p><p> 圖3.7游戲指導(dǎo)說(shuō)明截圖</p><p> 圖3.7中輸入i(intruction)命令,獲得游戲指導(dǎo)說(shuō)明</p><p><b> 退出游戲截圖:</b></p><p>
78、圖3.8退出游戲截圖</p><p> 圖3.8中輸入q(quit)停止命令,按enter鍵退出。</p><p> 第四章.設(shè)計(jì)過(guò)程總結(jié)或分析</p><p><b> 總結(jié):</b></p><p> 在設(shè)計(jì)石頭-剪刀-布游戲的程序過(guò)程中,我們用到了面向?qū)ο蟮念?lèi)、成員函數(shù)、結(jié)構(gòu)函數(shù)、隨機(jī)函數(shù)、枚舉類(lèi)型、
79、60;break語(yǔ)句、for語(yǔ)句、if語(yǔ)句、while循環(huán)、函數(shù)調(diào)用機(jī)制、參數(shù)的傳遞、switch語(yǔ)句等。 </p><p> 本設(shè)計(jì)基本完成了設(shè)計(jì)的要求,測(cè)試結(jié)果是正確的。如需完善的話可以把游戲所做的選擇可以弄成圖像,讓程序變的更加直觀。</p><p><b> 設(shè)計(jì)心得和體會(huì):</b></p><p> 在這個(gè)程序中讓我了
80、解了什么是類(lèi),類(lèi)所包含的對(duì)象怎么去調(diào)用,對(duì)于它的保護(hù)對(duì)象和公有對(duì)象理解了其中的作用和效果。補(bǔ)充了一個(gè)隨機(jī)函數(shù),讓我知道到了隨機(jī)種子的生成,與應(yīng)用的技巧??傊@個(gè)實(shí)訓(xùn)讓我得到了很多重要的編譯技巧和思考的路線方向。 在設(shè)計(jì)這個(gè)小游戲過(guò)程中,我遇到了很多問(wèn)題:1、枚舉類(lèi)型的定義和做參數(shù)的使用,隨機(jī)函數(shù)的頭文件和初始化化隨機(jī)函數(shù),上網(wǎng)收集錯(cuò)誤,分析自己的不足處,然后加以改正。
81、2、調(diào)用類(lèi)里面的函數(shù)要用到區(qū)域符“::”,會(huì)常常忘記,還有使用類(lèi)的私有成員時(shí)只有類(lèi)里面的對(duì)象可以調(diào)用和定義等等。</p><p><b> 附錄</b></p><p><b> 集合交并差:</b></p><p><b> 流程圖如下:</b></p><p><
82、;b> 代碼:</b></p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> typedef struct LNode//定義結(jié)構(gòu)體類(lèi)型指針</p><p><b> {</b></p>
83、;<p> char data;</p><p> struct LNode*next;</p><p> }*pointer;</p><p> void Inputdata(pointer head)//定義輸入集合函數(shù)</p><p><b> {</b></p><p&
84、gt; pointer p;</p><p><b> char tmp;</b></p><p> scanf("%c",&tmp);</p><p> while(tmp!='\n')</p><p><b> {</b></p>
85、<p> p=(pointer)malloc(sizeof(struct LNode));</p><p> p->data=tmp;</p><p> p->next=head->next;</p><p> head->next=p;</p><p> scanf("%c"
86、;,&tmp);</p><p><b> }</b></p><p><b> }</b></p><p> void Output(pointer head)//定義輸出集合函數(shù)</p><p><b> {</b></p><p>
87、 pointer p;</p><p> p=head->next;</p><p><b> while(p)</b></p><p><b> {</b></p><p> printf("%c",p->data);</p><p&g
88、t; p=p->next;</p><p><b> }</b></p><p> printf("\n");</p><p><b> }</b></p><p> void Add(pointer head1,pointer head2,pointer hea
89、d3)//定義集合的并集函數(shù)</p><p><b> {</b></p><p> pointer p1,p2,p3;</p><p> p1=head1->next;</p><p><b> while(p1)</b></p><p><b>
90、 { </b></p><p> p3=(pointer)malloc(sizeof(struct LNode));</p><p> p3->data=p1->data;</p><p> p3->next=head3->next;</p><p> head3->next=p3;<
91、/p><p> p1=p1->next;</p><p><b> }</b></p><p> p2=head2->next;</p><p><b> while(p2)</b></p><p><b> {</b></p&g
92、t;<p> p1=head1->next;</p><p> while((p1)&&(p1->data!=p2->data))</p><p> p1=p1->next;</p><p><b> if (!p1)</b></p><p><b>
93、; {</b></p><p> p3=(pointer)malloc(sizeof(struct LNode));</p><p> p3->data=p2->data;</p><p> p3->next=head3->next;</p><p> head3->next=p3;<
94、/p><p><b> }</b></p><p> p2=p2->next;</p><p><b> }</b></p><p><b> }</b></p><p> void Same(pointer head1,pointer he
95、ad2,pointer head3)//定義集合的交集函數(shù)</p><p><b> {</b></p><p> pointer p1,p2,p3;</p><p> p1=head1->next;</p><p><b> while(p1)</b></p><
96、p><b> {</b></p><p> p2=head2->next;</p><p> while((p2!=NULL)&&(p2->data!=p1->data))</p><p> p2=p2->next;</p><p> if((p2!=NULL)&a
97、mp;&(p2->data==p1->data))</p><p><b> {</b></p><p> p3=(pointer)malloc(sizeof(struct LNode));</p><p> p3->data=p1->data;</p><p> p3->n
98、ext=head3->next;</p><p> head3->next=p3;</p><p><b> }</b></p><p> p1=p1->next;</p><p><b> }</b></p><p><b> }<
99、;/b></p><p> void Sub(pointer head1,pointer head2,pointer head3)//定義集合的差集函數(shù)</p><p><b> {</b></p><p> pointer p1,p2,p3;</p><p> p1=head1->next;<
100、/p><p><b> while(p1)</b></p><p><b> {</b></p><p> p2=head2->next;</p><p> while((p2)&&(p2->data!=p1->data))</p><p&g
101、t; p2=p2->next;</p><p><b> if(!p2)</b></p><p><b> {</b></p><p> p3=(pointer)malloc(sizeof(struct LNode));</p><p> p3->data=p1->dat
102、a;</p><p> p3->next=head3->next;</p><p> head3->next=p3;</p><p><b> }</b></p><p> p1=p1->next;</p><p><b> }</b><
103、;/p><p> } void main()//主函數(shù)</p><p><b> {</b></p><p><b> int n,m;</b></p><p><b> char str;</b></p><p> printf("輸入
104、數(shù)據(jù),按回車(chē)鍵結(jié)束 \n"); </p><p> pointer head1,head2,head3;//聲明pointer變量</p><p> head1=(pointer)malloc(sizeof(struct LNode));</p><p> head1->next=NULL;</p><p> head
105、2=(pointer)malloc(sizeof(struct LNode));</p><p> head2->next=NULL;</p><p> head3=(pointer)malloc(sizeof(struct LNode));</p><p> head3->next=NULL; printf("請(qǐng)輸入集合1:\n&qu
106、ot;);</p><p> Inputdata(head1);//調(diào)用輸入集合函數(shù)</p><p> printf("請(qǐng)輸入集合2:\n");</p><p> Inputdata(head2);//調(diào)用輸入集合函數(shù)</p><p> loop:printf("\n請(qǐng)選擇正確的操作類(lèi)型!\n"
107、);</p><p> printf("1:并集\t2:交集\t3.差集\t4.退出\n請(qǐng)選擇序號(hào)\n");</p><p> for(m=0;;m++)</p><p><b> {</b></p><p> scanf("%d",&n);</p>
108、<p><b> switch(n)</b></p><p><b> {</b></p><p><b> case 1:</b></p><p> printf("兩集合的并是\n");</p><p> Add(head1,head
109、2,head3);//調(diào)用并集函數(shù)</p><p> Output(head3);</p><p> head3->next=NULL;</p><p><b> break;</b></p><p><b> case 2:</b></p><p> pri
110、ntf("兩集合的交是\n");</p><p> Same(head1,head2,head3);//調(diào)用交集函數(shù)</p><p> Output(head3);</p><p> head3->next=NULL;</p><p><b> break;</b></p>
111、<p><b> case 3:</b></p><p> printf("兩集合的差是\n");</p><p> Sub(head1,head2,head3);//調(diào)用差集函數(shù)</p><p> Output(head3);</p><p> head3->next=N
112、ULL;</p><p><b> break; </b></p><p><b> case 4:</b></p><p> getchar();</p><p> printf("確定要退出嗎?< Y Same N >\n");</p>&l
113、t;p> str=getchar();</p><p> if(78==str||110==str)</p><p> goto loop;</p><p> if(89==str||121==str)</p><p><b> exit(0);</b></p><p><b
114、> else</b></p><p> printf("錯(cuò)誤的指令!\n");</p><p> goto loop;</p><p><b> break;</b></p><p><b> default:</b></p><p
115、> printf("錯(cuò)誤的指令!,請(qǐng)重新輸入!\n\n");</p><p> goto loop;</p><p><b> break;}</b></p><p><b> }</b></p><p><b> }</b></p&g
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c++剪刀石頭布游戲課程設(shè)計(jì)
- c++剪刀石頭布游戲課程設(shè)計(jì)
- c++課程設(shè)計(jì)--錘子剪刀布
- 數(shù)電課程設(shè)計(jì)----剪刀石頭布游戲
- 課程設(shè)計(jì)--剪刀石頭布電子游戲
- 單片機(jī)課程設(shè)計(jì)--石頭剪刀布
- 剪刀、石頭、布
- java課程設(shè)計(jì)--剪刀石頭布人機(jī)對(duì)戰(zhàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 大班音樂(lè)游戲《剪刀石頭布》 教案
- c++課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)ppt
- c++課程設(shè)計(jì)--c++程序設(shè)計(jì)語(yǔ)言
- c++課程設(shè)計(jì)-- c++面向?qū)ο蟪绦蛟O(shè)計(jì)
- 串口通信c++課程設(shè)計(jì)
- c++掃雷課程設(shè)計(jì)報(bào)告
- 中南大學(xué)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)-教學(xué)游戲
- c++課程設(shè)計(jì)——乘積最大
- c++課程設(shè)計(jì)——矩陣類(lèi)
- c++課程設(shè)計(jì)---商場(chǎng)管理
評(píng)論
0/150
提交評(píng)論