图书管理系统c语言 结构体数组实现

图书管理系统是数据结构常见的课设题,在这里写一个简单的c语言实现代码。没有使用指针,链表。第一次需要写一些内容到程序中,之后注释掉creat(),creat2()两个函数即可从文件中读取。

#include
#include
#include
#include
#define M 1


typedef struct node//图书信息的结构体
{
    char bookid[10];
    char bookname[50];
    char author[20];
    int leibie;
    int sum;
    int now;
}book;
typedef struct//用于存放所有的图书的结构体
{
    book book1[1000];
    int len;
}books;


typedef struct xcv
{
    char book2[10];

    char shijian[30];
}yijie;
typedef struct node1//借书证信息的结构体
{
    char cardid[10];
    char studentname[10];
    char studentclass[10];
    yijie yijieshu[10];
    int len3;

}card;
typedef struct//用于存放所有的借书卡的结构体
{
    card card1[100];
    int len1;
}cards;

books s;
cards p;
char *t2;
void fun()//显示系统当前时间函数
{

    time_t t1;
    t1=time(NULL);
    t2=ctime(&t1);
    printf("现在的时间是:%s\n",t2);
    printf("                    自现在起一个月后请归还图书\n");

}


void print()//屏幕前空格
{
    printf("\n");
    printf("\n");
    printf("\n");
    printf("\n");
    printf("\n");
    printf("\n");
    printf("\n");
    printf("\n");
}

void save()//保存文件用于创建图书
{
    FILE *fp;
    int i;
    if((fp=fopen("book.dat","wb"))==NULL)
    {
        printf("cannot open this file\n");
        return ;
    }
    for(i=0;i>,\n                    该书一共有%d本,\n                    现在还有%d本可以借阅.\n",s.book1[a].bookname,s.book1[a].sum,s.book1[a].now);
    }
    else
    {
        print();
        printf("                    输入错误,按任意键返回上一层\n                    ");
        getchar();
        getchar();
        return ;
    }
    printf("                    查询结束.请按任意键返回上一层\n                    ");
    getchar();
    getchar();
}

void borrow()//借阅图书
{

    char str[10];
    char peo[10];
    char d;
	print();
    printf("                    请输入要查找的书号\n");
    int t, tpeo ,i;
	printf("                    ");
    scanf("%s" ,str);
    t = find(str);
    if(t == s.len)
    {
         puts("                    抱歉您要借的图书不存在");
         printf("                    请按任意键返回\n                    ");
         getchar();
         getchar();
         return ;
    }
    if(!(s.book1[t].now))
    {
        puts("                    该图书已经借光了");
        printf("                    请按任意键返回\n                    ");
        getchar();
        getchar();
        return ;
    }
    printf("                    请输入您的卡号\n");
	printf("                    ");
    scanf("%s",peo);
    tpeo = findpeo(peo);
    if(tpeo==p.len1)
    {
        printf("                    您输入的卡号不存在,按任意键返回上一层\n                    ");
        getchar();
        getchar();
        return ;
    }
    if(p.card1[tpeo].len3>=10)
    {
        printf("                    您的借书证借书数量已经达到上限,不允许再借书.按任意键返回上一层\n                    ");
        getchar();
        getchar();
        return ;
    }
    printf("                    查询成功,确定要借这本书吗?(y/n)\n");
    getchar();
	printf("                    ");
    scanf("%c",&d);
    if(!(d=='Y'||d=='y'))
    {
        printf("                    操作失败.按任意键返回上一层\n                    ");
        getchar();
        getchar();
        return ;
    }
    printf("                    您借书的开始时间为:\n                    ");
    fun();

    strcpy(p.card1[tpeo].yijieshu[p.card1[tpeo].len3].shijian,t2);
    s.book1[t].now--;
    strcpy(p.card1[tpeo].yijieshu[p.card1[tpeo].len3].book2, s.book1[t].bookid);
    p.card1[tpeo].len3++;
    printf("                    借阅成功,库存量减少一,当前书变为:%-d本,\n                    此书的书号为:%s.\n",s.book1[t].now,s.book1[t].bookid);

    printf("                    操作成功.按任意键返回上一层\n                    ");
    getchar();
    getchar();
}

void returnbook()//归还图书
{
    char str[10];
    char str2[10];
    char c;
    int i,j,k,a,b,flag=0;
	print();
    printf("                    请输入要归还的书号:\n");
	printf("                    ");
    scanf("%s",str);
    a=find(str);
    if(a == s.len)
    {
         puts("                    抱歉您要归还的图书不存在");
         printf("                    请按任意键返回\n                    ");
         getchar();
         getchar();
         return ;
    }
    printf("                    请输入您的借书证号:\n");
	printf("                    ");
    scanf("%s",str2);
    b=findpeo(str2);
    if(b==p.len1)
    {
        printf("                    您输入的卡号不存在.按任意键返回上一层\n                    ");
        getchar();
        getchar();
        return ;
    }
    for(i=0;i


你可能感兴趣的:(数据结构)