吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1582|回复: 1
收起左侧

[求助] 图书管理c语音求组大佬们

[复制链接]
dai15234791133 发表于 2020-1-5 13:52
本帖最后由 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;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

z1390595 发表于 2020-1-12 17:01
不太明白楼主你的意思,你这边删除的操作是要找到这本书(i),然后把后面的每一本书都往前挪吗?
如果是的话,问题应该在这段里
[C++] 纯文本查看 复制代码
                        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;
                        }

这个循环中,j执行了一次后就return了。。。。。这样子只能将i后面的那本书移到i这个位置来。
如果你是要后面的每本都往前挪的话,那至少return i; 这一句要提到这个循环之外,放到i的那个循环中。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 22:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表