美文网首页自学能量站
C语言图书管理系统

C语言图书管理系统

作者: 花开叶落 | 来源:发表于2019-07-13 22:58 被阅读0次

    #include <stdio.h>

    #include <string.h>

    #include<stdlib.h>

    // 图书结构体

    struct Book

    {

    int num;

    char Class[10];

    char BookName[30];

    char Author[30];

    char Publishing[30];

    int Count;

    float Price;

    }P[10];

    int M = 10;//图书数量

    char Head[200];

    struct Book tmp;

    // 菜单

    void menu();

    // 读取文件

    void ReadFile();

    // 按书名查询

    void QryByBookName();

    // 按作者查询

    void QryByAuthor();

    //按出版社排序

    void anchubanshepaixu();

    //按种类排序

    void anzhongleipaixu();

    // 图书总价

    void tushuzongjia();

    //图书的修改

    void tushudexiugai();

    //图书的借阅

    void tushudejieyue();

    void main()       

    {

    int ind;

    ReadFile();

    while(ind<=8)

    {

    menu();

    printf("请输入操作编号:");

    scanf("%d",&ind);

    switch(ind)

    {

    case 1: ReadFile();

    break;

    case 2: QryByBookName();

    break;

    case 3: QryByAuthor();

    break;

    case 4: anchubanshepaixu();

    break;

    case 5: anzhongleipaixu();

    break;

    case 6: tushuzongjia();

    break;

    case 7: tushudexiugai();

    break;

    case 8: tushudejieyue();

    break;

    case 9: printf("退出\n");

    break;

    default: printf("输入错误,请按菜单提示输入!");

    break;

    }

    }

    }

    void menu()

    {

    printf(" *********************************\n");

    printf("   图书管理系统 \n");

    printf(" |*******************************|\n");

    printf(" | 1.读取图书基本信息 |\n");

    printf(" | 2.按书名查查询 |\n");

    printf(" | 3.按作者名查询 |\n");

    printf(" | 4.按出版社排序 |\n");

    printf(" | 5.按种类排序 |\n");

    printf(" | 6.书籍总价 |\n");

    printf(" | 7.图书的修改 |\n");

    printf(" | 8.图书的借阅 |\n");

    printf(" | 9.退出 |\n");

    printf(" *********************************\n");

    }

    void ReadFile()

    {

    int i;

    FILE *fp;

    fp = fopen("CK0103.txt", "r");

    if(fp == NULL)

    {

    printf("文件打开错误!");

    return;

    }

        //标题栏

    fgets(Head, 200, fp);

    for(i = 0; i < M; i++)

    {

    fscanf(fp,"%d%s%s%s%s%d%f\n",&P[i].num,P[i].Class,P[i].BookName,P[i].Author,P[i].Publishing,&P[i].Count,&P[i].Price);

    }

    fclose(fp);

    printf("%s", Head);

    for(i =0; i < M; i++)

    printf("%-6d%-10s%-18s%-10s%-24s%-4d%-6.2f\n",P[i].num,P[i].Class,P[i].BookName,P[i].Author,P[i].Publishing,P[i].Count,P[i].Price);

    }

       

    void QryByBookName()           

    {

    char n[100];

    int i,flag=0;

    printf("输入书名:\n");

        scanf("%s",n);

    printf("%s",Head);

    for(i=1;i<M;i++)

    if(strcmp(n,P[i].BookName)==0)

    {

    printf("%-6d%-10s%-18s%-10s%-24s%-4d%-6.2f\n",P[i].num,P[i].Class,P[i].BookName,P[i].Author,P[i].Publishing,P[i].Count,P[i].Price);

    flag=1;

    }

    if(flag==0)

    printf("该书不存在!"); 

    }

    void QryByAuthor()                   

    {

    char n[100];

    int i,flag=0;

    printf("输入作者名字:\n");

    scanf("%s",n);

    printf("%s",Head);

    for(i=0;i<M;i++)

    if(strcmp(n,P[i].Author)==0)

    {

    printf("%-6d%-10s%-18s%-10s%-24s%-4d%-6.2f\n",P[i].num,P[i].Class,P[i].BookName,P[i].Author,P[i].Publishing,P[i].Count,P[i].Price);

    flag=1;

    }

        if(flag==0)

    printf("该书不存在!");

    }

    void QryByPublishing()               

    {

    char n[100];

    int i,flag=0;

    printf("输入出版社名字:\n");

    scanf("%s",n);

    printf("%s",Head);

    for(i=0;i<M;i++)

    if(strcmp(n,P[i].Publishing)==0)

    {

    printf("%-6d%-10s%-18s%-10s%-24s%-4d%-6.2f\n",P[i].num,P[i].Class,P[i].BookName,P[i].Author,P[i].Publishing,P[i].Count,P[i].Price);

    flag=1;

    }

        if(flag==0)

    printf("该书不存在!");

    }

    void anzhongleipaixu()   

    {

    int i,j,k;

    for(i=0;i<M-1;i++)

    {

    k=i;

    for(j=k+1;j<M;j++)

    {

    if(strcmp(P[k].Class,P[j].Class)>0)

    k=j;

    }

    if(i!=k)

    {

    tmp=P[k];

    P[k]=P[i];

    P[i]=tmp;

    }

    }

    printf("%s", Head);

    for(i=0;i<M;i++)

    printf("%-6d%-10s%-18s%-10s%-24s%-4d%-6.2f\n",P[i].num,P[i].Class,P[i].BookName,P[i].Author,P[i].Publishing,P[i].Count,P[i].Price);

    }

    void anchubanshepaixu()

    {

    int i,j,k;

    for(i=0;i<M-1;i++)

    {

    for(j=i+1;j<M;j++)

    {

    if(strcmp(P[k].Publishing,P[j].Publishing)>0)

    {

    tmp=P[i];

    P[i]=P[j];

    P[j]=tmp;

    }

    }

    }

        printf("%s", Head);

    for(i=0;i<M;i++)

    printf("%-6d%-10s%-18s%-10s%-24s%-4d%-6.2f\n",P[i].num,P[i].Class,P[i].BookName,P[i].Author,P[i].Publishing,P[i].Count,P[i].Price);

    }

    void tushuzongjia()                   

    {

    int i;

    float sum = 0;

    FILE *fp;

    fp = fopen("CK0103.txt", "w");

    if(fp == NULL)

    {

    printf("文件打开错误!");

    return;

    }

        //标题栏

    fprintf(fp,"%s",Head);

    for(i = 0; i < M; i++)

    {

    fprintf(fp,"%-6d%-10s%-18s%-10s%-24s%-4d%-6.2f\n",P[i].num,P[i].Class,P[i].BookName,P[i].Author,P[i].Publishing,P[i].Count,P[i].Price);

    sum+=P[i].Count*P[i].Price;

    }

    printf("%s", Head);

    for(i = 0; i < M; i++)

        printf("%-6d%-10s%-18s%-10s%-24s%-4d%-6.2f\n",P[i].num,P[i].Class,P[i].BookName,P[i].Author,P[i].Publishing,P[i].Count,P[i].Price);

    fprintf(fp,"         总价  %-6.2f",sum);

    fclose(fp);

    printf("           总价  %-6.2f",sum);

    }

    void tushudexiugai()       

    {

    int i,flag=0;

    int num,number;

    FILE *fp;

    printf("输入修改编号:");

    scanf("%d",&num);

    for(i=0;i<M;i++)

    {

    if(num==P[i].num)

    {

    printf("请输入修改后编号:");

    scanf("%d",&number);

    P[i].num=number;

    }

    }

    printf("%s",Head);

    for(i =0; i < M; i++)

    printf("%-6d%-10s%-18s%-10s%-24s%-4d%-6.2f\n",P[i].num,P[i].Class,P[i].BookName,P[i].Author,P[i].Publishing,P[i].Count,P[i].Price);

    fp = fopen("CK0103.txt", "w");

    if(fp == NULL)

    {

    printf("文件打开错误!");

    return;

    }

        //标题栏

    fprintf(fp,"%s",Head);

    for(i = 0; i < M; i++)

    {

    fprintf(fp,"%-6d%-10s%-18s%-10s%-24s%-4d%-6.2f\n",P[i].num,P[i].Class,P[i].BookName,P[i].Author,P[i].Publishing,P[i].Count,P[i].Price);

    }

    fclose(fp);

    }

    void tushudejieyue()               

    {

    int i, flag=0;

    char BookName[20];

    printf("\n请输入书名:\n");

    scanf("%s", BookName);

    for(i = 0; i < M; i++)

    {

    if(strcmp(BookName, P[i].BookName)==0)

    { printf("\n借阅的书籍是:\n");

    printf("%s", Head);

    printf("%-6d%-10s%-18s%-10s%-24s%-4d%-6.2f\n", P[i].num, P[i].Class, P[i].BookName, P[i].Author, P[i].Publishing, P[i].Count, P[i].Price);

    P[i].Count--;

    flag=1;

    printf("\n借阅后书籍的状态是:\n");

    printf("%s", Head);

    printf("%-6d%-10s%-18s%-10s%-24s%-4d%-6.2f\n", P[i].num, P[i].Class, P[i].BookName, P[i].Author, P[i].Publishing, P[i].Count, P[i].Price);

    }

    }

    if(flag==0)

    {

    printf("\n未找到指定书籍!");

    }

    printf("按y继续借阅:");

    }

     

       

    相关文章

      网友评论

        本文标题:C语言图书管理系统

        本文链接:https://www.haomeiwen.com/subject/zbjvkctx.html