#include<stdio.h>
#include<string.h> 
#include<stdlib.h>
#include<math.h>
typedef struct 
{ char    name[10];  //姓名
char    call[120]; //电话
char    name1[20]; //书名
char    numb[30];  //书号
}datatype;
typedef struct node 
{
datatype data;   
struct node * next; 
}listnode; 
typedef listnode * linklist; 
linklist head; 
listnode * p;
//图书馆用户信息的建立
linklist Create(int a ) 
{
linklist head=(listnode *)malloc(sizeof(listnode)); 
listnode *p,*q;
q=head;
while(a--)
{
p=(listnode *)malloc(sizeof(listnode));
printf("姓名  电话  书名  书号\n");
scanf("%s%s%s%s",p->data.name,p->data.call,p->data.name1,p->data.numb);
q->next=p;
q=p;
}
q->next=NULL;
return head;
}
//图书馆用户信息的添加 
void Add(linklist head,int b) 
{
listnode * m,* n,* p; 
m=head; 
n=m->next; 
while(n->next!=NULL) 
{
m=n; 
n=n->next; 
}
while(b--)
{
p=(listnode *)malloc(sizeof(listnode)); 
printf("姓名  电话  书名  书号\n");
printf("**********************\n"); 
scanf("%s%s%s%s",p->data.name,p->data.call,p->data.name1,p->data.numb);
n->next=p; 
n=p; 
}
n->next=NULL;
}
//按姓名查用户信息
listnode * Find(linklist head) 
{
listnode *p;
char name[10];
int i; 
printf("**********************\n");     
printf("**********************\n"); 
printf("姓名查,按1表示查:");
p=head->next; 
scanf("%d",&i);
if(i==1)
{
printf("请输入要查询的姓名:");
scanf("%s",&name);
while(p&&strcmp(p->data.name,name)>0)
p=p->next; 
if(p==NULL||strcmp(p->data.name,name)<0) 
p=NULL;
}
return p;
}
//按书名查宾馆信息
listnode * Find1(linklist head) 
{
listnode *p;
char name1[20];
int i; 
printf("**********************\n");   
printf("**********************\n");
printf("书名查,按1表示查:");
p=head->next; 
scanf("%d",&i);
if(i==1)
{
printf("请输入要查询的书名:");
scanf("%s",&name1);
while(p&&strcmp(p->data.name1,name1)>0)
p=p->next; 
if(p==NULL||strcmp(p->data.name1,name1)<0) 
p=NULL;
}
return p;
}
//按姓名信息的修改
void  Alter(linklist head)
{
listnode * p;
p= Find(head); 
if(p==NULL) 
{
printf("用户信息不存在.\n");
}
else
{
printf("姓名  电话  书名  书号\n");
scanf("%s %s %s %s\n",p->data.name,p->data.call,p->data.name1,p->data.numb);
printf("用户信息已经修改!");
}
}
//用户信息的删除
void Delete(linklist head)
{
int i;
listnode *p,*q;
p=Find(head);
if(p==NULL)
{
printf("信息不存在!\n");
return;
}
else
{
printf("要删除的话就按1:"); 
scanf("%d",&i); 
if(i==1) 
q=head; 
while(q!=NUL
c语言写入txt文件
L&&q->next!=p) 
q=q->next; 
q->next=p->next;
free(p);
printf("已删除信息!\n");
}
}
}
//宾馆信息的输出
void List(linklist head) 
listnode *p;
p=head;
printf("姓名  电话  书名  书号\n");
printf("**********************\n"); 
while(p->next!=NULL)
{
printf("%s %s %s %s\n",p->next->data.name,p->next->data.call,p->next->data.name1,p->next->data.numb);
p=p->next;
}
}
int Menu()
{
int i; 
printf("                                                                              \n");
printf("                                                                              \n");
printf("                              图书信息系统                                    \n"); 
printf("*******************************************************************************\n");
printf("*******************************************************************************\n");
printf("**                          1.用户信息的创建                                **\n"); 
printf("**                          2.用户信息的添加                                **\n"); 
printf("**                          3.用户姓名的查询                                **\n"); 
printf("**                          4.图书书名的查询                                **\n");
printf("**                          5.图书信息的修改                                **\n");
printf("**                          6.用户信息的删除                                **\n");
printf("**                          7.用户信息的输出                                **\n"); 
printf("**                          0.退出管理系统                                  **\n"); 
printf("*******************************************************************************\n");
printf("*******************************************************************************\n");
printf("                                                                              \n");
printf("                            请 选 择 0-7:"); 
for(;;) 
scanf("%d",&i);
printf("\n");
if(i<0||i>9) 
printf("                    输出错误,重选0-7:"); 
else 
break ;
}
return i;
}
//图书管理系统主函数部分
void  main() 
{
for(;;) 
{
switch(Menu()) 
{
case 1: 
printf("*********************************用户信息的建立*******************************\n");
int i;
printf("输入你想输入的数目:");
scanf("%d",&i);
head=Create(i); 
break; 
case 2: 
printf("********************************用户信息的添加********************************\n");
int a;
printf("输入你想添加的人数:");
scanf("%d",&a);
Add(head,a); 
break; 
case 3: 
printf("********************************用户姓名的查询**********************
*********\n"); 
p=Find(head); 
if(p!=NULL) 
{
printf("姓名  电话  书名  书号\n");
printf("**********************\n"); 
printf("%s %s %s %s\n",p->data.name,p->data.call,p->data.name1,p->data.numb);
printf("\n");
printf("**********************\n"); 
else 
printf("该用户信息不存在!"); 
break;
case 4:
printf("********************************图书书名的查询*******************************\n"); 
p=Find1(head); 
if(p!=NULL) 
{
printf("姓名  电话  书名  书号\n");
printf("**********************\n"); 
printf("%s %s %s %s\n",p->data.name,p->data.call,p->data.name1,p->data.numb);
printf("\n");
printf("**********************\n");
else 
printf("该用户信息不存在!"); 
break;
case 5:
printf("********************************图书信息的修改*******************************\n"); 
Alter(head); 
break;
case 6:
printf("******************************** 用户信息的删除*******************************\n"); 
Delete(head); 
break;
case 7: 
printf("*******************************用户信息的输出******************************\n");
List(head);
break;
case 0: 
printf("***********************************退出**************************************\n");
exit(0);
}
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。