C++ 对象数组中的搜索操作?
我正在制作简单的银行程序,我的班名是银行 它由以下函数组成:C++ 对象数组中的搜索操作?,c++,class,C++,Class,我正在制作简单的银行程序,我的班名是银行 它由以下函数组成:deposit(),draw(),show(),getname(),getbalance(),默认构造函数和参数构造函数 我正在尝试在主程序中按名称和余额进行搜索操作。 但是,它不是显示输入的相应姓名或余额的信息,而是显示账户持有人的完整信息列表 请帮助纠正此问题 #包括 #包括 班级银行 { 字符名称[20],acNo[20],类型OFAC[10]; 双平衡; 公众: 银行() { strcpy(名称,“空”); strcpy(ac
deposit()
,draw()
,show()
,getname()
,getbalance()
,默认构造函数和参数构造函数
我正在尝试在主程序中按名称和余额进行搜索操作。
但是,它不是显示输入的相应姓名或余额的信息,而是显示账户持有人的完整信息列表
请帮助纠正此问题
#包括
#包括
班级银行
{
字符名称[20],acNo[20],类型OFAC[10];
双平衡;
公众:
银行()
{
strcpy(名称,“空”);
strcpy(acNo,“XXXX”);
strcpy(OFAC类型,“XXXX”);
余额=0;
}
银行(字符nm[20],字符acn[20],字符tac[10])
{
strcpy(名称,nm);
strcpy(acNo,acn);
strcpy(OFAC、tac类型);
余额=0;
}
double getbalance(){return balance;}
char*getname(){return name;}
无效输入();
无效存款();
无效撤回();
void show();
};
作废银行::存款()
{
双d;
库特;
库特
及
是每个代码的第一行,将它变成空if条件。第二行与<代码>无关,如果始终运行。这是为什么每次代码都要使用卷轴括号的原因之一,如果语句,即使它只有一行。
< P>你已经非常混杂C和C++。我已经做了纯C++类声明,像这个< /P>
class bank {
string name, acNo, typeOfAc;
double balance;
public:
bank(string nm = "NULL", string acn = "XXXX", string tac = "XXXX")
: name(nm), acNo(acn), typeOfAc(tac), balance(0) {}
double getbalance() { return balance; }
string getname() { return name; }
. . .
};
这里,string
是std::string
而不是
char n[20];
fflush(stdin);
gets(n); // unsafe
应该是
string n;
cin >> n;
而且,要更正您的搜索
if (b[i].getname() == n) // no semicolon here
b[i].show();
听起来你可能需要学习如何使用调试器来逐步完成你的代码。有了一个好的调试器,你可以逐行执行你的程序,看看它偏离了你的预期。如果你要做任何编程,这是一个必不可少的工具。进一步阅读:我还建议你使用std::string
,而不是f c-strings.if(strcmp(nn,n)==0);
结束if子句。无论条件的计算结果是什么,都将执行以下行。从该行中删除;
。在if(b[i].getbalance()==b1)中重复相同的错误
哦,刚才看到r sehu的评论,答案是一样的。最好用“简单的印刷错误”来结束这些问题。这些问题和对这些问题的任何回答对一般观众都没有用处。
char n[20];
fflush(stdin);
gets(n); // unsafe
string n;
cin >> n;
if (b[i].getname() == n) // no semicolon here
b[i].show();