版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> ?。ㄒ唬?PROTEL部分</p><p><b> 1.任務(wù)說(shuō)明:</b></p><p> (1) 熟練掌握PROTEL軟件的使用;</p><p> (2) 按要求繪制電路原理圖和PCB版圖(能夠用自動(dòng)布線(xiàn)和手動(dòng)布線(xiàn)相結(jié)合);</p><p> (3) 能夠按要求建立元件庫(kù)和封裝庫(kù)。&l
2、t;/p><p> 2.原理圖繪制說(shuō)明:</p><p> (1)練習(xí)學(xué)會(huì)使用PROTEL 99SE軟件。從中我們要學(xué)會(huì)使用PROTEL 99SE軟件來(lái)繪制任一原理圖以及任一PCB原理圖。首先是安裝這個(gè)軟件,在基本掌握這個(gè)軟件的使用說(shuō)明時(shí),開(kāi)始繪制原理圖。打開(kāi)PROTEL 99SE,新建一個(gè)PROTEL工程,在Document中分別新建一個(gè)原理圖,如圖:</p><p&
3、gt;<b> 圖 1新建原理圖</b></p><p> (2)畫(huà)原理圖庫(kù),封裝,和封裝庫(kù)。根據(jù)任務(wù)書(shū)上的電路原理圖,去庫(kù)里找相對(duì)應(yīng)的元件對(duì)應(yīng)擺好。由于我這個(gè)電路原理圖比較特殊,有單片機(jī)數(shù)碼管器件,在庫(kù)存里不能找到,需要自己人工繪制且繪制起來(lái)比較麻煩,當(dāng)將這些元器件畫(huà)出來(lái)并在原理圖中擺好后,將它們?cè)僖来芜B接起來(lái),并用PageUp和PageDown鍵依次為放大、縮小鍵,可以調(diào)節(jié)電路圖的清
4、晰度,便于檢查。檢查無(wú)誤后便可以保存原理圖,則原理圖繪制完畢。</p><p> 自己畫(huà)40個(gè)腳的單片機(jī)首先要要去圖1中那樣建立一個(gè)自己的元件庫(kù),首先點(diǎn)擊SchematicLibrary,保存到指定的文件夾,然后先畫(huà)一個(gè)正方形,再加上需要的管腳數(shù),點(diǎn)擊管腳,修改屬性,然后加上元件名稱(chēng),保存,自己的元件庫(kù)就建立了起來(lái)。</p><p> 圖 2自己畫(huà)的40個(gè)腳單片機(jī)</p>
5、<p> 畫(huà)好原理圖后,需要對(duì)原理圖進(jìn)行封裝,封裝的方法是,點(diǎn)擊各個(gè)元器件,在Footorint欄中填寫(xiě)上援建的封裝號(hào),如元件數(shù)碼管是一個(gè)14個(gè)管腳的器件,查的他的封裝號(hào)是DIP14,即在Footorint欄中填寫(xiě)上DIP14,這樣一個(gè)元件就封裝完畢,把所有的元件封裝完畢。</p><p> 圖3 電路中的元件進(jìn)行封裝</p><p> 3、檢查原理圖的正確性和生成網(wǎng)絡(luò)表
6、</p><p> 原理圖封裝完畢后,需要檢查原理圖,我們的具體做法是,在PROTEL99界面中點(diǎn)擊Tools下的ERC,然后點(diǎn)擊確定,看是否自己畫(huà)的原理圖是不是合格的,有沒(méi)有錯(cuò)誤。</p><p><b> 圖4 檢查原理圖</b></p><p> 在確定自己畫(huà)的原理圖沒(méi)有錯(cuò)誤后,需要生成網(wǎng)絡(luò)表,生成網(wǎng)絡(luò)標(biāo)的辦法是在Design鍵中找
7、到CreateNetlist,點(diǎn)擊,就生成了自己所畫(huà)的正確的原理圖的網(wǎng)絡(luò)表。</p><p> 圖5 生成的部分網(wǎng)絡(luò)表</p><p> 4、印制PCB版圖繪制說(shuō)明:</p><p> 在繪制PCB原理圖之前,新建一個(gè)PCB Docment,新建PCB Docment,的操作如下圖:</p><p> 圖6 新建一個(gè)PCB Docme
8、nt,</p><p> 點(diǎn)擊菜單欄中的文件菜單,新建一個(gè)PCB Docment,導(dǎo)入網(wǎng)絡(luò)表,便會(huì)自動(dòng)生成PCB原理圖, 用粉色線(xiàn)將原理圖圈至框內(nèi),制成印制板邊框圖,給板布局,使板子既經(jīng)濟(jì)又美觀(guān)。然后點(diǎn)擊“自動(dòng)布線(xiàn)”,給板全部布線(xiàn)。但是由于部分原因我們?cè)趯?dǎo)入網(wǎng)絡(luò)表之后,有的元器件導(dǎo)線(xiàn),這個(gè)時(shí)候我們就要從新回到第一步,看自己話(huà)的原理圖是否完全正確,一般原理圖出現(xiàn)的問(wèn)題是我們畫(huà)導(dǎo)線(xiàn)時(shí),導(dǎo)線(xiàn)與元器件的接口沒(méi)有接好,后
9、導(dǎo)致我們生成的PCB圖中的元器件沒(méi)有導(dǎo)線(xiàn)相連,在仔細(xì)檢查我們的原理圖后,我們重新生成檢查后的原理圖的網(wǎng)絡(luò)表,然后我們?cè)谥貜?fù)建立PCB圖的步驟,,如果我們?cè)诖_定自己的原理圖正確,但是生成的PCB途中為部分元器件還是沒(méi)有導(dǎo)線(xiàn),這個(gè)時(shí)候就需要我們自己手動(dòng)布線(xiàn),手動(dòng)布線(xiàn)的方法是:點(diǎn)擊缺少線(xiàn)的元器件的管腳,彈出一個(gè)對(duì)話(huà)框,對(duì)話(huà)框彈出后點(diǎn)擊Advanced選項(xiàng),里面有Net選項(xiàng),對(duì)照自己的原理圖,看該元器件的管腳是與那個(gè)另外其他的元器件相連,在Ne
10、t中找到該元器件,確定后,導(dǎo)線(xiàn)就相連。導(dǎo)線(xiàn)連接完畢后就是手動(dòng)布局,首先確定PCB板的大小,我們一定要選擇一個(gè)合適的大小,太大浪費(fèi)板,太小,元件布局不開(kāi),自己手動(dòng)把各個(gè)元器件</p><p> 圖7 生成的PCB圖</p><p> 4.對(duì)所繪制電路進(jìn)行簡(jiǎn)要分析:</p><p> 該電路由單片機(jī)、數(shù)碼管器件、電阻、電容、蜂鳴器、無(wú)極性電容等基本元件組成,電路構(gòu)
11、造比較復(fù)雜,但是原理比較通俗易懂。制版圖中,同色線(xiàn)沒(méi)有相交叉,并且元件引腳均已連接正確,說(shuō)明電路圖連接準(zhǔn)確,可以生成制板。</p><p><b> 5.總結(jié):</b></p><p> 通過(guò)PROTEL 99SE軟件的課設(shè),我掌握了PROTEL 99SE軟件的應(yīng)用方法,加深了我對(duì)電路及電子信息工程專(zhuān)業(yè)的了解,也對(duì)PCB板的制作有了較深的印象,為以后在電子行業(yè)的發(fā)
12、展,奠定了一定的基礎(chǔ)。通過(guò)這次課設(shè)也我深刻地體會(huì)到身為一名專(zhuān)業(yè)設(shè)計(jì)人員自身應(yīng)該具備的嚴(yán)謹(jǐn)、細(xì)心、負(fù)責(zé)的工作態(tài)度和作風(fēng),為我將來(lái)在專(zhuān)業(yè)方面的發(fā)展打下堅(jiān)實(shí)的基礎(chǔ),但是在做的過(guò)程中我也遇到了許多困難,軟件運(yùn)用不熟悉,原理不太理解等,我及時(shí)的向同學(xué)和老師請(qǐng)教和答疑,去圖書(shū)館查找資料,上網(wǎng)搜索資料,最終克服了重重困難,完成了自己的課程設(shè)計(jì),在此過(guò)程中收獲很多,在今后的學(xué)習(xí)過(guò)程中我會(huì)更加努力,豐富充實(shí)自己的知識(shí),完成自己學(xué)習(xí)任務(wù),為以后的工作等打下
13、一個(gè)堅(jiān)實(shí)的基礎(chǔ)。</p><p><b> 6.參考文獻(xiàn)</b></p><p> 1、韓曉東,李勇江.Protel99SE電路設(shè)計(jì)實(shí)用教程.[M]北京:中國(guó)鐵道出版社,2007.</p><p> 2、邵建昂.Protel99教學(xué)實(shí)踐探討.實(shí)驗(yàn)室研究與探索,2007,26(2):100-105.</p><p>
14、 3、文艷等編著.Protel 99 SE電子電路設(shè)計(jì).[M]北京:機(jī)械工業(yè)出版社,2006.8</p><p> 4、老虎工作室 .Protel 99 SE多層次電路板設(shè)計(jì)與制作. [M]北京:人民郵電出版社,2007年. 2--18頁(yè)。</p><p> 5、莫力.《Protel 99SE電路設(shè)計(jì)》 北京:國(guó)防工業(yè)出版社,2005.01</p><p>
15、 6、劉天旺主編 .Protel 99 SE電路設(shè)計(jì)應(yīng)用教程.[M]北京:電子工業(yè)出版社,2007.8</p><p> 附錄I 電路原理圖</p><p> 附錄II 印制板圖</p><p><b> (二)軟件設(shè)計(jì)部分</b></p><p><b> 一、任務(wù)說(shuō)明:</b>
16、</p><p><b> 1.設(shè)計(jì)內(nèi)容:</b></p><p> 一班有m個(gè)女生,有n個(gè)男生(m不等于n),現(xiàn)要開(kāi)一個(gè)舞會(huì). 男女生分別編號(hào)坐在舞池的兩邊的椅子上.每曲開(kāi)始時(shí),依次從男生和女生中各出一人配對(duì)跳舞, 本曲沒(méi)成功配對(duì)者坐著等待下一曲找舞伴.</p><p> 請(qǐng)?jiān)O(shè)計(jì)一系統(tǒng)模擬動(dòng)態(tài)地顯示出上述過(guò)程,要求如下:</p&g
17、t;<p> 1) 輸出每曲配對(duì)情況</p><p> 2) 計(jì)算出任何一個(gè)男生(編號(hào)為X)和任意女生(編號(hào)為Y),在第K曲配對(duì)跳舞的 情況.至少求出K的兩個(gè)值.</p><p><b> 2.需求:</b></p><p> 本課題要對(duì)數(shù)目不等的男生女生跳舞進(jìn)行搭配,設(shè)計(jì)需要解決每一首曲子
18、 </p><p> 男生女生的搭配情況,要采用循環(huán)隊(duì)列的模式來(lái)解決,男生和女生各在兩個(gè)循環(huán)</p><p> 的隊(duì)列中,每首曲子開(kāi)始,便在兩個(gè)隊(duì)首各取一人成功配對(duì)跳舞,并進(jìn)入
19、隊(duì)尾, </p><p> 等待下一次配對(duì)。,通過(guò)對(duì)兩個(gè)循環(huán)隊(duì)列的輸出、入列操作,就可以簡(jiǎn)單實(shí)現(xiàn)要求,動(dòng)態(tài)的模擬出舞池兩邊那女生的搭配情況.</p><p> 例如:(4男5女情況) </p><p><b> 第一首:男1和女1</b></p><p><b> 第二首:男2和
20、女2</b></p><p><b> 第三首:男3和女3</b></p><p><b> 第四首:男4和女4</b></p><p><b> 第五首:男1和女5</b></p><p> --------------------------</p
21、><p> -------------------------</p><p> -----------------------------</p><p><b> 二、設(shè)計(jì)過(guò)程</b></p><p><b> 1、文字說(shuō)明:</b></p><p> 要模擬動(dòng)態(tài)地
22、顯示出現(xiàn)題目中所要求的循環(huán),我們要先建立兩個(gè)循環(huán)隊(duì)列SqQueue boys和SqQueue girls。</p><p> 將男生、女生兩組人分別存入這兩個(gè)隊(duì)列。以實(shí)現(xiàn)他們的循環(huán)配對(duì)輸出。</p><p> 利用循環(huán)隊(duì)列的特性,將男女生分別進(jìn)行入隊(duì)列和出隊(duì)列操作,實(shí)現(xiàn)搭 配輸出。</p><p> 循環(huán)隊(duì)列的長(zhǎng)度分別設(shè)為男女生的個(gè)數(shù)。</p>
23、<p> 在計(jì)算機(jī)終端輸出的結(jié)果是:</p><p> (1) 輸入數(shù)據(jù) </p><p> (2) 輸出每曲配對(duì)情況 </p><p> (3) 輸出第K曲配對(duì)情況 </p><p><b> (4) 退出</b></p><p>
24、<b> 2、程序流程圖:</b></p><p> 為實(shí)現(xiàn)上述功能和目的,要用到循環(huán)隊(duì)列的相關(guān)知識(shí),同時(shí),要定義一定的抽的數(shù)據(jù)類(lèi)型,主函數(shù)調(diào)用各個(gè)函數(shù)模塊</p><p> 1.各模塊函數(shù)介紹:</p><p> 1)class cirularQueue </p><p> 作用:定義一個(gè)一個(gè)循環(huán)隊(duì)列<
25、/p><p> 2)~cirularQueue() </p><p> 作用:定義析構(gòu)函數(shù),使對(duì)象在撤銷(xiāo)時(shí)釋放</p><p> 3)bool Is Full() </p><p> 作用:判斷隊(duì)列是否已滿(mǎn)</p><p> 4)bool IsEmpty() </p><
26、p> 作用:判斷隊(duì)列是否為空,用于出隊(duì)列前使用</p><p> 5)void push(T info) </p><p> 作用:入隊(duì)。每對(duì)舞伴跳完舞之后,做入隊(duì)處理,到達(dá)隊(duì)尾,等待下次跳舞。</p><p> 6)void Pop(T &info) </p><p> 作用:出隊(duì)。每取曲子響起時(shí)男生隊(duì)列和女生
27、隊(duì)列作出隊(duì)處理,兩人跳舞。</p><p> 7)void GetHead(T &info) </p><p> 作用:取隊(duì)首元素,對(duì)出隊(duì)的男女進(jìn)行識(shí)別。</p><p> 8)void Initqueue(cirularQueue<int>&,int);</p><p><b> 作用:初始化隊(duì)
28、列</b></p><p> 9)void display(int,int);</p><p> 作用:根據(jù)男生和女生的人數(shù)和曲目的數(shù)目,來(lái)判斷每曲歌的男女配對(duì)情況</p><p> 10)void charge(int,int);</p><p> 作用:判斷指定組合能否配對(duì)成功</p><p>
29、 2.本程序包含三個(gè)模塊:</p><p><b> 1)主程序模塊:</b></p><p> void main()</p><p><b> {</b></p><p><b> 初始化;</b></p><p><b> d
30、o{</b></p><p><b> 接受命令;</b></p><p><b> 處理命令;</b></p><p> }while(“命令”=”退出”) </p><p><b> }</b></p><p> 2)、集合單元
31、模塊——實(shí)現(xiàn)集合的各個(gè)函數(shù)模塊</p><p> 3)、結(jié)點(diǎn)結(jié)構(gòu)單元模塊——定義集合的結(jié)點(diǎn)結(jié)構(gòu)</p><p> 3、主框圖和各子框圖模塊設(shè)計(jì)</p><p> 1) 主函數(shù)調(diào)用關(guān)系圖</p><p> 要模擬動(dòng)態(tài)地顯示出現(xiàn)題目中所要求的循環(huán),我們要先建立兩個(gè)循環(huán)隊(duì)列SqQueue boys和SqQueue girls。將男生、女生兩
32、組人分別存入這兩個(gè)隊(duì)列。以實(shí)現(xiàn)他們的循環(huán)配對(duì)輸出。利用循環(huán)隊(duì)列的特性,將男女生分別進(jìn)行入隊(duì)列和出隊(duì)列操作,實(shí)現(xiàn)搭 配輸出。</p><p> 圖1 主函數(shù)調(diào)用關(guān)系</p><p> 為了提高效率和其他原因,引入了初始化列表,因?yàn)槌跏蓟斜肀劝呀M合成員放在構(gòu)造函數(shù)中初始化,省略了調(diào)用組合成員對(duì)象的賦值構(gòu)造函數(shù),</p><p> 2)每曲配對(duì)函數(shù)調(diào)用關(guān)系圖voi
33、d display(int,int)</p><p><b> 否</b></p><p> 是 </p><p> 圖2 每曲配對(duì)函數(shù)調(diào)用關(guān)系圖</p><p> 4隊(duì)滿(mǎn)判斷bool IsFull()</p><p><b&
34、gt; 圖3 隊(duì)滿(mǎn)判斷圖</b></p><p> 5對(duì)空判斷原則bool IsEmpty()</p><p> 圖4 隊(duì)滿(mǎn)判斷空判斷圖</p><p> 6入隊(duì)流程void push(T info)</p><p><b> 圖5 入隊(duì)滿(mǎn)流程圖</b></p><p>
35、7出隊(duì)流程void Pop(T &info)</p><p> 圖6 出入隊(duì)滿(mǎn)流程圖</p><p> 8.取隊(duì)首元素代碼void GetHead(T &info)</p><p> 三、調(diào)試過(guò)程及實(shí)驗(yàn)結(jié)果</p><p><b> 1、調(diào)試過(guò)程</b></p><p>
36、 一開(kāi)始的調(diào)試中,做循環(huán)的時(shí)候無(wú)法是出來(lái)的人員回到原來(lái)的隊(duì)列中,后來(lái)詢(xún)問(wèn)老師后,老師幫助改正,隊(duì)員能回到了自己的隊(duì)列,但再次調(diào)適自己的程序的時(shí)候發(fā)現(xiàn),我輸入男生的人數(shù)和女生人數(shù)時(shí),程序總出現(xiàn)了輸入錯(cuò)誤,自己尋找了很長(zhǎng)時(shí)間沒(méi)有找到,找到同學(xué)幫忙,最后發(fā)現(xiàn)是在編寫(xiě)程序的時(shí)候自己把男生和女生的人數(shù)都提前確定了,,所以到后來(lái)自己輸入男生和女生的人數(shù)時(shí)總是錯(cuò)誤的,修改完成后最后程序運(yùn)行時(shí)還是有些錯(cuò)誤和警告,老是提示非法操作。在不斷改善程序后,程序
37、得以順利運(yùn)行。</p><p><b> 2、實(shí)驗(yàn)結(jié)果</b></p><p> 最后的運(yùn)行結(jié)果完成了軟件設(shè)計(jì)任務(wù)中的功能如下:</p><p> 1.完成了輸出每曲配對(duì)情況的功能</p><p> 2.完成了計(jì)算出任何一個(gè)男生(編號(hào)為X)和任意女生(編號(hào)為Y),在第K曲配對(duì)跳舞的情況.至少求出K的兩個(gè)值.的功能
38、。</p><p> (1)程序最初的運(yùn)行結(jié)果(如圖所示)</p><p> 圖7 程序最初運(yùn)行圖</p><p> ?。?)各曲配對(duì)情況(如圖所示)</p><p> 圖8 各曲配對(duì)情況圖</p><p> (3)根據(jù)男女編號(hào)查找對(duì)應(yīng)的曲數(shù)(能配對(duì))</p><p> 圖9 根據(jù)男女
39、編號(hào)查找對(duì)應(yīng)的曲數(shù)圖(能配對(duì))</p><p> ?。?)根據(jù)男女編號(hào)查找對(duì)應(yīng)的曲數(shù)(不能配對(duì))</p><p> 圖10根據(jù)男女編號(hào)查找對(duì)應(yīng)的曲數(shù)圖(不能配對(duì))</p><p><b> 四、結(jié)論</b></p><p> 這次課程設(shè)計(jì)及運(yùn)用了C++,程序開(kāi)始定義了class cirularQueue,其中有頭指
40、針,尾指針等。隨之定義了析構(gòu)函數(shù),釋放對(duì)象,然后進(jìn)行了隊(duì)列的基本操作,有隊(duì)列的申明,判斷隊(duì)空及隊(duì)滿(mǎn),出隊(duì),入隊(duì),其核心是display()函數(shù)和charge()函數(shù),其中display()用于對(duì)各位同學(xué)編號(hào)和每隊(duì)的輸出情況,charge()用于計(jì)算已編號(hào)的同學(xué)在第幾曲中進(jìn)行配對(duì)。循環(huán)隊(duì)列是一種環(huán)狀的隊(duì)列并且對(duì)頭元素指向隊(duì)尾元素, 運(yùn)用循環(huán)隊(duì)列的基本操作順利的解決學(xué)生舞曲搭配問(wèn)題,主要利用用循環(huán)隊(duì)列的環(huán)狀結(jié)構(gòu),循環(huán)地執(zhí)行出列入列操作并在出
41、隊(duì)列時(shí)進(jìn)行配對(duì)并輸出配對(duì)情況,而整個(gè)過(guò)程不需要不需要移動(dòng)元素使程序在空間復(fù)雜度上 降到最小,采用指針的移動(dòng)大大加快了程序的執(zhí)行效率。并且對(duì)輸入進(jìn)行了改進(jìn),以防止用戶(hù)隨意輸入時(shí)出現(xiàn)的各種意想不到的錯(cuò)誤。通過(guò)本次課設(shè)復(fù)習(xí)了C語(yǔ)言的知識(shí),對(duì)C++的運(yùn)用驚醒了進(jìn)一步的掌握,同時(shí)我對(duì)軟件的編程有了很深的了解,運(yùn)用方面有了長(zhǎng)足的進(jìn)步,但是在做的過(guò)程中我也遇到了許多困難,我及時(shí)的向同學(xué)和老師請(qǐng)教和答疑,去圖書(shū)館查找資料,上網(wǎng)搜索資料,最終克服了重
42、重困難,完成了自己的課程設(shè)計(jì),</p><p><b> 五、參考文獻(xiàn)</b></p><p> 1. 譚浩強(qiáng),《C程序設(shè)計(jì)》,北京,清華大學(xué)出版社,2005</p><p> 2. 劉彥明.《計(jì)算機(jī)軟件技術(shù)基礎(chǔ)教程》.西安,西安電子科技大學(xué)出版社,2001.2</p><p> 3. 王士元,《C高級(jí)實(shí)用程序設(shè)
43、計(jì)》,北京,清華大學(xué)出版社,1996</p><p> 4. 朱振元.《數(shù)據(jù)結(jié)構(gòu)(C++語(yǔ)言描述) 》 北京: 清華大學(xué)出版社,2007</p><p> 5. 鄭紅軍,《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)與綜合練習(xí)》,武漢,武漢大學(xué)出版社,2011.1</p><p> 6. 姜仲秋,《C語(yǔ)言程序設(shè)計(jì)》,南京,南京大學(xué)出版社,1998.1</p><
44、p><b> 附錄I </b></p><p><b> 程序清單</b></p><p> #include<iostream></p><p> template <class T></p><p> class cirularQueue //定義一個(gè)一
45、個(gè)循環(huán)隊(duì)列</p><p> { private:</p><p> int MaxSize;</p><p> int front; //頭指針</p><p> int rear; //尾指針</p><p><b> T *data;</b></p>&
46、lt;p><b> public:</b></p><p> cirularQueue(int MaxLength)</p><p> { MaxSize=MaxLength;</p><p> front=rear=0;</p><p> data=new T[MaxLength];</p>
47、;<p><b> }</b></p><p> ~cirularQueue() //定義析構(gòu)函數(shù),使對(duì)象在撤銷(xiāo)時(shí)釋放</p><p> { front=rear=0;</p><p> delete []data;</p><p><b> }</b></p>
48、;<p> void Initqueue() //隊(duì)列的申明</p><p> { for(int i=0;i<maxSize-1;i++)</p><p><b> push(i);</b></p><p><b> }</b></p><p> bool I
49、sFull() //判斷隊(duì)列是否已滿(mǎn) </p><p> { if((rear+1)%MaxSize==front)</p><p> return true;</p><p> else return false; </p><p><b> }</b></p><p&g
50、t; bool IsEmpty() //判斷隊(duì)列是否為空</p><p> { if(front==rear)</p><p> return true;</p><p> else return false;</p><p><b> }</b></p><p> void
51、 push(T info) //入隊(duì)</p><p> { if(IsFull())</p><p> { cout<<"錯(cuò)誤!隊(duì)列已滿(mǎn)!"<<endl;</p><p><b> exit(-1);</b></p><p><b> }<
52、;/b></p><p><b> else</b></p><p> { data[rear]=info;</p><p> rear=(rear+1)%MaxSize;</p><p><b> }</b></p><p><b> }<
53、/b></p><p> void Pop(T &info) //出隊(duì)</p><p> { if(IsEmpty())</p><p> { cout<<"錯(cuò)誤!隊(duì)列為空!"<<endl;</p><p><b> exit(-1);</b>
54、</p><p><b> }</b></p><p><b> else</b></p><p> { info=data[front];</p><p> front=(front+1)%MaxSize;</p><p><b> }</b&g
55、t;</p><p><b> }</b></p><p> void GetHead(T &info) //取隊(duì)首元素</p><p> { if(IsEmpty())</p><p> { cout<<"錯(cuò)誤!隊(duì)列為空!"<<endl;<
56、/p><p> exit (-1);</p><p><b> }</b></p><p><b> else</b></p><p> { info=data[front];</p><p><b> }</b></p><
57、;p><b> }</b></p><p><b> }; </b></p><p> int main() </p><p> { cout<<"請(qǐng)分別輸入男生和女生的人數(shù):";</p><p> cin>>
58、m>>n;</p><p> display(m,n);</p><p> int a=0,b=0; </p><p> char quit='y'; </p><p> while(quit!='n')</p><p> { cout<<
59、"請(qǐng)輸入男生和女生的編號(hào):";</p><p> cin>>a>>b;</p><p> while((a>m)||(b>n)) </p><p> { cout<<"輸入的編號(hào)過(guò)大,請(qǐng)重新輸入:";</p><p> cin>>a
60、>>b;</p><p><b> } </b></p><p> charge(a,b);</p><p> cout<<"是否繼續(xù)(是請(qǐng)輸入'y',否則請(qǐng)輸入'n'):";</p><p> cin>>quit;<
61、/p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> void Initqueue(cirularQueue<int> &Q,int m) //初始化隊(duì)列<
62、;/p><p> { for(int i=1;i<=m;i++)</p><p> Q.push(i);</p><p><b> }</b></p><p> void display(int m,int n)</p><p> { cirularQueue<int&
63、gt; man(m+1);</p><p> cirularQueue<int> woman(n+1);</p><p> Initqueue(man,m);</p><p> Initqueue(woman,n);</p><p> cout<<"請(qǐng)輸入曲目數(shù):";</p>
64、<p> cin>>songnum;</p><p> cout<<"每曲的配對(duì)情況為:"<<endl;</p><p> for(int k=1;k<=songnum;k++)</p><p> { int x=0,y=0; //男生和女生的編號(hào)</p><p
65、> man.Pop(x); //男生按順序出隊(duì)跳舞</p><p> woman.Pop(y); //女生按順序出隊(duì)跳舞</p><p> cout<<"第"<<k<<"曲:\t"<<x<<"號(hào)男生<->"<<y<
66、<"號(hào)女生"<<endl; //他們?cè)谝黄鹛?lt;/p><p> man.push(x); //跳完舞后男生再次進(jìn)入隊(duì)列等在下一次跳舞</p><p> woman.push(y); //跳完舞后男生再次進(jìn)入隊(duì)列等在下一次跳舞</p><p><b> }</b></p>&l
67、t;p><b> }</b></p><p> void charge(int a,int b)</p><p> { int count=0; //定義舞曲計(jì)數(shù)以記錄他們能在第幾曲時(shí)在一起跳舞</p><p> cirularQueue<int> man1(m+1);</p><p> c
68、irularQueue<int> woman1(n+1);</p><p> Initqueue(man1,m);</p><p> Initqueue(woman1,n);</p><p> while(count<=songnum)</p><p> { int x, y;</p><p&g
69、t;<b> count++;</b></p><p> man1.Pop(x);</p><p> woman1.Pop(y);</p><p> man1.push(x);</p><p> woman1.push(y);</p><p> if((x==a)&&(
70、y==b)) </p><p> { cout<<"第"<<count<<"首曲:\t"<<a<<"號(hào)男生<->"<<b<<"號(hào)女生"<<endl;</p><p><b> brea
71、k;</b></p><p><b> }</b></p><p><b> }</b></p><p> //如果他們?cè)谶@個(gè)舞會(huì)上不能在一起跳舞,則輸出</p><p> if(count==songnum+1)</p><p> cout<&l
溫馨提示
- 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語(yǔ)言課程設(shè)計(jì)--學(xué)生跳舞搭配
- 課程設(shè)計(jì)電子報(bào)告--學(xué)生搭配問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生搭配問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生搭配問(wèn)題
- 迷宮問(wèn)題課程設(shè)計(jì)報(bào)告
- 迷宮問(wèn)題課程設(shè)計(jì)報(bào)告
- 迷宮問(wèn)題課程設(shè)計(jì)報(bào)告
- 迷宮問(wèn)題課程設(shè)計(jì)報(bào)告
- 迷宮問(wèn)題課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)迷宮問(wèn)題課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)----課程設(shè)計(jì)報(bào)告
- fpga課程設(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 數(shù)學(xué)建模設(shè)計(jì)周課程設(shè)計(jì)報(bào)告--- 轉(zhuǎn)運(yùn)問(wèn)題
- c++醫(yī)院選址問(wèn)題-課程設(shè)計(jì)報(bào)告
- 讀者與寫(xiě)者問(wèn)題課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告----迷宮問(wèn)題
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--蘋(píng)果問(wèn)題
- 課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告---馬攔過(guò)河卒問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---迷宮問(wèn)題
評(píng)論
0/150
提交評(píng)論