【发布时间】:2015-05-05 04:18:20
【问题描述】:
我正在编写一个程序,用于计算在期末考试中得分所需的成绩,以达到用户想要的成绩。因此,我使用单个类来获取输入并存储所有作业成绩、测试成绩等,并使用该信息来确定在期末考试中需要得分以获得所需成绩,同时考虑不同的作业和测试权重课程。
我基本上只是将我的类用作调用函数来执行任务的一种方式,而我可能只是使用普通函数就可以逃脱。我只使用一个对象。我想我不清楚的是,何时使用函数以及何时使用类?如果我只有一个对象并且只是使用该类来完成所有繁重的工作以保持我的主要功能很小,或者我应该将其全部更改为常规功能,这很糟糕吗?我只是喜欢单独文件的想法,它使事情变得整洁且易于阅读。
这是我的类成员函数部分的示例。
void Grade::setHwGrades() {
int i = 1;
std::cout << "What is the weight of Homework assignments? %";
std::cin >> hwWeight;
std::cout << "\nHow many Homework assignments did you have? ";
std::cin >> numHw;
// inserts each grade entered into vector homeworkGrades
while (i <= numHw) {
std::cout << "Homework " << i << " grade: ";
std::cin >> grade;
hwGrades.push_back(grade);
++i;
}
// calculates average grade for all homework assignments
for (int i = 0; i < numHw; ++i) {
hwAverage += hwGrades[i];
}
hwAverage /= numHw;
std::cout << "__________________________" << std::endl;
std::cout << std::setprecision(2) << std::fixed;
std::cout << "Homework average: " << hwAverage << std::endl << std::endl;
}
构成总成绩的每个组成部分,如测试、测验、项目等,都有自己的向量和获取成绩输入的相同方式。这是一种好的做法,还是完全使用普通功能或其他东西会更好?谢谢。
【问题讨论】:
-
看贴出来的代码,你们班做的事情太多了。将接受用户输入的代码、执行计算的代码和产生输出的代码分开到单独的函数中。将它们放在单独的类中,还是作为非成员函数更好,这可能是个人喜好问题。
-
好的做法是不要做对你没有帮助的事情。如果上课对您没有帮助,那就不要上课。
-
即使现在做一些额外的工作对你的代码/程序没有好处,我认为花一些精力来组织你的代码以便于维护和阅读几乎总是值得的。做到这一点的一个好方法是创建具有相关数据成员和函数的类来对它们进行操作。