读书人

求教几个异常解决的方法

发布时间: 2013-09-16 13:45:21 作者: rapoo

求教几个错误解决的方法


<<"\t 1.修改类型值 4.修改重量 7.修改生产日期\n"
<<"\t 2.修改品牌值 5.修改单价 8.修改产家名称\n"
<<"\t 3.修改型号值 6.修改数量 8.修改全部\n"
<<"********************************************\n"<<endl;
break;

case 4:
system("cls");
cout<<"********************************************\n"
<<"\t\t 1.按品牌查找所有该品牌类型 \n"
<<"\t\t 2.按品牌和型号查找确定的类型 \n"
<<"********************************************\n"<<endl;
break;
}
}

//读取文件创建链表
void Create_L(LinkList head)
{
ifstream fin("store.txt",ios::binary);//ios::binary:以二进制方式打开文件,缺省的方式是文本方式
if(fin==NULL)
{
cout<<"文件打开失败"<<ebdl;
return;
}
LinkList p;
p=head;
while(!fin.eof())//成员函数eof()用来检测是否到达文件尾,如果到达文件尾返回非0值,否则返回0。原型是int eof();该句表示未到达文件尾时
{
LinkList newNode=new Node;
fin.read((char*)newNode,sizeof(Node));//从文件中读取指定个整数,注意类型转换
if(newNode->kind<0)
{
continue;
}
newNode->next=null;
p->next=newNode;
p=p->next;
}
fin.close();
}

//比较p1和p2的品牌和类型的大小,为排序做准备
bool check(LinkList p1,LinkList p2)
{
if(p1->kind > p2->kind)
return true;
if(!strcmp(p1->brand, p2->brand))


return true;
return false;
}

//为修改和删除查找确定的商品结点
LinkList checkData(LinkList head,int n,LinkList &pre)
{
LinkList p=head;
pre=head;
while(p!=null)
{
if(p->kind==n)
{
//cout<<endl;
//output(p);
break;
}
pre=p;
p=p->next;
}
return p;

}

//为查找商品函数准备
void check_S(LinkList head,int m)
{

LinkList p = head;
int n, i = 0;
char brand[20];
char model[20];
showMenu(4);
cout<<"********************************************\n"<<endl;
cout<<"\t请输入你的选择: ";
cin>>n;
while(n<1 || n>5)
{
cout<<"\t输入错误(1-5)"<<endl;
cin>>n;
}
switch(n)
{
case 1:
cout<<"********************************************\n"<<endl;
cout<<"\t输入该类型的品牌: ";
cin>>brand;
while(p!=NULL)
{
if(p->kind==m && strcmp(p->brand,brand)==0)
{
cout<<endl;
output(p);
i++;
}


p = p->next;
}
if(i == 0)
cout<<"********************************************\n"<<endl
<<"\t\t\t该商品没有库存了! 快进货吧!"<<endl;
break;
case 2:
cout<<"********************************************\n"<<endl;
cout<<"\t输入该类型的品牌: ";
cin>>brand;
cout<<"\t输入该类型的型号: ";
cin>>model;
while(p!=NULL)
{
if(p->kind==m && strcmp(p->model,model)==0 && strcmp(p->brand,brand)==0)
{
cout<<endl;
output(p);
break;
}
p = p->next;
}
if(p == NULL)
cout<<"********************************************\n"<<endl
<<"\t\t\t该商品没有库存了! 快进货吧!"<<endl;
break;
}
}
//添加结点
void add_L(LinkList &head)
{
showMenu(1);
LinkList newNode=new Node;
cout<<"********************************************\n";
cout<<"类别: ";
cin>>newNode->kind;
while(newNode->kind<1||newNode->kind>5)
{
cout<<"\t输入错误(1-5)"<<endl;


cin>>newNode->kind;
}
if(newNode->kind>5||newNode->kind<1)
{
cout<<"********************************************\n"<<endl;
<<"\t我们没有这种货!";
return;
}
cout<<" 型号:";
cin>>newNode->model;
cout<<" 品牌:";
cin>>newNode->brand;
cout<<" 重量:";
cin>>newNode->weight;
cout<<" 单价:";
cin>>newNode->value;
cout<<" 数量:";
cin>>newNode->amount;
cout<<" 生产日期:";
cin>>newNode->date;
cout<<" 厂家名称:";
cin>>newNode->factory;
newNode->next=NULL:
LinkList pre,cur;
pre=head;
cur=head->next;
if(head->next==NULL)
{
head->next=newNode;
}
else
{
while(cur!=NULL&&check(newNode,cur))
{
pre=cur;
cur=cur->next;
}
newNode->next=cur;
pre->next=newNode;
}
cout<<"********************************************\n"<<endl;
cout<<"\n\n 新添加信息"<<endl;
output(newNode);
cout<<"********************************************\n";
cout<<"\t\t\t添加数据成功!"<<endl;
}

