图书管理实习报告.docx

上传人:b****1 文档编号:2409560 上传时间:2023-05-03 格式:DOCX 页数:21 大小:187.31KB
下载 相关 举报
图书管理实习报告.docx_第1页
第1页 / 共21页
图书管理实习报告.docx_第2页
第2页 / 共21页
图书管理实习报告.docx_第3页
第3页 / 共21页
图书管理实习报告.docx_第4页
第4页 / 共21页
图书管理实习报告.docx_第5页
第5页 / 共21页
图书管理实习报告.docx_第6页
第6页 / 共21页
图书管理实习报告.docx_第7页
第7页 / 共21页
图书管理实习报告.docx_第8页
第8页 / 共21页
图书管理实习报告.docx_第9页
第9页 / 共21页
图书管理实习报告.docx_第10页
第10页 / 共21页
图书管理实习报告.docx_第11页
第11页 / 共21页
图书管理实习报告.docx_第12页
第12页 / 共21页
图书管理实习报告.docx_第13页
第13页 / 共21页
图书管理实习报告.docx_第14页
第14页 / 共21页
图书管理实习报告.docx_第15页
第15页 / 共21页
图书管理实习报告.docx_第16页
第16页 / 共21页
图书管理实习报告.docx_第17页
第17页 / 共21页
图书管理实习报告.docx_第18页
第18页 / 共21页
图书管理实习报告.docx_第19页
第19页 / 共21页
图书管理实习报告.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

图书管理实习报告.docx

《图书管理实习报告.docx》由会员分享,可在线阅读,更多相关《图书管理实习报告.docx(21页珍藏版)》请在冰点文库上搜索。

图书管理实习报告.docx

图书管理实习报告

一、题目要求

图书管理信息包括:

图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等,试设计一图书管理系统,使之能提供以下功能。

(1)新进图书基本信息的输入

(2)图书基本信息的查询

(3)对撤消图书信息的删除

(4)办理借书手续

(5)办理还书手续

二、需求分析

作为学生对图书管理系统的要求有:

1.能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。

2.能够方便地借阅图书、续借图书、归还图书。

3.能够查询自己的基本资料、借阅图书情况。

4.能够熟悉图书管理系统的使用。

作为图书管理员,他们对图书管理系统的要求有:

1.能方便的对图书进行录入登记,注销陈旧的书籍。

2.能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。

3.能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况等信息,以便各学院能够随时获知本院学生的一些借书信息。

建立图书管理信息结构体,结构体成员包括图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号。

存在状态设为整型,可用不同数字代表借还状态。

借书和还书手续要注意修改结构体的成员变量存在状态的值。

三、总体设计

四、详细设计

1.主函数:

主函数设计得比较简洁,只提供输入,处理和输出部分的函数调用。

其中各功能模块用菜单方式选择。

[流程图]

voidmain(void)

