好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 dai15234791133 于 2020-1-5 19:20 编辑
大佬们帮忙看看,图书管理这个我就剩下个删除了,但是删除一本书后然后还显示俩行但序号是继承的下本书的,书名作者那些都不变。
题目四:图书借阅管理内 容:1、使用结构体数组定义图书基本信息(图书编号、图书借阅人、借阅天数、图书总量、图书库存、书名、图书作者)。2、实现图书基本信息(图书编号、图书借阅人、借阅天数、图书总量、图书库存、书名、图书作者)的录入。3、实现对图书的借阅管理。4、实现对图书的删除(根据图书编号)、查询(根据图书编号)和图书信息修改的操作。 5、输出显示功能选择提示。 6、每个功能以一个单独的函数实现。
网上
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//图书结构体
struct Book//图书的结构体
{
int id; //书的编号
char name[31]; //书的名字
char Author[27]; //书的作者
char borrower[31]; //借阅人
int store;
int total;
int user[10];
int days[10]; //图书是否被借出
}
books[1000];
int count; //当前图书的数量
//显示菜单,并返回选择的菜单号
int ShowMenu()
{
int num;
system("cls");
printf("**********欢迎使用图书馆管理系统******************\n");
printf("\t\t1.添加图书\n");
printf("\t\t2.查看图书\n");
printf("\t\t3.借阅图书\n");
printf("\t\t4.归还图书\n");
printf("\t\t5.修改图书信息\n");
printf("\t\t6.删除图书\n");
printf("\t\t7.查找图书\n");
printf("\t\t0.退出系统\n");
printf("--------------------请选择-----------------------\n");
while(scanf("%d", &num) != 1 || num < 0 || num > 7)
{
printf("你选择的菜单错误!按任意键重新选择。\n");
system("pause");
fflush(stdin);//清空输入缓冲区
}
return num;
}
//添加图书
void AddBook()
{
int i;
system("cls"); //清屏
for(i=0;i<2;i++)
{
printf("序号:");
scanf("%d",&books.id);
printf("书名:");
scanf("%s",&books.name);
printf("作者:");
scanf("%s",&books.Author);
printf("数量:");
scanf("%d",&books.total);
books.store=books.total;
printf("\n");
}
printf("图书添加成功!\n");
}
//////////////////////////////////////////////////////////////////////////
//查看图书
int ShowBooks()
{
int i,flag=0;
system("cls");
for(i=0;i<100;i++)
{
if(strlen(books.Author)!=0)
{
printf("序号:%d\t ",books.id);
printf("书名:%s\t ",books.name);
printf("作者:%s\t ",books.Author);
printf("存数:%d\t",books.store);
printf("总数:%d\n\n",books.total);
flag=1;
}
}
if(flag==0)
{
printf("没有找到相关书籍\n");
}
//ShowMenu();
return i;
}
/////////////////////////////////////////////////////
//查找图书
int book_search()
{
int n,i,flag=0;
char nam[30];
system("cls");
printf("请输入书名:");
scanf("%s",&nam);
for(i=0;i<100;i++)
{
if(strcmp(books.name,nam)==0)
{
printf("序号:%d\t ",books.id);
printf("书名:%s\t ",books.name);
printf("作者:%s\t ",books.Author);
printf("存数:%d\t",books.store);
printf("总数:%d\n",books.total);
n=i;
flag=1;
break;
}
}
if(flag==0)
{
printf("\n没有找到相关书籍\n");
return -1;
}
return n;
}
/////////////////////////////////////////////////////////////////////////
//借阅图书
void borrowbook()
{
int n,s,i,d;
system("cls");
n=book_search();
if(n!=-1&&books[n].store>0)
{
//赋初值,全为零
for(i=0;i<10;i++)
{
books[n].user=0;
books[n].days=0;
}
printf("借书证序号:");
scanf("%d",&s);
printf("借书人:");
scanf("%s",&books.borrower);
printf("输入可借天数:");
scanf("%d",&d);
books[n].user[0]=s;
books[n].days[0]=d;
books[n].store--;
}
else if(n!=-1&&books[n].store==0)
{
printf("此书已经完全借完\n\n");
// ShowMenu();
}
else;
printf("\n请按任意键返回……\n");
}
////////////////////////////////////////////////////////////////////////
//修改图书
int book_edit()
{
int i,id_change;
system("cls");
printf("输入要修改的图书id:");
scanf("%d",&id_change);
for(i=0;i<100;i++)
{
if(books.id==id_change)
{
printf("修改书名:");
scanf("%s",&books.name);
printf("修改作者:");
scanf("%s",&books.Author);
printf("修改数量:");
scanf("%d",&books.total);
printf("修改图书信息成功\n");
books.store=books.total;
return i;
}
}
}
/////////////////////////////////////////////////////////////////
//删除图书
int book_del()
{
int i,num,j;
system("cls");
printf("输入所要删除的书的id:");
scanf("%d",&num);
for(i=0;i<100;i++)
{
if(books.id==num)
{
for(j=i;j<100;j++)
{
books[j].id=books[j+1].id;
strcpy(books[j].name,books[j+1].name);
strcpy(books[j].borrower,books[j+1].borrower);
printf("该书已经删除了!!!\n");
//ShowMenu();
return i;
}
}
}
printf("未找到相关记录\n");
return -1;
}
////////////////////////////////////////////////////////////////////////
//归还图书
void book_in()
{
int n,s,i;
n=book_search();
printf("%d",n);
if(n!=-1&&books[n].store<books[n].total)
{
printf("借阅图书证列表\n");
for(i=0;i<10;i++)
{
if(books[n].user!=0)
{
printf("[%d]--%d天\n",books[n].user,books[n].days);
}
printf("输入借书证号:");
scanf("%d",&s);
for(i=0;i<10;i++)
{
if(books[n].user==s)
{
books[n].store++;
}
}
}
}
if(n!=-1&&books[n].store==books[n].total)
{
printf("全部归还\n");
}
else if(n!=-1&&books[n].store<books[n].total)
{
printf("归还成功\n");
}
}
int main()
{
int quit = 0;
while(quit == 0)
{
switch(ShowMenu())
{
case 0:
quit = 1;
break;
case 1:
// printf("添加图书!\n");
AddBook();
break;
case 2:
// printf("查看图书!\n");
ShowBooks();
break;
case 3:
// printf("借阅图书!\n");
borrowbook();
break;
case 4:
// printf("归还图书!\n");
book_in();
break;
case 5:
// printf("修改图书信息!\n");
book_edit();
break;
case 6:
// printf("删除图书!\n");
book_del();
break;
case 7:
// printf("查找图书!\n");
book_search();
break;
}
system("pause");
}
return 0;
}
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|