vs 2008的配置问题!!!
前天将vs05改成了08,
在运行下列程序的时后报错:
#include<iostream>
#include<fstream>
#include<string>
#include<stdlib>
using namespace std;
#define N 40
int rec;
int f=0;
class TS
{
private :
char num[20];
char name[10];
double gongzi;
double jintie;//津贴
int index;
int month;//月份
double gangtie;//岗贴
double butie;//补贴
double fangtie;//房帖
double jiaotong;//交通费
double yingfa;//应发数
double fangzu;//房租
double chuxu;//储蓄
double huifei;//会费
double personfee;//个人所得税
double yingkou;//应扣数
double shifa;//实发数
public:
TS ( ){ }
TS (char *hs,int yf,char *xm,double gz,double jj,double gt,double bt,double ft,double jt,double fz,
double cx, double hf)
{
strcpy (num,hs);
strcpy(name ,xm);
month=yf;
gongzi=gz;
jintie=jj;
gangtie=gt;
butie=bt;
fangtie=ft;
jiaotong=jt;
fangzu=fz;
chuxu=cx;
huifei=hf;
if(gongzi<800)
{
personfee = 0 ;
}
if( (gongzi<2000) && (gongzi>=800) )
{
personfee = (gongzi-800)*0.05 ;
}
if( (gongzi<5000) && (gongzi>=2000) )
{
personfee= (gongzi-2000)*0.1+800*0.05;
}
if(gongzi>=5000)
{
personfee = (gongzi-5000)*0.2+2000*0.1+800*0.05 ;
}
yingfa=gangtie+butie+fangtie+jiaotong;
yingkou=fangzu+chuxu+huifei+personfee;
shifa=yingfa-yingkou;
}
void display( )
{
cout<<num<<'\t'<<month<<'\t';
cout<<name<<'\t'<<gongzi<<'\t'<<jintie<<'\t'<<gangtie<<'\t'<<butie<<'\t'<<fangtie<<'\t'<<jiaotong<<'\t'<<yingfa<<'\t';
cout<<fangzu<<'\t'<<chuxu<<'\t'<<huifei<<'\t'<<" "<<personfee<<'\t'<<" "<<yingkou<<'\t'<<" "<<shifa<<endl;
}
friend void Append( );
friend void Displaypart( );
friend void Delete( );
friend void Find ( );
friend void Modify( );
friend void Load ( );
friend void Save( );
}
s[N];
void Append( );
void Displayall ( );
void Displaypart ( );
void Delete( );
void Find ( );
void Load ( );
void Newinput( );
void Modify( );
void Save ( );
//目录
void Menu( )
{
int x;
cout<<"**************欢迎使用工资管理系统**************\n";
cout<<"** 1 新建工资信息 **\n";
cout<<"** 2 添加记录 **\n";
cout<<"** 3 显示工资全表 **\n";
cout<<"** 4 显示工资简表 **\n";
cout<<"** 5 修改记录 **\n";
cout<<"** 6 删除纪录 **\n";
cout<<"** 7 查询纪录 **\n";
cout<<"** 8 保存纪录 **\n";
cout<<"** 9 读取纪录 **\n";
cout<<"** 按0退出 **\n";
cout<<"************************************************\n";
cout<<"请选择: \n";
cin>>x;
switch (x)
{
case 1: Newinput( );break;
case 2: Append ( );break;
case 3: Displayall( );break;
case 4: Displaypart( );break;
case 5: Modify ( );break;
case 7: Find ( );break;
case 6: Delete( );break;
case 8: Save( );break;
case 9: Load( );break;
case 0: cout<<"谢谢使用\n";return ;
}
}
//新建记录
void Newinput( )
{
int yf;
char hs[4],xm[10],yn;
double gz,jj,gt,bt,ft,jt,fz,hf,cx;
cout<<"请输入初始记录个数:";
cin>>rec;
for ( int i=0;i<rec;i++)
{
cout<<"请输入第:"<<i+1<<"个记录"<<endl;
cout<<"号数:";cin>>hs;
cout<<"月份:";cin>>yf;
cout<<"姓名:";cin>>xm;
cout<<"工资:";cin>>gz;
cout<<"津贴:";cin>>jj;
cout<<"岗贴:";cin>>gt;
cout<<"补贴:";cin>>bt;
cout<<"房帖:";cin>>ft;
cout<<"交通费:";cin>>jt;
cout<<"房租:";cin>>fz;
cout<<"储蓄:";cin>>cx;
cout<<"会费:";cin>>hf;
s[i]=TS(hs,yf,xm,gz,jj,gt,bt,ft,jt,fz,cx,hf);
}
if(f==0)
{
cout<<"数据未保存,保存吗(y/n)?";
cin>>yn;
}
if(yn=='Y'|| yn=='y') { Save( );f=1;}
Menu( );
}
//添加记录
void Append( )
{
int x,yf;
char hs[4],xm[10],yn;
double gz,jj,gt,bt,ft,jt,fz,hf,cx;
cout<<"请输入添加记录个数:";
cin>>x;
for ( int i=0;i<x;i++)
{
cout<<"请输入第:"<<i+1<<"个记录"<<endl;
cout<<"号数:";cin>>hs;
cout<<"月份:";cin>>yf;
cout<<"姓名:";cin>>xm;
cout<<"工资:";cin>>gz;
cout<<"津贴:";cin>>jj;
cout<<"岗贴:";cin>>gt;
cout<<"补贴:";cin>>bt;
cout<<"房帖:";cin>>ft;
cout<<"交通费:";cin>>jt;
cout<<"房租:";cin>>fz;
cout<<"储蓄:";cin>>cx;
cout<<"会费:";cin>>hf;
s[rec]=TS(hs,yf,xm,gz,jj,gt,bt,ft,jt,fz,cx,hf);
rec=rec+1;}
if(f==0)
{cout<<"数据未保存,保存吗(y/n)?";
cin>>yn;}
if(yn=='Y'||yn=='y') {Save( );f=1;}
Menu( );
}
//显示工资全表
void Displayall ( )
{
cout<<"号数\t月份\t姓名\t工资\t津贴\t岗贴\t补贴\t房贴\t交通费\t应发数\t房租\t储蓄\t会费\t个人所得税\t应扣数\t实发数\n";
for (int i=0;i<rec; i++)
s[i].display( );
Menu( );
}
//显示工资部分
void Displaypart ( )
{
cout<<"姓名\t实发\n";
for ( int i=0;i<rec;i++)
cout<<s[i].name<<'\t'<<s[i].shifa<<endl;
cin.get( );
Menu( );
}
//修改记录
void Modify( )
{
int x;
char hs[20],yn;
cout<<"你想要修改记录的号数:";cin>>hs;
for ( int i=0; i<rec; i++)
if( strcmp(s[i].num, hs)==0) break;
cout<<"号数\t月份\t姓名\t工资\t津贴\t岗贴\t补贴\t房贴\t交通费\t应发数\t房租\t储蓄\t会费\t个人所得税\t应扣数\t实发数\n";
cout<<s[i].num<<'\t'<<s[i].month<<'\t';
cout<<s[i].name<<'\t'<<s[i].gongzi<<'\t'<<s[i].jintie<<'\t'<<s[i].gangtie<<'\t'<<s[i].butie<<'\t'<<s[i].fangtie<<'\t'<<s[i].jiaotong<<'\t'<<s[i].yingfa<<'\t';
cout<<s[i].fangzu<<'\t'<<s[i].chuxu<<'\t'<<s[i].huifei<<'\t'<<" "<<s[i].personfee<<'\t'<<" "<<s[i].yingkou<<'\t'<<" "<<s[i].shifa<<endl;
cout<<"这是你要修改的记录吗(y/n)?";
cin>>yn;
if( yn='Y'||yn=='y')
while (true)
{
cout<<"1修改号数,2修改月份,3修改姓名,4修改基本工资,5修改津贴,6修改岗贴,7修改补贴,8修改房贴";
cout<<"9修改交通费,10修改房租,11修改储蓄,12修改会费";
cout<<"请选择(0退出):";
cin>>x;
if (x==0)break;
if(x>12) {cout<<"选择不对请从新输入"; continue;}
switch (x)
{
case 1: cout<<"原号数为:"<<s[i].num<<"修改为:";
cin>>s[i].num;break;
case 2: cout<<"原月份为:"<<s[i].month<<"修改为:";
cin>>s[i].month;break;
case 3: cout<<"原姓名为:"<<s[i].name<<"修改为:";
cin>>s[i].name;break;
case 4: cout<<"原基本工资为"<<s[i].gongzi<<"修改为";
cin>>s[i].gongzi;break;
case 5:cout<<"原津贴为"<<s[i].jintie<<"修改为";
cin>>s[i].jintie;break;
case 6:cout<<"原岗贴为"<<s[i].gangtie<<"修改为";
cin>>s[i].gangtie;break;
case 7: cout<<"原补贴为:"<<s[i].butie<<"修改为:";
cin>>s[i].butie;break;
case 8: cout<<"原房贴为:"<<s[i].fangtie<<"修改为:";
cin>>s[i].fangtie;break;
case 9: cout<<"原交通费为:"<<s[i].jiaotong<<"修改为:";
cin>>s[i].jiaotong;break;
case 10: cout<<"原房租为:"<<s[i].fangzu<<"修改为:";
cin>>s[i].fangzu;break;
case 11: cout<<"原储蓄为:"<<s[i].chuxu<<"修改为:";
cin>>s[i].chuxu;break;
case 12: cout<<"原会费为:"<<s[i].huifei<<"修改为:";
cin>>s[i].huifei;break;
}
}
Menu( );
}
//删除记录
void Delete( )
{ char hs[20], yn;
r: cout<<"请输入要删除的号数:";
cin>>hs;
for ( int i=0; i<rec; i++)
if( strcmp(s[i].num, hs)==0) break;
cout<<"号数\t月份\t姓名\t工资\t津贴\t岗贴\t补贴\t房贴\t交通费\t应发数\t房租\t储蓄\t会费\t个人所得税\t应扣数\t实发数\n";
s[i].display( );
cout<<"这是你要删除的记录吗(y/n)?";
cin>>yn;
if (yn=='Y'|| yn=='y')
{
for (int j=i;j<rec;j++)
s[j]=s[j+1];
rec=rec-1;
}
else goto r;
Menu( );
}