图书管理系统

#include <iostream>
using namespace std;
#include <stdio.h>
#include <stdlib.h>
#define MAX 10000
#include<string.h>
#include<conio.h>
//system ("cls");
#include<windows.h>
//Sleep(1000);1000=1分钟
FILE *fp;
FILE *fp1;
//0 销毁;
//1 正常;
//2 借出;
void longinFrame();
void mainFrame();
int readData();
int writeData();
int readData1();
int writeData1();
void Lib_print();
void Lib_manage();
void Lib_manage1();
void Lib_check();
void Lib_LdRp();
void Lib_Ld();
void Lib_Rp();
void Lib_adi();
int size=0;
int size1=0;
typedef struct
{
    int  book_num;
    char book_name[10];
    char book_writer[10];
    char publish_name[10];
    int stock;
    int unit_price;
    int flag;
    char read[10];
} book;
book book_information[MAX];
book book_information1[MAX];
int readData()
{
    int i=0;
    if((fp=fopen("book.txt","r+"))==NULL)
    {
        return 0;
    }
    while(~fscanf(fp,"%d %s %s %s %d %d %d\n",&book_information[i].book_num,book_information[i].book_name,book_information[i].book_writer,book_information[i].publish_name,&book_information[i].stock,&book_information[i].unit_price,&book_information[i].flag))
    {
        i++;
        size++;
    }
    fclose(fp);
    return 0;
}
int readData1()
{
    int i=0;
    if((fp1=fopen("readbook.txt","r+"))==NULL)
    {
        return 0;
    }
    while(fscanf(fp1,"%s %d %s %s %s %d %d %d\n",book_information1[i].read,&book_information1[i].book_num,book_information1[i].book_name,book_information1[i].book_writer,book_information1[i].publish_name,&book_information1[i].stock,&book_information1[i].unit_price,&book_information1[i].flag)!=EOF)
    {
        i++;
        size1++;
    }
    fclose(fp1);
    return 0;
}

