#include<string>
using namespace std;
struct person
{
int num;
float salary;
person *next;
};
person * Createlist(void);
void printList(person *head);
person *ListDelet(person *head,int num);
person *ListInsert(person *head,person *ps);
void ListSearch (person *head,int num);
person *Createlist(void)
{
person *head;
person *rear;
person * p;
head =NULL;
int no;
cout<<"\n输入一个职工号,输入0结束.";
cin>>no;
while (no!=0)
{
p=new person;
p->num=no;
cout<<"\n输入一个职工的工资";
cin>>p->salary;
if(head==NULL)head=p;
else rear->next=p;
rear=p;
cout<<"\n输入一个职工号,输入0结束.";
cin>>no;
}
if(rear!=NULL)
rear->next=NULL;
cout<<"\n链表建立结束!";
return head ;
}
void printList(person *head)
{
person *p=head;
while (p!=NULL)
{
cout<<p->num<<" "<<p->salary<<endl;
p=p->next;
}
}
person *ListInsert(person *head,person *ps)
{
if(head==NULL)
{
head=ps;
cout<<head->num;
return head;
}
if(head->num>ps->num)
{
ps->next=head;
head=ps;
return head;
}
person *p,*q;
p=q=head;
while(p!=NULL&&p->num<ps->num)
{
q=p;
p=p->next;
}
q->next=ps;
ps->next=p;
return head ;
}
person *ListDelet(person *head,int num)
{
person *p,*q;
if(head->num==num)
{
p=head;
head=p->next;
delete p;
return head ;
}
q=p=head;
while(p!=NULL && p->num!=num)
{
q=p;
p=p->next;
}
if(p!=NULL)
{
q->next=p->next;
delete p;
return head;
}
cout<<num<<"is not found \n";
return head ;
}
int main ()
{
int sn, num;
person *head,ps;
for(;;){
cout<<" 职工信息管理系统\n";
cout<<"=====================================\n";
cout<<"1 职工信息链表的建立\n";
cout<<"2 职工信息链表结点的插入\n";
cout<<"3 职工信息链表结点的删除\n";
cout<<"4 职工信息链表结点的查询\n";
cout<<"5 职工信息链表的输出\n";
cout<<"0 退出职工信息管理系统\n";
cout<<" =====================================\n";
cout<<"请选择0-5: \n";
for(;;)
{
cin>>sn;
if(sn<0||sn>5)
cout<<"\n\t输入错误,重选0-5:";
else
break ;
}
switch (sn)
{
case 1:cout<<"职工信息链表的建立\n";
head=Createlist();
break;
case 2:cout<<"职工信息结点的插入\n";
cout<<"输入要插入的职工的工号及工资:";
cin>>ps.num>>ps.salary;
head=ListInsert(head,&ps);
break;
case 3:cout<<"职工结点的删除\n";
cout<<"输入要删除职工的工号:";
cin>>num;
head=ListDelet(head,num);
break;
case 4:
cout<<"职工结点的查询\n";
cout<<"输入要查询的职工 工号:";
cin>>num;
ListSearch(head,num);
break;
case 5:
printList(head);
break;
case 0:
cout<<"职工信息链表的输出\n";
printList(head);
return 0;
}
}
}
这个
void ListSearch (person *head,int num);函数该怎么写,num仅能是8位数字,如何变成11位,职工信息又如何被别的函数调用刚接触C++请各位高手指教
6 个解决方案
#1
8位变成11位?什么意思?职工信息作为参数传递给别人访问。
#2
员工号要能是11位数字的,怎样将职工信息作为参数传递给别人访问,请指教谢谢
#3
int型为32位,31位可用。
#4
如果你觉得int型满足不了你的要求,那你就换成char型数组来做。做参数传递你不会?int fun(int a)这里的a就是参数啊
#5
你指的是11数字还是数字的11位?你定义了int类型了,32位的!而且都是0,1数据组成,如果你指的的数据一共有11位,那就用字符类型存储,这样方便!!!!
#6
用字符数组存储吧
#1
8位变成11位?什么意思?职工信息作为参数传递给别人访问。
#2
员工号要能是11位数字的,怎样将职工信息作为参数传递给别人访问,请指教谢谢
#3
int型为32位,31位可用。
#4
如果你觉得int型满足不了你的要求,那你就换成char型数组来做。做参数传递你不会?int fun(int a)这里的a就是参数啊
#5
你指的是11数字还是数字的11位?你定义了int类型了,32位的!而且都是0,1数据组成,如果你指的的数据一共有11位,那就用字符类型存储,这样方便!!!!
#6
用字符数组存储吧