struct reader
{
double ID;
char name[15];
char bid[15];
}reader;
typedef struct book
{
int kucun;
char bookid[15];
char bookname[15];
char author[15];
char bookconcern[15];
int price;
}stub;
stub book;
void main()
{
char ch;
ch=mainmenu();
switch(ch)
{
case '1':
maintushu();
break;
case '2':
mainjieyue();
break;
case '0':
printf("程序结束!");
system("cls");
break;
}
}
char mainmenu(void)
{
char menuselect;
system("cls");
printf("图书管理\n");
printf("1.图书信息\n");
printf("2.借阅图书\n");
printf("0.退出系统\n");
printf("请输入你的选择:");
do
{
printf("\n输入菜单(0--2):");
scanf("%c",&menuselect);
getchar();
} while(menuselect <'0' || menuselect >'2');
return menuselect;
}
void maintushu()
{
char m;
m=menutushu();
switch(m)
{
case '1':
savebook();
break;
case '2':
listbook();
break;
case '3':
deletebook();
break;
case '4':
addbook();
break;
case '5':
searchbook();
break;
case '0':
main();
break;
}
}
char menutushu()
{
char j;
system("cls");
printf("1.录入图书信息\n");
printf("2.显示图书信息\n");
printf("3.删除图书信息\n");
printf("4.增加图书信息\n");
printf("5.查询图书信息\n");
printf("0.返回上一层\n");
printf("请输入您的选择:");
do
{
printf("\n输入菜单(0--5):");
scanf("%c",&j);
getchar();
} while(j <'0' || j >'5');
return j;
}
void addbook()
{
FILE *fp;
char ch,*p,j[15];
int i;
fp=fopen("d:\\C语言程序设计实验\\C语言程序设计实验\\Booklnfo.txt","a");
if(fp==NULL)
{
printf("文件打开失败!\n");
return;
}
printf("请选择是否添加信息(y/n):");
ch=getchar();
while(ch=='y')
{
printf("请输入图书编号:");
do
{
i=0;
gets(j);
if(strcmp(j,book.bookid)==0)
{
i=1;
printf("该图书编号已存在,请重新输入:");
break;
}
}while(i==1);
printf("请输入图书库存\n");
scanf("%d",&book.kucun);
printf("请输入图书编号:\n");
scanf("%s",&book.bookid);
printf("请输入书名:\n");
scanf("%s",&book.bookname);
printf("请输入作者名:\n");
scanf("%s",&book.author);
printf("请输入出版社名:\n");
scanf("%s",&book.bookconcern);
printf("请输入价格:\n");
scanf("%d",&book.price);
getchar();
printf("继续输入信息吗(y/n)");
ch=getchar();
getchar();
}
fclose(fp);
printf("添加图书完成");
menutushu();
}
void searchbook()
{
char a;
a=searchmenu();
switch(a)
{
case '1':
searchid();
break;
case '2':
searchname();
break;
case '3':
searchauthor();
break;
case '0':
maintushu();
break;
}
}
char searchmenu(void)
{
char menue;
system("cls");
printf("1.按图书编号查询\n");
printf("2.按图书名查询\n");
printf("3.按作者查询\n");
printf("0.返回上一层\n");
printf("请输入你的选择:");
do
{
printf("\n输入菜单(0--3):");
scanf("%c",&menue);
getchar();
} while(menue<'0' ||menue>'3'); //不满足条件继续重新输入,满足条件跳出循环结构程序流程向下
return menue;
}
void searchid()
{
FILE *fp;
char i[15];
al:printf("请输入您要查询的图书编号:\n");
scanf("%d",&i);
getchar();
fp=fopen("Booklnfo.txt","r");
while(!feof(fp))
{
fread(&book,sizeof(book),1,fp);
if(strcmp(i,book.bookid)==0)
{
printf("找到图书目标\n");
printf("%d%12s%10s%15s%15s%7d\n",book.kucun,book.bookid,book.bookname,book.author,book.bookconcern,book.price);
getchar();
break;
}
else
{
printf("未查询到此书,请重新输入");
goto al;
}
}
fclose(fp);
system("cls");
searchmenu();
}
void searchname()
{
FILE *fp;
char i[15];
bl:printf("请输入您要查询的图书名:\n");
gets(i);
fp=fopen("Booklnfo.txt","r");
while(!feof(fp))
{
fread(&book,sizeof(book),1,fp);
if(strcmp(i,book.bookname)==0)
{
printf("要找到图书目标\n");
printf("%d%12d%10s%15s%15s%7d\n",book.kucun,book.bookid,book.bookname,book.author,book.bookconcern,book.price);
break;
}
else
{
printf("未查询到此书,请重新输入");
goto bl;
}
}
fclose(fp);
searchmenu();
}
void searchauthor()
{
FILE *fp;
char i[15];
cl: printf("请输入您要查询的作者:\n");
gets(i);
fp=fopen("Booklnfo.txt","r");
while(!feof(fp))
{
fread(&book,sizeof(book),1,fp);
if(strcmp(i,book.author)==0)
{
printf("要找到图书目标\n");
printf("%d%12s%10s%15s%15s%7d\n",book.kucun,book.bookid,book.bookname,book.author,book.bookconcern,book.price);
getchar();
break;
}
else
{
printf("未查询到此书,请重新输入");
goto cl;
}
}
fclose(fp);
searchmenu();
}
void deletebook()
{
char a[15];
int flag;
char ch;
FILE *fp1,*fp2;
do
{
if((fp1 = fopen("Booklnfo.txt","r")) == NULL)
{
printf("\n不能打开Booklnfo.txt文件");
getchar();
exit(1);
}
if((fp2 = fopen("temp.txt","w")) == NULL)
{
printf("\n不能打开temp.txt文件");
getchar();
exit(1);
}
printf("请输入要删除的图书编号:");
scanf("%d",&a);
flag = 0;
while(!feof(fp1))
{
fread(&book,sizeof(book),1,fp1);
if(strcmp(a,book.bookid)==0)
{
flag = 1;
}
else
{
fprintf(fp2,"%d%12s%10s%15s%15s%7d\n",book.kucun,book.bookid,book.bookname,book.author,book.bookconcern,book.price);
}
}
fclose(fp1);
fclose(fp2);
if(flag == 1)
{
remove("Booklnfo.txt");
rename("temp.txt","Booklnfo.txt");
printf("删除成功!\n");
}
else
{
printf("找不到该编号的图书信息");
remove("temp.txt");
}
printf("继续删除其他图书信息吗?(y/n)");
ch = getchar();
getchar();
}while(ch == 'y' || ch == 'Y');
menutushu();
}
void mainjieyue()
{
char l;
l=menujieyue();
switch(l)
{
case '1':
borrowbook();
break;
case '2':
chaxunbook();
break;
case '0':
main();
break;
}
}
char menujieyue()
{
char k;
system("cls");
printf("1.借阅图书\n");
printf("2.查询借阅图书\n");
printf("0.返回上一层\n");
printf("请输入您的选择:");
do
{
printf("\n输入菜单(0--2):");
scanf("%c",&k);
getchar();
}while(k<'0'||k>'2');
return k;
}
void borrowbook()
{
FILE * fp=NULL;
char ch;
fp=fopen("d:\\C语言程序设计实验\\C语言程序设计实验\\Sendlnfo.txt","a");
do
{
printf("请输入您的学号:");
scanf("%lf",&reader.ID);
printf("请输入你的姓名:");
scanf("%s",&reader.name);
fl: printf("请输入您所借阅的图书编号:");
scanf("%s",&reader.bid);
getchar();
if(book.bookid==reader.bid)
{
fprintf(fp,"%d%10s%15s\n",reader.ID,reader.name,reader.bid);
printf("\n是否继续输入新的借阅信息?\n");
printf("请选择(Y/N):");
ch=getchar();
}
else
{
printf("你所借阅的图书不存在,请重新输入图书编号!");
goto fl;
}
}while(ch=='Y'||ch=='y');
getchar();
fclose(fp);
menujieyue();
}
void chaxunbook()
{
FILE * fp=NULL;
char a;
double b;
fp=fopen("d:\\C语言程序设计实验\\C语言程序设计实验\\Sendlnfo.txt","r");
do
{
gl: printf("请输入您的学号:");
scanf("%lf",&b);
getchar();
if(b==reader.ID)
{
printf("%d%10s%15s\n",reader.ID,reader.name,reader.bid);
printf("\n是否继续查询新的借阅信息?\n");
printf("请选择(Y/N):");
a=getchar();
}
else
{
printf("你借阅的图书不存在,请重新输入图书编号!");
goto gl;
}
}while(a=='Y'||a=='y');
getchar();
fclose(fp);
menujieyue();
}补充:希望可以快一点,下午要交,十分感谢,
推荐回答
还没有选出推荐答案,请稍候访问或查看其他回答!