int chaxun( char *name1)
{
    int i;
    for(i=0; i<size; i++)
        if(strcmp(book_information[i].book_name,name1)==0)
            return i;
}
int chaxun1( int num)
{
    int i;
    for(i=0; i<size; i++)
    {
        if(book_information[i].book_num==num)
            return i+1;
        else if(i==size-1)
            return -1;
    }
}
void longinFrame()
{
    printf("+------------------------------------------------------------+\n");
    printf("+                                                            +\n");
    printf("+                                                            +\n");
    printf("+-------------------------1.进入系统,执行功能+--------------+\n");
    printf("+                                                            +\n");
    printf("+                                                            +\n");
    printf("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
    int n;
    scanf("%d",&n);
    if(n==1)
    {
        system("cls");
        mainFrame();
    }
    else
    {
        printf("输入错误\n");
        Sleep(2000);
        system("cls");
        longinFrame();
    }
}
void Lib_print()
{
    int num;
    char name[10];
    char writer[10];
    char Pname[10];
    int stock;
    int price;
    int flag;
    printf("请输入图书信息:");
    printf("编号  书名  作者  出版社 存量 单价 状态\n");
    scanf("%d%s%s%s%d%d%d",&num,name,writer,Pname,&stock,&price,&flag);
    book_information[size].book_num=num;
    strcpy(book_information[size].book_name,name);
    strcpy(book_information[size].book_writer,writer);
    strcpy(book_information[size].publish_name,Pname);
    book_information[size].stock=stock;
    book_information[size].unit_price=price;
    book_information[size].flag=flag;
    size++;
    writeData();
    printf("输入成功!\n");
    printf("按任意键返回主界面!\n");
    getchar();
    int i;
    for(i=3; i>0; i--)
    {
        printf("%d秒后返回主页面\n",i);
        Sleep(1000);
    }
    system("cls");
    mainFrame();
}
void Lib_manage()
{
    printf("****************************\n");
    printf("**      1.图书添加   **\n");
    printf("**      2.图书修改   **\n");
    printf("*****************************\n");
    int order;
    scanf("%d",&order);
    if(order!=1&&order!=2)
    {
        Sleep(1000);
        Lib_manage();
    }
    else
    {
        switch(order)
        {
        case 1:
            system("cls");
            Lib_print();
            break;
        case 2:
            system("cls");
            Lib_manage1();
            break;
        }
    }


}
void Lib_check()
{
    printf("+-------------------------------------------------+\n");
    printf("***************1.书名查询***********\n");
    printf("***************2.书号查询***********\n");
    printf("***************3.作者查询***********\n");
    printf("***************4.出版社查询***********\n");
    printf("+--------------------------------------------------+\n");
    int order;
    scanf("%d",&order);
    if(order!=1&&order!=2&&order!=3&&order!=4)
    {
        Sleep(1000);
        Lib_check();
    }
    else
    {
        switch(order)
        {
        case 1:
        {
            system("cls");
            printf("请输入书名信息:\n");
            char name1[10];
            int i;
            scanf("%s",name1);
            i=chaxun(name1);
            printf("%d %s %s %s %d %d %d\n",book_information[i].book_num,book_information[i].book_name,book_information[i].book_writer,book_information[i].publish_name,book_information[i].stock,book_information[i].unit_price,book_information[i].flag);
            printf("按任意键返回\n");
            getch();
            system("cls");
            mainFrame();
            break;
        }
        case 2:
        {
            int i;
            system("cls");
            printf("请输入书号信息:\n");
            scanf("%d",&i);
            printf("%d %s %s %s %d %d %d",book_information[i].book_num,book_information[i].book_name,book_information[i].book_writer,book_information[i].publish_name,book_information[i].stock,book_information[i].unit_price,book_information[i].flag);
            printf("按任意键返回\n");
            getch();
            system("cls");
            mainFrame();
            break;
        }
        case 3:
        {
            system("cls");
            printf("请输入作者信息:\n");
            char name1[10];
            int i;
            scanf("%s",name1);
            i=chaxun(name1);
            printf("%d %s %s %s %d %d %d\n",book_information[i].book_num,book_information[i].book_name,book_information[i].book_writer,book_information[i].publish_name,book_information[i].stock,book_information[i].unit_price,book_information[i].flag);
            printf("按任意键返回\n");
            getch();
            system("cls");
            mainFrame();
            break;
        }
        case 4:
        {
            system("cls");
            printf("请输入出版社信息:\n");
            char name1[10];
            int i;
            scanf("%s",name1);
            i=chaxun(name1);
            printf("%d %s %s %s %d %d %d\n",book_information[i].book_num,book_information[i].book_name,book_information[i].book_writer,book_information[i].publish_name,book_information[i].stock,book_information[i].unit_price,book_information[i].flag);
            printf("按任意键返回\n");
            getch();
            system("cls");
            mainFrame();
            break;
        }
        }
    }
}
void Lib_LdRp()
{
    printf("+-------------------------------------------------+\n");
    printf("***************1.借书***********\n");
    printf("***************2.还书***********\n");
    printf("+--------------------------------------------------+\n");
    int order;
    scanf("%d",&order);
    if(order!=1&&order!=2)
    {

        Sleep(1000);
        Lib_LdRp();
    }
    else
    {
        switch(order)
        {
        case 1:
            system("cls");
            Lib_Ld();
            break;
        case 2:
            system("cls");
            Lib_Rp();
            break;

        }
    }
}

void Lib_manage1()
{
    printf("+-------------------------------------------------+\n");
    printf("***************1.更改存量***********\n");
    printf("***************2.图书销毁***********\n");
    printf("+--------------------------------------------------+\n");
    int num;
    int i;
    printf("请输入书号:\n");
    scanf("%d",&num);
    i=chaxun1(num);
    int order;
    int stock;
    int flag;
    if(i>0)
    {
        printf("请输入所修改的项目:\n");
        scanf("%d",&order);
        if(order!=1&&order!=2)
        {
            system("cls");
            Sleep(1000);
            Lib_manage1();
        }
        switch(order)
        {
        case 1:
        {
            scanf("%d",&stock);
            book_information[num-1].stock=stock;
            writeData();
            system("cls");
            mainFrame();
            break;
        }

        case 2:
        {
            scanf("%d",&flag);
            book_information[num-1].flag=flag;
            writeData();
            system("cls");
            mainFrame();
            break;
        }

        }
    }
    else
    {
        printf("输入错误:");
        Sleep(2000);
        system("cls");
        Lib_manage1();
    }

}
void Lib_Ld()
{
    system("cls");
    printf("请输入要借书的编号\n");
    int num;
    char read[10];
    scanf("%d",&num);
    int i;
    i=chaxun1(num);
    if(i==-1)
    {
        Sleep(1000);
        Lib_Ld();
    }
    else
    {
        if(book_information[i-1].flag==2)
        {
            printf("此书已被借完\n");
            printf("按任意键返回\n");
            getch();
            system("cls");
            mainFrame();
        }

        else if(book_information[i-1].flag==1)
        {
            book_information[i-1].flag=2;
            writeData();
            printf("请输入读者姓名:\n");
            scanf("%s",read);
            strcpy(book_information1[size1].read,read);
            book_information1[size1].book_num=i;
            strcpy(book_information1[size1].book_name,book_information[i-1].book_name);
            strcpy(book_information1[size1].book_writer,book_information[i-1].book_writer);
            strcpy(book_information1[size1].publish_name,book_information[i-1].publish_name);
            book_information1[size1].stock=book_information[i-1].stock;
            book_information1[size1].unit_price= book_information[i-1].unit_price;
            book_information1[size1].flag=book_information[i-1].flag;
            size1++;
            writeData1();
            printf("按任意键返回\n");
            getch();
            system("cls");
            mainFrame();
        }
        else
        {
            printf("该书已经销毁\n");
            printf("按任意键返回\n");
            getch();
            system("cls");
            mainFrame();
        }


    }

}
void Lib_Rp()
{
    system("cls");
    printf("请输入要还书的编号\n");
    int num;
    scanf("%d",&num);
    int i;
    i=chaxun1(num);
    if(i==-1)
    {
        Sleep(1000);
        Lib_Rp();
    }
    else
    {
        book_information[i].flag=1;
        writeData();
        book_information1[i].flag=1;
        writeData1();
        printf("按任意键返回\n");
        getch();
        system("cls");
        mainFrame();
    }

}
void mainFrame()
{
    printf("+-------------------------------------------------+\n");
    printf("***************1.图书输入***********\n");
    printf("***************2.图书管理***********\n");
    printf("***************3.图书查询***********\n");
    printf("***************4.图书借还***********\n");
    printf("***************5.退出系统***********\n");
    printf("+--------------------------------------------------+\n");
    int order;
    scanf("%d",&order);
    if(order!=1&&order!=2&&order!=3&&order!=4&&order!=5)
    {
        Sleep(1000);
        mainFrame();
    }
    else
    {
        switch(order)
        {
        case 1:
            system("cls");
            Lib_print();
            break;
        case 2:
            system("cls");
            Lib_manage();
            break;
        case 3:
            system("cls");
            Lib_check();
            break;
        case 4:
            system("cls");
            readData1();
            Lib_LdRp();
            writeData1();
            break;
        case 5:
            break;
        }
    }
}
int writeData()//写入文件
{
    int i;
    if((fp=fopen("book.txt","w"))==NULL)
    {
        return 0;
    }
    for(i=0; i<size; i++)
    {
        fprintf(fp,"%d %s %s %s %d %d %d\n",book_information[i].book_num,book_information[i].book_name,book_information[i].book_writer,book_information[i].publish_name,book_information[i].stock,book_information[i].unit_price,book_information[i].flag);
    }
    fclose(fp);
    return 0;
}
int writeData1()//写入文件
{
    int i;
    if((fp1=fopen("readbook.txt","w"))==NULL)
    {
        return 0;
    }
    for(i=0; i<size1; i++)
    {
        fprintf(fp1,"%s %d %s %s %s %d %d %d\n",book_information1[i].read,book_information1[i].book_num,book_information1[i].book_name,book_information1[i].book_writer,book_information1[i].publish_name,book_information1[i].stock,book_information1[i].unit_price,book_information1[i].flag);
    }
    fclose(fp1);
    return 0;
}
int main()
{
    readData();
    longinFrame();
    writeData();
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值