注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

告别迷茫

梦想与现实的差距,就是我们生活的意义。因为我们有差距,我们才会一直积累,在努力。

 
 
 

日志

 
 

图书管理系统----还不是很完善--有借鉴--好久没有编程了-倍感压力  

2014-09-13 14:13:34|  分类: 短学期程序实践 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int n;/*书本的数量*/
struct library
{
char isbn[30];
char author[30];
char name[30];
int price ;
int number;
} bookin[30];
void add();/*1.添加图书 */
void del();/*2.删除图书 */
void search();/* 4.查询图书*/
void count();/*5.统计图书*/
void modify(); /*3.修改图书*/
void save();/*保存我们的book.txt的*/
int main()
{
int a;
while(1)
{
printf(" 欢迎登陆图书管理系统 \n");
printf("**************************\n");
printf("* 1.添加图书 2.删除图书 * \n");
printf("* 3.修改图书 4.查询图书 *\n");
printf("* 5.统计图书 6.退出系统 *\n");
printf("**************************\n");
printf("请输入你的选择\n");
scanf("%d",&a);
switch(a)
{
case 1:add();break;
case 2:del();break;
case 3:modify();break;
case 4:search();break;
case 5:count();break;
case 6:exit(1);
default:printf("你的输入有误,请从新输入\n");
}

}
return 0;
}
void add()
{
int i;
printf("请输入你要添加的书本数\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("ISBN:\n");
scanf("%s",bookin[i].isbn);
printf("书本名称:\n");
scanf("%s",bookin[i].name);
printf("书的作者:\n") ;
scanf("%s",bookin[i].author);
printf("书的数量:\n") ;
scanf("%d",&bookin[i].number);
printf("书的价格:\n") ;
scanf("%d",&bookin[i].price);
if(n!=1)
{
printf("请输入需要添加的第%d本书\n",i+2);
}


}
save();/*保存数目的信息在我们的book.txt上*/
return ;

}
void del()
{
int i,tn;
FILE *fp,*fp1;
if((fp=fopen("book.txt","r"))==NULL)
{
printf("文件打开不成功\n");
return;
}
char bookname[30];
printf("输入你要删除的书名:\n");
scanf("%s",bookname);
for(i=0;fread(&bookin[i],sizeof(struct library),1,fp)!=NULL;i++)
{
if(strcmp(bookin[i].name,bookname)==0)
{
fclose(fp);
fp=fopen("book.txt","r");
fp1=fopen("book1.txt","w");
for(i=0;fread(&bookin[i],sizeof(struct library),1,fp)!=NULL;i++)
{

if(strcmp(bookin[i].name,bookname)==0)
{
continue;
}
fwrite(&bookin[i],sizeof(struct library),1,fp1);
}
fclose(fp);
fclose(fp1);
fp=fopen("book.txt","w");
fp1=fopen("book1.txt","r");
for(i=0;fread(&bookin[i],sizeof(struct library),1,fp1);i++)
{
fwrite(&bookin[i],sizeof(struct library),1,fp);
}
fclose(fp);
fclose (fp1);
fp1=fopen("book1.txt","w");
fclose(fp1);
printf("删书成功\n");
return;
}
printf("此书不再我们的图书馆中\n");
}

}
void search()
{
int i;
FILE *fp;
if((fp=fopen("book.txt","r"))==NULL)
{
printf("文件不能打开\n");
return ;
}
char bookname[30];
printf("请输入我们要查询的书名:\n");
scanf("%s",bookname);
for(i=0;fread(&bookin[i],sizeof(struct library),1,fp)!=NULL;i++)
{
if(strcmp(bookin[i].name,bookname)==0)
{
if(bookin[i].number!=0)
{
printf("这本书的详细资料是:书名:%s\n作者:%s\n价格:%d\n 数量:%d\n",bookin[i].name,bookin[i].author,bookin[i].price,bookin[i].number);

}
else
{
printf("这本书已经被借出去了\n");
fclose(fp);
return;
}
fclose(fp);
return;

}
}
printf("没有你要查询的书籍\n");
fclose(fp);
return ;
}
void count()
{
int totalprice=0,totalnumber=0;
int i;
FILE *fp;
if((fp=fopen("book.txt","r"))==NULL)
{
printf("打开文件失败\n");
return;
}
for(i=0;fread(&bookin[i],sizeof(struct library),1,fp)!=NULL;i++)
{
totalprice+=bookin[i].price*bookin[i].number;
totalnumber+=bookin[i].number;
}
printf("图书的总册:%d\n 图书的总金额:%d\n",totalnumber,totalprice);
return;
}
void modify()
{
int i;
n=0;
char b;
char bookname[30];
FILE *fp;
if((fp=fopen("book.txt","r+"))==NULL)
{
printf("无法打开文件\n");
return;
}
while(!feof(fp))/*feof 为文件结尾的函数,如果到了结尾返回1*/
{
fread(&bookin[n],sizeof(struct library),1,fp);
n++;
}
printf("输入您要修改图书的书名:\n");
scanf("%s",bookname) ;
for(i=0;i<n;i++)
{
if(strcmp(bookin[i].name,bookname)==0)
{
printf("你确定要修改此书信息?Y or N\n");
scanf("%s",&b);
if(b=='y'||b=='Y')
{
printf("这本书的详细资料是:\n书名:%s\n作者:%s\n价格:%d\n数量:%d\n",bookin[i].name,bookin[i].author,bookin[i].price,bookin[i].number);
printf("请输入你要修改的信息:\n");
printf("ISBN:\n");
scanf("%s",bookin[i].isbn);
printf("书名:\n");
scanf("%s",bookin[i].name);
printf("作者:\n");
scanf("%s",bookin[i].author);
printf("数量:\n");
scanf("%d",&bookin[i].number);
printf("价格:\n");
scanf("%d",&bookin[i].price);
break;
}


}
}
if(i==n) printf("没有找到你要修改的书本\n");
else
{
save();
}
return;

}
void save()
{
FILE *fp;
int i;
if((fp=fopen("book.txt","r+"))==NULL)
{
printf("无法打开文件\n");
return;
}
for(i=0;i<n;i++)
{
if(fwrite(&bookin[i],sizeof(struct library),1,fp)!=1)
{
printf("文件写入错误\n");
}
}
fclose(fp);
//printf("文件读入成功\n");
return;

}

图书管理系统----还不是很完善--有借鉴--好久没有编程了-倍感压力 - 983433479 -  告别迷茫
 
  评论这张
 
阅读(18)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016