學(xué)生信息系統(tǒng)鏈表排序?qū)W生系統(tǒng)數(shù)據(jù)結(jié)構(gòu)C程序_第1頁
學(xué)生信息系統(tǒng)鏈表排序?qū)W生系統(tǒng)數(shù)據(jù)結(jié)構(gòu)C程序_第2頁
學(xué)生信息系統(tǒng)鏈表排序?qū)W生系統(tǒng)數(shù)據(jù)結(jié)構(gòu)C程序_第3頁
學(xué)生信息系統(tǒng)鏈表排序?qū)W生系統(tǒng)數(shù)據(jù)結(jié)構(gòu)C程序_第4頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、內(nèi)蒙古工業(yè)大學(xué)信息工程學(xué)院實(shí)驗(yàn)報告課程名稱:數(shù)據(jù)結(jié)構(gòu)( C 語言版)實(shí)驗(yàn)名稱:線性表的創(chuàng)建與訪問算法設(shè)計實(shí)驗(yàn)類型:驗(yàn)證性綜合性設(shè)計性實(shí)驗(yàn)室名班級:學(xué)號:姓名:組別:同組人:成績:實(shí)驗(yàn)日期:2011年 5 月 16 日預(yù)習(xí)報告成績:指導(dǎo)教師審核(簽名):2011年 5 月 16 日預(yù)習(xí)報告(一)實(shí)驗(yàn)?zāi)康臄?shù)據(jù)結(jié)構(gòu)于算法實(shí)驗(yàn)是計算機(jī)類本科學(xué)生計算機(jī)軟件知識重要的實(shí)驗(yàn)環(huán)節(jié),它將使學(xué)生從實(shí)踐上學(xué)會用高級語言程序設(shè)計、實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),為大型軟件設(shè)計奠定基礎(chǔ)。本實(shí)驗(yàn)以某種線性表的創(chuàng)建與訪問算法設(shè)計作為實(shí)驗(yàn)內(nèi)容,舉一反三,全面、深刻掌握線性結(jié)構(gòu)的實(shí)現(xiàn)方法,培養(yǎng)解決問題的能力。(二)實(shí)驗(yàn)內(nèi)容1、編寫生成線性

2、表的函數(shù),線性表的元素從鍵盤輸入;2、編寫在線性表中插入元素的函數(shù);3、編寫在線性表中刪除元素的函數(shù);4、編寫輸出線性表的函數(shù);5、編寫主函數(shù),調(diào)用以上各函數(shù),以便能觀察出原線性表以及作了插入或刪除后線性表的屏幕輸出。(三)實(shí)驗(yàn)要求1、掌握線性結(jié)構(gòu)的機(jī)器內(nèi)表示;2、掌握線性結(jié)構(gòu)之上的算法設(shè)計與實(shí)現(xiàn);3、列表對比分析兩種數(shù)據(jù)結(jié)構(gòu)的相應(yīng)操作的時間復(fù)雜度、空間復(fù)雜度,闡明產(chǎn)生差異的原因。(四)問題描述有一班學(xué)生上體育課排隊(duì),構(gòu)成了一個單鏈表,鏈表的結(jié)點(diǎn)存儲了學(xué)生的學(xué)號、姓名。(五)基本要求( 1)從鍵盤輸入學(xué)生的信息,建立學(xué)生鏈表。( 2)從鍵盤輸入學(xué)生的信息,實(shí)現(xiàn)學(xué)生查詢操作。( 3) 從 鍵 盤

3、 輸 入 學(xué) 生 的 學(xué) 號 值 , 將 學(xué) 號 為 x 的 學(xué) 生 與 其 右 邊 的 學(xué)生進(jìn)行交換。(注:不允許將鏈表中數(shù)據(jù)域的值進(jìn)行交換)( 六)實(shí)驗(yàn)設(shè)計思路實(shí) 驗(yàn) 實(shí) 現(xiàn)9 個 功 能 , 先 在 主 函 數(shù)m ai n () 設(shè) 計 聲 明 每 個 函 數(shù) , 然 后依次對每個函數(shù)細(xì)化,逐步調(diào)試,直到達(dá)到該函數(shù)的預(yù)期功能,即采用自頂向下,逐步細(xì)化的設(shè)計思路。該實(shí)驗(yàn)全部采用單鏈表,設(shè)計一個學(xué)生信息系統(tǒng),通過該系統(tǒng)一次可以完成:1.創(chuàng)建學(xué)生系統(tǒng)2.學(xué)生系統(tǒng)排序3.刪除學(xué)生信息4.增加學(xué)生信息5.查找學(xué)生信息6.清除學(xué)生信息7.修改學(xué)生信息8.模式查找信息9.退出學(xué)生系統(tǒng)等功能。實(shí)驗(yàn)報告成

