| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 462 人关注过本帖
标题:C++ 图书馆系统 借阅函数有问题,无论怎么输都是图书已借完
只看楼主 加入收藏
ghost2501
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-6-27
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
C++ 图书馆系统 借阅函数有问题,无论怎么输都是图书已借完
void borrow_bookname()
{
    FILE *fp,*fp3;
    struct book *head=NULL;
    struct book *p,*p1,*p2;
    int tNo=0,tnum=0,i,loop,num=0,n=0,k=0,t=0,flag=0;
    char tname[20]={'\0'},tauthor[20]={'\0'},ttname[20]={'\0'},name[20]={'\0'},zname[20],day[20]={'\0'},bookname[20]={'\0'};
    char hitkey=0;
    system ("cls");
    printf("            ————————欢迎使用图书管理系统————————\n");
    puts("");
    printf("\n* * * 借书界面 * * *\n");
    puts("");
        if ((fp=fopen(FNAME,"r"))==NULL)
        {
            system ("cls");
            printf("图书馆无库存!按任意键退出!");
            getch();
            exit(0);
        }
        else
        {  
            {
                printf("请输入借阅书名:");
                scanf("%s",zname);
                k= tjbook();
                for (i=0;i<k;i++)
                {  
                    fscanf(fp,"%d%s%s%d",&tNo,tname,tauthor,&tnum);
                    n++;
                    if (n==1)
                    {
                        p1=p2=(struct book*)malloc(LEN);
                        head=p1;
                    }
                    else
                    {
                        p2->next=p1;
                        p2=p1;
                        p1=(struct book*)malloc(LEN);
                    }
                    p1->No=tNo;
                    strcpy(p1->name,tname);
                    strcpy(p1->author,tauthor);
                    p1->num=tnum;
                }      
                if (n==0)
                    head=NULL;  
                else
                {
                    p2->next=p1;
                    p1->next=NULL;
                    fclose(fp);
                }
            }
        }
        p=head;
        for (;p!=NULL;)
        {
            if(!(strcmp(p->name,zname)))
            {
                flag=1;
                loop=p->num;
                (p->num)--;
            }
            p=p->next;
        }
        if(flag&&loop==1)
        {
            fp=fopen(FNAME,"w");
            fclose(fp);
            fp=fopen(FNAME,"a");
            p=head;
            for (;p!=NULL;)
            {
                fprintf(fp,"%d %s %s %d ",p->No,p->name,p->author,p->num);
                p=p->next;
            }  
            free(p);
            fclose(fp);
        }
        if(flag&&loop==1)
        {
            if((fp3=fopen(fname,"r"))==NULL)
                {
                    fp3=fopen(fname,"w");
                    fclose(fp3);
                }
fclose(fp);
fclose(fp3);printf("成功!按任意键返回\n");
getch();
system("cls");
reader();
}
reader();
}
else
printf("此书已被借完!按任意键返回!");
getch();
system("cls");
reader();
搜索更多相关主题的帖子: 管理系统 system 图书馆 
2014-06-27 10:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
不是C++程序

授人以渔,不授人以鱼。
2014-06-27 12:28
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
收藏
得分:4 
你是否读取到了这本书的信息,或者你存储的信息是否存进去了

我不是砖家,要努力成为砖家。
2014-06-27 13:09
ghost2501
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-6-27
收藏
得分:0 
回复 2 楼 TonyDeng
是不是环境的问题,用visual就可以运行。
2014-06-27 19:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我怎么知道是什么问题,又不知道你的数据如何、又不知道如何操作。查找原因的办法向来都是跟踪调试的啦。

授人以渔,不授人以鱼。
2014-06-27 21:29
快速回复:C++ 图书馆系统 借阅函数有问题,无论怎么输都是图书已借完
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034599 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved