图书管理系统--数据结构课程设计

基本内容与要求:设计一个计算机管理系统完成图书管理基本业务。基本要求(1)每种书的登记内容包括书号、书名、著作者、现存量;(2)对书号建立索引表(线性表)以提高查找效率;... 基本内容与要求:
设计一个计算机管理系统完成图书管理基本业务。基本要求(1) 每种书的登记内容包括书号、书名、著作者、现存量;(2)对书号建立索引表(线性表)以提高查找效率;(3)系统主要功能如下:采编入库——新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;借阅——若一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;归还——注销对借阅者的登记,改变该书的现存量。
展开
 我来答
an354579044
2009-06-16 · TA获得超过344个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:287万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

struct BOOK
{
int id,usr[10],total,store,days[10];
char name[30],author[20];
}books[100];
/*结构体,存放书籍及借书信息。*/

void page_title(char *menu_item)
{
printf(">>> 以下是图 书 管 理 系 统--请 按 要 求 操 作 <<<\n\n- %s -\n\n",menu_item);
}
/*页头函数,可以通过参数menu_item,显示当前状态。*/

void return_confirm(void)
{
printf("\n任意键返回……\n");
getch();
}
/*返回前请求确认函数,方便返回前观察结果*/

int search_book(void)
{
int n,i;
printf("请输入图书序号:");
scanf("%d",&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("存数:%d\n",books[n].store);
printf("总数:%d\n",books[n].total);
return n;
}
}
printf("\n输入有错或图书序号不存在.\n");
return -1;
}
/*上面是在数组中找到图书号匹配的记录,显示其信息并返
回数组下标,如果找不到相应记录则提示错误并返回-1。*/

void book_out(void)
{
int n,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();
}
/*借书的函数,首先调用找书函数*/

void book_in(void)
{
int n,s,l;
page_title("还书");
if((n=search_book())!=-1&&books[n].store<books[n].total)
{
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();
}

void book_add(void)
{
int n;
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();
}

void book_del(void)
{
int n;
page_title("注销书");
if((n=search_book())!=-1) books[n].id=0;
printf("该书已注销.\n");
return_confirm();
}

void main(void)
{
menu: page_title("操作选择单子");
printf("请按以上要求选择操作\n\n");
printf("1 借书\n2 还书\n\n");
printf("3 注册书\n4 注销书\n\n");
printf("\n0 退出\n");
switch(getch())
{
case '1' : book_out();break;
case '2' : book_in();break;
case '3' : book_add();break;
case '4' : book_del();break;
case '0' : exit(0);
}
goto menu;
}
创作者iqp1eRwYi4
2019-12-20 · TA获得超过3805个赞
知道大有可为答主
回答量:3095
采纳率:33%
帮助的人:159万
展开全部
可以凭借Baiduhi联系我们你的题目
有空能解决你无法解决的题目
如果你有一样的要求也能联系我们
ES:\\6279087668580D62BBEF1F383816235A
交易提醒:预付定金有风险
交易提醒:勿轻信百度名中的联系方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式