4、績:指導(dǎo)教師審核(簽名):2011年 5 月 16 日(一)部分算法流程圖1刪除學(xué)生信息pre=std;flag=1;p=std-next;輸入查找姓名choicelenp=NULL?YNp!=NULLstrcmp(.chioce)=0 ?NY沒有學(xué)生信息pre-next=p-next;free(p);flag=0;pre=p;p=p-next;flag=1NY沒有該學(xué)生!2學(xué)生信息模式查找flag=1;p-std-next;輸入姓名匹配字母seeklen;seeklen=strlen(seek);P!=NULLi=j=0;namelen=strlen(p-data.na

5、me);inamelen&j=seekj?NYi=i-j+1;i+;j=0;j+;j=seeklen ?NY輸出匹配姓名學(xué)號 ;flag=0;p=p-next;flag=1?NY輸入的字符沒有學(xué)生姓名匹配3 選擇排序Pipre=std;pi-next!=NULLpi=std-next;pmin=pi;pj!=NULLpj=pi-next;pminpre=pi;strcmp(,)0 ?NYpmin=pj;pjpre=pminpre;pmin-next=NULL?NYpmin!=pi?NYpipre-next=pmin;pjp

6、re-next=pi;ptem=pmin-next;pmin-next=pi-next;pi-next=ptem;pipre-next=pmin;pmin-next=pi-next;pjpre-next=pi;pi-next=NULL;pi=pipre-next;pipre=pipre-next;(二)函數(shù)算法函數(shù)算法具體見程序代碼。(三)調(diào)試程序出現(xiàn)的問題及解決的方法編程中出現(xiàn)很多的編譯錯誤,我主要采用對每個函數(shù)調(diào)試,設(shè)斷點(diǎn),不會的問同學(xué),鏈表的選擇排序,在網(wǎng)上搜索,運(yùn)用自己的程序中,讓我更好的掌握了選擇排序法。(四)實(shí)驗(yàn)心得體會通過這次試驗(yàn),讓我更好的掌握了鏈表的使用,用鏈表解決實(shí)際問題,

7、用模塊化程序設(shè)計思路,對每個函數(shù)細(xì)化,調(diào)試,使得整個程序正確運(yùn)行,達(dá)到預(yù)期結(jié)果。(五)程序清單/ / 學(xué) 生 系 統(tǒng) .c p p : 定 義 控 制 臺 應(yīng) 用 程 序 的 入 口 點(diǎn) 。/ /# i n c l u d e # i n c l u d e # i n c l u d e # d ef i n el e n 20# d ef i n eN U L L 0st r u c t st u d e n tc h a rn am e l e n ;c h a rn u m b er l e n ; ;st r u c t st d n o d est u d e n td a t a

8、;st d n o d e* n e xt ; ;v o i d c r e a t est d ( st d n o d e * st d ) / / 創(chuàng) 建 學(xué) 生 系 統(tǒng)i n t i = 0 ;c h arch ;d o s t d - n ex t = ( st d n o d e * ) m al l o c( si ze o f ( st d n o d e ) ) ;s t d = st d - n e x t ;p r i n t f ( t 輸 入 學(xué) 生 的 學(xué) 號 和 姓 名 :nt ) ;s c an f ( % s ,& st d - d at a. n u m b

9、 er ) ;p r i n t f ( t ) ;s c an f ( % s ,& st d - d at a. n a m e) ;g e t ch ar ( ) ;p r i n t f ( t 繼 續(xù) 創(chuàng) 建 學(xué) 生 信 息 嗎 ?Y. 繼 續(xù)N. 退 出nt ) ;s c an f ( % c ,& c h ) ; w h i l e ( c h = = Y ) ; st d - n e x t = N U L L ;v o i d i n p u t st d ( st d n o d e * st d )st d n o d e * p ;p = st d - n e x t

