图书管理系统

#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>

struct Book
{
int Bianhao; //编号
char fenlei[10]; //分类
char Shuming[20]; //书名
char Zuozhe[15]; //作者
char Chubanshe[20]; //出版社
int Shuliang; //数量
float Jiage; //价格
};
typedef struct Book DataType; //定义DataType为int类型
typedef struct linknode //单链表存储类型
{
DataType data; //定义结点的数据域
struct linknode *next; //定义结点的指针域
}LinkList;
LinkList *head;

void DispList(LinkList*head);
LinkList InitList()
{ //初始化
head=(LinkList
)malloc(sizeof(LinkList));
head->next=NULL; //头节点指针域置空
return head;
}

void save()
{
FILE *fp;
LinkList *s=head->next;
fp = fopen(“计科62105_36_bk.txt”, “w”);
//写入文件
while(s!=NULL)
{
fprintf(fp,“%d %s %s %s %s %d %6.2f\n”,s->data.Bianhao,s->data.Chubanshe,s->data.fenlei,s->data.Jiage,s->data.Shuliang,s->data.Shuming,s->data.Zuozhe);
s=s->next;
}
printf(“保存成功!\n\n”);
fclose(fp);
}

void ReadFile()
{//读文件
FILE *fp;
LinkList Books,*s,*last;
last=head; //last始终指向尾结点,开始时指向头结点
//读取信息
if((fp=fopen(“JK62105_36_bk.txt”,“r”))==NULL)
{
printf(“图书信息文件打开错误!\n”);
return;
}
//标题栏
fscanf(fp,“%s %s %s %s %s %s %s\n”,Books.data.fenlei,Books.data.fenlei,Books.data.fenlei,Books.data.fenlei,Books.data.fenlei,Books.data.fenlei,Books.data.fenlei);
printf(“\n\n编号 分类 书名 作者 出版社 数量 单价\n”);
while(!feof(fp))
{
s=(LinkList *)malloc(sizeof(LinkList));/生成新结点/
fscanf(fp,“%d %s %s %s %s %d %f\n”,&s->data.Bianhao,s->data.fenlei,s->data.Shuming,s->data.Zuozhe,s->data.Chubanshe,&s->data.Shuliang,&s->data.Jiage);
printf(“%d %s %s %s %s %d %6.2f\n”,s->data.Bianhao,s->data.fenlei,s->data.Shuming,s->data.Zuozhe,s->data.Chubanshe,s->data.Shuliang,s->data.Jiage);
s->next=NULL; /将新结点的指针域为空/
last->next=s; /将新结点插入表尾/
last=s; /将last指针指向表尾结点/
}
printf(“\n\n图书信息读取成功!\n\n”);
fclose(fp);
//DispList(head);
}

void Search_Shuming(LinkList *head,char Name[20])
{//按书名查找
int x=1;
LinkList *p;
p=(LinkList *)malloc(sizeof(LinkList));
p=head->next;
printf(“请输入要查询的书名:”);
scanf(“%s”,Name);
while(p!&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值