基于vc++的C语言图书馆管理系统课程设计报告(共8页).doc
精选优质文档-倾情为你奉上图书管理课程设计学生姓名:学生学号:所在班级:任课教师:图书馆管理系统【设计目的】图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等.试设计一图书信息管理系统,使之能提供以下功能:1)系统以菜单方式工作2)图书信息录入功能(图书信息用文件保存)-输入3)图书信息浏览功能-输出4)查询和排序功能:(至少一种查询方式)-算法5)按书名查询6)按作者名查询7)图书信息的删除与修改(可选项)*/【设计思路】根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。 【总体设计】图书馆管理系统数据输入数据修改删除数据添加查找浏览图1 系统功能模块图 【详细设计】1. 主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】 显示一系列功能选项输入n,判断n是否是14?根据n的值调用各功能模块函数结束开始n#include<stdio.h>#include<stdlib.h>#include<conio.h>int get()int o;scanf("%d",&o);struct BOOKint ID,usr10,total,store,days10;char name31,aurthor21;books100;/*上面是结构体的定义,用于存放书籍及借书的信息。*/ void page_title(char*menu_item)printf("图书管理系统n-%s-n",menu_item);/*通过参数menu_item,可以显示当前的状态。*/ void return_confirm()printf("n按任意返回n"); getch();/*上面是返回前请求确认的函数,以便在返回前观察结果*/ int search_book()int n,i;printf("输入图书序号:");scanf("%d",&i);for(n=0;n<100;n+)if(booksn.ID=i)printf("书名:%sn",booksn.name);printf("作者:%sn",booksn.aurthor );printf("存数:%d of ",booksn.store );printf("%dn",booksn.total);return n;printf("n输入错误或无效图书序号n");return -1;/*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返 回数组下标,如果找不到相应记录则提示错误并返回-1。*/ void book_out()int n,s,l,d;page_title("借阅图书");if(n=search_book()!=-1 && booksn.store >0)printf("请输入可借天数:n");scanf("%d",&d);for(l=0;l<10;l+)if(booksn.usr l=0)booksn.usrl=s;booksn.daysl=d;break;booksn.store-;if(n!=-1 && booksn.store=0)printf("此书已借出。n"); return_confirm();/*上面是借书的函数,首先调用找书函数*/ void book_in()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()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.aurthor);printf("数量:");scanf("%d",booksn.total);booksn.store=booksn.total;return_confirm();void book_del()int n;page_title("注销旧书n");if(n=search_book()!=-1) booksn.ID=0;printf("该书已注销n");return_confirm();void main() while(1)menu:page_title("操作选单"); printf("请用数字选择操作nn"); printf("1,借阅图书n2,归还图书n"); printf("3,注册新书n4,注销旧书nn"); printf("n0,退出n"); switch(get() case 1: book_out();break; case 2: book_in();break; case 3: book_add();break; case 4: book_del();break; default : exit(0);return;【设计体会】通过为期一周的设计,对C语言这门有了更深一步的了解。它是程序设计的重要理论技术基础,在我们软件工程专业的学习中占据着十分重要的地位。这个程序的结构大体是从网络上借鉴的,但是结果无法运行,只能自己修改,最后终于调试通过,同时也使我们知道,要学好这门,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。专心-专注-专业