所以我正在为我的CS162课程完成一项家庭作业,这要求我制作一个允许用户输入大学课程计划的程序。用户输入他们已经服用,目前正在服用和/或计划服用的课程,其类别包括:部门/班级编号,班级名称,学期/年份,班级是否为其专业所需,以及任何其他课程评论。然后,程序应该与外部数据文件一起存储此异常,以便存储类并且不会丢失。该程序应该能够在内存中存储多达60个类。
我知道如何创建strucs数组,我知道外部文件背后的基础知识,但我想我很难将两者结合起来(我在这里是个新手,很抱歉,如果这真的很基本!)
这是我到目前为止所拥有的:
struct college_class
{
char dept_classnumber;
char class_name;
char term_year;
char is_required;
char comments;
char grade;
}
college_class[60]
int main()
{
int n;
char again;
for(n=0;n<60;n++)
{
do
{
cout<<"Enter department and class number (e.g. CS162): ";
getline (cin,college_class[n].dept_classnumber);
cout<<"Enter class name (e.g. Intro to Computer Science): ";
getline (cin,college_class[n].class_name);
cout<<"Enter the term and year the class was/will be taken: ";
getline (cin, college_class[n],term_year;
cout<<"Enter whether or not this class is required for your major: ";
getline (cin,college_class[n],is_required);
cout<<"Enter any additional comments here: ";
getline (cin, college_class[n],comments);
cout<<"Would you like to enter another class?(y/n)";
cin>>again;
}
while(again == 'y' || again == 'Y' && i<60)
}
这是获取用户输入方面的正确方向吗?我的另一个问题是,如何将外部文件合并到这个中,以便用户输入的所有内容都存储到文件中?对不起,如果这有点模糊,我显然不是在寻找我的功课 - 我只是想找个方向来开始。
我知道在文本文件上写文看起来像这样,例如:
ofstream my file ("example");
if(myfile.is_open()))
{
myfile <<"blah blah blah. \n";
myfile.close();
}
...我只是不确定如何使结构数组的工作。
答案 0 :(得分:1)
您的代码存在多处问题。 首先,您必须为college_class数组创建一个变量。 例如:
college_class myCollegeClass[60]
并在询问输入时使用它
getline (cin, myCollegeClass[n].term_year;)
你不小心在某些地方使用过逗号,请注意
此外,一个字符只能容纳一个字符,如果你想保存完整的类名,那就不够了,在结构中使用字符串。
struct college_class
{
string class_name;
...
}
你在那里使用了一个嵌套循环,无论你是否说你不想输入任何其他内容,它都会重复你的问题60次。
我建议
int i=0;
char again = 'y';
while(again != 'n' && again != 'N' && i<60)
{
...
i++
}
对于文件,在输入之后,只需循环访问myCollegeClass数组并将数据写入文件。例如:
myfile << myCollegeClass[i].class_name;