#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct bookinf
{
char loginNo[10]; //登录号
char name[20]; //书名
char author[20]; //作者名
char classNo[10]; //分类号
char publisher[10]; //出版单位
char pubTime[20]; //出版时间
float price; //价格
};
/*********录入**********/
void add()
{
void menu();
void add();
int i=0,j;
FILE *fp;
char input;
struct bookinf books;
struct bookinf book_taxis[30];
printf("请输入图书信息\n");
printf("\t登录号:");
scanf("%d",books.loginNo);
printf("\n\t书名:");
scanf("%s",books.name);
printf("\n\t作者名:");
scanf("%s",books.author);
printf("\n\t分类号:");
scanf("%s",books.classNo);
printf("\n\t出版单位 :");
scanf("%s",books.publisher);
printf("\n\t出版时间:");
scanf("%s",books.pubTime);
printf("\n\t价格:");
scanf("%f",&books.price);
if((fp=fopen("book.txt","r"))==NULL)
{
do
{
fread(&book_taxis[i],sizeof(struct bookinf),1,fp);
i=i+1;
}
while(!feof(fp));
fclose(fp);
for(j=0;j<=i;j++)
if(books.loginNo==book_taxis[j].loginNo)
{
printf("对不起,这个编号已经使用过了\n");
printf("按任意键返回菜单\n");
input=getchar();
menu();
break;
}
}
if((fp=fopen("book.txt","r"))==NULL)
{
fp=fopen("book.txt","w");
}
else
{
fclose(fp);
fp=fopen("book.txt","a");
}
fwrite(&books,sizeof(struct bookinf),1,fp);
fclose (fp);
printf("信息输入完毕,请按任意按钮继续\n");
input=getchar();
menu();
}
/********录入*********/
/********浏览********/
void book_view()
{
FILE *fp;
void menu();
void book_view();
int n=0,inp,i=0;
char input;
char loginNo[10],name[20],author[20],classNo[10],publisher[10],pubTime[20];
float price=0;
struct bookinf bookview[20];
if((fp=fopen("book.txt","r"))==NULL)
{
printf("打开失败!");
printf("按任意键返回菜单\n\t");
input=getchar();
menu();
}
else
{
do
{
fread(&bookview[i],sizeof(struct bookinf),1,fp);
i=i+1;
}
while(!feof(fp));
fclose(fp);
do
{
printf("\n\t共有%d条记录\n",i-1);
printf("\n\n\t登录号:%d\n",bookview[n],loginNo);
printf("\n\t书名:%s\n",bookview[n],name);
printf("\n\t作者名:%s\n",bookview[n],author);
printf("\n\t分类号:%s\n",bookview[n],classNo);
printf("\n\t出版单位:%s\n",bookview[n],publisher);
printf("\n\t出版时间:%s\n",bookview[n],pubTime);
printf("\n\t价格 :%f\n",bookview[n],price);
printf("\n\n\t1.上一页\t2.下一些\t3.回目录\n");
printf("\n\t请选择");
scanf("%d",&inp);
switch(inp)
{
case 1:
{
if(n==0)
{
printf("\n\t已达到首页\n\t按任意键重新选择");
input=getchar();
}
else n=n-1;break;
}
case 2:
{
if(n==i-2)
{
printf("\n\t已达到最末页\n\t按任意键重新选择");
input=getchar();
}
else n=n+1;break;
}
case 3:
{
menu();
break;
}
default:
{
printf("\n\t没有这项服务\n\t请按任意键重新选择");
input=getchar();
}
}
}
while(inp!=3);
}
}
/*******浏览*******/
/************/
void bn_search()
{
struct bookinf books;
struct bookinf book_taxis[30];
int i,j;
FILE *fp;
void menu();
void book_view();
char loginNo[10],name[20],author[20],classNo[10],publisher[10],pubTime[20];
float price=0;
struct bookinf bookview[20];
printf("请输入想要查询的图书名");
scanf("%s",name);
if ((fp=fopen("book.txt","r"))!=NULL)
{
do
{
fread(&book_taxis[i],sizeof(struct bookinf),1,fp);
i=i+1;
}
while(!feof(fp));
fclose(fp);
for(j=0;j<=i;j++)
if(books.name==book_taxis[j].name)
{
printf("\n\n\t登录号:%d\n",bookview[j],loginNo);
printf("\n\t书名:%s\n",bookview[j],name);
printf("\n\t作者名:%s\n",bookview[j],author);
printf("\n\t分类号:%s\n",bookview[j],classNo);
printf("\n\t出版单位:%s\n",bookview[j],publisher);
printf("\n\t出版时间:%s\n",bookview[j],pubTime);
printf("\n\t价格 :%f\n",bookview[j],price);
break;
}
else {printf("该图书不存在");}
}
}
void wr_search()
{
struct bookinf books;
struct bookinf book_taxis[30];
int i,j;
FILE *fp;
void menu();
void book_view();
char loginNo[10],name[20],author[20],classNo[10],publisher[10],pubTime[20];
float price=0;
struct bookinf bookview[20];
printf("请输入想要查询的作者名");
scanf("%s",author);
if ((fp=fopen("book.txt","r"))!=NULL)
{
do
{
fread(&book_taxis[i],sizeof(struct bookinf),1,fp);
i=i+1;
}
while(!feof(fp));
fclose(fp);
for(j=0;j<=i;j++)
if(books.author==book_taxis[j].author)
{
printf("\n\n\t登录号:%d\n",bookview[j],loginNo);
printf("\n\t书名:%s\n",bookview[j],name);
printf("\n\t作者名:%s\n",bookview[j],author);
printf("\n\t分类号:%s\n",bookview[j],classNo);
printf("\n\t出版单位:%s\n",bookview[j],publisher);
printf("\n\t出版时间:%s\n",bookview[j],pubTime);
printf("\n\t价格 :%f\n",bookview[j],price);
break;
}
else {printf("该图书不存在");}
}
}
/**************/
/******查询******/
void search()
{
void menu();
void wr_search();
void bn_search();
char input;
FILE*fp;
int inp;
if((fp=fopen("book.txt","r"))==NULL)
{
printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n");
printf("\n\t<按任意键返回管理菜单>\n\t");
input=getchar();
menu();
}
else
{
do
{
printf("\n\t1.按图书作者查询\n");
printf("\n\t2.按图书名查询\n");
printf("\n\t3.回到主菜单\n");
printf("\n\n\t请选择查询类别:");
scanf("%d",&inp);
if(inp!=1&&inp!=2&&inp!=3)
{
printf("\n\n\t没有这项服务~\n\t按任意键重新选择~");
}
}
while (inp!=1&&inp!=2&&inp!=3);
fclose(fp);
switch (inp)
{
case 1:wr_search();break;
case 2:bn_search();break;
case 3:menu();break;
}
}
}
/*******查询*******/
/*******修改*******/
void change(int x)
{
int inp,i=0,j;
void search();
FILE*fp,*fp1;
char input;
struct bookinf books,book_taxis[20];
do
{
printf("\n\n\n\t注意:您确定要修改该记录吗?\n");
printf("\n\t1.是\t2.否\n");
printf("\n\t请输入:");
scanf("%d",&inp);
if(inp!=1&&inp!=2)
{
printf("\n\t对不起~没有这项服务~\n");
printf("\t按任意键重新选择\n\t");
input=getchar();
}
}
while(inp!=1&&inp!=2);
if(inp==2)
search();
if(inp==1)
{
printf("\n\n\n\t---请输入图书信息---\n\n");
printf("\t登录号:");
scanf("%d",&books.loginNo);
printf("\n\t书名:");
scanf("%d",&books.name);
printf("\n\t作者名:");
scanf("%d",&books.author);
printf("\n\t分类号:");
scanf("%d",&books.classNo);
printf("\n\t出版单位:");
scanf("%d",&books.publisher);
printf("\n\t出版时间:");
scanf("%d",&books.pubTime);
printf("\n\t价格:");
scanf("%f",&books.price);
if((fp1=fopen("book,txt","r"))!=NULL)
{
do
{
fread(&book_taxis[i],sizeof(struct bookinf),1,fp1);
i=i+1;
}
while(!feof(fp1));
fclose(fp1);
for(j=0;j<x;j++)
if(books.loginNo==book_taxis[j].loginNo)
{
printf("\n\n\n\t对不起,这个编号已经使用过了~\n");
printf("\t按任意键返回菜单管理~");
printf("0");
input=getchar();
search();
break;
}
for(j=x+1;j<i-2;j++)
if(books.loginNo==book_taxis[j].loginNo)
{
printf("\n\n\n\t对不起,这个编号已经使用过了~\n");
printf("1");
printf("\t按任意键返回菜单管理~");
input=getchar();
search();
break;
}
}
book_taxis[x]=books;
fp=fopen("book.txt","w");
for(j=0;j<i-1;j++)
fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);
fclose(fp);
printf("\n\n\t信息修改完成!按任意键返回");
input=getchar();
search();
}
}
/*******修改*******/
/*******删除*******/
void del(int y)
{
char input;
FILE*fp;
int inp,i=0,j;
struct bookinf book_taxis[20];
void search();
void menu();
do
{
printf("\n\n\n\t注意:您确定要删除该记录吗?\n");
printf("\n\t1.是\t2.否\n");
printf("\n\t请输入:");
scanf("%d",&inp);
if(inp!=1&&inp!=2)
{
printf("\n\t对不起~没有这项服务~\n");
printf("\t按任意键重新选择\n\t");
input=getchar();
}
}
while(inp!=1&&inp!=2);
if(inp==2)
search();
if(inp==1)
{
if((fp=fopen("book.txt","r"))!=NULL)
{
do
{
fread(&book_taxis[i],sizeof(struct bookinf),1,fp);
i=i+1;
}
while(!feof(fp));
fclose(fp);
}
if(i>2)
{
fp=fopen("book.txt","w");
for(j=0;j<y;j++)
fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);
fclose(fp);
fp=fopen("book.txt","a");
for(j=y+1;j<i-1;j++)
fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);
fclose(fp);
}
else
{
remove("book.txt");
}
printf("\n\n\t记录已删除!\n\n\t按任意键返回\n\t");
input=getchar();
menu();
}
}
/*******删除*******/
/*********菜单**********/
void menu()
{
void add();
void book_view();
void change();
void del();
void search();
int n;
printf("*********图书管理页面**********/");
printf("请输入需要执行的操作");
printf("1.录入图书信息");
printf("2.浏览图书信息");
printf("3.查询图书信息");
printf("4.修改图书信息");
printf("5.删除图书信息");
printf("6.退出系统");
scanf("%d",&n);
if(n=0&&n<=5)
{
switch(n)
{
case(1):add();break; /*录入*/
case(2):book_view();break; /*浏览*/
case(3):search();break; /*查询*/
case(4):change();break; /*修改*/
case(5):del();break; /*删除*/
case(6):break; /*退出*/
}
}
else printf("输入有误,请重新输入!");
}
/*********菜单**********/
void main()
{
menu();
}
提示del 与 change 函数路径错误,求问这么解决
要指明boot. txt 文件的路径吧
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632