首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求教几个异常解决的方法

2013-09-16 
求教几个错误解决的方法\t 1.修改类型值 4.修改重量 7.修改生产日期\n\t 2.修改品牌值 5.修改单价

求教几个错误解决的方法


            <<"\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
其余的也都是语法错误,你从哪拷来的还是照抄来的话,基本语法也得先掌握

热点排行