我这个类写的有问题吗?
这是.h文件:
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <string>
using namespace std;
class choose : public TStringList
{
public:choose();
private:
TStringList *List;
TStringList *Elist;
public:
void LoadFileH(AnsiString FileName);
void LoadFileE(AnsiString FileName);
String prio(int i);
String Next(int i);
String get_Hbuf(int i);
String get_Ebuf(int i);
};
class scl90 : public choose
{
public:
scl90();
private:
float sum;
float psi;
float gsi;
float psdl;
float som;
float obc;
float inse;
float dep;
float anxi;
float hosty;
float phan;
float paid;
float psyc;
float addi;
public:
void set_sum(int i,bool flag);
//void set_psi();
void set_yinzi(int i ,int j,bool flag);
int get_sum();
int get_psi();
float get_gsi();
float get_psdl();
float get_yinzi(int i);
};
//===================================================================
class pei54 : public choose
{
public :
pei54();
private:
int sum;
public:
void set_sum(int i,bool flag);
int get_sum();
};
//======================================================================
===============================================================================================
这是.cpp文件:
#include "File1.h"
choose::choose()
{
List = new TStringList();
Elist = new TStringList();
}
void choose::LoadFileH(AnsiString FileName)
{
List->LoadFromFile(FileName);
}
void choose::LoadFileE(AnsiString FileName)
{
Elist->LoadFromFile(FileName);
}
String choose::prio(int i)
{
return List->Strings[i];
}
String choose::Next(int i)
{
return List->Strings[i];
}
String choose::get_Hbuf(int i)//获得标题
{
return List->Strings[i];
}
String choose::get_Ebuf(int i)//获得选项
{
return Elist->Strings[i];
}
/////////////////////////////////////////////////////////////////////
//scl90--------------------------------------------------------------
scl90::scl90():choose()
{
sum=0;
psi=0;
gsi=0;
psdl=0;
som=0;
obc=0;
inse=0;
dep=0;
anxi=0;
hosty=0;
phan=0;
paid=0;
psyc=0;
addi=0;
// List = new TStringList();
//Elist = new TStringList();
}
void scl90::set_sum(int i,bool flag)
{
if(flag)
{switch(i)
{
case 0:
sum = sum+0;
break;
case 1:
sum = sum+1;
psi++;
break;
case 2:
sum = sum+2;
psi++;
break;
case 3:
sum = sum+3;
psi++;
break;
case 4:
sum = sum+4;
psi++;
break;
}
}
else
{
sum = sum-i;
psi--;
}
}
void scl90::set_yinzi(int i,int j,bool flag)//i 是标题号,j是选项
{
if((i==1)||(i==4)||(i==12)||(i==27)||(i==40)||(i==42)||(i==48)||(i==49)||(i==52)||(i==53)||(i==56)||(i==58))
{ if(flag)
som = som+float(j);
else
som = som-float(j);
return;
}
if((i==3)||(i==9)||(i==10)||(i==28)||(i==38)||(i==45)||(i==46)||(i==51)||(i==55)||(i==65))
{ if(flag)
obc = obc+float(j);
else
obc = obc-float(j);
return;
}
if((i==6)||(i==21)||(i==34)||(i==36)||(i==37)||(i==41)||(i==61)||(i==69)||(i==73))
{
if(flag)
inse = inse+float(j);
else
inse = inse-float(j);
return;
}
if((i==5)||(i==14)||(i==15)||(i==20)||(i==22)||(i==26)||(i==29)||(i==30)||(i==31)||(i==32)||(i==54)||(i==71)||(i==79))
{
if(flag)
dep = dep+float(j);
else
dep = dep-float(j);
return;
}
if((i==2)||(i==17)||(i==23)||(i==33)||(i==39)||(i==57)||(i==72)||(i==78)||(i==80)||(i==86))
{
if(flag)
anxi = anxi+float(j);
else
anxi = anxi-float(j);
return;
}
if((i==11)||(i==24)||(i==63)||(i==67)||(i==74)||(i==81))
{
if(flag)
hosty = hosty+float(j);
else
hosty = hosty-float(j);
return;
}
if((i==13)||(i==25)||(i==47)||(i==50)||(i==70)||(i==75)||(i==82))
{
if(flag)
phan = phan+float(j);
else
phan = phan-float(j);
return;
}
if((i==8)||(i==18)||(i==43)||(i==68)||(i==76)||(i==83))
{
if(flag)
paid = paid+float(j);
else
paid = paid-float(j);
return;
}
if((i==7)||(i==16)||(i==35)||(i==62)||(i==77)||(i==84)||(i==85)||(i==87)||(i==88)||(i==90))
{
if(flag)
psyc = psyc+float(j);
else
psyc = psyc-float(j);
return;
}
if((i==19)||(i==41)||(i==59)||(i==60)||(i==64)||(i==66)||(i==89))
{
if(flag)
addi = addi+float(j);
else
addi = addi-float(j);
return;
}
}
int scl90::get_sum()
{
return sum;
}
int scl90::get_psi()
{
return psi;
}
float scl90::get_gsi()
{
gsi = sum/90;
return gsi;
}
float scl90::get_psdl()
{
if (sum == 0)
{
return 0;
}
else
{ psdl = sum/psi;
return psdl; }
}
float scl90::get_yinzi(int i)
{
switch(i)
{
case 0:
return som/12;
case 1:
return obc/10;
case 2:
return inse/9;
case 3:
return dep/13;
case 4:
return anxi/10;
case 5:
return hosty/6;
case 6:
return phan/7;
case 7:
return paid/6;
case 8:
return psyc/10;
case 9:
return addi/7;
}
}
/////////////////////////////////////////////////////////////////////
//--pei表------------------------------------------------------------
pei54::pei54():choose()
{
sum =0;
}
void pei54::set_sum(int i,bool flag)//i为得分
{
if(flag)
{sum = sum +i;}
else
{sum = sum-i;}
}
int pei54::get_sum()
{
return sum;
}