{

menu:

page_title("Themenu");

printf("Choiceyournumber:

\n\n");

printf("1borrowbooks;\n2Returnbooks;\n\n");

printf("3Enternewbooks;\n4Deleteoldbooks;\n\n");

printf("5Search_books;\n0Exit\n");

switch(getch())

{

case'1':

book_out();break;

case'2':

book_in();break;

case'3':

book_add();break;

case'4':

book_del();break;

case'5':

search_book1();break;

case'0':

exit(0);

}

gotomenu;

}

2.各功能模块设计

(1)图书信息查询:

输入要查找的图书号,再从数组中查找是否有和此图书号相匹配的图书号,若有,显示其信息并返回数组下标,若没有相应记录则提示错误并返回-1。

[流程图]

 

[程序]

voidsearch_book1(void){

intn,i;

page_title("Searchbooks");

printf("Pleaseenterthenumberofthebook:

");

scanf("%d",&i);

for(n=0;n<100;n++)

{

if(books[n].id==i)

{

printf("Bookname:

%s\n",books[n].name);

printf("Writer:

%s\n",books[n].author);

printf("Storenumbers:

%d\n",books[n].store);

printf("Books[n].total:

%d\n",books[n].total);

break;

}

else

{

printf("\nEnterwrongornousebooknumber.\n");

break;

}

}

return_confirm();

}

(2)借书函数:

首先调用找书函数,判断所借图书是否有库存,若有则输入借书人的图书证号以及想借用的天数,天数在10天以内的存储借书人姓名及天数,同时库存数量减少1,如果库存数量为0则显示此书已全部借出。

[流程图]

 

[程序]

voidbook_out()

{

intn,s,l,d;

page_title("Borrowbooks");

if((n=search_book())!

=-1&&books[n].store>0)

{

printf("Pleaseinputthelibrarycardserialnumber:

");

scanf("%d",&s);

printf("Pleaseinputmayborrowthenumberofdays:

");

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("Thisbookalreadycompletelyloaned.\n");

return_confirm();

}

3)还书函数:

类似借书函数,首先调用找书函数。

[流程图]

 

[程序]

voidbook_in(void)

{

intn,s,l;

page_title("Returnsthebooks");

if((n=search_book())!

=-1&&books[n].store

{

printf("Theborrowingbookscardtabulates:

\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("Pleaseinputthelibrarycardserialnumber:

");

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("AllentersTibet.\n");

return_confirm();

}

(4)注册新书:

[流程图]:

[程序]

voidbook_add(void)

{

intn;

page_title("Registrationnewbook");

for(n=0;n<100;n++)

if(books[n].id==0)break;

printf("Serialnumber:

");

scanf("%d",&books[n].id);

printf("booknumber:

");

scanf("%s",&books[n].name);

printf("bookwriter:

");

scanf("%s",&books[n].author);

printf("numbers:

");

scanf("%d",&books[n].total);

books[n].store=books[n].total;

return_confirm();

}

(5)删除旧图书:

[流程图]:

 

[程序]:

voidbook_del(void)

{

intn;

page_title("Cancelstheoldbook");

if((n=search_book())!

=-1)books[n].id=0;

printf("Thisbookcancelled.\n");

return_confirm();

}

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)

{

printf("\nPleaseenteranyonetoback:

\n");

getch();

}

(4)在数组中产寻图书号匹配记录,显示其信息并返回数组下标,找不到则提示错误

intsearch_book(void)

{

intn,i;

printf("Pleaseenterthenumberofthebook:

");

scanf("%d",&i);

for(n=0;n<100;n++)

{

if(books[n].id==i)

{

printf("Bookname:

%s\n",books[n].name);

printf("Writer:

%s\n",books[n].author);

printf("Storenumbers:

%d\n",books[n].store);

printf("Books[n].total:

%d\n",books[n].total);

returnn;

}

}

printf("\nEnterwrongornousebooknumber.\n");

return-1;

}

[总程序]:

#include

#include

#include

structBOOK

{

intid,usr[10],total,store,days[10];

charname[31],author[21];

}

books[100];

voidpage_title(char*menu_item)

{

clrscr();

printf(">>>MENU<<<\n\n-%s-\n\n",menu_item);

}

voidreturn_confirm(void)

{

printf("\nPleaseenteranyonetoback:

\n");

getch();

}

intsearch_book(void)

{

intn,i;

printf("Pleaseenterthenumberofthebook:

");

scanf("%d",&i);

for(n=0;n<100;n++)

{

if(books[n].id==i)

{

printf("Bookname:

%s\n",books[n].name);

printf("Writer:

%s\n",books[n].author);

printf("Storenumbers:

%d\n",books[n].store);

printf("Books[n].total:

%d\n",books[n].total);

returnn;

}

}

printf("\nEnterwrongornousebooknumber.\n");

return-1;

}

voidbook_out()

{

intn,s,l,d;

page_title("Borrowbooks");

if((n=search_book())!

=-1&&books[n].store>0)

{

printf("Pleaseinputthelibrarycardserialnumber:

");

scanf("%d",&s);

printf("Pleaseinputmayborrowthenumberofdays:

");

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("Thisbookalreadycompletelyloaned.\n");

return_confirm();

}

voidbook_in(void)

{

intn,s,l;

page_title("Returnsthebooks");

if((n=search_book())!

=-1&&books[n].store

{

printf("Theborrowingbookscardtabulates:

\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("Pleaseinputthelibrarycardserialnumber:

");

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("AllentersTibet.\n");

return_confirm();

}

voidbook_add(void)

{

intn;

page_title("Registrationnewbook");

for(n=0;n<100;n++)

if(books[n].id==0)break;

printf("Serialnumber:

");

scanf("%d",&books[n].id);

printf("booknumber:

");

scanf("%s",&books[n].name);

printf("bookwriter:

");

scanf("%s",&books[n].author);

printf("numbers:

");

scanf("%d",&books[n].total);

books[n].store=books[n].total;

return_confirm();

}

voidbook_del(void)

{

intn;

page_title("Cancelstheoldbook");

if((n=search_book())!

=-1)books[n].id=0;

printf("Thisbookcancelled.\n");

return_confirm();

}

voidsearch_book1(void){

intn,i;

page_title("Searchbooks");

printf("Pleaseenterthenumberofthebook:

");

scanf("%d",&i);

for(n=0;n<100;n++)

{

if(books[n].id==i)

{

printf("Bookname:

%s\n",books[n].name);

printf("Writer:

%s\n",books[n].author);

printf("Storenumbers:

%d\n",books[n].store);

printf("Books[n].total:

%d\n",books[n].total);

break;

}

else

{

printf("\nEnterwrongornousebooknumber.\n");

break;

}

}

return_confirm();

}

voidmain(void)

{

menu:

page_title("Themenu");

printf("Choiceyournumber:

\n\n");

printf("1borrowbooks;\n2Returnbooks;\n\n");

printf("3Enternewbooks;\n4Deleteoldbooks;\n\n");

printf("5Search_books;\n0Exit\n");

switch(getch())

{

case'1':

book_out();break;

case'2':

book_in();break;

case'3':

book_add();break;

case'4':

book_del();break;

case'5':

search_book1();break;

case'0':

exit(0);

}

gotomenu;

}

五、上机操作

各个模块的界面图:

(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

姓名:

刘俊红

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2