C++编译出错 新手找不到错误点

tangyuelin 2010-04-21 09:53:21
#include <iostream.h>
#include<iomanip.h>
#include<string.h>
#include<stdlib.h>
struct tushu
{
char name[10];//图书名称
int number[10];//图书编号
char zuozhe[10];//作者
};
void menu();//主菜单
void find(tushu *st);//查找
void insert(tushu *st);//增加
void cast(tushu *st);//删除
void show(tushu *st);//输出
int jiaozheng(tushu st1,tushu *st);//校准图书编号是否重复
void menu()
{
cout<<"1)查找\n2)增加\n3)删除\n4)输出图书信息\n5)退出"<<endl;
}
void find(tushu *st)
{
char number1[10];
int flag=-1;
cout<<"请输入要查找的图书的编号"<<endl;
cin>>number1;
for(int i=0;i<5;i++)
if((strcmp(st.number.number1))==0)
{
flag=i;break;
}
if(flag!=-1)
{
cout<<"找到图书了"<<endl;
cout<<st[flag].number <<setw(5)<<st[flag].name <<setw(5);
cout<<st[flag].count <<setw(5)<<st[flag].price <<endl;
}
else
cout<<"没找到该图书"<<endl;
}
void insert(tushu *st)
{
tushu st1;
int k;
cout<<"请输入你插入图书的信息"<<endl;
cout<<"编号"<<endl;
cin>>st1.number;
if(jiaozheng(st1,st))
{
cout<<"图书名字"<<endl;
cin>>st1.name ;
cout<<"数量"<<endl;
cin>>st1.count ;
cout<<" 价格"<<endl;
cin>>st1.price ;
cout<<"进入增加功能"<<endl;
for(int i=0;i<5;i++)
if((strcmp(st.number,st1.number ))>0)
{
k=i; break;
}
for(int j=4;j>k;j--)
st[j]=st[j-1];
st[k]=st1;
cout<<"输入系统执行完毕!"<<endl;
show(st);
}
else
cout<<"对不起,你输入的图书编号已存在,系统自动跳回主菜单!"<<endl;
}
void cast(tushu *st)
{
char number1[12];
int flag=0;
cout<<"请输入你要删除的图书编号!"<<endl;
cin>>number1;
for(int i=0;i<5;i++)
if((strcmp(st.number ,number1))==0)
{
for(int j=i;j<4;j++)
st[j]=st[j+1];
cout<<j<<endl;
if(j==4)
}
strcpy(st[j].number ,"wu");
strcpy(st[j].name ,"wu");
st[j].count =0;
st[j].price =0;
}
flag=1;
break;
{
if(flag)
cout<<" 找个图书并成功栓出"<<endl;
else
cout<<"找不到要栓除图书的编号!"<<endl;
show(st);
}
void show(tushu *st)
{
cout<<"编号"<<" 图书名字"<<" 数量"<<" 价格"<<endl;
for(int i=0;i<5;i++)
{
cout<<st.number <<setw(8)<<st.name <<setw(8);
cout<<st.count <<setw(7)<<st.price <<endl;
}
}
int jiaozheng(tushu st1,tushu *st)
{
for(int i=0;i<5;i++)
if((strcmp(st1.number,st.number))==0)
return 0;
return 1;
}
void main()
{
int choice;
cout<<"*****************欢迎使用图书管理系统******************"<<endl;
tushu st[5]={{"000","数学",5,45},{"001","语文",4,78},{"002","英语",40,1},{"004","C++",74,5},{"wu","java",0,0}};
do
{
menu();
cin>>choice;
switch(choice)
{
case 1:
find(st);break;
case 2:
insert(st);break;
case 3:
cast(st);break;
case 4:
show(st);break;
case 5:
exit(0);
default:
cout<<"你输入非法,请重新输入!"<<endl;
}
}while(1);
}



以为下午要教作业 所以请大牛帮忙改正下
...全文
179 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ian_0126 2010-04-22
  • 打赏
  • 举报
回复
so long~~
ArmStronger 2010-04-21
  • 打赏
  • 举报
回复
这个也太多错误了吧,自己定义的结构体也有问题,下面有很多莫名的字段
cattycat 2010-04-21
  • 打赏
  • 举报
回复
把你的结构体定义int number[10]改成char number[10]吧。还有if((strcmp(st.number.number1))==0)改成if((strcmp(st.number,number1))==0)

其他的慢慢找吧
Markerhao 2010-04-21
  • 打赏
  • 举报
回复
很明显,是学校的节课联系嘛,嘿嘿,以前学c的时候最后也是做这个类似的东西,告诉楼主点窍门,你加一点老师没讲过的(自己弄明白,以防老师怀疑不是你自己做的),如果老师又注意到,肯定会的高分的,例如清屏代码的小东西
pengzhixi 2010-04-21
  • 打赏
  • 举报
