《C语言程序》课程设计-图书管理系统.doc

上传人:豆**** 文档编号:23964026 上传时间:2022-07-02 格式:DOC 页数:58 大小:987KB
返回 下载 相关 举报
《C语言程序》课程设计-图书管理系统.doc_第1页
第1页 / 共58页
《C语言程序》课程设计-图书管理系统.doc_第2页
第2页 / 共58页
点击查看更多>>
资源描述

《《C语言程序》课程设计-图书管理系统.doc》由会员分享,可在线阅读,更多相关《《C语言程序》课程设计-图书管理系统.doc(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言程序课程设计-图书管理系统吉林工程技术师范学院C语言程序课程设计报告书设计题目: 图书管理系统 专业:软件工程 班级: 3班 学生姓名: 张欣然 学号:20105837 指导教师: 陈莉娜 设计题目图书管理系统主要包括管理图书的库存信息、每一本书的借阅信息以及每一个人的借书信息。每一种图书的库存信息包括编号、书名、作者、出版社、出版日期、金额、类别、总入库数量、

2、当前库存量、已借出本数等。每一本被借阅的书都包括如下信息:编号、书名、金额、借书证号、借书日期、到期日期、罚款金额等。每一个人的借书信息包括借书证号、姓名、班级、学号等。系统功能包括以下方面:A、借阅资料管理要求把书籍、期刊、报刊分类管理,这样的话操作会更加灵活和方便,可以随时对其相关资料进行添加、删除、修改、查询等操作。B、借阅管理 (1) 借出操作 (2) 还书操作 (3) 续借处理提示:以上处理需要互相配合以及赔、罚款金额的编辑等操作完成图书借还业务的各种登记。例如:读者还书时不仅更新图书的库存信息,还应该自动计算该书应罚款金额。并显示该读者所有至当日内到期未还书信息。C、读者管理读者等

3、级:对借阅读者进行分类处理,例如可分为教师和学生两类。并定义每类读者的可借书数量和相关的借阅时间等信息。 读者管理:对读者信息可以录入,并且可对读者进行挂失或注销、查询等服务的作业。D、统计分析随时可以进行统计分析,以便及时了解当前的借阅情况和相关的资料状态,统计分析包括借阅排行榜、资料状态统计和借阅统计、显示所有至当日内到期未还书信息等功能分析。E 系统参数设置:可以设置相关的罚款金额,最多借阅天数等系统服务器参数。根据题目分析总体作品分为6个模块1. 图书数据2. 借书人信息3. 借书模块4. 还书模块5. 图书管理6. 查询模块第一模块:书号,书名,作者,出版时间,价格,册数,页数。第二

4、模块:姓名,单位,所借书目,借阅时间第三模块:输入书名,编号,借书证第四模块:登记借书号,还书操作,罚款处理第五模块:对书库中的书进行管理,新书入库,旧书删除,书库查询第六模块:书的查询。 数据测试 源代码汉字菜单的编写可参照以下代码:#include stdio.h. main() 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 book

5、sn); 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(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( 按任意键

6、返回主菜单:n); getchar(); clrscr(); while(1); #include #include #include #define BORROWED 1#define NOBORROW 0/* 定义图书结构 */struct Book int _id; / 编号,唯一 char _name32; / 图书的名称,不唯一 int _type; / 图书的类型,不唯一 int _status; / 图书的状态,借出/没有借出 int _count; / 图书借出的次数 struct Book* _next; / 下一本书 struct Book* _prev; / 上一本书;/

7、* 定义图书类型 */typedef struct Book Book;/* 操作的目录提示 */char book_menu32 = add books, list books, search books, borrow books, return books, exit, ,;/* 操作的目录提示1 */char book_menu_sub32 = search books by name, search books by type, ,;/* 添加图书类型,用户信息显示 */char book_types32 = type0, type1, type2, ,;/* 添加图书状态,用户信息

8、显示 */char book_status32 = noborrow, borrowed, ,;/* 增加图书,id自动排号 */int add_books(Book* head, Book* book_for_add) Book* p = head; if (!p) return -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

9、= 0; book_for_add-_status = 0; return 0;/* 建立图书管理链表 */Book* create_list(Book* book_head) if (book_head) book_head-_prev = book_head; book_head-_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 = bo

10、ok_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 n, book-_id, book-_name, book_typesbook-_type, book_statusbook-_status, book-_count);/* 列出所有登记的图书 */void list_books(Book* book_head) Book* p = book_head; while

11、 (p) print_book(p); p = p-_next; /* 借书,返回该书的指针,否则就返回NULL,可能不存在图书,或者已经被借走了 */Book* borrow_books(Book* book_head, int id) Book* p = book_head; while (p) if (p-_id = id) break; p = p-_next; if (!p)/* 不存在 */ return NULL; if (p-_status != 0) /* 已经被借走 */ return NULL; p-_status = 1; /* 借书登记 */ p-_count+; /

12、* 被借阅次数+1 */ return p;/* 查找书名称,返回查找到的数量,书名可能有重复的,一本书可能也有很多本,但是ID却是唯一的 */int search_books_by_name(Book* book_head, char* name) int count = 0; Book* p = book_head; while (p) if (strcmp(p-_name, name) = 0) print_book(p); +count; p = p-_next; return count;/* 查找书类型,返回查找到的数量,一个类型会有很多书 */int search_books_b

13、y_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; return 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 =

14、0; /* 还书登记 */ break; p = p-_next; return p;/* 打印操作选项 */void print_menu(char menus32) int no = 0; printf(nPLEASE SELECT ID LIKE 1 or 2 .n); while (strlen(menusno) printf(%d t%sn, no+1, menusno); +no; printf(OPTION(); while (no) printf(/%d, no-); printf():);/* 主函数 */int main(void) char key = 0; char s

15、s128; int loop = 1; Book first_book, *pBooks, *pTmp; strcpy(first_book._name, nihao); first_book._type = 0; pBooks = create_list(&first_book); 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

16、 pTmp = (Book*)malloc(sizeof(Book); if(pTmp) printf(Add_Book input name:); gets(ss); strncpy(pTmp-_name, ss, 31); print_menu(book_types); gets(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);

17、 break; case 3: / search books print_menu(book_menu_sub); gets(ss); key = ss0 - 48; printf(INPUT:%dn, key); switch (key) case 1: / search books 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_men

18、u(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: %

19、dn, key); else printf(borrow books successful!n); print_book(pTmp); break; case 5: / return books printf(Return books, input book id:); gets(ss); key = atoi(ss); pTmp = return_books(pBooks, key); if (!pTmp) printf(return books failed: %dn, key); else printf(return books successful!n); print_book(pTmp); break; case 6: / exit loop = 0; break; default: break; printf(-pause-); gets(ss); free_list(pBooks); return 0; -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