10、;i f ( p = = N U L L )p r i n t f ( t 沒 有 學(xué) 生 信 息 !n ) ;p r i n t f ( t 現(xiàn) 有 學(xué) 生 信 息 如 下 表 :n ) ;i f ( p ! = N U L L ) p r i n t f ( t n ) ;w h i l e ( p ! = N U L L )p r i n t f ( t % 1 0 s% 1 1 s n , p - d at a. n u m b er , p - d a t a. n am e) ;p = p - n e x t ;i f ( p ! = N U L L ) p r i n t f (

11、 t n ) ;i f ( st d - n e xt ! = N U L L ) p r i n t f ( t n ) ;p r i n t f ( n ) ;v o i d so r t st d (st d n o d e * st d ) / / 學(xué) 生 系 統(tǒng) 排 序c h a r ch ;st d n o d e * p i , * p j , * p i p r e ,* p j p r e , * p t e m , * p m i n , * p m i n p r e;p r i n t f ( t 選 擇 排 序 方 式 :A.姓名B.學(xué)號nt ) ; / /按升序排列

12、用 選擇排序法g et c h ar () ;sca n f ( % c , & ch ) ;i f ( st d - n e x t = = N U L L ) p r i n t f ( t 沒 有 學(xué) 生 信 息 !n ) ; ex i t ( 0 ) ;i f ( ch = = A )p i p r e= st d ;f o r ( p i = st d - n ex t ;p i - n e x t ! = N U L L ; p i = p i - n e x t )p m i n = p i ;f o r ( p j = p i - n ex t , p m i n p r e

13、= p i ; p j != N U L L ; p m i n p r e= p m i n p r e - n ex t , p j = p j - nex t )i f (st r cm p ( p m i n - d at a. n am e , p j - d a t a. n am e) 0 )p m i n = p j ;p j p r e = p m i n p r e ;i f ( p m i n - n e xt = = N U L L )p i p r e- n ex t = p m i n ;p m i n - n ex t = p i - n ex t ;p j p

14、r e- n ex t = p i ;p i - n ex t = N U L L ;el sei f (p m i n != p i )p i p r e - n e x t = p m i n ;p j p r e - n e x t = p i ;p t em = p m i n - n e x t ;p m i n - n e xt = p i - n ex t ;p i - n e xt = p t e m ;p i = p i p r e- n ex t ;p i p r e = p i p r e- n e xt ;i f ( ch = = B )p i p r e= st d

15、;f o r ( p i = st d - n ex t ;p i - n e x t ! = N U L L ; p i = p i - n e x t )p m i n = p i ;f o r ( p j = p i - n ex t , p m i n p r e = p i ; p j != N U L L ; p m i n p r e= p m i n p r e - n ex t , p j = p j - nex t )i f (st r cm p ( p m i n - d at a. n u m b e r , p j - d at a. n u m b e r ) 0

16、)p m i n = p j ;p j p r e = p m i n p r e ;i f ( p m i n - n e xt = = N U L L )p i p r e- n ex t = p m i n ;p m i n - n ex t = p i - n ex t ;p j p r e- n ex t = p i ;p i - n ex t = N U L L ;el sei f (p m i n != p i )p i p r e - n e x t = p m i n ;p j p r e - n e x t = p i ;p t em = p m i n - n e x t

