急~我的c++程序到底错在哪里?

来源:百度知道 编辑:UC知道 时间:2024/07/07 04:50:36
急求,我的程序到底哪里出错了?
0 error,0 warning,但不能运行,请高手帮我们调试一下,万分感谢!
用的是Visual C++软件和C++面向对象程序设计的内容。
我知道看起来会很费时间,但如果帮我改好了,我会再加分的!!!

题目是:
写一个程序,从一个文件中读取和一个公司的员工有关的信息。文件中的信息按照salary(工资)排序。工资最高的员工列于顶部。程序首先应该读取输入文件的内容,创建一个链表来存储内容,然后显示原始列表。
随后,它会从列表中删除ID为444444444的员工,并重新显示列表。程序的最后一步是在列表中插入3个新员工,并以工资降序显示最终的结果。下面是三个新员工的信息。
Last Name First Name ID Phone Salary
=========== ========== ======= ======= =====
Wood Carpenter 333556666 222-222-2222 40000
Ironman Iron 444444444 828-888-8888 73000
Goal-keeper Martin 777777777 828-666-8888 86000

下面是输入文件的内容:
Doe John 555555555 333-333-3333 85000
Doe Jan 444444444 333-333-3333 75000
Hardworker John 888888888 888-888-8888 75000
Programmer Travis 555446666 666-666-6666 45000

输出:
原始列表
Last Nam

少用malloc,多用new,尤其是新手,每次用一个指针之前,想想你给他分配内存没有
大致改了改,显示输出还有些乱,自己调整吧
另外,arrange之后没显示?不管怎样,改好了,链表节点的交换跟变量的交换可不一样

#include <stdio.h>
#include <conio.h>
#include <cstdlib>
#include <malloc.h>
#include <string>
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

struct Node /*定义一个结构体作为节点*/
{string Lname;
string Fname;
long ID;
string Phone;
long Salary;
struct Node* next;
};

typedef Node* NodePtr;

NodePtr Original(NodePtr& head);
void Delete(NodePtr& head,long t);
void Add(NodePtr& head);
void Arrange(NodePtr& head);

NodePtr Original(NodePtr& head)/*显示原始数据*/
{using namespace std;
ifstream in_stream;
NodePtr p,q,i;
q=head;
in_stream.open("C:\\a.txt");
if(in_stream.fail())
{cout<<&q