我正在编写一个程序,该程序允许我输入自己的名字并接受不同的学期,并允许我输入成绩,然后能够计算出我的平均成绩和GPA,仅供我在课程中参考。
我遇到的问题是结构以及它们如何与多功能程序一起使用。在我的课程中,我们没有涉及到这一点,我花了一段时间寻找答案,却找不到答案。下面是我当前的代码:
using namespace std;
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char gettingName();
class Student{
public:
double semesterClass[20][20]; //first is for semester, second is for which class
char name[20];
int semester;
int numOfCourses;
};
int main(int argc, char **argv)
{
Student info;
gettingName();
cout << "Hi my name is: " << name.info << endl;
return 0;
}
char gettingName()
{
Student info;
char YesNo[5];
char boolean[1] = {'T'};
char yes[3] = {'Y','e','s'};
char yes2[3] = {'Y','E','S'};
char yes3[3] = {'y','e','s'};
char yes4[1] = {'Y'};
char yes5[1] = {'y'};
while(boolean[0] == 'T'){
cout << "What is your name? ";
cin >> info.name;
cout << endl;
cout << "Is your name " << info.name << "?"<<endl; //accepted input will be Y,y,YES,Yes,yes
cin >> YesNo;
//if input does not equal any of the accepted inputs, then loop until it does
if((strcmp(YesNo,yes) == 0) || (strcmp(YesNo,yes2) == 0) || (strcmp(YesNo,yes3) == 0) || (YesNo[0] == yes4[0]) || (YesNo[0] == yes5[0])){
boolean[0] = 'F';
}
}
return 0;
}
我的问题:我应该如何解决范围问题,以便可以调用“ gettingName”函数,让人员输入其姓名,(正确输入(已经正确)),然后可以访问并打印该名称了。主要功能?
您的代码有很多问题,但是我会尽力提供最大的帮助。通常,局部变量的C ++范围是在块级别。因此,每当您看到结束括号}时,作用域便已经结束。
我注意到您的代码有一些特定的问题:
这行应该是:“ cout <<”您好,我的名字是:“ << info.name << endl;”,而不是name.info
布尔循环可以更有效地处理。您应该尝试在一个数据结构(如数组)中列出所有可接受的选项,然后遍历该数组。
最后,当创建不需要返回任何内容的函数时,可以使用void类型代替char类型。因此它可能是无效的getingName(),而不是char getingName()。
为了向您展示一种快速简便的方法来执行我认为想要的操作,我将代码简化了一些。我还决定使用std :: string而不是char数组,因为它们更易于使用:
class Student{
public:
std::string name;
};
std::string gettingName();
int main()
{
Student Info;
Info.name = gettingName();
cout << "Hi my name is: " << Info.name << endl;
return 0;
}
std::string gettingName()
{
std::string name;
cout << "What is your name? ";
cin >> name;
cout << endl;
return name;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句