我需要做一个C语言课程设计是图书管理系统 但有错误不会改,各位大神能帮我改改吗? 谢谢了

#include
#include
#include
/*********图书信息结构体*********/
/***包括登录号,书名,作者名,分类号,出版单位,出版时间,价格等***/
struct bookinf

{ int num; ///登录号

char bname[20];// 书名
char wname[10];//作者名
char clanum[14];//分类号
char pubcom[10];// 出版单位
char pubtime[10];// 出版时间
float price;//价格
};

/***显示主菜单信息模块***/

/***来到图书信息管理系统页面***/
void index()

{

char input; //运行时
printf("\n\n\t\t\t*****************************\n"); //直接进入
printf("\t\t\t图书信息管理系统\n"); //这个页面?
printf("\t\t\t*****************************\n\n\n");
printf("------------------------------------------\n");
printf("\t<按任意键进入>\n\t");
input=getchar();
}
/***管理员登陆进入功能菜单页面***/
FILE fp;
if ((fp=fopen("password.txt","r"))==NULL)

{
printf("\n\n\n\tCannot open file!\n\t");
return ;
}
else

{
do
{

printf("\n\n\t请输入管理员帐号:");

scanf("%s",name);

printf("\n\n\t请输入管理员密码:");
scanf("%s",password);
fp=fopen("password.txt","r");

fread(&pswd,sizeof(struct manage),1,fp);
fclose(fp);
w=strcmp(pswd.manage_name,name);
k=strcmp(pswd.password,password);
adm_servelist();
}
while (w!=0||k!=0);
adm_servelist();

}
/
来到功能菜单页面*/
void adm_servelist()
{
void book_add();
void book_view();
void change();
void del();
void book_search();
void login();
void pwchange();
int in;

char input;

do

{

printf("\n\n\n\t--欢迎使用信息管理系统--");
printf("\n\n\t1.图书信息录入\n");
printf("\t2.图书信息浏览\n");
printf("\t3.图书信息查询\n");
printf("\t4.图书信息删除\n");
printf("\t5.图书信息修改\n");
printf("\t6.退出管理模式\n");
printf("\n\t请选择服务种类:");
scanf("%d",&in);
if (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6)
{
printf("\n\t没有这项服务~\n");
printf("\t按任意键重新选择");
input=getchar();
}
}
while (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6);
switch (in)
{
case 1: book_add(); break;

case 2: book_view(); break;

case 3: book_search(); break;

case 4: del(); break;
case 5: change();break;
case 6: login(); break;
}
}
/*添加图书信息模块*/

void book_add()
{

void adm_servelist();
int i=0,j;
FILE fp;
char input;

struct bookinf books;

struct bookinf book_taxis[30];

printf("\n\n\n\t---请输入图书信息---\n\n");
printf("\t登录号:");
scanf("%d",&books.num);
printf("\n\t书名:");
scanf("%s",books.bname);
printf("\n\t作者名:");
scanf("%s",books.wname);
printf("\n\t分类号:");
scanf("%s",books.clanum);
printf("\n\t出版单位:");
scanf("%s",books.pubcom);
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.num==book_taxis[j].num)

{
printf("\n\n\n\t对不起,这个编号已经使用过了~\n");
printf("\t按任意键返回管理菜单~");
input=getchar();
adm_servelist();
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\n\n\t信息输入完毕~按任意键继续\n");
input=getchar();
adm_servelist();
}
/
显示所有图书信息模块*/
void book_view()
{
void adm_servelist();
void book_view();
int inp,i=0,n=0;
FILE *fp;
char input;
struct bookinf bookview[20];
if ((fp=fopen("book.txt","r"))==NULL)

{
printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n");
printf("\n\t<按任意键返回管理菜单>\n\t");
input=getchar();
adm_servelist();
}
else

{
do
{
fread(&bookview[i],sizeof(struct bookinf),1,fp);
i=i+1;
}
while (!feof(fp));
fclose(fp);

do

{
printf("\n\t--------共有%d条记录--------",i-1);
printf("\n\n\t登录号: %d\n",bookview[n].num);
printf("\n\t书名: %s\n",bookview[n].bname);
printf("\n\t作者名: %s\n",bookview[n].wname);
printf("\n\t分类号: %s\n",bookview[n].clanum);
printf("\n\t出版单位: %s\n",bookview[n].pubcom);
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:
{
adm_servelist();
break;
}
default:

{
printf("\n\t没有这项服务\n\t按任意键重新选择");
input=getchar();
}
}

}
while (inp!=3);
}
}
//修改图书信息模块:
void change(int x)
{
int inp,i=0,j;
void book_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)
book_search();
if (inp==1)

{
printf("\n\n\n\t---请输入图书信息---\n\n");
printf("\t登录号:");
scanf("%d",&books.num);
printf("\n\t书名:");
scanf("%s",books.bname);
printf("\n\t作者名:");
scanf("%s",books.wname);
printf("\n\t分类号:");
scanf("%s",books.clanum);
printf("\n\t出版单位:");
scanf("%s",books.pubcom);
printf("\n\t出版时间:");
scanf("%s",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.num==book_taxis[j].num)
{
printf("\n\n\n\t对不起,这个编号已经使用过了~\n");
printf("\t按任意键返回管理菜单~");
printf("0");
input=getchar();
book_search();

break;
}

for (j=x+1;j<i-2;j++)     
 if (books.num==book_taxis[j].num)
 {
  printf("\n\n\n\t对不起,这个编号已经使用过了~\n");
  printf("1");
  printf("\t按任意键返回管理菜单~");
  input=getchar();
  book_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();
book_search();

}
}
//删除图书信息模块
void del(int y)
{
char input;
FILE *fp;
int inp,i=0,j;
struct bookinf book_taxis[20];
void book_search();
void adm_servelist();
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)
book_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();
adm_servelist();

}
}
/*查询图书信息模块*/
void book_search()

{
void adm_servelist();
void id_search();
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();
adm_servelist();
}
else

{
do
{
printf("\n\n\n\t1.按图书登录号查询\n");
printf("\n\t2.按图书作者查询\n");
printf("\n\t3.按图书名查询\n");
printf("\n\t4.回到主菜单\n");
printf("\n\n\t请选择查询类别:");
scanf("%d",&inp);
if (inp!=1&&inp!=2&&inp!=3&&inp!=4)
{
printf("\n\n\t没有这项服务~\n\t按任意键重新选择~");
input=getchar();
}
}
while (inp!=1&&inp!=2&&inp!=3&&inp!=4);
fclose(fp);
switch (inp)
{
case 1: id_search(); break;
case 2: wr_search(); break;
case 3: bn_search(); break;
case 4: adm_servelist(); break;
}
}
}

(主要的错误是E:\大学\c语言\C语言课程设计\综合题.c(30) : error C2059: syntax error : 'if'
E:\大学\c语言\C语言课程设计\综合题.c(35) : error C2059: syntax error : 'else')

4个回答

你的第27行多了一个大括号,53行少了一个大括号(把27行的移到53行才对吧?)
而且还有别的错误:
40行的name没有声明过
42行的password也是
44行:pswd是啥?struct manage又是啥?
.....

else会和最近的未配对的if组合,你只需要加个括号阔起来就好了

应该是你的if else括号不配对造成的。根据编译器的错误提示自行修改下。

就是简单的语法逻辑错误,,不难

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