C语言 图书管理系统设计

这是一个使用C语言编写的图书管理系统,实现了数据输入、输出、书目查询、信息更改和删除等功能。系统通过链表存储图书信息,并将数据保存在文本文件中。用户可以根据作者或书目进行查询,对图书信息进行更新或删除。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define HEAD1 p->data.Register,p->data.Book_title,p->data.Writer,p->data.Class_num,p->data.Publisher,p->data.Publish_data,&p->data.Price
#define HEAD2 p->data.Register,p->data.Book_title,p->data.Writer,p->data.Class_num,p->data.Publisher,p->data.Publish_data,p->data.Price
#define TITLE1 "|  登录号  |  书目  |  作者  | 分类号 | 出版单位 | 出版时间 |  价格  |\n"
#define TITLE2 "|%10s|%8s|%8s|%8s|%10s|%10s|%8d|\n"
#define TITLE3 "----------------------------------------------------------------------\n"
#define MAX 10
struct book{
char Register[MAX];        /*登录号*/
char Book_title[MAX];      /*书目*/
char Writer[MAX];          /*作者*/
char Class_num[MAX];       /*分类号*/
char Publisher[MAX];       /*出版单位*/
char Publish_data[MAX];    /*出版时间*/
int Price;                /*价格*/
};


typedef struct node
{
struct book data;
struct node *next;
}Node,*Link;






/*数据输出*/
void Output(Link head)
{


Node *p;


p=head->next;
if(p==NULL)
{
  printf("\n文件为空\n");
  getchar();


return ;
}
printf(TITLE3);
printf(TITLE1);
while(p!=NULL)
{


printf(TITLE3);
printf(TITLE2,HEAD2);
p=p->next;
}
printf(TITLE3);




}






/*数据输入*/
void Input(Link head)     /*链表头做参数传入*/
{
int flag=1;         /*判断是否继续输入的变量*/
Node *p;
Node *ptr;
FILE *fp;
    Output(head);
fp=fopen("D:\\data.txt","a");
if(fp==NULL)
{
printf("file open error!");
        exit(0);
}
p=head;
ptr=p;



while(p->next!=NULL) 
{
   p=p->next;         /*将指针移至于链表最末尾*/
   ptr=p;
    }
while(flag)
{
p=(Node*)malloc(sizeof(Node ));

printf("输入图书信息:登录号,书名,作者,分类号,出版时间,出版商,价格:");
scanf("%s %s %s %s %s %s %d",HEAD1);
printf("\n是否继续输入(1.YES,0.NO)");
scanf("%d",&flag);


fprintf(fp," %s ",p->data.Register);      /*写入文件*/
fprintf(fp,"%s ",p->
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值