




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
沈陽航空航天大學北方科技學院課程設計任務書課程設計題目鏈表實現圖書信息操作教研室專業機械設計及其制動化〔數控方向〕班級B04211學號B04211224姓名王丹鵬課程設計時間:2021年6月3日至2021年6月10日課程設計的內容及要求:一、課程設計內容設計一個通過鏈表實現對圖書信息進行管理的程序,要求完成以下功能:建立一個鏈表,每個結點應包含以下信息:圖書號、書名及出版社、價格、ISBN、作者、冊數;將輸入信息按圖書號進行從小到大的排序;實現查詢功能——輸入書名,查詢輸出相關信息;實現插入功能——輸入圖書信息并插入有序鏈表中;實現刪除功能——輸入書名或書號,可將其信息從鏈表中刪除;統計鏈表中圖書總價值,并在屏幕上輸出;統計該鏈表中價值超過某一數目的圖書總數,并在屏幕上輸出。8.有界面友好易于使用的菜單。二、課程設計要求1.具有簡單的用戶界面;2.學生獨立完成系統的設計、編碼和調試工作并通過指導老師的檢查;3.用C語言實現課題任務內容;4.按課程設計標準撰寫課程設計報告。參考資料:張長海.C語言程序設計[M].北京:高等教育出版社,2006冼鏡光.C語言名題精選百那么技巧篇[M].北京:機械工業出版社,2005指導教師2021年6月10日一概要設計1,設計表示:(1)、整個系統除了主函數外,另外還有各種功能子函數,利用無限次循環語句while()和選擇語句swithch()實現各個子函數的調用,系統根據輸入的數字選項來調用相應的函數,以實現相應的功能。主要實現了圖書的密碼設置、錄入、存儲、查詢、添加、刪除、修改、排序等功能。(2)voidMain_menu();這是一個指針函數,它主要實現了鏈表的創立,并且在創立過程中從文件讀取信息到鏈表中,以用于后面其他函數的操作。(3)voidmainFind()、voidDelete()、voidchange()、voidwrite()、structnode*read()、voidSorting_order()、#defineS123、#defineA123456這六個函數時整個圖書管理系統的全部菜單函數。voidDelete()、voidchange()、voidwrite()、structnode*read()、在此可以選擇刪除、修改、保存,讀取圖書,排序等操作。voidmainFind();為查詢系統的菜單,在此可以選擇按書名、編號、作者等方式進行查詢圖書。#defineS123、#defineA123456分別是學生登陸和管理員登陸的密碼。(4)voidPrint();這個函數為圖書的遍歷,瀏覽所有的圖書。(5)voidFind_booknumber()、voidFind_bookname()、voidFind_author()、voidFind_press();這三個函數為查詢圖書信息函數,voidFind_booknumber();按書號查詢、;voidFind_bookname()按書名查詢、voidFind_author();按作者查詢、voidFind_press();按出版社查找。(6)voidSorting_booknumber(),按書號排序。voidSorting_price(),按價格排序。voidSorting_publication_date(),按出版日期排序。voidSorting_number(),按館藏數量排序。2.實現注釋:這個實用的小型圖書管理程序程序以鏈表操作完成,并實現文件信息的錄入和保存等功能。實現了圖書管理的根本功能,包括了圖書的錄入、存儲、查詢、添加、刪除、修改、排序等功能。查詢時可按書名、編號、作者等方式查詢,找到后輸出這本書的所有信息。在添加圖書信息后,還增加了鏈表排序操作,并輸出整個鏈表,方便用戶檢查信息。系統中主要的數據結構就是圖書的信息,包含編號、書名、作者、出版社、出版時間、價格、館藏數量等,在處理過程中各項可以作為一本圖書的不同屬性來進行處理。3詳細設計1-1定義變量structnode{ intbook_number;//書號 charbook_name[25];//書名 charpress[50];//出版社 charauthor[20];//作者 intprice;//價格 charpublication_date[20];//出版日期 intnumber;//館藏數量 structnode*next;};structnode*head=NULL;//在此定義一個全局變量head,其它函數就不需要再返回head;但這樣做,程序中的函數的可用性就不是太高intTotal=0;//記錄圖書總數1-2函數的定義voidCreat();//錄入圖書信息structnode*Insert(structnode*p,structnode*head0);//插入圖書信息voidDelete();//刪除圖書信息voidchange();//修改圖書信息voidwrite();//保存圖書信息structnode*read();//讀取圖書信息voidamend(structnode*p);//輔助修改選項voidPrint();//遍歷圖書信息voidPrint_by_one(structnode*p);//單項遍歷voidMain_menu();//登陸界面voidAdministrator_menu0();//第一次進入系統的管理員菜單voidAdministrator_menu1();//第n次進入系統的管理員菜單voidStudent_menu();//學生菜單voidmainFind();//查找菜單voidFind();//精確查找圖書voidFind0();//模糊查找圖書intstr(chara[],charb[]);//模糊查找函數voidFind_booknumber();//按書號查找voidFind_booknumber0();//按書號模糊查找voidFind_bookname();//按書名查找voidFind_bookname0();//按書名模糊查找voidFind_author();//按作者查找voidFind_author0();//按作者模糊查找voidFind_press();//按出版社查找voidFind_press0();//按出版社模糊查找char*transform(charstr[],intn);//將整數轉化為字符存入字符數組返回voidSorting_order();//排序voidSorting_help(structnode*p1,structnode*p2);//輔助排序voidSorting_booknumber();//按書號排序voidSorting_price();//按價格排序voidSorting_publication_date();//按出版日期排序voidSorting_number();//按館藏數量排序#defineS123//學生密碼#defineA123456//管理員密碼intT=0;//選擇菜單1-3信息的錄入voidCreat()//錄入圖書信息{structnode*tail,*p; intbook_number;//書號 charchoice; printf("該操作將去除書庫中所有書目的信息!\n"); printf("\n\t\t\t你想繼續操作嗎?(Y/N)\n"); while(1) { printf("請選擇:"); if(scanf("%c",&choice)) { getchar(); if(choice=='Y'||choice=='y'){ system("cls"); break; } elseif(choice=='N'||choice=='n') { system("cls"); return; } else{ printf("請按要求輸入!\n"); continue; } } else { printf("輸入的不是字母,請按照要求重新輸入!\n"); continue; } } printf("\t\t\t提示:請輸入你要輸入的數據,當書號為數字'0'時結束!\n\n"); printf("請輸入書號:"); scanf("%d",&book_number); getchar();//吸收回車符,清空緩沖區,這樣才能正常執行清屏操作 while(book_number!=0) { p=(structnode*)malloc(sizeof(structnode));printf("請輸入書名:"); scanf("%s",p->book_name);getchar(); printf("請輸入作者:"); scanf("%s",p->author);getchar(); printf("請輸入出版社:"); scanf("%s",p->press);getchar(); printf("請輸入價格:"); scanf("%d",&p->price);getchar(); printf("請輸入出版時間:"); scanf("%s",p->publication_date);getchar(); printf("請輸入館藏數量:"); scanf("%d",&p->number);getchar(); putchar('\n'); p->book_number=book_number; p->next=NULL; if(head==NULL) {head=tail=p; } else { tail->next=p; tail=p; } Total++;printf("請輸入書號:"); scanf("%d",&book_number); } printf("\t\t\t\t圖書信息錄入成功!\n\n");}1-4按編號查詢voidFind_booknumber()//按書號查找{ intbook_number; structnode*p1,*p2;printf("請輸入你要查找的圖書書號:"); scanf("%d",&book_number); printf("\t\t\n你要找的書為:\n");printf("\t\t---------------------------------------------------------------\n");printf("\t\t|書號|書名|作者|出版社|價格|出版時間|館藏數量|\n");printf("\t\t---------------------------------------------------------------\n"); if(head->book_number==book_number) { Print_by_one(head); }p1=head; p2=head->next; while(p2!=NULL) {if(p2->book_number==book_number) { Print_by_one(p2); p1=p2; p2=p2->next; } else { p1=p2; p2=p2->next; } }}1-5按出版時間排序voidSorting_publication_date()//按出版日期排序{ structnode*p1,*p2,*p3,*p4,*p5,*p6,*p7; intx=1; for(p1=head;p1->next!=NULL;p4=p1,p1=p1->next) { p3=p1; for(p2=p1->next,p5=p7=p2;p2!=NULL;p7=p2,p2=p2->next) { if(strcmp(p3->publication_date,p2->publication_date)>0) { p3=p2; p5=p7; } } if(p3!=p1) { if(x&&p1==head) { p6=p1->next; p1->next=p3->next; p3->next=p6; p5->next=p1; head=p3; p1=p3; x=0; } else { p6=p1->next; p1->next=p3->next; p3->next=p6; p4->next=p3; p5->next=p1; p1=p3; }} }}3調試分析問題1:對于函數是否返回函數值,并怎樣返回指針?解答:對于void開頭的函數,沒有返回值,在程序中可以直接調用。有指針返回值的函數,直接返回
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三方投資購買法拍房合同5篇
- 專業危險品物流運輸合同3篇
- 的廠房租賃合同4篇
- 工程合同補充協議書
- 2025年分析報告購買合同書
- AI技術下的合同管理自動化與智能化探索
- 健身房員工守則勞動合同6篇
- 智能預測與大數據分析驅動的景區容量管理-洞察闡釋
- 某工廠裝修施工合同2篇
- 英文建筑合同合同3篇
- 人工智能與法律職業發展的潛在挑戰-洞察闡釋
- 2024-2025統編版一年級下冊道德與法治期末考試卷及參考答案
- 2025-2030年中國邊緣數據中心行業市場現狀調查及發展趨向研判報告
- 井岡山硒橙生產技術規程
- 四年級語文下冊期末分類復習日積月累與背誦
- 建設美麗中國課件
- 能源平臺租賃合同協議
- 淮安城市介紹旅游攻略家鄉介紹
- 2025年安全月主要責任人講安全課件三:安全月主題宣講課件
- 光伏施工安全培訓
- 國企崗位筆試題目及答案
評論
0/150
提交評論