《C語言程序》課程設(shè)計(jì)-圖書管理系統(tǒng)_第1頁
《C語言程序》課程設(shè)計(jì)-圖書管理系統(tǒng)_第2頁
《C語言程序》課程設(shè)計(jì)-圖書管理系統(tǒng)_第3頁
《C語言程序》課程設(shè)計(jì)-圖書管理系統(tǒng)_第4頁
《C語言程序》課程設(shè)計(jì)-圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C語言程序課程設(shè)計(jì)報(bào)告書設(shè)計(jì)題目: 圖書管理系統(tǒng) 專業(yè):軟件工程 班級(jí): 3班 學(xué)生姓名: 張欣然 學(xué)號(hào):20105837 指導(dǎo)教師: 陳莉娜 設(shè)計(jì)題目圖書管理系統(tǒng)主要包括管理圖書的庫存信息、每一本書的借閱信息以及每一個(gè)人的借書信息。每一種圖書的庫存信息包括編號(hào)、書名、作者、出版社、出版日期、金額、類別、總?cè)霂鞌?shù)量、當(dāng)前庫存量、已借出本數(shù)等。每一本被借閱的書都包括如下信息:編號(hào)、書名、金額、借書證號(hào)、借書日期、到期日期、罰款金額等。每一個(gè)人的借書信息包括借書證號(hào)、姓名、班級(jí)、學(xué)號(hào)等。系統(tǒng)功能包括以下方面:A、借閱資料管理要求把書籍、期刊、報(bào)刊分類管理,這樣的話操作會(huì)更加靈活和方便,可以隨時(shí)對(duì)其

2、相關(guān)資料進(jìn)行添加、刪除、修改、查詢等操作。B、借閱管理 (1) 借出操作 (2) 還書操作 (3) 續(xù)借處理提示:以上處理需要互相配合以及賠、罰款金額的編輯等操作完成圖書借還業(yè)務(wù)的各種登記。例如:讀者還書時(shí)不僅更新圖書的庫存信息,還應(yīng)該自動(dòng)計(jì)算該書應(yīng)罰款金額。并顯示該讀者所有至當(dāng)日內(nèi)到期未還書信息。C、讀者管理讀者等級(jí):對(duì)借閱讀者進(jìn)行分類處理,例如可分為教師和學(xué)生兩類。并定義每類讀者的可借書數(shù)量和相關(guān)的借閱時(shí)間等信息。 讀者管理:對(duì)讀者信息可以錄入,并且可對(duì)讀者進(jìn)行掛失或注銷、查詢等服務(wù)的作業(yè)。D、統(tǒng)計(jì)分析隨時(shí)可以進(jìn)行統(tǒng)計(jì)分析,以便及時(shí)了解當(dāng)前的借閱情況和相關(guān)的資料狀態(tài),統(tǒng)計(jì)分析包括借閱排行榜

3、、資料狀態(tài)統(tǒng)計(jì)和借閱統(tǒng)計(jì)、顯示所有至當(dāng)日內(nèi)到期未還書信息等功能分析。E 系統(tǒng)參數(shù)設(shè)置:可以設(shè)置相關(guān)的罰款金額,最多借閱天數(shù)等系統(tǒng)服務(wù)器參數(shù)。根據(jù)題目分析總體作品分為6個(gè)模塊1. 圖書數(shù)據(jù)2. 借書人信息3. 借書模塊4. 還書模塊5. 圖書管理6. 查詢模塊第一模塊:書號(hào),書名,作者,出版時(shí)間,價(jià)格,冊(cè)數(shù),頁數(shù)。第二模塊:姓名,單位,所借書目,借閱時(shí)間第三模塊:輸入書名,編號(hào),借書證第四模塊:登記借書號(hào),還書操作,罰款處理第五模塊:對(duì)書庫中的書進(jìn)行管理,新書入庫,舊書刪除,書庫查詢第六模塊:書的查詢。 數(shù)據(jù)測(cè)試 源代碼漢字菜單的編寫可參照以下代碼:#include stdio.h. main(

4、) char c; int i; do clrscr(); for(i=0;i80;i+) printf(*); printf(t 1: add booksn); printf(t 2: list booksn); printf(t 3: sreach booksn); printf(t 4: borrow booksn); printf(t 5: return booksn); printf(“t6: exitn”) printf(t請(qǐng)選擇輸入選項(xiàng)123456:n); do c=getchar(); while(c!=1&c!=2&c!=3&c!=4&c!=5&!=6); getchar()

5、; switch(c) case 1: input(); break; case 2: del(); break; case 3: find(); break; case 4: arrange(); break; case 5: right(); break;case 6: exit(0); printf( 按任意鍵返回主菜單:n); getchar(); clrscr(); while(1); #include #include #include #define BORROWED 1#define NOBORROW 0/* 定義圖書結(jié)構(gòu) */struct Book int _id; / 編號(hào)

