#include #include #include typedef struct{ char id[10]; char title[100]; char author[20]; int quantity; float price;}Book;const char filename[]="TS.TXT";void add(){ FILE *p; if((p=fopen(filename,"a"))==0){perror("无法打开文件");return; } Book b={"","","",0,0}; printf("输入书号:"); scanf("%s",b.id); printf("输入书名:"); scanf("%s",b.title); printf("输入作者:"); scanf("%s",b.author); printf("输入数量:"); scanf("%d",&(b.quantity)); printf("输入价格:"); scanf("%f",&(b.price)); fprintf(p,"%s %s %s %d %f\n",b.id,b.title,b.author,b.quantity,b.price); fclose(p);}void display(){ FILE *p; if((p=fopen(filename,"r"))==0){perror("无法打开文件");return; } Book b={"","","",0,0}; float total=0; printf("书号书名作者数量价格\n"); int i=fscanf(p,"%s %s %s %d %f",b.id,b.title,b.author,&(b.quantity),&(b.price)); while(i!=-1){printf("%s %s %s %d %f\n",b.id,b.title,b.author,b.quantity,b.price);total+=b.price*b.quantity;i=fscanf(p,"%s %s %s %d %f",b.id,b.title,b.author,&(b.quantity),&(b.price)); } printf("价格总和:%.2f\n",total); fclose(p);}void search(){ FILE *p; if((p=fopen(filename,"r"))==0){perror("无法打开文件");return; } Book b={"","","",0,0}; char id[10]; printf("输入书号:"); scanf("%s",id); int i=fscanf(p,"%s %s %s %d %f",b.id,b.title,b.author,&(b.quantity),&(b.price)); while(i!=-1){if(strcmp(b.id,id)==0) break;i=fscanf(p,"%s %s %s %d %f",b.id,b.title,b.author,&(b.quantity),&(b.price)); } if(strcmp(b.id,id)==0){printf("书号书名作者数量价格\n");printf("%s %s %s %d %f\n",b.id,b.title,b.author,b.quantity,b.price); } else printf("查无此书\n"); fclose(p);}int main(){ int c; do{printf("1.添加2.显示3.查询4.退出\n");printf("选择你的操作:");scanf("%d",&c);if(c==1) add();else if(c==2) display();else if(c==3) search();else if(c==4) break;else printf("非法操作,请重试\n"); }while(1); return 0;}
|