那位高手帮忙编一道C语言编程题

从键盘输入四位员工的信息到动态创建的线性单向链表中,然后通过访问该链表,将其中的所有节点中的员工信息存放到文件myfile.dat中,每位员工的信息如下:杜永宁软件部57... 从键盘输入四位员工的信息到动态创建的线性单向链表中,然后通过访问该链表,将其中的所有节点中的员工信息存放到文件myfile.dat中,每位员工的信息如下:
杜永宁 软件部 5760
王传华 销售部 3920
殷 冰 培训部 2940
杨柳青 软件部 5440
用户界面要有:输入员工信息,显示员工信息.保存员工信息,退出.
最好有注释!
展开
 我来答
玉运诚00w
2007-06-29 · TA获得超过130个赞
知道答主
回答量:240
采纳率:0%
帮助的人:0
展开全部
这里边有多种排序的方法,你可以直选其中一种或多种。
#include<iostream>
using namespace std;
#define Max 100
class Sample
{
int A[Max];
int n;
friend class process;
public:
Sample(){n=0;}
};
class process
{
void qsort(Sample &s,int l,int h);
public:
void getdata(Sample &s);
void insertsort(Sample &s);
void shellsort(Sample &s);
void bubblesort(Sample &s);
void quicksort(Sample &s);
void selectsort(Sample &s);
void disp(Sample &s);
};
void process::getdata(Sample &s)
{
int i;
cout<<"元素个数:";
cin>>s.n;
for(i=0;i<s.n;i++)
{
cout<<"输入第"<<i+1<<"个数据:";
cin>>s.A[i];
}
}
void process::insertsort(Sample &s) // 插入排序
{
int i,j,temp;
for(i=1;i<s.n;i++)
{
temp=s.A[i];
j=i-1;
while(temp<s.A[j])
{
s.A[j+1]=s.A[j];
j--;
}
s.A[j+1]=temp;
}
}
void process::shellsort(Sample &s) // 希尔排序
{
int i,j,gap,temp;
gap=s.n/2;
while(gap>0)
{
for(i=gap;i<s.n;i++)
{
temp = s.A[i];
j=i-gap;
while(j>=0 && s.A[j]>temp){
s.A[j+gap] = s.A[j];
j = j - gap;
}
s.A[j+gap] = temp;
}
gap=gap/2;
}
}
void process::bubblesort(Sample &s) // 冒泡排序
{
int i,j,temp;
for(i=0;i<s.n;i++)
for(j=s.n-1;j>=i+1;j--)
if(s.A[j]<s.A[j-1])
{
temp=s.A[j];
s.A[j]=s.A[j-1];
s.A[j-1]=temp;
}
}
void process::quicksort(Sample &s) // 快速排序
{
qsort(s,0,s.n-1);
}
void process::qsort(Sample &s,int l,int h)
{
int i=l,j=h,temp;
if(l<h)
{ temp=s.A[l];
do
{
while(j>i&&s.A[j]>=temp)
j--;
if(i<j)
{
s.A[i]=s.A[j];
i++;
}
while(i<j&&s.A[i]<=temp)
i++;
if(i<j)
{
s.A[j]=s.A[i];
j--;
}
}while(i<j);
s.A[i]=temp;
qsort(s,l,j-1);
qsort(s,j+1,h);

}
}
void process::selectsort(Sample &s) // 选择排序
{
int i,j,k,temp;
for(i=0;i<s.n;i++)
{
k=i;
for(j=i+1;j<=s.n-1;j++)
if(s.A[j]<s.A[k])
k=j;
temp=s.A[i];
s.A[i]=s.A[k];
s.A[k]=temp;
}
}
void process::disp(Sample &s)
{
for(int i=0;i<s.n;i++)
cout<<s.A[i]<<" ";
cout<<endl;
}
int main()
{
int sel;
Sample s;
process p;
p.getdata(s);
cout<<"原来序列:";
p.disp(s);
cout<<"0:插入排序 1:希尔排序 2:冒泡排序 3:快速排序 4:选择排序 其它退出"<<endl;
cout<<"选择排序方法:";
cin>>sel;
switch(sel)
{
case 0:
p.insertsort(s);
cout<<"插入排序结果:";
break;
case 1:
p.shellsort(s);
cout<<"希尔排序结果:";
break;
case 2:
p.bubblesort(s);
cout<<"冒泡排序结果:";
break;
case 3:
p.quicksort(s);
cout<<"快速排序结果:";
break;
case 4:
p.selectsort(s);
cout<<"选择排序结果:";
break;
}
p.disp(s);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
犹妍晨sQ
2007-06-29 · TA获得超过530个赞
知道答主
回答量:166
采纳率:0%
帮助的人:98.2万
展开全部
看样子你是学编程的,自己的事应该自己来做,而且像这样的问题比较有专业性,你应该去专业网站去请教才对,不应该在百度中发这样的东东啊.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式