图书管理实习报告Word格式文档下载.docx
《图书管理实习报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《图书管理实习报告Word格式文档下载.docx(21页珍藏版)》请在冰点文库上搜索。
![图书管理实习报告Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/2/eea63790-890a-4909-b3d3-6b4c2f898b62/eea63790-890a-4909-b3d3-6b4c2f898b621.gif)
四、详细设计
1.主函数:
主函数设计得比较简洁,只提供输入,处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
[流程图]
voidmain(void)
{
menu:
page_title("
Themenu"
);
printf("
Choiceyournumber:
\n\n"
1borrowbooks;
\n2Returnbooks;
3Enternewbooks;
\n4Deleteoldbooks;
5Search_books;
\n0Exit\n"
switch(getch())
case'
1'
:
book_out();
break;
2'
book_in();
3'
book_add();
4'
book_del();
case'
5'
:
search_book1();
0'
exit(0);
}
gotomenu;
2.各功能模块设计
(1)图书信息查询:
输入要查找的图书号,再从数组中查找是否有和此图书号相匹配的图书号,若有,显示其信息并返回数组下标,若没有相应记录则提示错误并返回-1。
[程序]
voidsearch_book1(void){
intn,i;
page_title("
Searchbooks"
Pleaseenterthenumberofthebook:
"
scanf("
%d"
&
i);
for(n=0;
n<
100;
n++)
if(books[n].id==i)
Bookname:
%s\n"
books[n].name);
Writer:
books[n].author);
Storenumbers:
%d\n"
books[n].store);
Books[n].total:
%d\n"
books[n].total);
else
\nEnterwrongornousebooknumber.\n"
return_confirm();
(2)借书函数:
首先调用找书函数,判断所借图书是否有库存,若有则输入借书人的图书证号以及想借用的天数,天数在10天以内的存储借书人姓名及天数,同时库存数量减少1,如果库存数量为0则显示此书已全部借出。
voidbook_out()
intn,s,l,d;
Borrowbooks"
if((n=search_book())!
=-1&
&
books[n].store>
0)
Pleaseinputthelibrarycardserialnumber:
s);
Pleaseinputmayborrowthenumberofdays:
d);
for(l=0;
l<
10;
l++)
if(books[n].usr[l]==0)
books[n].usr[l]=s;
books[n].days[l]=d;
books[n].store--;
if(n!
books[n].store==0)printf("
Thisbookalreadycompletelyloaned.\n"
3)还书函数:
类似借书函数,首先调用找书函数。
voidbook_in(void)
intn,s,l;
Returnsthebooks"
books[n].store<
books[n].total)
Theborrowingbookscardtabulates:
\n"
if(books[n].usr[l]!
=0)
[%d]-%d\n"
books[n].usr[l],books[n].days[l]);
Pleaseinputthelibrarycardserialnumber:
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)
AllentersTibet.\n"
(4)注册新书:
[流程图]:
voidbook_add(void)
intn;
Registrationnewbook"
if(books[n].id==0)break;
Serialnumber:
books[n].id);
booknumber:
%s"
books[n].name);
bookwriter:
books[n].author);
numbers:
books[n].total);
books[n].store=books[n].total;
(5)删除旧图书:
[程序]:
voidbook_del(void)
Cancelstheoldbook"
=-1)books[n].id=0;
Thisbookcancelled.\n"
3.公共函数
(1)存放书籍及借书信息函数
structBOOK
intid,usr[10],total,store,days[10];
charname[31],author[21];
}
books[100];
(2)打印页眉函数,同时可通过参数显示当前状态
voidpage_title(char*menu_item)
{
clrscr();
printf("
>
MENU<
<
\n\n-%s-\n\n"
menu_item);
(3)返回前请求确认的函数
voidreturn_confirm(void)
\nPleaseenteranyonetoback:
getch();
(4)在数组中产寻图书号匹配记录,显示其信息并返回数组下标,找不到则提示错误
intsearch_book(void)
intn,i;
scanf("
returnn;
return-1;
[总程序]:
#include<
stdio.h>
stdlib.h>
conio.h>
五、上机操作
各个模块的界面图:
(1)主菜单函数
(2)输入模块
在主界面按键输入3,并输入提示所出现的各种信息,看到下图
键入任意按键,返回主菜单
(3)查找模块
在主界面按键输入5,看到下图
键入刚刚输入的书号码001,按回车,则看到下图
键入任意键返回主菜单;
重新键入5,并键入未存书号002,按回车,则看到下图
键入任意键返回主菜单
(4)借书模块
在主界面键入1,并输入所借书的编号001,按回车,则看到下图
根据提示信息键入所需内容,看到下图
再次键入1键,输入未存储的书号002,看到下图
(5)还书模块
在主界面键入2,并输入所还书的书号001,按回车,看到下图
根据提示键入所需信息,按回车,看到下图
再次键入2,进入还书界面,输入错误书号,既所输入的书号不存在,则看到下图
(6)删除旧书模块
在主界面键入4,并输入错误的欲删除书号,则看到下图
再次键入4,进入删除界面,输入欲删除书号001,则看到下图
键入5,进入查找模块,输入刚刚删除的001号书,看到下图
说明删除成功.
总结:
通过此次C语言课程设计实习,我收获颇多。
这次实习是真正意义上的将所学知识运用到实际中。
实践才是检验真理的唯一标准!
此次实习中,我成功做出了这道题:
提高了我们的编程能力。
在编程过程中还是应该特别注意充分理解题目要求和各循环语句的充分调用和理解。
自己也已经具备了一定的编程能力。
然而,这只是一个小小的开端,以后的路还很长,还需要用恒心继续坚持下去!
C语言课程设计实验报告
学院:
工程学院
班级:
052052(12)
学号:
20051002514
姓名:
刘俊红