回复
你这个错误太多了,int number[10];你都可以直接cin>>str1.number;你叫别人怎么改
还有strcmp是用来比较字符串的,你将number传进去干嘛呢?
jw_pang 2010-04-21
  • 打赏
  • 举报
回复
你怎么在乱写啊,连C++语法都还不会。要认真学啊
tushu *st;
st->XX,不是st.XX
还有一大堆的错误,不忍心看下去了
liu3xing3long 2010-04-21
  • 打赏
  • 举报
回复
如上。。。过来打酱油的。。
赵4老师 2010-04-21
  • 打赏
  • 举报
回复
if((strcmp(st.number.number1))==0)
改为
if((strcmp(st[i].number,number1))==0)
再编译下试试。

wade_2003 2010-04-21
  • 打赏
  • 举报
回复
错误太多,但我发现都是简单基本错误,标注几处,LZ再仔细看看

#include <iostream.h>
#include<iomanip.h>
#include<string.h>
#include<stdlib.h>
struct tushu
{
char name[10];//图书名称
int number[10];//图书编号
char zuozhe[10];//作者
};
void menu();//主菜单
void find(tushu *st);//查找
void insert(tushu *st);//增加
void cast(tushu *st);//删除
void show(tushu *st);//输出
int jiaozheng(tushu st1,tushu *st);//校准图书编号是否重复
void menu()
{
cout<<"1)查找\n2)增加\n3)删除\n4)输出图书信息\n5)退出"<<endl;
}
void find(tushu *st)
{
char number1[10];
int flag=-1;
cout<<"请输入要查找的图书的编号"<<endl;
cin>>number1;
for(int i=0;i<5;i++)
if((strcmp(st->number.number1))==0) //只有一个参数
{
flag=i;break;
}
if(flag!=-1)
{
cout<<"找到图书了"<<endl;
cout<<st[flag].number <<setw(5)<<st[flag].name <<setw(5);
cout<<st[flag].count <<setw(5)<<st[flag].price <<endl;
}
else
cout<<"没找到该图书"<<endl;
}
void insert(tushu *st)
{
tushu st1;
int k;
cout<<"请输入你插入图书的信息"<<endl;
cout<<"编号"<<endl;
cin>>st1.number;
if(jiaozheng(st1,st))
{
cout<<"图书名字"<<endl;
cin>>st1.name ;
cout<<"数量"<<endl;
cin>>st1.count ;
cout<<" 价格"<<endl;
cin>>st1.price ;
cout<<"进入增加功能"<<endl;
for(int i=0;i<5;i++)
if((strcmp(st.number,st1.number ))>0) // 错误
{
k=i; break;
}
for(int j=4;j>k;j--)
st[j]=st[j-1];
st[k]=st1;
cout<<"输入系统执行完毕!"<<endl;
show(st);
}
else
cout<<"对不起,你输入的图书编号已存在,系统自动跳回主菜单!"<<endl;
}
void cast(tushu *st)
{
char number1[12];
int flag=0;
cout<<"请输入你要删除的图书编号!"<<endl;
cin>>number1;
for(int i=0;i<5;i++)
if((strcmp(st.number ,number1))==0)
{
for(int j=i;j<4;j++)
st[j]=st[j+1];
cout<<j<<endl;
if(j==4)
}
strcpy(st[j].number ,"wu");
strcpy(st[j].name ,"wu");
st[j].count =0;
st[j].price =0;
}
flag=1;
break;
{
if(flag)
cout<<" 找个图书并成功栓出"<<endl;
else
cout<<"找不到要栓除图书的编号!"<<endl;
show(st);
}
void show(tushu *st)
{
cout<<"编号"<<" 图书名字"<<" 数量"<<" 价格"<<endl;
for(int i=0;i<5;i++)
{
cout<<st.number <<setw(8)<<st.name <<setw(8);
cout<<st.count <<setw(7)<<st.price <<endl;
}
}
int jiaozheng(tushu st1,tushu *st)
{
for(int i=0;i<5;i++)
if((strcmp(st1.number,st.number))==0)
return 0;
return 1;
}
void main()
{
int choice;
cout<<"*****************欢迎使用图书管理系统******************"<<endl;
tushu st[5]={{"000","数学",5,45},{"001","语文",4,78},{"002","英语",40,1},{"004","C++",74,5},{"wu","java",0,0}};
do
{
menu();
cin>>choice;
switch(choice)
{
case 1:
find(st);break;
case 2:
insert(st);break;
case 3:
cast(st);break;
case 4:
show(st);break;
case 5:
exit(0);
default:
cout<<"你输入非法,请重新输入!"<<endl;
}
}while(1);
}
xiaozhi5855 2010-04-21
  • 打赏
  • 举报
回复
作业题目还是自己做好,几十行代码或者上百行代码就可以完成,如果有问题,自己调试

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