| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 578 人关注过本帖
标题:[求助]为什么这个程序不对,我找不出问题
取消只看楼主 加入收藏
moneyahx
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-4-25
收藏
 问题点数:0 回复次数:1 
[求助]为什么这个程序不对,我找不出问题

为什么这个程序不对,我找不出问题
#include<iostream.h>
struct worker
{int num;
int age;
int sex;
worker *next;
};
void create (worker * &head,worker *&p,int a=0)
{worker *s;
s=new worker;
cout<<"请输入编号"<<endl;
cin>>s->num;
cout<<"请输入年龄"<<endl;
cin>>s->age;
cout<<"请输入性别。1代表男,0代表女"<<endl;
cin>>s->sex;
if(head==NULL)
head=s;
else p->next=s;
p=s;
delete s;
s=new worker;
if(a)
{p->next=NULL;
delete s;
}
return;
}
void count(worker * &head)
{worker *p; int x,y;
if(head==NULL)
{cout<<"没人"<<endl;return;
}
else p=head;
do{if(p->sex) x++;
else y++;
p=p->next;
}while(p!=NULL);
cout<<"男职工数为"<<x<<"女职工数为"<<y<<endl;
return;
}
void show (worker * &head)
{worker *p=head;
if(head==NULL)
{cout<<"没人"<<endl;return;}
else
{do{cout<<"编号"<<p->num<<endl<<"年龄"<<p->age<<endl;
if(p->sex)cout<<"性别:男"<<endl;
else cout<<"性别:女"<<endl;
p=p->next;
}while(p!=NULL);
return;
}
}
void deleteworker (worker * &head,int m)
{worker *p,*q;
if(head==NULL)
{cout<<"没人"<<endl;return;}
if(head->num==m)
{p=head;
head=head->next;
delete p;
p=NULL;
return;
}
for(q=head,p=head;p->next;q=q->next)
{if(q->next->num==m)
{p=q->next;q=p->next;delete p;
p=NULL;
return;
}
}
cout<<"没这个人"<<endl;
return;
}
void set(worker * p,worker * &head1)
{worker *q=head1;
if(head1==NULL)
{head1=p;return;
}
q->next=p;
q=q->next;
return;
}
void move(worker * &head,worker * &head1)
{worker *p,*q;
if(head==NULL)
{cout<<"没人"<<endl;return;
}
p=head;
if(head->sex==1&&head->age>60||head->sex==0&&head->age>55)
{set(head,head1);
delete p;
p=new worker;
}
else
{for(p=head;p->next;)
{if(p->next->sex==1&&p->next->age>60)
{set(p->next,head1);q=p->next;p->next=q->next;
delete q;
q=new worker;
}
else if(p->next->sex==0&&p->next->sex>55)
{set(p->next,head1);q=p->next;p->next=q->next;
delete q;
q=new worker;
}
}
}
return;
}
void main()
{int m,n;
worker *head=NULL;
worker *follow=head;
worker *head1=NULL;
do
{cout<<"请选择你想要做的事,1为输出全部职工的信息;2为统计出男女职工的人数;3为输入新职工;4为删除某个职工;5为删除60岁以上男职工和55岁以上女职工,并存在另一个地方;0为退出."<<endl;
cin>>m;
switch(m)
{case 1:{show(head);break;}
case 2:{count(head);break;}
case 3:{create(head,follow);break;}
case 4:{cout<<"请输入你想删除的人"<<endl;
cin>>n;
deleteworker(head,n);break;}
case 5:{move(head,head1);break;}
case 0:{create(head,follow,0);break;}
}
}while(m);
}


搜索更多相关主题的帖子: head next include create 
2007-04-25 10:43
moneyahx
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-4-25
收藏
得分:0 

有懂的请帮一下拉,主要是create函数出的问题,我的QQ409282075。拜托了

2007-04-25 11:05
快速回复:[求助]为什么这个程序不对,我找不出问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016514 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved