數據結構物流信息管理系統_第1頁
數據結構物流信息管理系統_第2頁
數據結構物流信息管理系統_第3頁
數據結構物流信息管理系統_第4頁
數據結構物流信息管理系統_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、計算機與信息工程系 數據結構課程設計報告學號2014-2015學年 第一學期1308010120數據結構課程設計報告題目: 物流信息管理系統專業:計算機科學與技術班級:姓名:學號:指導教師:成績:目 錄摘要.11設計內容及要求11.1內容描述11.2基本要求12詳細設計12.1概要設計12.2功能模塊詳細設計12.3程序流程圖43源代碼 .54程序結果95總結.126參考文獻12計算機與信息工程系 數據結構程序設計課程設計報告摘要 物流信息管理系統是利用單鏈表實現信息管理,進而掌握C語言中的結構體,鏈表,指針,函數(系統函數,自定義函數)等C語言知識。 本文通過利用模塊化程序設計思想,使用單鏈

2、表和結構體等編寫出的創建,刪除,查詢等功能的物流信息管理系統。通過完成這個程序設計讓我們熟悉并掌握c語言中使用結構體,單鏈表,指針,函數,和模塊化設計思想。關鍵詞 結構體,鏈表,指針,函數1設計內容及要求1.1內容描述 對客戶的基本信息進行存儲,利用取貨號來查詢顧客信息,核對信息后方可取貨。1.2基本要求1.采用一定的存儲結構進行客戶信息的存儲;2.對客戶的信息可以進行修改、刪除、查詢; 2詳細設計2.1概要設計 本系統用到的主要數據結構為數組和文件。一個數組對應一個客戶,里面用3個字符串分別存儲著用戶的客戶號、姓名和電話號碼。然后將數組寫入文件,查詢時讀取文件,提取相應信息。2.2功能模塊詳

3、細設計 本程序運用鏈表對客戶信息進行存儲,首先對結點進行定義,結點中的數據域分別定義了取貨人的取貨號、身份證、姓名、電話號碼,其中身份證用了字符型數組進行定義,然后定義了客戶取貨鏈表,每添加一個取貨人,先分配內存,再添加取貨人的信息,之后將鏈表中最后一個指針指向該新的取貨人,刪除時,需先找到該取貨人前面的取貨人,直接將其指針指向刪除取貨人的下一個取貨人,修改信息時,先找到該去人,選擇修改的內容,再進行修改。void create(Linklist &h) Linklist s,t; int j=1; char x; h=(Listnode *)malloc(sizeof(Listnode);

4、h-next=NULL;t=h; while(j) s=(Listnode*)malloc(sizeof(Listnode); printf(顧客取貨號為%dn,i); s-customer.m=i; printf(請輸入身份證號碼:); scanf(%c,&x); scanf(%s,s-customer.Identity); printf(n); printf(請輸入姓名:); scanf(%c,&x); scanf(%s,s-customer.Name); printf(n); printf(請輸入聯系號碼:); scanf(%c,&x);scanf(%s,s-customer.Tel);

5、 printf(n); s-next=NULL;t-next=s;t=s; printf(全部輸完,請輸入0,否則輸入1.n); scanf(%d,&j); printf(n); i+; t-next=NULL; 該功能主要實現顧客信息的存儲,s作為數據存儲節點,把顧客姓名,身份證,電話號碼等信息存儲進去。i作為游標,定位該節點位置方便數據查找。void change(Linklist&h,int m) int a,j=1; float n; Linklist t=h; printf(Change customers Identity:1;Name:2;Tel:3; n); scanf(%d,

6、&a); printf(n); while(jnext!=NULL) t=t-next; j+; printf(OK!n); switch(a) case 1:printf(Please enter the Identity!); scanf(%s,t-customer.Identity); break; case 2:printf(Please enter the Name!); scanf(%s,t-customer.Name); break; case 3:printf(Please enter the Tel!n); scanf(%f,&n); break; printf(修改成功!n

7、); 該功能主要實現顧客信息的修改,輸入所需要修改的選項,然后可以根據選項修改所對應的信息,然后修改完成。 void Listdelete(Linklist&h,int m) int j=1; Linklist q=h,t; if(m=1) t=h; h=h-next; else while(jnext!=NULL) q=q-next; j+; if(q-next!=NULL&j=m-1) t=q-next; q-next=t-next; else printf(位置參數不正確!n); i-; free(t); printf(刪除成功!n); 該功能主要實現顧客信息的刪除,通過刪除節點來刪除節

8、點中說包含的信息,刪除節點既可實現目標。void search(Linklist &h,int m) int n=1,j; Linklist p=h-next; while(nnext!=NULL) p=p-next; n+; printf(消費號為%dn,m); printf(身份證為%sn,p-customer.Identity); printf(消費者姓名為%sn,p-customer.Name); printf(電話號碼為%sn,p-customer.Tel); 該功能主要實現顧客信息的查找,通過查找節點所對應的游標位置既可找到該節點,查找該節點可調出該節點所存儲的信息,達到查找目的。

9、2.3程序流程圖物流信息管理系統因具備以下功能有流程圖表示,如下圖物流信息管理系統新建一天取貨信息修改取貨信息查詢取貨信息刪除取貨信息1)主函數流程圖swith(j)case 1:create(h);break; 調用創建函數 case 2:printf(請輸入修改的位置:); scanf(%d,&j); 調用修改函數 change(h,j); break;case 3:printf(請輸入刪除的位置:); scanf(%d,&j); Listdelete(h,j); 調用刪除函數 break; case 4:printf(請輸入顧客取貨號:); scanf(%d,&j); search(h,

10、j); 調用查找函數 break;default:printf(輸入錯誤。n); Creat:該函數是用來錄入顧客信息,使得用戶可以輸入姓名、電話號碼、身份證這三種取貨信息。Change:該函數是用來修改顧客信息,使用戶可以修改姓名、電話號碼、身份證這三種取貨信息。Listdelete:該函數用來刪除鏈表中的顧客信息。Search:該函數是用來查找顧客所屬的取貨信息。3源代碼#include #include #include #include typedef struct Datatype int m; char Identity18; char Name20; char Tel18;Dat

11、atype; /鏈表結點的定義 typedef struct Listnode Datatype customer; struct Listnode *next; Listnode,*Linklist; int i=1;/顧客取貨號 /創建鏈表 void create(Linklist &h) Linklist s,t; int j=1; char x; h=(Listnode *)malloc(sizeof(Listnode); h-next=NULL;t=h; while(j) s=(Listnode*)malloc(sizeof(Listnode); printf(顧客取貨號為%dn,i

12、); s-customer.m=i; printf(請輸入身份證號碼:); scanf(%c,&x); scanf(%s,s-customer.Identity); printf(n); printf(請輸入姓名:); scanf(%c,&x); scanf(%s,s-customer.Name); printf(n); printf(請輸入聯系號碼:); scanf(%c,&x);scanf(%s,s-customer.Tel); printf(n); s-next=NULL;t-next=s;t=s; printf(全部輸完,請輸入0,否則輸入1.n); scanf(%d,&j); pri

13、ntf(n); i+; t-next=NULL; /修改 void change(Linklist&h,int m) int a,j=1; float n; Linklist t=h; printf(Change customers Identity:1;Name:2;Tel:3; n); scanf(%d,&a); printf(n); while(jnext!=NULL) t=t-next; j+; printf(OK!n); switch(a) case 1:printf(Please enter the Identity!); scanf(%s,t-customer.Identity)

14、; break; case 2:printf(Please enter the Name!); scanf(%s,t-customer.Name); break; case 3:printf(Please enter the Tel!n); scanf(%f,&n); break; printf(修改成功!n); /刪除 void Listdelete(Linklist&h,int m) int j=1; Linklist q=h,t; if(m=1) t=h; h=h-next; else while(jnext!=NULL) q=q-next; j+; if(q-next!=NULL&j=

15、m-1) t=q-next; q-next=t-next; else printf(位置參數不正確!n); i-; free(t); printf(刪除成功!n); /查找 void search(Linklist &h,int m) int n=1,j; Linklist p=h-next; while(nnext!=NULL) p=p-next; n+; printf(消費號為%dn,m); printf(身份證為%sn,p-customer.Identity); printf(消費者姓名為%sn,p-customer.Name); printf(電話號碼為%sn,p-customer.T

16、el); int main() int j=1; Linklist h; while(j) printf(創立顧客取貨信息,請選擇1n); printf(修改顧客取貨信息,請選擇2n); printf(刪除顧客取貨信息,請選擇3n); printf(查詢顧客取貨信息,請選擇4n); scanf(%d,&j); switch(j) case 0:break; case 1:create(h); break; case 2:printf(請輸入修改的位置:); scanf(%d,&j); change(h,j); break; case 3:printf(請輸入刪除的位置:); scanf(%d,

17、&j); Listdelete(h,j); break; case 4:printf(請輸入顧客取貨號:); scanf(%d,&j); search(h,j); break; default:printf(輸入錯誤。n); system(pause); return 0; 4系統測試運行程序進入主界面1 主界面輸入1,創建顧客取貨信息。2 建立新的取貨信息 輸入2進入修改顧客信息界面3 修改顧客取貨信息輸入3進入刪除顧客取貨信息4 刪除顧客取貨信息輸入4進入查詢顧客取貨信息界面5查詢顧客取貨信息第六章 結語這次的程序設計實驗是我們進入大學以來學習程序設計結果的一次大檢驗。自己動手,自己發現問題和解決問題。發現了自己的許多不足。平時沒有掌握好的知識在這次實驗中徹底暴露出來,經過不斷思考,不斷查閱資料和上機運行,解決其中大部分問題,當然還存在一些問題沒有解決。我相信在以后的學習中能夠解決好它們。 此外,在系統調試階段,我發還現了很多細節方面的不足,使我認識到設計一個系統并非想象中那么簡單,而是需要考慮各個方面結果的。 通過本次課程設計,我加深了對順序存儲結構的理解,更加

溫馨提示

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

評論

0/150

提交評論