//保存到文件里面
void save_L(LinkList head)
{
ofstream fout("store.txt",ios::binary);
LinkList p;
p=head->next;


while(p!=NULL)
{
four.write((char*)p,sizeof(Node));
p=p->next;
}
fout.close();
}

//输出所有商品函数
void output(LinkList p)
{
cout<<"********************************************\n"<<endl;
cout<<"类别\t品牌\t型号\t重量\t单价\t数量\t生产日期\t厂家名称\n";
cout<<str[p->kind]<<"\t"<<p->brand<<"\t"<<p->model<<"\t"<<p->weight
<<"\t"<<p->value<<"\t"<<p->amount<<"\t"<<p->date<<"\t"<<p->factory<<endl;
cout<<"********************************************\n"<<endl;
}
//删除函数
void delete_L(LinkList head)
{
int n;
LinkList pre=NULL,p=NULL;
showMenu(1);
cout<<"********************************************\n"<<endl;
cout<<"输入你的选择:";
cin>>n;
while(n<1||n>5)
{
cout<<"\t输入错误(1-5)"<<endl;
cin>>n;
}
p=checkData(head,n,pre);
if(pre=NULL)
{
return;
}
char c;
cout<<"********************************************\n"<<endl;
cout<<"\t确定要删除(输入'y'/'n'):";
cin>>c;
if(c==Y||c==y)
{
pre-next=p->next;
delete p;
cout<<"********************************************\n";
cout<<"\t\t\t数据删除成功!"<<endl;
}
}

//删除所有商品
void delete_All(LinkList head)
{
LinkList p = head->next, r;
while(p!=NULL)
{
r = p->next;
delete p;
p = r;
}
head->next = NULL;
}

//商品信息修改函数
void modify_L(LinkList head)
{
int n, m;
LinkList pre = NULL, p = NULL;


showMenu(1);
cout<<"********************************************\n"<<endl;
cout<<" 输入你的选择: "; cin>>n;
while(n<1 || n>5)
{
cout<<"\t输入错误(1-5)"<<endl;
cin>>n;
}
p = checkData(head, n, pre);
if(p==NULL)
return;
showMenu(3);
cout<<"********************************************\n"<<endl;
cout<<" 输入你的选择: "; cin>>m;
cout<<"********************************************\n"<<endl;
switch(m)
{
case 1:
cout<<" 修改后的类型值: "; cin>>p->kind;
break;
case 2:
cout<<" 修改后的品牌值: "; cin>>p->brand;
break;
case 3:
cout<<" 修改后的型号值: "; cin>>p->model;
break;
case 4:
cout<<" 修改后的重量值: "; cin>>p->weight;
break;
case 5:
cout<<" 修改后的价值值: "; cin>>p->value;
break;
case 6:
cout<<" 修改后的数量值: "; cin>>p->amount;
break;
case 7:
cout<<" 修改后的生产日期: "; cin>>p->date;
break;
case 8:
cout<<" 修改后的厂家名称: "; cin>>p->factory;
break;
case 9:
cout<<" 修改后的类型值: "; cin>>p->kind;
cout<<" 修改后的品牌值: "; cin>>p->brand;
cout<<" 修改后的型号值: "; cin>>p->model;
cout<<" 修改后的重量值: "; cin>>p->weight;
cout<<" 修改后的价值值: "; cin>>p->value;
cout<<" 修改后的数量值: "; cin>>p->amount;
cout<<" 修改后的生产日期: "; cin>>p->date;
cout<<" 修改后的厂家名称: "; cin>>p->factory;
break;
}
cout<<"********************************************\n"<<endl;
cout<<"\t\t\t修改成功! 要记得保存!"<<endl;
}

//商品查找函数
void search_L(LinkList head)
{
int n;
LinkList pre = NULL;
showMenu(1);
cout<<"********************************************\n"<<endl;
cout<<" \t输入你的选择: "; cin>>n;
while(n<1 || n>5)
{
cout<<"\t输入错误(1-5)"<<endl;
cin>>n;
}
check_S(head, n);
}



//链表排序
void BubbleSort(LinkList head)
{
LinkList p, p1, p2, endpt;
p1 = head;

for(endpt=NULL; endpt!=head; endpt = p)
{
for(p=p1=head; p1->next->next!=endpt; p1=p1->next)
{
if(check(p1->next, p1->next->next))
{
p2 = p1->next->next;
p1->next->next = p2->next;
p2->next = p1->next;
p1->next = p2;
p = p1->next->next;
}
}
}
}


does?not?name?a?type
[解决办法]
引用:
单步调试吧!
都会跳到当前错误的地方的!


这是编译错误,单步什么?

struct_Node 这个结构体中间少了个空格。struct _Node
其余的也都是语法错误,你从哪拷来的还是照抄来的话,基本语法也得先掌握

读书人网 >C++

热点推荐