我的程序有效,但不断返回0

My program, works but keeps on returning 0

本文关键字:返回 程序 有效 我的      更新时间:2023-10-16

为具有以下分级策略的类编写分级程序:a.共有两个小测验,每个测验以10分为基础进行评分。b.有一次期中考试和一次期末考试,每次考试根据100分。c.期末考试占成绩的50%,期中考试占25%,以及这两个小测验加起来占25%。(别忘了正常化测验得分。在取平均值之前,应将它们转换为百分比英寸)任何90级或以上为A级,任何80级或以上(但低于90级)为A级B、 任何70级或以上(但小于80)的等级为C,任何60级或以上的等级(但低于70分)为D,低于60分为F学生的分数并输出学生的记录,该记录包括两个测验和两个考试成绩以及学生整个课程的平均数字成绩以及最后的字母等级。定义并使用学生记录的结构。

#include <iostream>
#include <string>
using namespace std;
struct Report {
public:
};
int inputQuizzone ( int& Quizz1); //input functions take read in the input
int inputQuizztwo ( int& Quizz2); // user inputs result of quizz. Each quizz 
                                  // is 10 points     
int  inputMideterm ( int& MidExam);
int  inputExam      ( int& Finall);
double OutputQuizz ( int& Q1, int& Q2); // this is meant to calculate the 
                                        // by adding quizz 1 and quizz two to 25%
double  Output ( int& Quizz);            
double OutputMideterm ( int MidExam);
double  OutputExam ( int& Final);
int main()
{
Report FinalGrade ;
int
 x , y ,z  , xz , gr;
   inputQuizzone( x);   
   inputQuizztwo( y);
   inputMideterm(z);
   inputExam( xz);
  cout << " Your Final Grades are " <<  'n'
 << " Quizzes " << ""   << OutputQuizz( x, y) <<  'n'
//<< "Quizz Two " << Quizz2<<  'n'
<< " Mideterm " << OutputMideterm( z) <<  'n'
<< " Finals " <<   OutputExam(xz)   << endl;


}

int inputQuizzone ( int& Quizz1)
{
cout << " Enter Your Quizz One Score over 10"<< endl;
cin >> Quizz1;
}
 int inputQuizztwo ( int& Quizz2)
{
cout << " Enter Your Second Quizz 2 Score over 10"<< endl;
cin >> Quizz2;
}
int inputMideterm ( int& MidExam)
{
cout << " Enter Your Midterm Score over 100"<< endl;
cin >> MidExam;
}

int inputExam ( int& Finall)
{
cout << " Enter Your Exam Score over 100"<< endl;
cin >> Finall;
return (Finall);
}
double OutputQuizz ( int& Q1, int& Q2)
{
int QR = 0;
QR = (((Q1 + Q2 ) / 20) * 25 ) ;

           return (QR);

}


double OutputMideterm ( int MidExam)
{
int QR = 0;
QR = (MidExam / 100) * 25;
return (QR);
}
double  OutputExam ( int& Final)
{
int QR = 0;
QR = (Final / 100) * 25;
return (QR);
}

如果不考虑值的计算方式,主要问题是,在输出函数中,您正在进行整数运算以计算小于1的值。例如,在OutputQuizz中,(Q1 + Q2 ) / 20通常小于1。

若要强制编译器使用浮点,请改用QR = (((Q1 + Q2 ) / 20.0) * 25.0 )

您将看到非0的值。