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

付費下載

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論