#include
typedef struct Books/*图书信息结构体*/ {
char bookName[21]; char auther[21];
char bookNumber[16]; char publisher[21]; int publitionTime; float price; int allNumber;
int availableNumber;
}Books;
void luru();/*录入函数*/ void liulan();/*浏览函数*/
void chaxunz();/*关键字搜索,如搜\线性代数\可用关键字\线代\int bijiao(char a[],char b[]);/*关键字查询主要靠该函数*/ void xiushan();/*修改删除函数*/ int main() {
printf(\ ========图书信息管理系统=======\\n\ int a;
char ch='y';
/*执行主循环*/
while((ch=='y')||(ch=='Y')) {
printf(\ ===============================\\n\ printf(\ *1_信息录入====*====2_信息浏览*\\n\ printf(\ *==============*==============*\\n\ printf(\ *3_信息查询====*====4_信息修删*\\n\ printf(\ ===============================\\n\ printf(\请选择需要的功能\\n\ scanf(\ switch(a) {
case 1:luru();break; case 2:liulan();break; case 3:chaxunz();break; case 4:xiushan();break;
default:printf(\输入错误\\n\ }
printf(\是否继续管理:y or n\\n\
scanf(\ scanf(\
} }
void luru() {
Books lurua; int c,b=0;
char fileName[31],*name=fileName; printf(\请输入管理图书文件名及路径\\n\ scanf(\ FILE *fp;
fp=fopen(name,\ if(fp==NULL)
printf(\错误请重新选择\\n\ else
printf(\请输入入库数量\\n\ scanf(\ while(b printf(\请输入第%d本图书书名\\n\ scanf(\ printf(\请输入第%d本图书作者名\\n\ scanf(\ printf(\请输入第%d本图书编号\\n\ scanf(\ printf(\请输入第%d本图书出版单位\\n\ scanf(\ printf(\请输入第%d本图书出版时间\\n\ scanf(\ printf(\请输入第%d本图书价格\\n\ scanf(\ printf(\请输入第%d本图书总数量\\n\ scanf(\ printf(\请输入第%d本图书可借出数量\\n\ scanf(\ fprintf( fp,\ookNumber,lurua.publisher,lurua.publitionTime,lurua.price,lurua.allNumber,lurua.availableNumber); b=b+1; } fclose(fp); } void liulan() { Books lurua; char fileName[31],*name=fileName; FILE *fp; printf(\请输入图书库文件及路径\\n\ scanf(\ fp=fopen(name,\ if(fp!=NULL) { printf(\书名\\t\\t\\t\\t作者\\t\\t编号\\t\\t出版单位\\t\\t\\t\\t出版时间\\t\\t价格\\t总数量\\t可借出数量\\n\ while(!feof(fp)) { fscanf(fp,\sher,&lurua.publitionTime,&lurua.price,&lurua.allNumber,&lurua.availableNumber); printf(\Number,lurua.publisher,lurua.publitionTime,lurua.price,lurua.allNumber,lurua.availableNumber); } } else { printf(\错误,请重新选择\\n\ } fclose(fp); } void chaxunz() { char filename[31]; printf(\请输入图书库文件名及路径(小于30个字符)\\n\ scanf(\ FILE *fp; fp=fopen(filename,\ Books book1; char ch='y'; int a; char duqu[21],wenjian[21]; /*查询次循环*/ while((ch=='y')||(ch=='Y')) { printf(\ *********************\\n\ printf(\ #1_按书名***2_按作者#\\n\ printf(\ *********************\\n\ printf(\请选择?\\n\ scanf(\ printf(\请输入关键词;\\n\ scanf(\ printf(\书名\\t\\t\\t\\t作者\\t\\t编号\\t\\t出版单位\\t\\t\\t\\t出版时间\\t\\t价格\\t总数量\\t可借出数量\\n\ switch(a) { case 1: { while(!feof(fp)) { fscanf(fp,\publisher,&book1.publitionTime,&book1.price,&book1.allNumber,&book1.availableNumber); strcpy(wenjian,book1.bookName); if((bijiao(duqu,wenjian))==1) printf(\ookNumber,book1.publisher,book1.publitionTime,book1.price,book1.allNumber,book1.availableNumber); } };break; case 2: { while(!feof(fp)) { fscanf(fp,\publisher,&book1.publitionTime,&book1.price,&book1.allNumber,&book1.availableNumber); strcpy(wenjian,book1.auther); if((bijiao(duqu,wenjian))==1) printf(\ookNumber,book1.publisher,book1.publitionTime,book1.price,book1.allNumber,book1.availableNumber); } };break; default:;break; } printf(\是否继续查询: y or n\ scanf(\ scanf(\ rewind(fp); } fclose(fp); } int bijiao(char a[],char b[]) { char cha[2],chb[2]; cha[0]=chb[0]='l'; cha[1]=chb[1]='\\0'; int i=0,n=0,k=0; cha[0]=a[0]; chb[0]=b[0]; while((cha[0]!='\\0')&&(chb[0]!='\\0')) { if((strcmp(cha,chb))==0) { i=i+1; k=k+1; } else { n=n+1; } cha[0]=a[i],chb[0]=b[i+n]; } i=0; while(a[i]!='\\0') i=i+1; if(i==k) return 1; else return 0; } void xiushan() {