| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 364 人关注过本帖
标题:求助,大家帮我指出下面的错误,一个程序(图书管理系统),谢啦
只看楼主 加入收藏
genggood
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-6-9
收藏
 问题点数:0 回复次数:0 
求助,大家帮我指出下面的错误,一个程序(图书管理系统),谢啦
#include<stdio.h>
#include<stdlib.h> /*引入函数库*/
#include<string.h>
#include<conio.h>
struct lib /*声明一个结构体类型*/
{
int num; /*定义变量*/
char bookname[10];
char name[10];
int no;
char ltd[20];
int time;
float money;
struct iib *next;
}
lib1[50];
struct lib *head=NULL;
int i;


void save()/*输出信息到文件,并释放链表空间*/
{
    struct lib *p=NULL;
    FILE *fp;
    char *filename="book.txt";
    if(head==NULL)
    {
        printf("\n记录为空!\n");
        return;
    }
    else
        p=head->next;
    if((fp=fopen(filename,"w"))==NULL)
    {
        printf("\n打不开文件!\n");
        return;/*出错处理,退出函数*/
    }
    while(p!=NULL)
    {

        fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%f\t\n",p->num,p->bookname,p->name,p->no,p->ltd,p->time,p->money);
        p=p->next;
    }
    printf("保存完毕!\n");
    fclose(fp);
    for(;head->next!=NULL;)/*删除除头条目以外所有申请空间,释放链表空间*/
    {
        p=head->next;
        head->next=head->next->next;
        free(p);
    }
    free(head);/*释放头条目空间*/
}


void shuru()
 {
char a;


do
{
printf("\n请输入登录号:");
scanf("%d",&lib1[i].num);  
printf("\n请输入书名:");
scanf("%s",lib1[i].bookname);  
printf("\n请输入作者:");
scanf("%s",lib1[i].name);  
printf("\n请输入分类号:");
scanf("%d",&lib1[i].no);
printf("\n出版单位:");
scanf("%s",lib1[i].ltd);
printf("\n出版时间:");
scanf("%d",&lib1[i].time);  
printf("\n价格:");
scanf("%f",&lib1[i].money);
printf("\n继续输入另外一本书信息,请输入y\n返回主菜单按任意键结束\n");  
scanf("%s",&a);
i++;
}
while(a=='y' && i<=50);
save();
}







void xianshi()
{
int j;
for(j=0;j<i;j++)
printf("登录号为:%d\n书名:%s\n作者:%s\n分类号:%d\n出版单位:%s\n出版时间:%d\n价格:%.2f\n\n\n",
lib1[j].num,lib1[j].bookname,lib1[j].name,lib1[j].no,lib1[j].ltd,lib1[j].time,lib1[j].money);
}

void paixu() /*按分类号从大到小排序函数*/
{
int j,k;
int temp;
for(j=0;j<i;j++)
{
for(k=0;k<i-1-j;k++)
{
if(lib1[k].no<lib1[k+1].no)
{
temp=lib1[k].no;
lib1[k].no=lib1[k+1].no;
lib1[k+1].no=temp;
}
}
}
xianshi(); /*排序后输出*/
}

void chazhao()
{
int m;
char name[20],b;
do
{
printf("\n请输入想查找的书名:");
scanf("%s",&name);
for(m=0;m<i;m++)
{
if(strcmp(name,lib1[m].name)==0)
{
printf("\n\t您查找的书在第%d个位置找到了!!!\n",m+1);
break;
}
}
if(m>=20)
printf("\n\t没有找到这本书!!!\n");
else
{

printf("登录号:%d\n书名:%s\n作者:%s\n分类号:%d\n出版单位:%s\n出版时间:%d\n价格:%.2f\n\n\n",
lib1[m].num,lib1[m].bookname,lib1[m].name,lib1[m].no,lib1[m].ltd,lib1[m].time,lib1[m].money);
}

printf("\n继续输入另外一本书信息,请输入y\n返回主菜单按任意键结束\n");  
scanf("%s",&b);
}while(b=='y');


}

void shanchu()
{
char name[20],c;
int a,b;
do
{
printf("\n请输入要删除的书名:\n");  
scanf("%s",&name);
for(a=0;a<i;a++)
{
if(strcmp(name,lib1[a].name)==0) /*比较字符串的大小*/
break;
}

for(b=a;b<i;b++)
lib1[b]=lib1[b+1];
if(a>i)
printf("\t没有找到这本书!!!\n");

else
{
i--;
xianshi();
}

printf("\n是否继续删除另一本书信息?(y/n) ");  
scanf("%s",&c);
}
while(c=='y');

}


void charu()
{
shuru();
paixu();

}

void main() /*主函数*/
{
int change;
do{
system("cls");
printf("\t********************图书信息管理系统********************\n\n\n");
printf("\t\t\t  1: 输入图书信息\n");
printf("\t\t\t  2: 显示图书信息\n");
printf("\t\t\t  3: 查找图书信息\n");
printf("\t\t\t  4: 删除图书信息\n");
printf("\t\t\t  5: 插入图书信息\n");
printf("\t\t\t  6: 退出程序\n\n");
printf("请输入功能选项:");
scanf("%d",&change);
switch(change)
{
case 1:
shuru();save(); break;
case 2:
xianshi(); break;
case 3:
chazhao(); break;
case 4:
shanchu(); break;
case 5:
charu(); break;
case 6:
break;
}
getch();
}
while(change!=6);
}


[ 本帖最后由 genggood 于 2010-6-9 12:50 编辑 ]
搜索更多相关主题的帖子: 图书管理系统 
2010-06-09 00:46
快速回复:求助,大家帮我指出下面的错误,一个程序(图书管理系统),谢啦
数据加载中...
 
   



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

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