數據結構圖書管理系統課程設計報告_第1頁
數據結構圖書管理系統課程設計報告_第2頁
數據結構圖書管理系統課程設計報告_第3頁
數據結構圖書管理系統課程設計報告_第4頁
數據結構圖書管理系統課程設計報告_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1一、設計題目與要求【問題描述】設計一個計算機管理系統完成圖書管理基本業務。【基本要求】(1) 每種書的登記內容包括書號、書名、著作者、現存量和庫存量;(2) 對書號建立索引表(線性表)以提高查找效率;(3) 系統主要功能如下:采編入庫:新購一種書,確定書號后,登記到圖書帳目表中,如果表中已有,則只將庫存量增加;借閱:如果一種書的現存量大于 0,則借出一本,登記借閱者的書證號和歸還期限,改變現存量;歸還:注銷對借閱者的登記,改變該書的現存量。二、小組分工小組成員:2小組分工:圖書初始化、新書入庫、登記讀者信息、文件保存借書系統、還書系統圖書信息查詢、讀者信息查詢 三、需求分析圖書管理系統共需要八個模塊,分別是1圖書初始化、2新書入庫、3添加讀者信息、4借書模塊、5還書模塊、6查詢圖書信息、7查詢讀者信息、8退出。我負責其中的四個模塊,如下所示:1) 圖書初始化輸入圖書的一些信息,編號、作者、書名、數量,使有一定的庫存。2) 新書入庫新書采編入庫,輸入編號后如果有次數只需輸入數量,沒有則繼續輸入書名、作者、數量。3) 添加讀者信息讀者信息初始化,輸入讀書證號和姓名,只有輸入書證號和姓名才能進行借書還書4) 退出和文件保存退出讀書管理系統并保存讀者和圖書信息。圖書管理系統圖書管理模塊理讀者管理模塊借閱操作模塊查詢操作模塊初始化圖書信息 采編入庫 輸入讀者信息 借書系統 還書系統 讀者信息查詢 圖書信息查詢3四、概要設計圖書信息和讀者信息都采用結構體類型保存。圖書信息里面包括:圖書編號、圖書名稱、作者、現有量、庫存量、指向下一節點的指針。讀者信息里面包括:讀者編號、讀者姓名、借書數量、可借圖書數量、指向下一節點的指針。所有圖書和讀者都分別以鏈表的形式存儲,并以編號為唯一主鍵。采用鏈表形式便于數據的添加與刪改。主要的操作為:系統初始化,圖書入庫,讀者信息登記,圖書信息和讀者信息文件的保存。五、詳細設計數據結構的定義:圖書信息:typedef struct bookchar book_num10;char book_name20;char book_writer10;int book_xy;int book_kc;struct book *next;BK;讀者信息:typedef struct readerchar reader_num10;4char reader_name10;int right;BO borrowMax;struct reader *next;RD;算法描述:進入系統后首先進行圖書初始化,輸入圖書的信息。1)初始化初始化之后,進入系統,顯示功能列表,可選擇任意系統,但在借書之前先要輸入讀者信息。開始輸入圖書編號、名稱、作者和圖書數量進入系統開始輸入功能所對應的數字輸入的數字小于 0 大于 652)采編入庫否3)輸入讀者信息錄入圖書信息判斷是否有此圖書在原有的紀錄上加上現有的圖書數量向系統中加入新紀錄登記讀者輸入讀者信息:讀者書證號結束錯誤!請重新輸入執行所選功能判斷是否存在此讀者采編入庫 是否 6是5) 退出和文件保存六、程序源代碼#include#include #include #include#define Max 4 typedef struct bookchar book_num10;char book_name20;char book_writer10;int book_xy; /現有向系統中添加新記錄重新輸入讀者信息退出系統保存文件判斷是否保存成功退出系統是錯誤!請重新登陸系統7int book_kc; /庫存struct book *next;BK;typedef struct borrowchar borrow_book_num10;char limit_date10;BO;typedef struct readerchar reader_num10;char reader_name10;int right;BO borrowMax;struct reader *next;RD;BK *h_book;RD *h_reader;void Login(); int Menu(); void Init(); void Init_book(); void Menu_select(); void Insert_New_Book(); void Find_Book(); void add_reader(); void Save(); void Save_Book(); void Save_Reader(); void Load();void Load_Reader(); void Load_Book(); void Login()system(“cls“);printf(“nnntt*n“);printf(“nnnttt 歡迎使用圖書管理系統 n“);printf(“nnntt*n“);printf(“nnntt 按任意鍵進入系統 “);getch(); system(“cls“);int Menu() /*主菜單 */ int dm;8printf(“ntt 圖書管理系統主菜單n“);printf(“=n“);printf(“*t0-退出系統 n“);printf(“*t1-采編入庫 n“);printf(“*t2-登記讀者 n“); printf(“=n“);printf(“請選擇相應的代碼:“); for(;) scanf(“%d“, /dm 輸入的數字if(dm6)printf(“n 錯誤!請重新輸入 :“);else break;return dm; void Menu_select()/*主菜單選擇函數*/for(;) switch(Menu() /*功能選擇*/ case 0:system(“cls“);Save();printf(“nnt 文件保存成功!n“); printf(“nnt 歡迎下次使用本系統!n“); getch(); exit(0);case 1:Insert_New_Book();break; case 2:add_reader();break;default:printf(“n 錯誤!“);exit(0);void Init() /*初始化*/BK *p0;printf(“n 圖書初始化開始,請輸入圖書信息n 包括編號.書名.數量n“);p0=(BK*)malloc(sizeof(BK);h_book=p0;printf(“n 請輸入圖書信息 :n“);printf(“圖書編號:“); /*輸入圖書編號(唯一)*/scanf(“%s“,p0-book_num);9printf(“圖書名稱:“); /*輸入圖書名稱*/scanf(“%s“,p0-book_name);printf(“圖書作者:“); /*輸入圖書作者*/scanf(“%s“,p0-book_writer);printf(“圖書數量:“); /*輸入圖書數量*/scanf(“%d“,p0-book_xy=p0-book_kc; /*開始時圖書現有量和庫存量相等*/p0-next=NULL;printf(“n 圖書信息初始化完畢 !按任意鍵繼續下一步操作 n“);getch();system(“cls“);void Insert_New_Book()/*新書入庫*/BK *p,*p0,*p1; p=p1=h_book;printf(“n 新書入庫模塊n“);printf(“n 請輸入新書信息n 包括書號.書名.數量n“);p0=(BK *)malloc(sizeof(BK);printf(“圖書編號:“);scanf(“%s“,p0-book_num);while(strcmp(p0-book_num,p1-book_num)!=0if(strcmp(p0-book_num,p1-book_num)=0) /*此處分兩種情況,若圖書編號存在,則直接進庫, 只須輸入書的數量*/printf(“n 此編號圖書已存在 !直接入庫!n“); printf(“圖書數量:“);scanf(“%d“,p1-book_kc+=p0-book_kc;p1-book_xy+=p0-book_kc;else/*若不存在,則需要輸入其他的信息, 然后在進行插入操作*/printf(“圖書名稱:“);scanf(“%s“,p0-book_name);printf(“圖書作者:“);scanf(“%s“,p0-book_writer);printf(“圖書數量:“);scanf(“%d“,/庫存數量while(p-next) p=p-next; 10if(h_book=NULL) h_book=p0; /*此處分兩種情況,鏈表中沒有數據,head 直接指向 p0處*/else p-next=p0; /*此處分兩種情況,鏈表中有數據,鏈表中最后元素的next 指向 p0處*/ p0-next=NULL;p0-book_xy=p0-book_kc; printf(“n 新書入庫完畢!按任意鍵繼續下一步操作n“);getch();system(“cls“);void add_reader()/*添加讀者*/ RD *p0,*p,*p1;int i;p=h_reader;printf(“n 讀者初始化開始 ,請輸入讀者信息.n 包括書證號.姓名.n“);if (p=NULL)p0=(RD*)malloc(sizeof(RD); /*申請新結點存儲空間*/h_reader=p0;p=h_reader;printf(“讀者書證號:“); scanf(“%s“,p0-reader_num);printf(“讀者姓名 :“); scanf(“%s“,p0-reader_name);p0-right=0;for(i=0;iborrowi.borrow_book_num,“0“); /*所借圖書直接置為(即沒有借書)*/strcp

溫馨提示

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

評論

0/150

提交評論