《图书管理系统》.doc
图书管理系统一、实训目的 本课题的目的主要是考查学生对C/C+语言的综合编程能力的掌握,培养学生的分析问题和解决问题的能力及逻辑思维能力。该课题主要考察学生对函数、结构体,指针,文件等的操作,以及C/C+语言基本规则和算法的掌握,所以完成本颗题目要求学生较强的设计能力,特别是要具有综合应用能力。如何调程序也非常重要,通过这个程序可以学习到以前调试短程序没有的的经验。二、实训内容题目:图书管理系统目录:(1)输入图书信息(2)显示上述内容(3)按姓名查找后显示(4)删除有关记录(5)增加记录(6)保存修改后的文件(7)显示修改后的文件三、设计要求(1)对系统进行功能模块分析及算法的设计(2)系统设计要具有实用性(3)编程简单清楚,可实用,功能较全面(4)设计说明书条理规范、流程图要清楚(5)设计完成后,每人上交一份设计报告,必须用专用的课程设计报告纸书写,要求具有以下内容:题目,原理叙述、设计有关的基本规则,流程图,源程序清单,运行结果,调试情况分析,设计总结体会,致谢词。(6)设计进度安排(1周) 题目提前1周布置,使学生作好充分的准备。分析设计准备阶段建议1天,编程调试阶段建议2天,总结报告和书写说明书阶段及考核阶段建议2天。源程序:#include <stdio.h>#include <stdlib.h>#include <conio.h>struct BOOK int id,usr10,total,store,days10; char name31,author21; books100;/*上面是结构体的定义,用于存放书籍及借书的信息。*/void page_title(char *menu_item) clrscr(); printf(">>> 图 书 管 理 系 统 <<<nn- %s -nn",menu_item); /*上面是打印页眉的函数,同时通过参数menu_item,可以显示当前的状态。*/void return_confirm(void) printf("n按任意键返回n"); getch(); /*上面是返回前请求确认的函数,以便在返回前观察结果*/int search_book(void) int n,i; printf("请输入图书序号:"); scanf("%d",&i); for(n=0;n<100;n+) if(booksn.id=i) printf("书名:%sn",booksn.name); printf("作者:%sn",booksn.author); printf("存数:%d of ",booksn.store); printf("%dn",booksn.total); return n; printf("n输入错误或无效图书序号.n"); return -1; void book_out(void) int n,s,l,d; page_title("借阅图书"); if(n=search_book()!=-1&&booksn.store>0) printf("请输入借书证序号:"); scanf("%d",&s); printf("请输入可借天数:"); scanf("%d",&d); for(l=0;l<10;l+) if(booksn.usrl=0) booksn.usrl=s; booksn.daysl=d; break; booksn.store-; if(n!=-1&&booksn.store=0) printf("此书已经全部借出.n"); return_confirm(); /*上面是借书的函数,首先调用找书函数*/void book_in(void) int n,s,l; page_title("归还图书"); if(n=search_book()!=-1&&booksn.store<booksn.total) printf("借阅者图书证列表:n"); for(l=0;l<10;l+) if (booksn.usrl!=0) printf("%d - %d天n",booksn.usrl,booksn.daysl); printf("请输入借书证序号:"); scanf("%d",&s); for(l=0;l<10;l+) if(booksn.usrl=s) booksn.usrl=0; booksn.daysl=0; break; booksn.store+; if(n!=-1&&booksn.store=booksn.total) printf("全部入藏.n"); return_confirm(); void book_add(void) int n; page_title("注册新书"); for(n=0;n<100;n+) if(booksn.id=0) break; printf("序号:"); scanf("%d",&booksn.id); printf("书名:"); scanf("%s",&booksn.name); printf("作者:"); scanf("%s",&booksn.author); printf("数量:"); scanf("%d",&booksn.total); booksn.store=booksn.total; return_confirm(); void book_del(void) int n; page_title("注销旧书"); if(n=search_book()!=-1) booksn.id=0; printf("该书已注销.n"); return_confirm(); void main(void) menu: page_title("操作选单"); printf("请用数字键选择操作nn"); printf("1 借阅图书n2 归还图书nn"); printf("3 注册新书n4 注销旧书nn"); printf("n0 退出n"); switch(getch() case '1' : book_out();break; case '2' : book_in();break; case '3' : book_add();break; case '4' : book_del();break; case '0' : exit(0); goto menu; int n; page_title("廣?症慕"); if(n=search_book()!=-1) booksn.id=0; printf("乎慕厮廣?.n"); return_confirm(); void main(void) menu: page_title("荷恬僉汽"); printf("萩喘方忖囚僉夲荷恬nn"); printf("1 処堋夕慕n2 拷珊夕慕nn"); printf("3 廣過仟慕n4 廣?症慕nn"); printf("n0 曜竃n"); switch(getch() case '1' : book_out();break; case '2' : book_in();break; case '3' : book_add();break; case '4' : book_del();break; case '0' : exit(0); goto menu;