资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
精选优质文档-倾情为你奉上C语言程序课程设计报告书设计题目: 图书管理系统 专业:软件工程 班级: 3班 学生姓名: 张欣然 学号: 指导教师: 陈莉娜 设计题目图书管理系统主要包括管理图书的库存信息、每一本书的借阅信息以及每一个人的借书信息。每一种图书的库存信息包括编号、书名、作者、出版社、出版日期、金额、类别、总入库数量、当前库存量、已借出本数等。每一本被借阅的书都包括如下信息:编号、书名、金额、借书证号、借书日期、到期日期、罚款金额等。每一个人的借书信息包括借书证号、姓名、班级、学号等。系统功能包括以下方面:A、借阅资料管理要求把书籍、期刊、报刊分类管理,这样的话操作会更加灵活和方便,可以随时对其相关资料进行添加、删除、修改、查询等操作。B、借阅管理 (1) 借出操作 (2) 还书操作 (3) 续借处理提示:以上处理需要互相配合以及赔、罚款金额的编辑等操作完成图书借还业务的各种登记。例如:读者还书时不仅更新图书的库存信息,还应该自动计算该书应罚款金额。并显示该读者所有至当日内到期未还书信息。C、读者管理读者等级:对借阅读者进行分类处理,例如可分为教师和学生两类。并定义每类读者的可借书数量和相关的借阅时间等信息。 读者管理:对读者信息可以录入,并且可对读者进行挂失或注销、查询等服务的作业。D、统计分析随时可以进行统计分析,以便及时了解当前的借阅情况和相关的资料状态,统计分析包括借阅排行榜、资料状态统计和借阅统计、显示所有至当日内到期未还书信息等功能分析。E 系统参数设置:可以设置相关的罚款金额,最多借阅天数等系统服务器参数。根据题目分析总体作品分为6个模块1. 图书数据2. 借书人信息3. 借书模块4. 还书模块5. 图书管理6. 查询模块第一模块:书号,书名,作者,出版时间,价格,册数,页数。第二模块:姓名,单位,所借书目,借阅时间第三模块:输入书名,编号,借书证第四模块:登记借书号,还书操作,罚款处理第五模块:对书库中的书进行管理,新书入库,旧书删除,书库查询第六模块:书的查询。 数据测试 源代码汉字菜单的编写可参照以下代码:#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 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(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/* 定义图书结构 */struct Book int _id; / 编号,唯一 char _name32; / 图书的名称,不唯一 int _type; / 图书的类型,不唯一 int _status; / 图书的状态,借出/没有借出 int _count; / 图书借出的次数 struct Book* _next; / 下一本书 struct Book* _prev; / 上一本书;/* 定义图书类型 */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, ,;/* 添加图书状态,用户信息显示 */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 = 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 = 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 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,可能不存在图书,或者已经被借走了 */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+; /* 被借阅次数+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_by_type(Book* book_head, int type) int count = 0; Book* p = book_head; while (p) if (p-_type = type) print_bo
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号