




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上X X X X X 大 學11學年12學年第2學期數據結構實驗報告書專 業: 班 級: 姓 名: 學 號: 實驗地點: 計算中心B6機房 任課教師: 實驗題目: 基于線性表的圖書信息管理 實驗環境: Visual Studio 6.0 實驗目的:1、掌握線性表的定義;2、掌握線性表的基本操作,如建立、查找、插入和刪除等。實驗內容:1、必做分別定義一個包含圖書信息(書號,書名,定價)的順序表和鏈表,使其具有如下功能:(1) 從給定的文件book.txt逐個讀入圖書信息;(2) 逐個顯示圖書表中所有圖書的相關信息;(3) 統計表中圖書個數;(4) 輸出圖書價格最高的圖書信
2、息(考慮可能有多個);(5) 計算所有圖書的平均價格;(6) 根據書名進行查找,返回相應書名的圖書的書號和定價(考慮重名情況); (7) 根據指定的位置,返回相應位置的圖書的全部信息;(8) 給定一本圖書相關信息,插入到表中指定的位置,將插入后的結果重新寫入文件book.txt;(9) 刪除指定位置的圖書記錄,將刪除后的結果重新寫入文件book.txt;(10) 將圖書表信息逆序存儲,將逆序的圖書信息存入文件book_inverser.txt中。2、選做(1)按照圖書價格進行排序,將排序的結果以格式(定價,書號,書名)存入文件book_sort.txt中。(2)實現兩個一元多項式的加法、減法、
3、乘法運算。實現方法、實驗結果及結論分析等:(一)實現方法1. 所用數據結構的定義及其相關說明(相關結構體或類的定義及其含義)/定義一個結構體Bookstruct Book /定義結構體char no30; /編碼char name30; /書名int price; /價格;/順序表的定義typedef struct LNode /定義順序表struct Book *elem; /指向數據元素的基地址int length; /順序表當前長度SqList;/鏈表的定義typedef struct LNode /定義鏈表struct Book data; /數據域struct LNode *next
4、; /指針域LNode, *LinkList;/一元二次多項式的定義typedef struct PNodefloat coef; /參數int expn; /指數struct PNode *next; /指針域PNode, *Polynomial;2. 自定義函數的名稱及其功能說明/函數聲明(順序表)Status InitList( SqList &L ); /順序表初始化void Input( SqList &L ); /輸入函數void Output( SqList L ); /輸出函數void Count( SqList L ); /輸出數據長度函數void Compare( SqLi
5、st L ); /比較價格函數void Average( SqList L ); /求平均價格函數void Search_name( SqList L ); /按名字查找圖書信息函數void Search_no( SqList L ); /按輸入圖書位置查找圖書信息void Insert( SqList &L ); /插入函數void Delete( SqList &L ); /刪除函數void Inverse( SqList &L ); /逆轉函數/函數聲明(鏈表)Status InitList( LinkList &L ); /初始化鏈表void Input( LinkList &L );
6、 /輸入函數void Output( LinkList &L ); /輸出函數void Count( LinkList L ); /輸出數據個數的函數void Compare( LinkList L ); /比較價格函數void Average( LinkList L ); /求平均價格函數void Search_name( LinkList L ); /按照書名查找圖書信息的函數Status Search_no( LinkList L ); /按照輸入位置查找圖書信息Status Insert( LinkList &L ); /插入函數Status Delete( LinkList &L )
7、; /刪除函數Status Inverse( LinkList &L ); /逆序函數Status Sort( LinkList &L ); /排序函數/函數聲明(一元多項式)Status InitPolyn( Polynomial &P ); /初始化一元多項式void CreatePolyn( Polynomial &P ); /創建一元多項式void CopyPolyn( Polynomial &P1, Polynomial &P2 ); /一元多項式的拷貝void AddPolyn( Polynomial &PA, Polynomial &PB ); /一元多項式相加函數void Mi
8、nusPolyn( Polynomial &PA, Polynomial &PB );/一元多項式相減void MultiplyPolyn( Polynomial &Pa, Polynomial &Pb );/一元多項式相乘3. 主要功能算法的時間復雜度順序表函數名稱時間復雜度Status InitList( SqList &L );/順序表初始化O(1)void Input( SqList &L );/輸入函數O(n)void Output( SqList L );/輸出函數O(n)void Count( SqList L ); /輸出數據長度函數O(1)void Compare( SqLi
9、st L );/比較價格函數O(n)void Average( SqList L );/求平均價格函數O(n)void Search_name( SqList L );/按照書名查找O(n)void Search_no( SqList L );/按照輸入位置查找O(1)void Insert( SqList &L );/插入函數O(n)void Delete( SqList &L );/刪除函數O(n)void Inverse( SqList &L );O(n)鏈表函數名稱時間復雜度Status InitList( LinkList &L );/初始化鏈表O(1)void Input( Lin
10、kList &L );/輸入函數O(n)void Output( LinkList &L );/輸出函數O(n)void Count( LinkList L );/輸出數據個數的函數O(1)void Compare( LinkList L );/比較價格函數O(n)void Average( LinkList L );/求平均價格函數O(n)void Search_name( LinkList L );/按照書名查找O(n)Status Search_no( LinkList L );/按照輸入位置查找O(n)Status Insert( LinkList &L );/插入函數O(n)Stat
11、us Delete( LinkList &L );/刪除函數O(n)Status Inverse( LinkList &L );/逆序函數O(n)Status Sort( LinkList &L );/排序函數O(n*n)一元多項式函數名稱時間復雜度Status InitPolyn( Polynomial &P );/初始化一元多項式O(1)void CreatePolyn( Polynomial &P ); /創建一元多項式O(n)void CopyPolyn( Polynomial &P1, Polynomial &P2 ); O(n)void AddPolyn( Polynomial &
12、PA, Polynomial &PB );O(m+n)void MinusPolyn( Polynomial &PA, Polynomial &PB ); O(m+n)void MultiplyPolyn( Polynomial &Pa, Polynomial &Pb ); O(m*n*m*n)4. 實驗任務書中要求畫的流程圖鏈表根據指定位置進行查找的算法流程圖鏈表插入算法的流程圖(二)實驗結果1順序表(1)菜單:當輸入超出菜單所給的數字時出現提示(2)輸出函數:輸出全部圖書信息(3)統計圖書個數(4)找出價格最高的圖書,并輸出其信息。當出現多個價格同時最高的圖書時依然可以正確輸出 (5)求出
13、所有圖書的平均價格(6)按書名查找圖書,并輸出其信息;當沒有此書時會有提示 (7)按照指定的位置查找圖書信息,當輸入非法時有提示 (8)在指定位置插入圖書信息,當位置不合法或者空間不足時有提示 (9)刪除指定位置的圖書信息,當輸入位置不合法是提示(10)圖書信息逆序2. 鏈表(1)當輸入超出菜單所給選項的數字時有提示 (2)輸出所有的圖書信息 (3)統計圖書個數(4)查找價格最高的圖書,如果有多本書同時為最高價可全部輸出 (5)計算所有圖書的平均價格 (6)按書名查找圖書,可查找多本同名圖書,當無查找書籍信息時有提示 (7)按輸入位置查找圖書信息,當位置不合法是有提示 (8)在指定位置插入信息
14、,當位置不合法是有提示 (9)刪除指定位置的圖書信息,當位置不合法是有提示 (10)將所有圖書信息逆序 (11)將所有圖書信息按照價格由高到低排序3一元多項式(1)創建一元多項式(2)彈出菜單,當輸入錯誤選項時有提示,還有選項可以跳出菜單(3)一元多項式相加(4)一元多項式相減 (5)一元多項式相乘 (三)結論分析1. 問題與解決方法在寫菜單的代碼時,我設法讓菜單能夠循環,但是也要有出口,所以選擇了一個循環;在選擇菜單選項時,由于選項較多,用if語句進行選擇會套用多層if語句,而且對于非選項的數字處理也較麻煩,于是我選擇了switch語句。但是要菜單不斷重復,只是在選擇退出菜單選項時停止循環,所以我選擇了while循環語句,并讓條件永遠為真,當保存選項的變量為退出菜單選項時,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 八年級物理:光和眼睛復習-新滬粵版八年級課件
- 七彩童年快樂六一兒童節活動策劃課件
- 執業藥師考試公式與試題及答案
- 考試架構衛生資格考試試題及答案
- 2025年自考行政管理的關鍵試題與答案推介
- 2025年執業藥師考試感染防控試題及答案
- 2025年衛生資格考試高效備考指南試題及答案
- 藥師職業選擇及考試指導試題及答案
- 探索經濟法概論考試試題及答案的多樣性
- 2025年衛生資格考試自我提升試題及答案
- 化工裝置報廢拆除施工方案
- 銷售人員安全培訓
- 簡單版借款協議模板
- 第四屆全國智能制造應用技術技能大賽決賽-儀器儀表制造工(儀器儀表與智能傳感應用技術)賽項競賽平臺主要設備技術標準
- 夾具設計-畢業設計論文
- 腎動脈狹窄介入治療與護理
- 部編人教版語文小學六年級下冊第四單元主講教材解讀(集體備課)
- 廣東省深圳實驗、珠海一中等六校2025屆高考壓軸卷歷史試卷含解析
- 2024-2030年中國病號服行業市場發展趨勢與前景展望戰略分析報告
- 2024年天津市武清區國資產經營投資限公司面向社會公開選聘工作人員易考易錯模擬試題(共500題)試卷后附參考答案
- 基于STM32F103C8T6單片機的電動車智能充電樁計費系統設計
評論
0/150
提交評論