17、 ;p m i n - n e xt = p i - n ex t ;p i - n e xt = p t e m ;p i = p i p r e - n ex t ;p i p r e = p i p r e - n ex t ;v o i d d e l et e st d ( st d n o d e * st d ) / / 刪 除 學(xué) 生 信 息st d n o d e * p , * p r e = st d ;i n t f l a g = 1 ;c h a r ch , ch o i c e l en ;p = st d - n e x t ;p r i n t f ( t

18、選 擇 刪 除 方 式 : A : 姓 名B : 學(xué) 號nt ) ;g et c h ar () ;sca n f ( % c , & ch ) ;i f ( ch = = A )p r i n t f ( t 輸 入 刪 除 學(xué) 生 的 姓 名 :nt ) ;s c an f ( % s ,c h o i c e) ;i f ( p = = N U L L ) p r i n t f ( t 沒 有 學(xué) 生 信 息 !n ) ;w h i l e ( p ! = N U L L )i f (st r cm p ( p - d at a. n am e , ch o i c e ) = = 0

19、 )p r e- n e xt = p - n e x t ;f r ee ( p ) ;f l ag = 0 ;p r i n t f ( t 刪 除 成 功 !n ) ;b r eak ;p r e= p ;p = p - n e xt ;i f ( f l ag ) p r i n t f ( t 沒 有 該 學(xué) 生 !n ) ;e l se i f ( ch = = B )p r i n t f (t 輸 入 刪 除 學(xué) 生 的 學(xué) 號 :nt ) ;s c an f ( % s ,c h o i c e) ;i f ( p = = N U L L ) p r i n t f ( t

20、沒 有 學(xué) 生 信 息 !n ) ;w h i l e ( p ! = N U L L )i f (st r cm p ( p - d at a. n u m b e r , ch o i ce ) = = 0 )p r e- n e xt = p - n e x t ;f r ee ( p ) ;f l ag = 0 ;p r i n t f ( t 刪 除 成 功 !n ) ;b r eak ;p r e= p ;p = p - n e xt ;i f ( f l ag ) p r i n t f ( t 沒 有 該 學(xué) 生 , 請 重 新 輸 入 !n ) ;v o i d i n c

21、r ea se st d (s t d n o d e * st d )/ / 增 加 學(xué) 生 信 息st d n o d e * p , * p 1 ;p = st d - n e x t ;p 1 = ( st d n o d e * ) m al l o c ( si z e o f ( st d n o d e ) ) ;p r i n t f ( t 輸 入 增 加 學(xué) 生 的 學(xué) 號 和 姓 名 :nt ) ;sca n f ( % s , & p 1 - d a t a. n u m b e r ) ;p r i n t f ( t ) ;sca n f ( % s , & p

22、1 - d a t a. n am e ) ;st d - n e x t = p 1 ;p 1 - n e x t = p ;p r i n t f ( t 信 息 添 加 成 功 !n ) ;v o i d seek st d ( st d n o d e * st d ) / / 查 找 學(xué) 生 信 息st d n o d e * p ;c h a r ch o l en , c h ;i n t f l a g = 1 ;p = st d - n e x t ;i f ( p = = N U L L )p r i n t f ( t 沒 有 學(xué) 生 信 息 !n ) ;p r i n

23、t f ( t 選 擇 查 找 方 式 : A. 名 字B. 學(xué) 號nt ) ;g et c h ar () ;sc an f ( % c , & c h ) ;i f ( ch = = A )p r i n t f ( t 請 輸 入 姓 名 :nt ) ;sca n f ( % s , c h o ) ;w h i l e( p != N U L L )i f ( st r cm p (p - d a t a. n am e, ch o ) = = 0)p r i n t f ( t 學(xué) 生 的 信 息 如 下 :n ) ;p r i n t f ( t姓名:% s學(xué)號 :% sn , p

24、 - d a t a. n a m e ,p - d at a. n u m b er ) ;f l ag = 0 ;p = p - n e x t ;i f ( f l ag ) p r i n t f ( t 沒 有 該 學(xué) 生 , 請 重 新 查 找 !n ) ;el se i f ( ch = = B )p r i n t f ( t 請 輸 入 學(xué) 號 :nt ) ;scan f ( % s , ch o ) ;w h i l e( p ! = N U L L )i f ( st r cm p ( p - d at a. n u m b e r ,c h o ) = = 0 )p r

25、 i n t f ( t 學(xué) 生 的 信 息 如 下 :n ) ;p r i n t f ( t學(xué)號:% s姓名 :% sn , p - d a t a. n u m b er , p - d at a. n a m e ) ;f l ag = 0 ;p = p - n ex t ;i f ( f l ag ) p r i n t f ( t 沒 有 該 學(xué) 生 , 請 重 新 查 找 !n ) ;v o i d c l e a r st d ( st d n o d e * st d ) / / 清 空 全 部 信 息st d n o d e * p ;p = st d - n e x t

