求助!程序无法build!error LNK2001: fatal error LNK1120:
#include<iostream>
#include<string>
using namespace std;
typedef struct NodeUser//用户结点结构体
{
string AccountNum;//账号
string name;//用户名字
string id;//身份证
long int allmoney;//账户余额
NodeUser*next;//指向下一个结点的指针
};
class Menu//菜单类
{
public:
Menu();
void AddUser(); //销户
void DeleteUser(); //取钱
void DepositMoney(long int);//存钱
void DrawMoney(long int);
private:
NodeUser*headnode;//头结点
};
class NoMoney//异常类
{
public:
NoMoney();
};
void main()//主函数
{
int choice;//选择操作
long int money;
Menu manage;
do//选择退出前可持续选择
{
cout<<"1)开户"<<endl;
cout<<"2)销户"<<endl;
cout<<"3)存款"<<endl;
cout<<"4)取款"<<endl;
cout<<"5)退出"<<endl;
cout<<"请选择项目:";
cin>>choice;
system("CLS");//清屏
switch(choice)
{
case 1:manage.AddUser();break;
case 2:manage.DeleteUser();break;
case 3:manage.DepositMoney(money);break;
case 4:
try
{
manage.DrawMoney(money);
}
catch(NoMoney)
{
cout<<"账户金额小于取款金额,无法操作!"<<endl;break;
}
break;
case 5:break;
default:cout<<"输入错误,无法操作!"<<endl;break;
}
}
while(choice==1||choice==2||choice==3||choice==4);
}
Menu::Menu()//构造函数
{
headnode=new NodeUser;//为头结点分配内存
headnode->next=NULL;//初始化为空
}
void Menu::AddUser()//开户
{
NodeUser*node=new NodeUser;//为新结点分配内存空间
cout<<"请输入要开户的账户:";
cin>>node->AccountNum;
cout<<"请输入姓名:";
cin>>node->name;
cout<<"请输入身份证号:";
cin>>node->id;
cout<<"请输入开户金额:";
cin>>node->allmoney;
NodeUser*curNode;//定义两个结点用于搜索
NodeUser*preNode;
if(headnode->next==NULL)//每添加结点就把新结点放在头结点后
{
node->next=headnode->next;
headnode->next=node;
}
else//否则,若没添加新结点,就将结点放在最后
{
preNode=headnode;
curNode=preNode->next;
while(curNode!=NULL)
{
if(curNode->AccountNum==node->AccountNum)
{
cout<<"该账户已存在!\n";
return;
}
else
{
curNode=curNode->next;
}
}
if(curNode==NULL)//将结点放在头结点后
{
node->next=headnode->next;
headnode->next=node;
}
}
cout<<"开户成功!\n";
}
void Menu::DeleteUser()//销户
{
string AccountNum;
NodeUser*curNode;
NodeUser*preNode;
preNode=headnode;
curNode=preNode->next;
cout<<"请输入要销户的账户:";
cin>>AccountNum;//输入要删除的账号
if(curNode==NULL)//如果没有该账号
{
cout<<"该账户不存在!\n";
}
else//否则在链表中查找该账号
{
while(curNode!=NULL)
{
if(curNode->AccountNum==AccountNum)//如果找到了就删除
{
NodeUser*node=curNode;
preNode->next=curNode->next;
curNode=curNode->next;
delete node;
cout<<"销户成功!"<<endl;
return;
}
else//否则继续往后查找
{
preNode=curNode;
curNode=curNode->next;
}
}
if(curNode==NULL)
{
cout<<"该账户不存在!\n";
}
}
}
void Menu::DepositMoney(long int money)//存钱
{
string AccountNum;
cout<<"请输入账户:";
cin>>AccountNum;
NodeUser*curNode;
curNode=headnode->next;
while(curNode!=NULL)//在链表中查找
{
if(curNode->AccountNum==AccountNum)//如果找到了就输入存款金额
{
cout<<"账户当前余额为:"<<curNode->allmoney<<endl;
cout<<"请输入存款金额:";
cin>>money;
curNode->allmoney+=money;
cout<<"存款后账户余额为:"<<curNode->allmoney<<endl;
return;
}
else//否则继续往后查找
{
curNode=curNode->next;
}
}
if(curNode==NULL)
{
cout<<"该账户不存在!\n";
}
}
void Menu::DrawMoney(long int money)//取钱
{
string AccountNum;
cout<<"请输入账号:";
cin>>AccountNum;
NodeUser*curNode;
curNode=headnode;
while(curNode!=NULL)//在链表中查找该账号
{
if(curNode->AccountNum==AccountNum)
{
cout<<"账户当前余额为:"<<curNode->allmoney<<endl;
cout<<"请输入取款金额:";
cin>>money;
if(money>curNode->allmoney)
{
throw NoMoney();//如果取款金额大于账户余额,抛出一个异常
}
else
{
curNode->allmoney-=money;
cout<<"取款后账户余额为:"<<curNode->allmoney<<endl;
}
return;
}
else
{
curNode=curNode->next;
}
}
if(curNode==NULL)//没有这个账号
{
cout<<"该用户不存在!\n";
}
}
bank.obj : error LNK2001: unresolved external symbol "public: __thiscall NoMoney::NoMoney(void)" (??0NoMoney@@QAE@XZ)
Debug/bank.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.