版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、C語言程序課程設(shè)計報告書設(shè)計題目: 圖書管理系統(tǒng) 專業(yè):軟件工程 班級: 3班 學(xué)生姓名: 張欣然 學(xué)號:20105837 指導(dǎo)教師: 陳莉娜 設(shè)計題目圖書管理系統(tǒng)主要包括管理圖書的庫存信息、每一本書的借閱信息以及每一個人的借書信息。每一種圖書的庫存信息包括編號、書名、作者、出版社、出版日期、金額、類別、總?cè)霂鞌?shù)量、當(dāng)前庫存量、已借出本數(shù)等。每一本被借閱的書都包括如下信息:編號、書名、金額、借書證號、借書日期、到期日期、罰款金額等。每一個人的借書信息包括借書證號、姓名、班級、學(xué)號等。系統(tǒng)功能包括以下方面:A、借閱資料管理要求把書籍、期刊、報刊分類管理,這樣的話操作會更加靈活和方便,可以隨時對其
2、相關(guān)資料進行添加、刪除、修改、查詢等操作。B、借閱管理 (1) 借出操作 (2) 還書操作 (3) 續(xù)借處理提示:以上處理需要互相配合以及賠、罰款金額的編輯等操作完成圖書借還業(yè)務(wù)的各種登記。例如:讀者還書時不僅更新圖書的庫存信息,還應(yīng)該自動計算該書應(yīng)罰款金額。并顯示該讀者所有至當(dāng)日內(nèi)到期未還書信息。C、讀者管理 讀者等級:對借閱讀者進行分類處理,例如可分為教師和學(xué)生兩類。并定義每類讀者的可借書數(shù)量和相關(guān)的借閱時間等信息。 讀者管理:對讀者信息可以錄入,并且可對讀者進行掛失或注銷
3、、查詢等服務(wù)的作業(yè)。D、統(tǒng)計分析 隨時可以進行統(tǒng)計分析,以便及時了解當(dāng)前的借閱情況和相關(guān)的資料狀態(tài),統(tǒng)計分析包括借閱排行榜、資料狀態(tài)統(tǒng)計和借閱統(tǒng)計、顯示所有至當(dāng)日內(nèi)到期未還書信息等功能分析。E 系統(tǒng)參數(shù)設(shè)置:可以設(shè)置相關(guān)的罰款金額,最多借閱天數(shù)等系統(tǒng)服務(wù)器參數(shù)。根據(jù)題目分析總體作品分為6個模塊1. 圖書數(shù)據(jù)2. 借書人信息3. 借書模塊4. 還書模塊5. 圖書管理6. 查詢模塊第一模塊:書號,書名,作者,出版時間,價格,冊數(shù),頁數(shù)。第二模塊:姓名,單位,所借書目,借閱時間第三模塊:輸入書名,編號,借書證第四模塊:登記借書號,
4、還書操作,罰款處理第五模塊:對書庫中的書進行管理,新書入庫,舊書刪除,書庫查詢第六模塊:書的查詢。 數(shù)據(jù)測試 源代碼漢字菜單的編寫可參照以下代碼:#include "stdio.h". main() char c; int i; do clrscr(); for(i=0;i<80;i+) printf("*"); printf("t 1: add booksn"); printf("t 2: list booksn"); printf("t 3: sreach booksn"); prin
5、tf("t 4: borrow booksn"); printf("t 5: return booksn"); printf(“t6: exitn”) printf("t請選擇輸入選項123456:n"); do c=getchar(); while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'&&!=6); getchar(); switch(
6、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 <stdio.h>#include <stdlib.h&g
7、t;#include <string.h>#define BORROWED 1#define NOBORROW 0/* 定義圖書結(jié)構(gòu) */struct Book int _id; / 編號,唯一 char _name32; /
8、圖書的名稱,不唯一 int _type; / 圖書的類型,不唯一 int _status; / 圖書的狀態(tài),借出/沒有借出 int _count; / 圖書借出的次數(shù)&
9、#160; struct Book* _next; / 下一本書 struct Book* _prev; / 上一本書;/* 定義圖書類型 */typedef struct Book Book;/* 操作的目錄提示 */char book_menu32 = "add books", "list books", "search books",
10、60; "borrow books", "return books", "exit", "",;/* 操作的目錄提示1 */char book_menu_sub32 = "search books by name", "search books by type",
11、 "",;/* 添加圖書類型,用戶信息顯示 */char book_types32 = "type0", "type1", "type2", "",;/* 添加圖書狀態(tài),用戶信息顯示 */char book_status32 = "noborrow", "
12、;borrowed", "",;/* 增加圖書,id自動排號 */int add_books(Book* head, Book* book_for_add) Book* p = head; if (!p) return -1; while (p->_next) &
13、#160; 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 =
14、0; book_for_add->_status = 0; return 0;/* 建立圖書管理鏈表 */Book* create_list(Book* book_head) if (book_head) book_head->_prev = book_head; book
15、_head->_next = NULL; book_head->_id = 1; book_head->_count = 0; book_head->_status = 0; return book_head;/* 釋放鏈表 */void free_
16、list(Book* book_head) Book *p, *p1; p = book_head; while(p) p1 = p->_next; free(p); p = p1; &
17、#160; /* 打印圖書信息 */void print_book(Book* book) printf("id:%d, name:%s, type:%s, status:%s, times:%d n", book->_id, book->_name, book_typesbook->_type,
18、 book_statusbook->_status, book->_count);/* 列出所有登記的圖書 */void list_books(Book* book_head) Book* p = book_head; while (p) print_book(p); p = p-&g
19、t;_next; /* 借書,返回該書的指針,否則就返回NULL,可能不存在圖書,或者已經(jīng)被借走了 */Book* borrow_books(Book* book_head, int id) Book* p = book_head; while (p) if (p->_id = id)
20、60; break; p = p->_next; if (!p)/* 不存在 */ return NULL; if (p->_status != 0) /* 已經(jīng)被借走 */ r
21、eturn 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;
22、 Book* p = book_head; while (p) if (strcmp(p->_name, name) = 0) print_book(p); &
23、#160; +count; p = p->_next; return count;/* 查找書類型,返回查找到的數(shù)量,一個類型會有很多書 */int search_books_by_type(Book* book_head, int type)
24、; int count = 0; Book* p = book_head; while (p) if (p->_type = type) print_book(p);
25、160; +count; p = p->_next; return count;/* 還書,正常歸還就返回該書的指針,否則就返回NULL */Book* return_books(Book* book_head, int id)&
26、#160; Book* p = book_head; while (p) if (p->_id = id && p->_status != 0) p->_status
27、 = 0; /* 還書登記 */ break; p = p->_next; return p;/* 打印操作選項 */void print_menu(char menus32) in
28、t no = 0; printf("nPLEASE SELECT ID LIKE 1 or 2 .n"); while (strlen(menusno) printf("%d t%sn", no+1, menusno); +no;
29、160; printf("OPTION("); while (no) printf("/%d", no-); printf("):");/* 主函數(shù) */int main(void) char key = 0;
30、 char ss128; int loop = 1; Book first_book, *pBooks, *pTmp; strcpy(first_book._name, "nihao"); first_book._type = 0; pBooks = create_list(&first_book); while (loop)
31、160; print_menu(book_menu); gets(ss); key = ss0 - 48; if(key < 0 | key > 6)
32、160; printf("Error input !n"); else printf("INPUT:%dn", key); switch (key)
33、160; case 1: / add books pTmp = (Book*)malloc(sizeof(Book); if(pTmp)
34、60; printf("Add_Book input name:"); gets(ss);
35、0; strncpy(pTmp->_name, ss, 31); print_menu(book_types); gets(ss);
36、60; key = ss0 - 48; if(key <= 0 | key > (sizeof(book_types)/32) ) &
37、#160; key = 1; pTmp->_type = key - 1; add_books(pBooks, pTmp); &
38、#160; break; case 2: / list books list_books(pBooks);
39、 break; case 3: / search books print_menu(book_menu_sub); gets(ss);
40、; key = ss0 - 48; printf("INPUT:%dn", key); switch (key)
41、 case 1: / search books by name printf("input book name:");
42、160; gets(ss); key = search_books_by_name(pBooks, ss); if(key = 0)
43、 printf("no found!n"); case 2: / search books by type pr
44、int_menu(book_types); gets(ss); key = ss0 - 48; &
45、#160; key = search_books_by_type(pBooks, key-1); if(key = 0) printf("no found!n
46、"); default: break;
47、; break; case 4: / borrow books printf("Borrow books, input book id:"); gets(ss);
48、; key = atoi(ss); pTmp = borrow_books(pBooks, key); if (!pTmp)
49、0; printf("borrow books failed: %dn", key); else &
50、#160; printf("borrow books successful!n"); print_book(pTmp); break; case 5: / return books
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公室管理員技能測試題及答案
- 汽車行業(yè)銷售顧問面試經(jīng)驗及答案
- 安全環(huán)保部面試題集
- 稅務(wù)考試題及答案解析
- 網(wǎng)易人力資源經(jīng)理績效考核含答案
- 配藥護士面試題及答案解析
- 造價員改革后資格認(rèn)證考試重點含答案
- 廣告營銷知識考試題目與參考答案指南
- 京東運營經(jīng)理面試常見問題集
- IT經(jīng)理崗位面試題及答案解析
- 2025年國際法考試試題及答案
- 面癱中醫(yī)治療課件
- 2024四川輕化工大學(xué)輔導(dǎo)員招聘筆試真題
- 2025年輔警筆試試題+答案
- 湖北工程變更管理辦法
- 氣管狹窄護理課件
- 鄉(xiāng)鎮(zhèn)辦安全生產(chǎn)培訓(xùn)課件
- 2025年法律職業(yè)倫理歷年試題及答案
- 大學(xué)生心理健康論文情緒管理
- 學(xué)術(shù)報告廳舞臺燈光音響系統(tǒng)項目工程施工技術(shù)方案及技術(shù)措施
- JG/T 255-2020內(nèi)置遮陽中空玻璃制品
評論
0/150
提交評論