计算机软件技术基础大作业图书管理系统分析与设计Word格式.docx
《计算机软件技术基础大作业图书管理系统分析与设计Word格式.docx》由会员分享,可在线阅读,更多相关《计算机软件技术基础大作业图书管理系统分析与设计Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
图书馆管理人员的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护,及系统状态的查看、维护并生成催还图书报表。
二.系统分析
1.总体数据流图
2.各模块之间的总数据流图
3.管理员通过登入系统,对图书加以管理,删除、添加、修改等,以方便读者查询。
4.读者可以通过登入系统,在系统中查询到自己想要的信息,比如自己的借阅状态,什么时候借的什么书,什么时候到期,或者查询自己想要借阅的书的信息。
三.系统结构设计
四.E-R图
对“图书信息”数据表的字段属性设置需要说明的是“借阅次数”和“是否借出”字段的默认值一定要设置因为对于新添加的图书,其一定是没有被借出的而且其借阅次数一定是0,所以在表单中向数据表添加记录时这两个字段应该是不需要添加的可以由默认值生成。
五.算法详细设计
#include<
stdio.h>
stdlib.h>
conio.h>
intget()
{
into;
scanf("
%d"
&
o);
returno;
}
structBOOK
{
intID,usr[10],total,store,days[10];
charname[31],aurthor[21];
}books[100];
/*上面是结构体的定义,用于存放书籍及借书的信息。
*/
voidpage_title(char*menu_item)
printf("
图书管理系统\n-%s-\n"
menu_item);
/*通过参数menu_item,可以显示当前的状态。
voidreturn_confirm()
\n按任意返回\n"
);
getch();
/*上面是返回前请求确认的函数,以便在返回前观察结果*/
intsearch_book()
intn,i;
输入图书序号:
"
i);
for(n=0;
n<
100;
n++)
{
if(books[n].ID==i)
{
printf("
书名:
%s\n"
books[n].name);
作者:
books[n].aurthor);
存数:
%dof"
books[n].store);
%d\n"
books[n].total);
returnn;
}
}
\n输入错误或无效图书序号\n"
return-1;
/*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返回数组下标,如果找不到相应记录则提示错误并返回-1。
voidbook_out()
{
intn,s,l,d;
page_title("
借阅图书"
if((n=search_book())!
=-1&
&
books[n].store>
0)
请输入可借天数:
\n"
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!
books[n].store==0)
此书已借出。
return_confirm();
/*上面是借书的函数,首先调用找书函数*/
voidbook_in()
intn,s,l;
图书归还"
books[n].store<
books[n].total)
借阅者图书证列表:
if(books[n].usr[l]!
=0)
[%d]-%d天\n"
books[n].usr[l],books[n].days[l]);
请输入借书证序号:
s);
if(books[n].usr[l]==s)
books[n].usr[l]=0;
books[n].days[l]=0;
books[n].store++;
books[n].store==books[n].total)
全部入藏。
/*上面的函数是归还图书*/
voidbook_add()
intn;
注册新书"
if(books[n].ID==0)
序号:
books[n].ID);
%s"
books[n].name);
books[n].aurthor);
数量:
books[n].store=books[n].total;
/*上面的函数是添加新图书*/
voidbook_del()
注销旧书\n"
=-1)books[n].ID=0;
该书已注销\n"
/*上面的函数是删除过期图书*/
voidmain()
while
(1)
menu:
page_title("
操作选单"
请用数字选择操作\n\n"
1,借阅图书\n2,归还图书\n"
3,注册新书\n4,注销旧书\n\n"
\n0,退出\n"
switch(get())
case1:
book_out();
break;
case2:
book_in();
case3:
book_add();
case4:
book_del();
default:
exit(0);
return;
六.图书管理系统设计体会
这次的设计给了我们很好的锻炼。
一开始不知道该从哪里下手,我们就按照老师说的一块一块来分别完成。
查资料,看书,从网上找相关资料等等,一步步进行完善,直至最后完成。
我们也懂得了交流的重要性,当你一个人的时候,我们可能局限于自己的思想当中,或者无法想出更巧妙的构思,通过和同学相互交流,相互探讨,就可能得到启发,开启新的思路。
此次设计学到了不少东西。
以前word我一直当着记事本用,甚至当我想记录什么东西的时候基本上都是直接打开记事本,但是这次设计,经过自己亲自画图,我发现原来写文章或者设计报告排版的重要性,这次设计中我学会了word的整体布局,画图技巧,word可远远不是单调的记事本可以比的。
还有就是c语言,上个学期考国二之后c语言就没怎么注意过,甚至好像在一点一点的遗忘,我一直以为能考过c语言计算机二级,c语言就算基本入门了,但经过这次设计,我发现,原来我的c语言水平,甚至连c的门槛都没摸着,于是我重新拿起了大一时学c的那本谭浩强的书,另外在图书馆,在网上找了一些资料,果然,发现一些曾经没有注意的细节,不如,子函数的返回值问题,子函数申明的位置和主函数位置不同而有所不同。
另外,这次的大作业的经验有可能对我们以后的课程设计或者是毕业设计有很大的参考意义。
七.参考文献
《计算机软件技术基础》(第3版)麦中凡苗明川何玉洁著
《c程序设计》(第三版)谭浩强著
《Visualc++从入门到精通》孙丹张亚新著
《SQL入门经典》(第5版)斯蒂芬森著