26、;w h i l e ( p ! = N U L L )s t d - n ex t = p - n ex t ;p = p - n e x t ;p r i n t f ( t 全 部 信 息 清 空 !n ) ;v o i d c h an g est d ( st d n o d e * st d ) / / 修 改 學(xué) 生 信 息c h a r ch ,s eek l e n ;st d n o d e * p ;i n t f l a g = 1 ;p = st d - n e x t ;i f ( p = = N U L L )p r i n t f ( t 沒 有 學(xué) 生 信 息

27、 !n ) ;p r i n t f ( t 選 擇 修 改 方 式 : A. 名 字g et c h ar () ;sca n f ( % c , & ch ) ;i f ( ch = = A )B.學(xué)號nt ) ;p r i n t f ( t 輸 入 要 修 改 學(xué) 生 的 姓 名 :nt ) ;s c an f ( % s ,see k ) ;w h i l e ( p ! = N U L L )i f ( st r c m p ( p - d at a. n a m e, see k ) = = 0 )p r i n t f ( t 輸 入 修 改 后 學(xué) 生 的 姓 名 :nt )

28、 ;sc a n f ( % s , & p - d at a. n a m e ) ;f l ag = 0 ; b r e a k;p = p - n ex t ;i f ( f l ag = = 0) p r i n t f ( t 學(xué) 生 信 息 修 改 成 功 !n ) ;el se i f ( ch = = B )p r i n t f ( t 輸 入 要 修 改 學(xué) 生 的 學(xué) 號 :nt ) ;s c an f ( % s ,see k ) ;w h i l e ( p ! = N U L L )i f ( st r cm p ( p - d at a. n am e, see

29、k ) = = 0 )p r i n t f ( t 輸 入 修 改 后 學(xué) 生 的 學(xué) 號 :nt ) ;scan f ( % s , & p - d a t a. n u m b e r ) ;f l ag= 0 ; b r eak ;p = p - n ex t ;i f ( f l ag = = 0) p r i n t f ( t 學(xué) 生 信 息 修 改 成 功 !n ) ;v o i d i n d e x (st d n o d e * st d ) / / 模 式 查 找 信 息st d n o d e * p ;ch ar s e ek l e n , ch ;i n t n

30、 am e l en ,s ee k l en ,i , j ,f l a g = 1 ;p = st d - n e x t ;p r i n t f ( t 選 擇 匹 配 查 找 的 方 式 : A. 名 字g et ch ar ( ) ;sc a n f ( % c , & ch ) ;i f ( c h = = A )p r i n t f ( t 輸 入 姓 名 匹 配 字 母 :nt ) ;s ca n f ( % s , see k );s ee k l e n = st r l e n ( se e k ) ;w h i l e( p ! = N U L L )i = j =

31、 0 ;n am e l e n = st r l e n ( p - d at a. n a m e) ;w h i l e ( i n am el e n & & j d a t a. n am e i = = see k j ) e l seB. 學(xué) 號nt ) ;i + + ;j + + ; i = i - j + 1 ;j = 0 ;i f ( j = se ek l en )p r i n t f ( t 學(xué) 生 的 信 息 如 下 :n ) ;p r i n t f ( t姓名:% s學(xué)號 :% sn , p - d a t a. n a m e ,p - d at a. n u

32、 m b er ) ;f l ag = 0 ;p = p - n e x t ;i f ( f l ag ) p r i n t f ( t 沒 有 該 學(xué) 生 , 請 重 新 查 找 !n ) ;i f ( c h = = B )p r i n t f ( t 輸 入 學(xué) 號 匹 配 的 數(shù) 字 :nt ) ;s ca n f ( % s , see k );s eek l e n = st r l e n ( se e k ) ;w h i l e( p ! = N U L L )i = j = 0 ;n am e l e n = st r l e n ( p - d at a. n u

33、m b er ) ;w h i l e ( i n am el e n & & j d at a. n u m b er i = = se e k j ) i + + ; j + + ; e l sei = i - j + 1 ;j = 0 ;i f ( j = se ek l en )p r i n t f ( t 學(xué) 生 的 信 息 如 下 :n ) ;p r i n t f ( t學(xué)號:% s姓名 :% sn , p - d a t a. n u m b er , p - d at a. n a m e ) ;f l ag = 0 ;p = p - n e x t ;i f ( f l ag ) p r i n

溫馨提示

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

評論

0/150

提交評論