版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 《數(shù)據(jù)結(jié)構(gòu)》</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 姓 名: </p><p> 學(xué) 號(hào): </p><p>
2、班 級(jí): </p><p> 設(shè)計(jì)時(shí)間: </p><p> 審閱教師: </p><p><b> 一、設(shè)計(jì)目的</b></p><p> 1、培養(yǎng)學(xué)生運(yùn)用算法
3、與數(shù)據(jù)結(jié)構(gòu)的基本知識(shí)解決實(shí)際編程中的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和算法設(shè)計(jì)問題。</p><p> 2、培養(yǎng)學(xué)生獨(dú)立設(shè)計(jì)程序與解決問題的能力,培養(yǎng)學(xué)生團(tuán)隊(duì)協(xié)作集成程序模塊及調(diào)試能力。</p><p> 3、培養(yǎng)學(xué)生初步的軟件設(shè)計(jì)及軟件測試的能力。</p><p><b> 二、設(shè)計(jì)任務(wù)及要求</b></p><p><b&g
4、t; 基本要求</b></p><p> 學(xué)生必須仔細(xì)閱讀《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)指導(dǎo)書,認(rèn)真主動(dòng)完成課設(shè)的要求。有問題及時(shí)主動(dòng)通過各種方式與教師聯(lián)系溝通。</p><p> 學(xué)生要發(fā)揮自主學(xué)習(xí)的能力,充分利用時(shí)間,安排好課設(shè)的時(shí)間計(jì)劃,并在課設(shè)過程中不斷檢測自己的計(jì)劃完成情況,及時(shí)的向教師匯報(bào)。</p><p> 課程設(shè)計(jì)按照教學(xué)要求需要一周時(shí)間完
5、成,一周中每天(按每周5天)至少要上3-4小時(shí)的機(jī)來調(diào)試C語言設(shè)計(jì)的程序,總共至少要上機(jī)調(diào)試程序15小時(shí)。</p><p> 根據(jù)設(shè)計(jì)報(bào)告要求編寫設(shè)計(jì)報(bào)告,主要內(nèi)容包括目的、意義、原理和實(shí)現(xiàn)方法簡介、過程分析及說明、實(shí)驗(yàn)結(jié)果情況說明、結(jié)論。</p><p> 每個(gè)人必須有可運(yùn)行的程序,學(xué)生能對(duì)自己的程序面對(duì)教師提問并能熟練地解釋清楚,學(xué)生回答的問題和程序運(yùn)行的結(jié)果作為評(píng)分的主要衡量標(biāo)準(zhǔn)
6、;(周二下午開始逐一檢查)</p><p> NO.1航班管理系統(tǒng)</p><p> ?一、題目內(nèi)容的描述 </p><p><b> 1.航班查詢系統(tǒng)</b></p><p> 飛機(jī)航班信息包括:航班號(hào)、起點(diǎn)站、終點(diǎn)站、起飛時(shí)間、到達(dá)時(shí)間、機(jī)型以及票價(jià),實(shí)例如下:</p><
7、p> 設(shè)計(jì)航班查詢系統(tǒng)要求能對(duì)飛機(jī)航班信息進(jìn)行增加、刪除、排序和查找。可按航班的航班號(hào)、起點(diǎn)站、終點(diǎn)站、起飛時(shí)間以及到達(dá)時(shí)間進(jìn)行查詢。</p><p> ?二、應(yīng)用程序功能的詳細(xì)說明 </p><p> 通過建立一個(gè)鏈表來實(shí)現(xiàn)航班信息儲(chǔ)存功能,每個(gè)結(jié)點(diǎn)的信息包括航班號(hào)、出發(fā)地、目的地、出發(fā)時(shí)間、到達(dá)時(shí)間、是否經(jīng)停、價(jià)格,并編寫功能函數(shù)使系統(tǒng)具有插入、查詢、刪除、更新、排序的功能
8、。</p><p> ?三、主要模塊的算法描述 </p><p><b> 菜單選項(xiàng)</b></p><p><b> 菜單選項(xiàng)圖</b></p><p><b> 航班信息的建立</b></p><p><b> 插入信息 <
9、/b></p><p><b> 查詢航班:</b></p><p><b> ?四、結(jié)束語 </b></p><p> 通過此程序的編寫我熟悉了鏈表的運(yùn)用,鏈表是本學(xué)期學(xué)習(xí)的重點(diǎn),靈活性比棧好,可以通過指針實(shí)現(xiàn)插入刪除等功能,但要注意移動(dòng)指針的邏輯關(guān)系,如果不注意很容易指向了不是你要的地方。</p>
10、;<p> ?五、程序的源代碼清單 </p><p> #include "stdio.h"</p><p> #include "stdlib.h"</p><p> #include "ctype.h"</p><p> #include "pr
11、ocess.h"</p><p> #include "string.h" </p><p> #include<iostream></p><p> using namespace std;</p><p> struct flight //定義航班信息結(jié)構(gòu)體 </p><
12、;p><b> {</b></p><p> char flight_num[10];</p><p> char flight_start[20];</p><p> char flight_destination[20];</p><p> char flight_takeoff_time[10];&
13、lt;/p><p> char flight_arrive_time[10];</p><p> char flight_isStop[5];</p><p> int flight_price;</p><p> struct flight *next;</p><p><b> };</b&g
14、t;</p><p> void welcome()//顯示程序菜單 </p><p><b> {</b></p><p> printf("************************歡迎使用航班管理系統(tǒng)**********************\n");</p><p> prin
15、tf("******************************************************************\n");</p><p> printf("******************************************************************\n");</p><p>
16、printf("**********************按下對(duì)應(yīng)數(shù)字實(shí)現(xiàn)相應(yīng)功能********************\n");</p><p> printf("**************************1.創(chuàng)建航班信息**************************\n");</p><p> printf("*
17、*************************2.增加航班信息**************************\n");</p><p> printf("**************************3.查詢航班信息**************************\n");</p><p> printf("*********
18、*****************4.刪除航班信息**************************\n");</p><p> printf("**************************0.退出管理系統(tǒng)**************************\n");</p><p> printf("*****************
19、*************************************************\n");</p><p> printf("******************************************************************\n");</p><p> printf("*************
20、***********CopyRight By KobeLee**********************\n");</p><p> printf("******************************************************************\n");</p><p><b> }</b>&l
21、t;/p><p> struct flight * InitSystem(int n)//建立航班信息鏈表 </p><p><b> {</b></p><p><b> int i;</b></p><p> struct flight * head,* p,*s;</p>&
22、lt;p> for(i=1;i<=n;i++)</p><p><b> {</b></p><p> printf("請(qǐng)輸入第%d次航班信息:\n",i);</p><p><b> if(i==1)</b></p><p><b> {<
23、/b></p><p> p=(struct flight *)malloc(sizeof(struct flight));</p><p> printf("航班號(hào):");</p><p> scanf("%s",&p->flight_num);</p><p> prin
24、tf("出發(fā)地:");</p><p> scanf("%s",&p->flight_start);</p><p> printf("目的地:");</p><p> scanf("%s",&p->flight_destination);</p&
25、gt;<p> printf("起飛時(shí)間:");</p><p> scanf("%s",&p->flight_takeoff_time);</p><p> printf("到達(dá)時(shí)間:");</p><p> scanf("%s",&p-&g
26、t;flight_arrive_time);</p><p> printf("經(jīng)停:");</p><p> scanf("%s",&p->flight_isStop);</p><p> printf("價(jià)格:");</p><p> scanf("
27、;%d",&p->flight_price);</p><p> head->next=p;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>&l
28、t;p> s=(struct flight * )malloc(sizeof(struct flight));</p><p> printf("航班號(hào):");</p><p> scanf("%s",&s->flight_num);</p><p> printf("出發(fā)地:"
29、);</p><p> scanf("%s",&s->flight_start);</p><p> printf("目的地:");</p><p> scanf("%s",&s->flight_destination);</p><p> pri
30、ntf("起飛時(shí)間:");</p><p> scanf("%s",&s->flight_takeoff_time);</p><p> printf("到達(dá)時(shí)間:");</p><p> scanf("%s",&s->flight_arrive_tim
31、e);</p><p> printf("經(jīng)停:");</p><p> scanf("%s",&s->flight_isStop);</p><p> printf("價(jià)格:");</p><p> scanf("%d",&s-&g
32、t;flight_price);</p><p> s->next=head->next;</p><p> head->next=s;</p><p><b> }</b></p><p> printf("\n"); </p><p><b&
33、gt; }</b></p><p> return head;</p><p><b> }</b></p><p> int Insert(struct flight *head)//添加航班信息,頭插法;</p><p><b> {</b></p><
34、p> struct flight * p,*pi;</p><p> pi=(struct flight *)malloc(sizeof(struct flight));//為新添加的航班開辟空間 </p><p><b> p=head;</b></p><p> printf("請(qǐng)輸入新添加的航班信息:\n\n&qu
35、ot;);</p><p> printf("航班號(hào):"); </p><p> scanf("%s",&pi->flight_num);</p><p> printf("出發(fā)地:");</p><p> scanf("%s",&p
36、i->flight_start);</p><p> printf("目的地:");</p><p> scanf("%s",&pi->flight_destination);</p><p> printf("起飛時(shí)間:");</p><p> scan
37、f("%s",&pi->flight_takeoff_time);</p><p> printf("到達(dá)時(shí)間:");</p><p> scanf("%s",&pi->flight_arrive_time);</p><p> printf("經(jīng)停:"
38、);</p><p> scanf("%s",&pi->flight_isStop);</p><p> printf("價(jià)格:");</p><p> scanf("%d",&pi->flight_price);</p><p> if(head
39、==NULL)</p><p><b> {</b></p><p> head->next=pi;</p><p> pi->next=NULL;</p><p><b> }</b></p><p><b> else</b>&
40、lt;/p><p><b> {</b></p><p> pi->next=p->next;</p><p> p->next=pi;</p><p><b> }</b></p><p><b> return 0;</b>&
41、lt;/p><p><b> } </b></p><p> void SearchByFlightNum(flight * head)</p><p><b> {</b></p><p> char num[10];</p><p> printf("請(qǐng)輸
42、入航班號(hào):");</p><p> scanf("%s",&num);</p><p> if(head->next==NULL)</p><p><b> {</b></p><p> printf("沒有航班信息,不能查詢,請(qǐng)先創(chuàng)建信息。");&
43、lt;/p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> { </b></p><p> int count=0;&l
44、t;/p><p> while(head->next!=NULL)</p><p><b> { </b></p><p> head=head->next;</p><p> if(strcmp(num,head->flight_num)==0)</p><p><
45、;b> {</b></p><p> printf("航班號(hào) 出發(fā)地 目的地 起飛時(shí)間 到達(dá)時(shí)間 是否經(jīng)停 價(jià)格 \n");</p><p> printf("%-8s%-10s%-10s%-10s%-10s%-12s%d \n",head->flight_num,head->flight_s
46、tart,head->flight_destination,head->flight_takeoff_time,head->flight_arrive_time,head->flight_isStop,head->flight_price);</p><p><b> count++;</b></p><p><b> }&
47、lt;/b></p><p><b> }</b></p><p> if(count==0)printf("沒有找到所需航班,請(qǐng)重新查詢。");</p><p><b> return;</b></p><p><b> }</b></
48、p><p><b> }</b></p><p> void SearchByFlightStart(flight * head)</p><p><b> {</b></p><p> char start[10];</p><p> printf("請(qǐng)輸入
49、出發(fā)地:");</p><p> scanf("%s",&start);</p><p> if(head->next==NULL)</p><p><b> {</b></p><p> printf("沒有航班信息,不能查詢,請(qǐng)先創(chuàng)建信息。\n\n&quo
50、t;);</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> { </b></p><p> int count
51、=0;</p><p> while(head->next!=NULL)</p><p><b> { </b></p><p> head=head->next;</p><p> if(strcmp(start,head->flight_start)==0)</p><
52、;p><b> {</b></p><p> printf("航班號(hào) 出發(fā)地 目的地 起飛時(shí)間 到達(dá)時(shí)間 是否經(jīng)停 價(jià)格 \n");</p><p> printf("%-8s%-10s%-10s%-10s%-10s%-12s%d \n",head->flight_num,head->
53、;flight_start,head->flight_destination,head->flight_takeoff_time,head->flight_arrive_time,head->flight_isStop,head->flight_price);</p><p><b> count ++;</b></p><p><
54、;b> }</b></p><p><b> }</b></p><p> if(count==0) printf("沒有找到所需航班,請(qǐng)重新查詢。");</p><p><b> return;</b></p><p><b> }<
55、/b></p><p><b> }</b></p><p> void SearchByFlightDestination(flight * head)</p><p><b> {</b></p><p> char destination[10];</p><
56、p> printf("請(qǐng)輸入目的地:");</p><p> scanf("%s",&destination);</p><p> if(head->next==NULL)</p><p><b> {</b></p><p> printf(&quo
57、t;沒有航班信息,不能查詢,請(qǐng)先創(chuàng)建信息。\n");</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> { </b></
58、p><p> int count=0;</p><p> while(head->next!=NULL)</p><p><b> { </b></p><p> head=head->next;</p><p> if(strcmp(destination,head->
59、;flight_destination)==0)</p><p><b> {</b></p><p> printf("航班號(hào) 出發(fā)地 目的地 起飛時(shí)間 到達(dá)時(shí)間 是否經(jīng)停 價(jià)格 \n");</p><p> printf("%-8s%-10s%-10s%-10s%-10s%-12s%
60、d \n",head->flight_num,head->flight_start,head->flight_destination,head->flight_takeoff_time,head->flight_arrive_time,head->flight_isStop,head->flight_price);</p><p><b> coun
61、t ++;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(count==0)</p><p> printf("沒有找到所需航班,請(qǐng)重新查詢。\n\n\n");</p><p&g
62、t;<b> return;</b></p><p><b> }</b></p><p><b> } </b></p><p> void SearchByFlightPrice(flight * head)</p><p><b> {</b&g
63、t;</p><p> int price;</p><p> printf("請(qǐng)輸入價(jià)格:");</p><p> scanf("%d",&price);</p><p> if(head->next==NULL)</p><p><b> {
64、</b></p><p> printf("沒有航班信息,不能查詢,請(qǐng)先創(chuàng)建信息。\n\n");</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></
65、p><p><b> { </b></p><p> int count=0;</p><p> while(head->next!=NULL)</p><p><b> { </b></p><p> if(head->flight_price==
66、price)</p><p><b> {</b></p><p> printf("航班號(hào) 出發(fā)地 目的地 起飛時(shí)間 到達(dá)時(shí)間 是否經(jīng)停 價(jià)格 \n");</p><p> printf("%-8s%-10s%-10s%-10s%-10s%-12s%d \n",head-&g
67、t;flight_num,head->flight_start,head->flight_destination,head->flight_takeoff_time,head->flight_arrive_time,head->flight_isStop,head->flight_price);</p><p><b> count++;</b><
68、/p><p><b> }</b></p><p> head=head->next;</p><p><b> }</b></p><p> if(count==0) printf("沒有找到符合條件的航班,請(qǐng)重新查詢。\n\n\n");</p><
69、;p><b> return; </b></p><p><b> }</b></p><p><b> }</b></p><p> void Search(flight * head)</p><p><b> { </b><
70、/p><p> if(head->next==NULL)</p><p><b> {</b></p><p> printf("沒有可供查詢的航班信息,請(qǐng)先添加信息。");</p><p><b> return;</b></p><p>&l
71、t;b> }</b></p><p> int Search_way;</p><p> system("cls");</p><p> printf("*********************選擇查詢方式***********************\n");</p><p&g
72、t; printf("********************************************************\n");</p><p> printf("*******************1.按航班號(hào)查詢***********************\n");</p><p> printf("*****
73、**************2.按出發(fā)地查詢***********************\n");</p><p> printf("*******************3.按目的地查詢***********************\n");</p><p> printf("*******************4. 按價(jià)格查詢 *****
74、******************\n");</p><p> printf("*******************0. 退出查詢*************************\n");</p><p> printf("********************************************************\n
75、\n\n");</p><p> scanf("%d",&Search_way);</p><p> switch(Search_way)</p><p><b> {</b></p><p><b> case 1: </b></p>&
76、lt;p><b> {</b></p><p> SearchByFlightNum(head);</p><p><b> break;</b></p><p><b> } </b></p><p><b> case 2:</b>&
77、lt;/p><p><b> {</b></p><p> SearchByFlightStart(head);</p><p><b> break;</b></p><p><b> }</b></p><p><b> case
78、3:</b></p><p><b> {</b></p><p> SearchByFlightDestination(head);</p><p><b> break;</b></p><p><b> }</b></p><p&g
79、t;<b> case 4:</b></p><p><b> {</b></p><p> SearchByFlightPrice(head);</p><p><b> break;</b></p><p><b> }</b></p&
80、gt;<p> case 0: break;</p><p> default:break;</p><p><b> } </b></p><p><b> return;</b></p><p><b> }</b></p><p
81、> struct flight * Delete(flight * head,char num[10])</p><p><b> {</b></p><p> struct flight *p,*q;</p><p><b> p=head;</b></p><p> if(p-&
82、gt;next==NULL)</p><p><b> {</b></p><p> printf("航班信息為空,不能刪除,請(qǐng)先創(chuàng)建航班信息。\n");</p><p> return head; </p><p><b> }</b></p><p
83、> while(((strcmp(p->flight_num,num))!=0)&&p->next!=NULL)</p><p><b> {</b></p><p><b> q=p;</b></p><p> p=p->next;</p><p>
84、<b> }</b></p><p> if((strcmp(p->flight_num,num))==0)</p><p><b> {</b></p><p> if(p==head)</p><p> head=p->next;</p><p>&
85、lt;b> else </b></p><p> q->next=p->next;</p><p><b> free(p);</b></p><p> printf("成功刪除。");</p><p><b> }</b></p&g
86、t;<p><b> else</b></p><p> printf("沒有您要?jiǎng)h除的航班,請(qǐng)確認(rèn)輸入正確。\n");</p><p> return head; </p><p><b> }</b></p><p> void List(struct
87、 flight * head)</p><p><b> {</b></p><p> struct flight *p;</p><p> p=head->next;</p><p> printf("所有航班信息:\n");</p><p> printf(
88、"航班號(hào) 出發(fā)地 目的地 起飛時(shí)間 到達(dá)時(shí)間 是否經(jīng)停 價(jià)格 \n");</p><p> while(p!=NULL)</p><p><b> {</b></p><p> printf("%-8s%-10s%-10s%-10s%-10s%-12s%d \n",p->
89、flight_num,p->flight_start,p->flight_destination,p->flight_takeoff_time,p->flight_arrive_time,p->flight_isStop,p->flight_price);</p><p> p=p->next;</p><p><b> }</
90、b></p><p><b> }</b></p><p> int main()</p><p><b> { </b></p><p> char choice;</p><p> int create_num=0;</p><p&
91、gt; struct flight * head;</p><p> int price;</p><p><b> do</b></p><p><b> {</b></p><p> system("cls");</p><p> welc
92、ome();</p><p> scanf("%c",&choice);</p><p> switch(choice)</p><p><b> {</b></p><p><b> case '1':</b></p><p&
93、gt;<b> {</b></p><p> printf("請(qǐng)輸入需要?jiǎng)?chuàng)建的信息條數(shù):");</p><p> scanf("%d",&create_num); </p><p> head=InitSystem(create_num);</p><p> Li
94、st(head);</p><p><b> break;</b></p><p><b> }</b></p><p><b> case '2':</b></p><p><b> {</b></p><p&
95、gt; Insert(head);</p><p> List(head);</p><p><b> break;</b></p><p><b> }</b></p><p><b> case '3':</b></p><p&
96、gt;<b> {</b></p><p> Search(head);</p><p><b> break;</b></p><p><b> }</b></p><p><b> case '4':</b></p>
97、;<p><b> {</b></p><p> if(head->next!=NULL)</p><p><b> {</b></p><p> char Delete_num[10];</p><p> List(head);</p><p>
98、; printf("請(qǐng)輸入要?jiǎng)h除的航班號(hào):\n");</p><p> scanf("%s",&Delete_num);</p><p> head=Delete(head,Delete_num);</p><p> List(head);</p><p><b> }<
99、;/b></p><p><b> else</b></p><p><b> {</b></p><p> printf("沒有航班信息,不能刪除,請(qǐng)先添加信息。");</p><p><b> }</b></p><p
100、><b> break; </b></p><p><b> }</b></p><p> default:break;</p><p><b> }</b></p><p> system("pause");</p><
101、p> }while(choice!='0');</p><p><b> return 0;</b></p><p><b> }</b></p><p> NO.2尋找二叉排序樹的公共祖先</p><p> ?一、題目內(nèi)容的描述 </p><p&
102、gt; 任務(wù):求二叉樹中指定兩個(gè)結(jié)點(diǎn)共同的最近祖先。</p><p> ?二、應(yīng)用程序功能的詳細(xì)說明 </p><p> 建立一棵二叉排序數(shù),任意輸入其中兩個(gè)結(jié)點(diǎn),找到最近的公共祖先。</p><p> ?三、輸入數(shù)據(jù)類型、格式和內(nèi)容限制; </p><p> #include <stdio.h></p>
103、<p> #include <stdlib.h></p><p> #define max 50</p><p> typedef struct tree</p><p><b> {</b></p><p><b> int data;</b></p>
104、<p> struct tree *lchild,*rchild;</p><p><b> }test;</b></p><p> ?四、主要模塊的算法描述 </p><p><b> ?五、結(jié)束語 </b></p><p> 在此過程中,我對(duì)二叉排序數(shù)的生成和結(jié)構(gòu)有了更深的
105、理解。在實(shí)現(xiàn)功能的時(shí)候,失敗了很多次,但是和同學(xué)交流以及借助網(wǎng)絡(luò),最終成功實(shí)現(xiàn)了。</p><p> ?六、程序的源代碼清單 </p><p> #include <stdio.h></p><p> #include <stdlib.h></p><p> #define max 50</p>
106、<p> typedef struct tree</p><p><b> {</b></p><p><b> int data;</b></p><p> struct tree *lchild,*rchild,*parent;</p><p><b> }test
107、;</b></p><p> tree *root,*p,*q[max];</p><p> int sum=0;</p><p> int m=sizeof(test); </p><p> void insert_data(int x) /*生成二叉排序樹*/</p><p>
108、<b> { </b></p><p> tree *p,*q,*s;</p><p> s=(test*)malloc(m);</p><p> s->data=x;</p><p> s->lchild=NULL;</p><p> s->rchild=NULL;
109、</p><p><b> if(!root)</b></p><p><b> {</b></p><p><b> root=s; </b></p><p><b> }</b></p><p> p=root;
110、 </p><p> while(p) /*如何接入二叉排序樹的適當(dāng)位置*/</p><p><b> {</b></p><p><b> q=p;</b></p><p> if(p->data==x)</p><p
111、><b> {</b></p><p> if(p==s) return;</p><p> printf("data already exist! \n");</p><p><b> return;</b></p><p><b> }</b&
112、gt;</p><p> else if(x<p->data)</p><p> p=p->lchild; </p><p><b> else </b></p><p> p=p->rchild;</p><p><b> }</b>
113、</p><p> if(x<q->data)</p><p><b> {</b></p><p> q->lchild=s;</p><p><b> }</b></p><p><b> else </b></p&
114、gt;<p><b> {</b></p><p> q->rchild=s;</p><p><b> }</b></p><p><b> }</b></p><p> tree * findRoot(tree *T,int a,int b)&
115、lt;/p><p><b> {</b></p><p> tree *p,*parent;</p><p> p=parent=T;</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if
116、(a<p->data&&b<p->data)</p><p><b> {</b></p><p><b> parent=p;</b></p><p> p=p->lchild;</p><p><b> }</b><
117、;/p><p> else if(a>p->data&&b>p->data)</p><p><b> {</b></p><p><b> parent=p;</b></p><p> p=p->rchild;</p><p&g
118、t;<b> }</b></p><p> else if((a<p->data&&b>p->data)||(a>p->data&&b<p->data))</p><p><b> {</b></p><p><b> ret
119、urn p;</b></p><p><b> }</b></p><p> else if(a==p->data||b==p->data)</p><p><b> {</b></p><p> return parent;</p><p>
120、<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> int main() /*先生成二叉排序樹*/</p><p><b> {</b></p>
121、<p><b> int i,x;</b></p><p><b> i=1; </b></p><p> root=NULL; /*千萬別忘了賦初值給root!*/</p><p><b> do</b></p><p><b&g
122、t; {</b></p><p> printf("please input data%d:",i);</p><p><b> i++;</b></p><p> scanf("%d",&x); /*從鍵盤采集數(shù)據(jù),以-9999表示輸入結(jié)束*/</p
123、><p> insert_data(x); /*調(diào)用插入數(shù)據(jù)元素的函數(shù)*/</p><p> }while(x!=-9999); </p><p><b> int a,b;</b></p><p> tree * T1,* T2;</p><p> printf("請(qǐng)輸入
124、要尋找父親的結(jié)點(diǎn):");</p><p> scanf("%d%d",&a,&b);</p><p> p=findRoot(root,a,b);</p><p> printf("\n結(jié)點(diǎn)%d與結(jié)點(diǎn)%d的最近公共祖先是%d\n",a,b,p->data);</p><
125、p> return 0; </p><p><b> }</b></p><p> NO.3字符串的操作</p><p> ?一、題目內(nèi)容的描述 </p><p> 任務(wù):字符串采用數(shù)組存儲(chǔ),建立兩個(gè)字符串String1和String2.輸出兩個(gè)字符串。</p><p>
126、將字符串String2的頭n個(gè)字符添加到String1的尾部,輸出結(jié)果。</p><p> 查找String3在串String1中的位置,若String3在String1中不存在,則插入String3在String1中的m位置上。輸出結(jié)果。</p><p> ?二、應(yīng)用程序功能的詳細(xì)說明 </p><p> 運(yùn)用strcmp和strcnmp函數(shù)實(shí)現(xiàn)對(duì)應(yīng)功能&l
127、t;/p><p> ?三、輸入數(shù)據(jù)類型、格式和內(nèi)容限制;</p><p> ?四、主要模塊的算法描述 </p><p><b> ?五、結(jié)束語 </b></p><p> 用數(shù)組來儲(chǔ)存字符串是一種在C中常用的方法,但難點(diǎn)在于對(duì)其操作。經(jīng)過這次實(shí)驗(yàn),我理解了strcnmp和strcmp函數(shù)的功能并且得以應(yīng)用。</
128、p><p> ?六、程序的源代碼清單 </p><p> #include "string.h"</p><p> #include <stdio.h></p><p> #include "stdlib.h"</p><p> #define N 100 &
129、lt;/p><p> int main()</p><p><b> {</b></p><p> char String1[N]="";</p><p> char String2[N]="";</p><p> char String3[N]=&q
130、uot;";</p><p> char *String=NULL;</p><p> printf("\n請(qǐng)輸入String1的內(nèi)容:");</p><p> scanf("%s",String1);</p><p> printf("\n請(qǐng)輸入String2的內(nèi)容:&qu
131、ot;);</p><p> scanf("%s",&String2);</p><p> printf("\nString1:%s\nString2:%s\n",String1,String2);</p><p><b> int n;</b></p><p>
132、printf("接下來是進(jìn)行字符串拼接,將String2的頭n個(gè)字符拼接到String1的尾部\n");</p><p> printf("請(qǐng)輸入要拼接String2前面多少個(gè)字符到String1:");</p><p> scanf("%d",&n); </p><p> strncat(S
133、tring1,String2,n);</p><p> printf("\n%s\n",String1);</p><p> printf("請(qǐng)輸入要在String1中查找的字符串String3:");</p><p> scanf("%s",String3);</p><p>
134、; int flag=0;</p><p><b> int i;</b></p><p> for( i=0;i<strlen(String1);i++)</p><p><b> {</b></p><p> if(String3[0]==String1[i])</p>
135、;<p><b> {</b></p><p> String=&String1[i];</p><p> if(strncmp(String1,String,strlen(String3))==0)</p><p><b> {</b></p><p><b&g
136、t; flag=1;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p>
137、 if(flag==1)</p><p><b> {</b></p><p> printf("String3在String1的第 %d 個(gè)",i+1); </p><p><b> }</b></p><p><b> else</b></
138、p><p><b> {</b></p><p> printf("沒有找到!");</p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 航班售票系統(tǒng)-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》航班查詢系統(tǒng)實(shí)驗(yàn)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)航空航班課程設(shè)計(jì)--航空客運(yùn)訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)-課程設(shè)計(jì)--學(xué)生管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--航班信息查詢與檢索系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)—機(jī)場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---員工管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---員工管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----huffman編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--車庫管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生籍貫管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書借閱管理系統(tǒng)
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)---圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--航班信息查詢與檢索
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--個(gè)人賬簿管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---圖書管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論