c语言课程设计图书管理系统设计.docx
《c语言课程设计图书管理系统设计.docx》由会员分享,可在线阅读,更多相关《c语言课程设计图书管理系统设计.docx(9页珍藏版)》请在冰豆网上搜索。
![c语言课程设计图书管理系统设计.docx](https://file1.bdocx.com/fileroot1/2022-10/13/b3de4fa1-012e-4fbd-a09a-932a155d5246/b3de4fa1-012e-4fbd-a09a-932a155d52461.gif)
c语言课程设计图书管理系统设计
北京工业大学耿丹学院实训报告
图书管理系统设计
一设计目的
1.通过本系统实现对图书管理操作;
2.进一步掌握和利用C语言进行设计的能力;
3.进一步理解和运用结构化程序设计的思想和方法;
4.初步掌握开发一个小型使用系统的基本方法;
5.掌握书写设计开发文档的能力;
6.能应用C语言中的各个知识要点
二设计内容
1.新书入库:
图书信息包括书名,书号,库存量,现存量(库存量减去借走的图书)共4项.首先输入3本书的信息,并将其存数组book中.当有新书入库时,先判断数组中是否有此书(即比较书名或书号),若有则修改库存量,现存量的信息;若无此书,则将该书的信息添加到数组中,并将其库存量设为-1,将其标专为下次要购入的图书。
2.图书查询:
(1)输入一个书号,在文件中查找此书,若找到则输出此书的全部信息;若找不到则输出查找失败的信息。
(2)查询所有要购入的图书的书名和书号。
3.借阅管理
(1)每个读者的信息包括姓名,编号,借阅图书1,借阅图书2,借阅图书3,输入3个读者的信息并存入数组reader中.
(2)借书登记:
输入读者的姓名及所借图书的书号,先判断姓名是否在读者数组中,若有则将书号存入reader数组中,同时修改book数组中此书的现存量.若reader数组中无此姓名,则应提示错误。
(3)还书管理:
输入读者的姓名,所还图书的书号,修改reader数组和book数组中相应的项。
4.输出全部图书信息和全部读者信息。
5.退出系统。
三设计原理及算法
本程序是由一个主函数、7个子函数组成,其中4个子函数完成的功能依次是:
借阅图书、归还图书、注册图书、注销图书、刚开始会有一个选择界面,让使用者可以选择想实现的功能。
注册图书:
利用结构体数组实现学生成绩的数据结构设计,用输入函数可以完成若干条记录的输入;
注销图书:
输入需要住校图书的书名,函数就会将与其相对应的图书信息给删除;
归还图书:
输入需要归还图书的书名,函数就会将与其相对应的图书信息返回;
借阅图书:
利用子函数实现借阅
输出:
用函数printf语句来实现将所有的数据都输出在界面上;
流程图:
主函数:
四.程序运行图
1.主菜单
2.借阅图书
3.归还图书
4.归还图书
五.编程源代码
#include
#include
#include
intb;
structBOOK
{
intid,usr[10],total,store,days[10];
charname[31],author[21];
}books[100];
/*上面是结构体的定义,用于存放书籍及借书的信息。
*/
voidpage_title(char*menu_item)
{
printf("\n\n\t\t\t>>>图书管理系统<<<\n\n%s\n\n",menu_item);
}
/*上面是打印页眉的函数,同时通过参数menu_item,可以显示当前的状态。
*/
voidreturn_confirm(void)
{
printf("\n按任意键返回……\n");
getch();
}
/*上面是返回前请求确认的函数,以便在返回前观察结果*/
intsearch_book(void)
{
intn,i;
printf("请输入图书序号:
");//这里是输入图书序号的地方
scanf("%d",&i);//这里是输入的序号数保存在变量I里面
for(n=0;n<100;n++)
{
if(books[n].id==i)
{
printf("书名:
%s\n",books[n].name);
printf("作者:
%s\n",books[n].author);
printf("存数:
%dof",books[n].store);
printf("%d\n",books[n].total);
returnn;
}
}
printf("\n输入错误或无效图书序号.\n");
return-1;
}
/*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返
回数组下标,如果找不到相应记录则提示错误并返回-1。
*/
voidbook_out(void)
{
intn,s,l,d;
page_title("借阅图书");
if((n=search_book())!
=-1&&books[n].store>0)
{
printf("请输入借书证序号:
");
scanf("%d",&s);
printf("请输入可借天数:
");
scanf("%d",&d);
for(l=0;l<10;l++)
{
if(books[n].usr[l]==0)
{
books[n].usr[l]=s;
books[n].days[l]=d;
break;
}
}
books[n].store--;
}
if(n!
=-1&&books[n].store==0)printf("此书已经全部借出.\n");
return_confirm();
}
/*上面是借书的函数,首先调用找书函数*/
voidbook_in(void)
{
intn,s,l;
page_title("归还图书");
if((n=search_book())!
=-1&&books[n].store{
printf("借阅者图书证列表:
\n");
for(l=0;l<10;l++)
if(books[n].usr[l]!
=0)
printf("[%d]-%d天\n",books[n].usr[l],books[n].days[l]);
printf("请输入借书证序号:
");
scanf("%d",&s);
for(l=0;l<10;l++)
{
if(books[n].usr[l]==s)
{
books[n].usr[l]=0;
books[n].days[l]=0;
break;
}
}
books[n].store++;
}
if(n!
=-1&&books[n].store==books[n].total)
printf("全部入藏.\n");
return_confirm();
}
voidbook_add(void)
{
intn;
page_title("注册新书");
for(n=0;n<100;n++)
if(books[n].id==0)break;
printf("序号:
");
scanf("%d",&books[n].id);
printf("书名:
");
scanf("%s",&books[n].name);
printf("作者:
");
scanf("%s",&books[n].author);
printf("数量:
");
scanf("%d",&books[n].total);
books[n].store=books[n].total;
return_confirm();
}
voidbook_del(void)
{
intn;
page_title("注销旧书");
if((n=search_book())!
=-1)books[n].id=0;
printf("该书已注销.\n");
return_confirm();
}
intmain(void)
{
menu:
system("cls");
printf("制作人:
张焱\n");
page_title("操作选单\n");
printf("=======================================================");
printf("\n请用数字键选择操作\n");
printf("=======================================================\n");
printf("1借阅图书\t\t\t2归还图书\n\n");
printf("3注册新书(new)\t\t\t4注销旧书\n\n");
printf("0退出\n");
printf("请输入:
");
scanf("%d",&b);
switch(b)
{
case1:
book_out();break;
case2:
book_in();break;
case3:
book_add();break;
case4:
book_del();break;
case0:
exit(0);
}
gotomenu;
}
六设计人员
输入输出模块:
王亚雄
菜单、计算模块:
王亚雄
添加、修改、删除、查询、统计:
王亚雄
七参考文献:
《C语言程序设计(第三版)》文档来源网络,版权归原作者。
如有侵权,请告知,我看到会立刻处理。
........忽略此处.......