编写了三百多行,运行不知道哪里出错了啊。编译后就不运行,显示有一个错误
对于你这个题目可以参考如下链接:
C++编写的一个图书管理系统
如果对你有帮助,可以给我个采纳吗,谢谢!!
错误代码发一下
#include<stdio.h>
#include<string.h>
//定义要管理的实体的结构体类型
struct tushu
{
char shuming[20];//书名
int shuhao;//图书编号,主键
int jiage;//价格
char zuozhe[20];//作者
char chubanshe[20];//出版社
char leibie[20];//类别
char jinkuliang[20];//进库量
};
//______________________________________________
//登录函数,判断用户是否合法
/*
函数功能:判断管理员是否是合法用户
函数名称:denglu
形参:char yonghuming[20],char mima[20]
返回值类型:int -1表示登录成功,合法;0-非法
作者:张三
*/
int denglu()
{
int i;
char yonghuming[20];
char mima[20];
int shifouhefa = 0;//默认是非法用户
for (i=0;i<3;i++)
{
printf("\t\t\t\t********************************\n");
printf("\t\t\t\t* *\n");
printf("\t\t\t\t* 图书信息管理系统 *\n");
printf("\t\t\t\t* *\n");
printf("\t\t\t\t********************************\n");
printf("请输入管理员用户名:");
scanf("%s",yonghuming);
prinntf("请输入管理员密码:");
scanf("%s",mima);
//预定管理员:abc 666
if(strcmp(yonghuming,"abc")==0 && strcmp(mima,"666")==0)
{
//密码和用户名都对了
shifouhefa = 1;//合法
break;
}
else
{
printf("密码或用户名错误!\n");
}
}
return shifouhefa;
}
//___________________________________________________-
//增加图书信息
/*
函数功能:往结构体数组中增加一个图书信息,同时,让图书的数量增1
函数名:zengjiatushuxinxi
形参:struct tushu ts[],int shuliang
返回值:int-增1后的图书数量
作者:张三
*/
int zengjiatushuxinxi(struct tushu ts[],int shuliang)
{
int i;
int bianhaoshifouchongfu;
while(1)
{
bianhaoshifouchongfu = 0;//不重复
printf("请输入图书的编号 :");
scanf("%d",&ts[shuliang].shuhao);
for(i=0;i<shuliang;i++)
{
if(ts[shuliang].shuhao == ts[i].shuhao)
{
//此编号重复了
bianhaoshifouchongfu = 1;
break;
}
}
if(bianhaoshifouchongfu == 1)
{
printf("此书号重复,请重新输入!\n");
}
else
{
break;
}
}
printf("请输入图书的书名:");
scanf("%s",ts[shuliang].shuming);
printf("请输入图书的价格:");
scanf("%d",&ts[shuliang].jiage);
printf("请输入图书的作者:");
scanf("%s",ts[shuliang].zuozhe);
printf("请输入图书的出版社:");
scanf("%s",ts[shuliang].chubanshe);
printf("请输入图书的类别:");
scanf("%s",ts[shuliang].leibie);
printf("请输入图书的进库量:");
scanf("%s",ts[shuliang].jinkuliang);
printf("图书信息录入成功!\n");
shuliang++;
return shuliang;
}
//________________________________________________
//遍历图书信息
/*
函数功能:从头到尾显示一遍图书信息
函数名:bianlitushuxinxi
形参:struct tushu ts[],int shuliang
返回值:void
作者:张三
*/
void bianlitushuxinxi(struct tushu ts[],int shuliang)
{
int i;
printf("书名\t书号\t价格\t作者\t出版社\t类别\t进库量\n");
for(i=0;i<shuliang;i++)
{
printf("%s\t%d\t%d\t%s\t%s\t%s\t%s\n",ts[i].shuming,ts[i].shuhao,ts[i].jiage,ts[i].zuozhe,ts[i].chubanshe,ts[i].leibie,ts[i].jinkuliang);
}
printf("遍历图书信息完成\n");
}
//______________________________________________________________
//查询图书信息
/*
函数功能:根据图书书号(唯一主键),查询图书信息
函数名:chaxuntushuxinxi
形参:struct tushu ts[],int shuliang
返回值:void
作者:张三
*/
void chaxuntushuxinxi(struct tushu ts[],int shuliang)
{
int i;
int yaochaxundetushushuhao;
int zhaodaodexiabiao;//找到的下标
zhaodaodexiabiao = -1;//-1表示找不到
printf("请输入要查询的图书书号:");
scanf("%d",&yaochaxundetushushuhao);
for(i=0;i<shuliang;i++)
{
if(yaochaxundetushushuhao == ts[i].shuhao)
{
//找到了
zhaodaodexiabiao = i;
break;
}
}
if(zhaodaodexiabiao == -1)
{
printf("此书不存在!\n");
}
else
{
printf("此书找到了,信息如下:\n");
printf("书名\t书号\t价格\t作者\t出版社\t类别\t进库量\n");
printf("%s\t%d\t%d\t%s\t%s\t%s\t%s\n",ts[zhaodaodexiabiao].shuming,ts[zhaodaodexiabiao].shuhao,ts[zhaodaodexiabiao].jiage,ts[zhaodaodexiabiao].zuozhe,ts[zhaodaodexiabiao].chubanshe,ts[zhaodaodexiabiao].leibie,ts[zhaodaodexiabiao].jinkuliang);
}
printf("查询图书信息结束!\n");
}
//_____________________________________________________________
//删除图书信息
/*
函数功能:根据图书书号(唯一主键),查询图书信息,并删除
函数名:shanchutushuxinxi
形参:struct tushu ts[],int shuliang
返回值:int
作者:张三
*/
int shanchutushuxinxi(struct tushu ts[],int shuliang)
{
int i;
int yaoshanchudetushushuhao;
int zhaodaodexiabiao;//找到的下标
zhaodaodexiabiao = -1;//-1表示找不到
printf("请输入要删除的图书书号:");
scanf("%d",&yaoshanchudetushushuhao);
for(i=0;i<shuliang;i++)
{
if(yaoshanchudetushushuhao == ts[i].shuhao)
{
//找到了
zhaodaodexiabiao = i;
break;
}
}
if(zhaodaodexiabiao == -1)
{
printf("此书不存在,删除失败!\n");
}
else
{
printf("此书找到了,信息如下:\n");
printf("书名\t书号\t价格\t作者\t出版社\t类别\t进库量\n");
printf("%s\t%d\t%d\t%s\t%s\t%s\t%s\n",ts[zhaodaodexiabiao].shuming,ts[zhaodaodexiabiao].shuhao,ts[zhaodaodexiabiao].jiage,ts[zhaodaodexiabiao].zuozhe,ts[zhaodaodexiabiao].chubanshe,ts[zhaodaodexiabiao].leibie,ts[zhaodaodexiabiao].jinkuliang);
printf("开始删除此书信息.....\n");
for(i=zhaodaodexiabiao;i<shuliang;i++)
{
//ts[i] = ts[i+1];
ts[i].shuhao = ts[i+1].shuhao;
strcpy(ts[i].shuming,ts[i+1].shuming);
ts[i].jiage = ts[i+1].jiage;
strcpy(ts[i].zuozhe,ts[i+1].zuozhe);
strcpy(ts[i].chubanshe,ts[i+1].chubanshe);
strcpy(ts[i].leibie,ts[i+1].leibie);
strcpy(ts[i].jinkuliang,ts[i+1].jinkuliang);
}
shuliang--;
}
printf("删除学生信息结束!\n");
return shuliang;
}
//_____________________________________________________
//修改图书信息
/*
函数功能:根据图书书号(唯一主键),查询图书信息,病修改除编号外的所有信息
函数名:xiugaitushuxinxi
形参:struct tushu ts[],int shuliang
返回值:void
作者:张三
*/
int xiugaitushuxinxi(struct tushu ts[],int shuliang)
{
int i;
int yaoxiugaideshuhao;
int zhaodaodexiabiao;//找到的下标
zhaodaodexiabiao = -1;//-1表示找不到
printf("请输入要修改的图书书号:");
scanf("%d",&yaoxiugaideshuhao);
for(i=0;i<shuliang;i++)
{
if(yaoxiugaideshuhao == ts[i].shuhao)
{
//找到了
zhaodaodexiabiao = i;
break;
}
}
if(zhaodaodexiabiao == -1)
{
printf("此书不存在,修改失败!\n");
}
else
{
printf("此书找到了,信息如下:\n");
printf("书名\t书号\t价格\t作者\t出版社\t类别\t进库量\n");
printf("%s\t%d\t%d\t%s\t%s\t%s\t%s\n",ts[zhaodaodexiabiao].shuming,ts[zhaodaodexiabiao].shuhao,ts[zhaodaodexiabiao].jiage,ts[zhaodaodexiabiao].zuozhe,ts[zhaodaodexiabiao].chubanshe,ts[zhaodaodexiabiao].leibie,ts[zhaodaodexiabiao].jinkuliang);
printf("开始修改图书信息....\n");
printf("请输入图书新的书名:");
scanf("%s",ts[zhaodaodexiabiao].shuming);
printf("请输入图书新的价格:");
scanf("%d",&ts[zhaodaodexiabiao].jiage);
printf("请输入图书新的作者:");
scanf("%s",ts[zhaodaodexiabiao].zuozhe);
printf("请输入图书新的出版社:");
scanf("%s",ts[zhaodaodexiabiao].chubanshe);
printf("请输入图书新的类别:");
scanf("%s",ts[zhaodaodexiabiao].leibie);
printf("请输入图书新的进库量:");
scanf("%s",ts[zhaodaodexiabiao].jinkuliang);
}
printf("修改图书信息结束!\n");
}
//________________________________________________
//关于我们
/*
函数功能:公式版权,开发者信息等等
函数名称:guanyuwomen
形参:无
返回值类型:void
作者:张三
*/
void guanyuwomen()
{
printf("copyright--------物联网专业\n");
printf("开发者----------张三\n");
}
//_________________________________________________
//显示管理系统的菜单
/*
函数功能:展示系统的菜单
函数名称:xianshizhucaidan
形参:struct tushu ts[],int shuliang
返回值类型:void
作者:张三
/
void xianshizhucaidan(struct tushu ts[],int shuliang )
{
int xuanze;
while(1)
{
printf("\t\t\t\t\n");
printf("\t\t\t\t* \n");
printf("\t\t\t\t 图 书 信 息 管 理 系 统 \n");
printf("\t\t\t\t \n");
printf("\t\t\t\t \n");
printf("\t\t\t\t *\n");
printf("\t\t\t\t*\n");
printf("\t\t\t\t 1——增加图书信息\n");
printf("\t\t\t\t 2——删除图书信息\n");
printf("\t\t\t\t 3——修改图书信息\n");
printf("\t\t\t\t 4——查询图书信息\n");
printf("\t\t\t\t 5——遍历图书信息\n");
printf("\t\t\t\t 6——关于我们\n");
printf("\t\t\t\t 7——退出系统\n");
printf("\t\t\t\t请输入您的选择(1-7):") ;
scanf("%d",&xuanze);
if(xuanze == 7)
{
break;
}
switch(xuanze)
{
case 1:
system("CLS");
shuliang = zengjitushuxinxi(ts,shuliang);
break;
case 2:
system("CLS");
shuliang = shanchutushuxinxi(ts,shuliang);
break;
case 3:
system("CLS");
xiugaitushuxinxi(ts,shuliang);
break;
case 4:
system("CLS");
chaxuntushuxinxi(ts,shuliang);
break;
case 5:
system("CLS");
bianlitushuxinxi(ts,shuliang);
break;
case 6:
system("CLS");
guanyuwomen();
break;
default :
printf("您的输入有误,请重新输入!\n");
}
}
}
//主函数-----程序的启动点
main()
{
//控制登录,不提供注册
if(denglu()==1)
{
system("CLS");
printf("进入图书管理系统\n");
struct tushu ts[100];
int shuliang = 0;
xianshizhucaidan(ts,shuliang);
}
system("CLS");
printf("系统退出,欢迎再次光临!");
}
//_________________________________________