6、,唯一 char _name32; / 圖書的名稱,不唯一 int _type; / 圖書的類型,不唯一 int _status; / 圖書的狀態(tài),借出/沒有借出 int _count; / 圖書借出的次數(shù) struct Book* _next; / 下一本書 struct Book* _prev; / 上一本書;/* 定義圖書類型 */typedef struct Book Book;/* 操作的目錄提示 */char book_menu32 = add books, list books, search books, borrow books, return books, exit, ,;

7、/* 操作的目錄提示1 */char book_menu_sub32 = search books by name, search books by type, ,;/* 添加圖書類型,用戶信息顯示 */char book_types32 = type0, type1, type2, ,;/* 添加圖書狀態(tài),用戶信息顯示 */char book_status32 = noborrow, borrowed, ,;/* 增加圖書,id自動(dòng)排號(hào) */int add_books(Book* head, Book* book_for_add) Book* p = head; if (!p) return

8、 -1; while (p-_next) p = p-_next; ; p-_next = book_for_add; book_for_add-_id = p-_id+1; book_for_add-_prev = p; book_for_add-_next = NULL; book_for_add-_count = 0; book_for_add-_status = 0; return 0;/* 建立圖書管理鏈表 */Book* create_list(Book* book_head) if (book_head) book_head-_prev = book_head; book_hea

9、d-_next = NULL; book_head-_id = 1; book_head-_count = 0; book_head-_status = 0; return book_head;/* 釋放鏈表 */void free_list(Book* book_head) Book *p, *p1; p = book_head; while(p) p1 = p-_next; free(p); p = p1; /* 打印圖書信息 */void print_book(Book* book) printf(id:%d, name:%s, type:%s, status:%s, times:%d

10、n, book-_id, book-_name, book_typesbook-_type, book_statusbook-_status, book-_count);/* 列出所有登記的圖書 */void list_books(Book* book_head) Book* p = book_head; while (p) print_book(p); p = p-_next; /* 借書,返回該書的指針,否則就返回NULL,可能不存在圖書,或者已經(jīng)被借走了 */Book* borrow_books(Book* book_head, int id) Book* p = book_head;

11、while (p) if (p-_id = id) break; p = p-_next; if (!p)/* 不存在 */ return NULL; if (p-_status != 0) /* 已經(jīng)被借走 */ return NULL; p-_status = 1; /* 借書登記 */ p-_count+; /* 被借閱次數(shù)+1 */ return p;/* 查找書名稱,返回查找到的數(shù)量,書名可能有重復(fù)的,一本書可能也有很多本,但是ID卻是唯一的 */int search_books_by_name(Book* book_head, char* name) int count = 0;

12、Book* p = book_head; while (p) if (strcmp(p-_name, name) = 0) print_book(p); +count; p = p-_next; return count;/* 查找書類型,返回查找到的數(shù)量,一個(gè)類型會(huì)有很多書 */int search_books_by_type(Book* book_head, int type) int count = 0; Book* p = book_head; while (p) if (p-_type = type) print_book(p); +count; p = p-_next; retur

13、n count;/* 還書,正常歸還就返回該書的指針,否則就返回NULL */Book* return_books(Book* book_head, int id) Book* p = book_head; while (p) if (p-_id = id & p-_status != 0) p-_status = 0; /* 還書登記 */ break; p = p-_next; return p;/* 打印操作選項(xiàng) */void print_menu(char menus32) int no = 0; printf(nPLEASE SELECT ID LIKE 1 or 2 .n); wh

14、ile (strlen(menusno) printf(%d t%sn, no+1, menusno); +no; printf(OPTION(); while (no) printf(/%d, no-); printf():);/* 主函數(shù) */int main(void) char key = 0; char ss128; int loop = 1; Book first_book, *pBooks, *pTmp; strcpy(first_book._name, nihao); first_book._type = 0; pBooks = create_list(&first_book)

15、; while (loop) print_menu(book_menu); gets(ss); key = ss0 - 48; if(key 6) printf(Error input !n); else printf(INPUT:%dn, key); switch (key) case 1: / add books pTmp = (Book*)malloc(sizeof(Book); if(pTmp) printf(Add_Book input name:); gets(ss); strncpy(pTmp-_name, ss, 31); print_menu(book_types); get

16、s(ss); key = ss0 - 48; if(key (sizeof(book_types)/32) ) key = 1; pTmp-_type = key - 1; add_books(pBooks, pTmp); break; case 2: / list books list_books(pBooks); break; case 3: / search books print_menu(book_menu_sub); gets(ss); key = ss0 - 48; printf(INPUT:%dn, key); switch (key) case 1: / search boo

17、ks by name printf(input book name:); gets(ss); key = search_books_by_name(pBooks, ss); if(key = 0) printf(no found!n); case 2: / search books by type print_menu(book_types); gets(ss); key = ss0 - 48; key = search_books_by_type(pBooks, key-1); if(key = 0) printf(no found!n); default: break; break; case 4: / borrow books printf(Borrow books, input book id:); gets(ss); key = atoi(ss); pTmp = borrow_books(pBooks, key); if (!pTmp) printf(borrow books failed: %dn, key); else printf(borrow books successful!n); print_book(pTmp); break; case 5: / return books printf(Return books, input book id:)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論