printf(\兰州交通大学图书信息管理系统 \\n\
printf(\ printf(\
printf(\请输入选项(0--6) ||\\n\
printf(\ printf(\添加图书 2-删除图书 ||\\n\\n\ printf(\信息浏览 4-信息查询 ||\\n\\n\ printf(\修改图书 6-创建图书 ||\\n\\n\ printf(\ printf(\
功
printf(\ scanf(\
退出系统 ||\\n\ printf(\请输入所选择的序号:\ scanf(\ getchar();
system(\
switch(choice)//选择进入哪项功能:对图书的增删改查
{
case 0:
x=0;break;
case 1: head=load();//链头尾节点一致相同 即文件为空 if(head==NULL){ printf(\文件为空,请先录入数据!\\n\ getchar(); break;
}
else{
head=addbook(head);//链表的表头与新加入的内容相同 即添加成
printf(\添加成功!\\n\
是否将新信息保存到文件?(y/n)\\n\ getchar(); switch(a){ case 'n':
break;
case 'y':
fprint(head);
printf(\保存成功!\\n\ getchar();
break;
}
break; }
case 2:
head=load();//链头尾节点一致 即文件为空
if(head==NULL){
printf(\文件为空,请先录入数据!\\n\ getchar(); break; }
else{
deletebook(head);//执行删除
getchar();
break;
}
break;
case 3:
head=load();
if(head==NULL){//链头尾节点一致 即文件为空
printf(\文件为空,请先录入数据!\\n\ getchar(); break; }
else{
print_book(head);//执行浏览 getchar(); break; }
case 4:
head=load();
if(head==NULL){//链头尾节点一致 即文件为空
printf(\文件为空,请先录入数据!\\n\ getchar(); break;
}
else{
chaxun(head);//执行查询 getchar(); }
break;
case 5:
head=load(); if(head==NULL){//
break;
case 6:
printf(\ head=creatbook();// printf(\息?(y/n)\\n\ getchar();
链头尾节点一致 即文件为空 printf(\文件为空,请先录入数据!\\n\ getchar(); break; } else{ xiugai(head);//执行修改
getchar();
} break;
注意:输入图书编码为0时结束!\\n\
找到相同信息 询问是否替换
是否将输入的信息保存到文件以覆盖文件中已存在的信 scanf(\ getchar(); switch(a){ case 'n':
break;
case 'y':
fprint(head);//将链表写入文件 printf(\保存成功!\\n\ getchar(); break;
}
break;
default: printf(\您的输入有误,请重新输入!\\n\ getchar(); break; }
}
} break; default: printf(\您的输入有误! 请重新输入!\\n\ getchar(); break;
}
}
} ——本代码由 周 勇和王文模//录入数据并形成链表 struct book *creatbook() { struct book *head,*tail,*p;//声明数据链表 int num,time,n;
char bname[50],wname[20],press[50],sort[50]; float price;
int size=sizeof(struct book); head=tail=NULL;
printf(\请输入图书编号:\
scanf(\
printf(\请输入图书名:\ scanf(\
getchar();
printf(\请输入作者名:\ scanf(\
getchar();
printf(\请输入出版社:\ scanf(\ getchar();
printf(\请输入类别:\
scanf(\
设计 getchar();
printf(\请输入出版时间:\ scanf(\
getchar(); 从键盘中输入一个值
printf(\请输入价格:\ scanf(\
getchar();
while(1){
p=(struct book *)malloc(size); p->num=num;
strcpy(p->bname,bname);//赋值 把后者复制给前者 strcpy(p->wname,wname);//赋值 把后者复制给前者 strcpy(p->press,press);//赋值 把后者复制给前者 strcpy(p->sort,sort);//赋值 把后者复制给前者 p->time=time; p->price=price; p->next=NULL; if(head==NULL)
head=p;
else
tail->next=p;//赋值 将地址付给下一个 形成链
tail=p; do{
printf(\请输入图书编号:\
scanf(\
n=yanzheng(head,num);//验证添加的图书编号是否已存在 if(n==0)
break;
else
printf(\您输入的编号已存在,请重新输入!\\n\
}while(1);
if(num==0)
break;
else {
printf(\请输入图书名:\ scanf(\
C语言程序设计 - -图书信息管理系统



