收藏 分享(赏)

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

上传人:dreamzhangning 文档编号:2777633 上传时间:2018-09-27 格式:DOC 页数:16 大小:79KB
下载 相关 举报
《C语言程序》课程设计_图书管理系统.doc_第1页
第1页 / 共16页
《C语言程序》课程设计_图书管理系统.doc_第2页
第2页 / 共16页
《C语言程序》课程设计_图书管理系统.doc_第3页
第3页 / 共16页
《C语言程序》课程设计_图书管理系统.doc_第4页
第4页 / 共16页
《C语言程序》课程设计_图书管理系统.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、C 语言程序课程设计报告书设计题目: 图书管理系统 专业:软件工程 班 级: 3 班 学生姓名: 张欣然 学号:20105837 指导教师: 陈莉娜 1设计题目图书管理系统主要包括管理图书的库存信息、每一本书的借阅信息以及每一个人的借书信息。每一种图书的库存信息包括编号、书名、作者、出版社、出版日期、金额、类别、总入库数量、当前库存量、已借出本数等。每一本被借阅的书都包括如下信息:编号、书名、金额、借书证号、借书日期、到期日期、罚款金额等。每一个人的借书信息包括借书证号、姓名、班级、学号等。系统功能包括以下方面:A、借阅资料管理要求把书籍、期刊、报刊分类管理,这样的话操作会更加灵活和方便,可以

2、随时对其相关资料进行添加、删除、修改、查询等操作。B、借阅管理(1) 借出操作(2) 还书操作(3) 续借处理提示:以上处理需要互相配合以及赔、罚款金额的编辑等操作完成图书借还业务的各种登记。例如:读者还书时不仅更新图书的库存信息,还应该自动计算该书应罚款金额。并显示该读者所有至当日内到期未还书信息。C、读者管理读者等级:对借阅读者进行分类处理,例如可分为教师和学生两类。并定义每类读者的可借书数量和相关的借阅时间等信息。读者管理:对读者信息可以录入,并且可对读者进行挂失或注销、查询等服务的作业。2D、统计分析 随时可以进行统计分析,以便及时了解当前的借阅情况和相关的资料状态,统计分析包括借阅排

3、行榜、资料状态统计和借阅统计、显示所有至当日内到期未还书信息等功能分析。E 系统参数设置:可以设置相关的罚款金额,最多借阅天数等系统服务器参数。根据题目分析总体作品分为 6 个模块1.图书数据2.借书人信息3.借书模块4.还书模块5.图书管理6.查询模块第一模块:书号,书名,作者,出版时间,价格,册数,页数。第二模块:姓名,单位,所借书目,借阅时间第三模块:输入书名,编号,借书证3第四模块:登记借书号,还书操作,罚款处理第五模块:对书库中的书进行管理,新书入库,旧书删除,书库查询第六模块:书的查询。数据测试45源代码汉字菜单的编写可参照以下代码:#include “stdio.h“. main

4、() char c;int i;doclrscr();for(i=0;i#include #include #define BORROWED 1#define NOBORROW 0/* 定义图书结构 */struct Bookint _id; / 编号,唯一char _name32; / 图书的名称,不唯一int _type; / 图书的类型,不唯一int _status; / 图书的状态,借出/没有借出int _count; / 图书借出的次数struct Book* _next;/ 下一本书struct Book* _prev;/ 上一本书;/* 定义图书类型 */typedef stru

5、ct Book Book;7/* 操作的目录提示 */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“,“,;/* 添加图书状态,用户信息显示 */char

6、book_status32 =“noborrow“,“borrowed“,“,;/* 增加图书,id 自动排号 */8int 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 = 0;book_for_add-_

7、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 = book_head;9while(p)p1 = p-_next

8、;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 (p)print_book(p);p = p-_next;/* 借书,

9、返回该书的指针,否则就返回 NULL,可能不存在图书,或者已经被借走了 */Book* borrow_books(Book* book_head, int id)Book* p = book_head;while (p)if (p-_id = id)break;10p = p-_next;if (!p)/* 不存在 */return NULL;if (p-_status != 0) /* 已经被借走 */return NULL;p-_status = 1;/* 借书登记 */p-_count+; /* 被借阅次数+1 */return p;/* 查找书名称,返回查找到的数量,书名可能有重复的,

10、一本书可能也有很多本,但是 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;/* 查找书类型,返回查找到的数量,一个类型会 有很多书 */11int search_books_by_type(Book* book_head, int type)int count = 0;Book*

11、 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 /* 还书登记 */break;p = p-_next;return p;/* 打印操作选项 */void print_menu(char menus32)12int no = 0;

12、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 ss128;int loop = 1;Book first_book, *pBooks, *pTmp;strcpy(first_book._name, “nihao“);first_book._t

13、ype = 0;pBooks = create_list(while (loop)print_menu(book_menu);gets(ss);key = ss0 - 48;if(key 6)printf(“Error input !n“);elseprintf(“INPUT:%dn“, key);switch (key)13case 1: / add bookspTmp = (Book*)malloc(sizeof(Book);if(pTmp)printf(“Add_Book input name:“);gets(ss);strncpy(pTmp-_name, ss, 31);print_m

14、enu(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 bookslist_books(pBooks);break;case 3: / search booksprint_menu(book_menu_sub);gets(ss);key = ss0 - 48;printf(“INPUT:%dn“, key);switch (key)case 1: / searc

15、h books by nameprintf(“input book name:“);gets(ss);key = search_books_by_name(pBooks, ss);if(key = 0)printf(“no found!n“);case 2: / search books by typeprint_menu(book_types);gets(ss);key = ss0 - 48;key = search_books_by_type(pBooks, key-1);14if(key = 0)printf(“no found!n“);default:break;break;case

16、4: / borrow booksprintf(“Borrow books, input book id:“);gets(ss);key = atoi(ss);pTmp = borrow_books(pBooks, key);if (!pTmp)printf(“borrow books failed: %dn“, key);elseprintf(“borrow books successful!n“);print_book(pTmp);break;case 5: / return booksprintf(“Return books, input book id:“);gets(ss);key = atoi(ss);pTmp = return_books(pBooks, key);if (!pTmp)printf(“return books failed: %dn“, key);elseprintf(“return books successful!n“);print_book(pTmp);break;case 6: / exitloop = 0;break;default:break;15printf(“-pause-“);gets(ss);free_list(pBooks);return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报