评分程序
描述
为一门课写一个评分程序,评分原则如下:
(1)有两次随堂考试,每次满分50分;
(2)有一次期中考试和一次期末考试,每次满分100分;
(3)期末考试占总评成绩的50%,期中考试占总评成绩的25%,两次随堂考试总共占25%;
(4)总评成绩90~100分为A,80~89分为B,70~79分为C,60~69分为D,低于60分为E;
设计一个Socre类,数据成员如下:
string name;//记录学生姓名
double s[4];//存储4次成绩,s[0]和s[1]存储2次随堂考试,s[2]存储期中考试,s[3]存储期末考试
double total;//记录总评成绩
char grade; //记录对应的等级
学生信息由键盘录入,默认总评成绩的等级为B,其他数据项无默认值。计算总评成绩并给出等级,输出某个同学的全部信息。
主函数如下:
int main()
{
Score *s1=new Score;
s1->Input();
s1->Evalauate();
s1->Output();
return 0;
}
输入
输入5行
第1行是学生姓名
第2和3行是两次随堂考试成绩
第4行是期中考试成绩
第5行是期末考试成绩
输出
如果输入的成绩超出了范围,则显示:error
如果输入的成绩在题目要求的范围内,则显示:姓名,总分和等级,详见样例
输入样例 1
Jack 90 90 100 100
输出样例 1
error
输入样例 2
Mary 50 50 90 100
输出样例 2
name: Mary, total: 97.5, grade: A
提示
冒号和逗号后各有一个空格
实例一(格日)
#include<iostream>
#include<cstring>
using namespace std;
class Score {
public:
string name;
double s[4];
double total;//记录总评成绩
char grade; //记录对应的等级
void Input();
void Evalauate();
void Output();
};
void Score::Evalauate(){
total = (s[0] + s[1])*(1 / 4.0) + s[2] * (1 / 4.0) + s[3] * (1 / 2.0);
if (total > 89 && total < 101)
grade = 'A';
else if (total > 79)
grade = 'B';
else if (total > 69)
grade = 'C';
else if (total > 59)
grade = 'D';
else
grade = 'E';
}
void Score::Input() {
int i;
cin >> name;
for (i = 0; i < 4; i++)
cin >> s[i];
}
void Score::Output() {
if (s[0] > 50 || s[0] < 0)
cout << "error" << endl;
else if(s[1] > 50 || s[1] < 0)
cout << "error" << endl;
else if(s[2] > 100 || s[2] < 0)
cout << "error" << endl;
else if(s[3] > 100 || s[3] < 0)
cout << "error" << endl;
else
cout << "name:" <<" "<< name << "," <<" "<< "total:" <<" "<< total << "," <<" "<< "grade:"<<" "<<grade << endl;
}
int main() {
Score *s1 = new Score;
s1->Input();
s1->Evalauate();
s1->Output();
return 0;
}
实例二(品丞)
#include<iostream>
using namespace std;
class Score
{
private:
string name;
double s[4];
double total;
char grade;
public:
void Input();
void Evalauate();
void Output();
};
void Score::Input(){
cin>>name;
int i;
for(i=0;i<4;i++){
cin>>s[i];
}
}
void Score::Evalauate(){
total=(s[0]+s[1])*0.25+s[2]*0.25+s[3]*0.5;
if(total>=90 && total<=100)
grade='A';
if(total>=80 && total<=89)
grade='B';
if(total>=70 && total<=79)
grade='C';
if(total>=60 && total<=69)
grade='D';
if(total>=0 && total<=59)
grade='E';
}
void Score::Output(){
if(s[0]<0||s[1]<0||s[0]>50||s[1]>50||s[2]<0||s[2]>100||s[3]<0||s[3]>100){
cout<<"error"<<endl;
}else
cout<<"name: "<<name<<", total: "<<total<<", grade: "<<grade<<endl;
}
int main()
{
Score *s1=new Score;
s1->Input();
s1->Evalauate();
s1->Output();
return 0;
}
实例三(编程天才)
#include <iostream>
using namespace std;
class Score
{
private:
string name;
double s[4];
double total;
char grade;
public:
void Input();
void Evalauate();
void Output();
};
void Score::Input()
{
cin>>name>>s[0]>>s[1]>>s[2]>>s[3];
}
void Score::Evalauate()
{
grade='B';
total=(s[0]+s[1])*0.25+s[2]*0.25+s[3]*0.5;
if(total>=90) grade='A';
else if(total>=80) grade='B';
else if(total>=70) grade='C';
else if(total>=60) grade='D';
else grade='E';
}
void Score::Output()
{
if(s[0]>=0&&s[0]<=50&&s[1]>=0&&s[1]<=50&&s[2]>=0&&s[2]<=100&&s[3]>=0&&s[3]<=100)
{
cout<<"name: "<<name<<", total: "<<total<<", grade: "<<grade;
}
else
{
cout<<"error";
}
}
int main()
{
Score *s1=new Score;
s1->Input();
s1->Evalauate();
s1->Output();
return 0;
}
实例四(明钰)
#include <iostream>
#include <string>
using namespace std;
class Score
{
private:
string name;//记录学生姓名
double s[4];//存储4次成绩,s[0]和s[1]存储2次随堂考试,s[2]存储期中考试,s[3]存储期末考试
double total;//记录总评成绩
char grade; //记录对应的等级
public:
void Input();
void Evalauate();
void Output();
};
void Score::Input()
{
int i;
getline(cin,name);
for(i=0;i<4;i++)
cin>>s[i];
}
void Score::Evalauate()
{
total=(s[0]+s[1])*0.25+(s[2]*0.25)+(s[3]*0.5);
if(total<60)
grade='E';
else if(total<70)
grade='D';
else if(total<80)
grade='C';
else if(total<90)
grade='B';
else
grade='A';
}
void Score::Output()
{
int i,flag=1;
for(i=0;i<4;i++){
if((i==0||i==1)&&(s[i]<0||s[i]>50))
{
cout<<"error";
flag=0;
break;
}
if((i==2||i==3)&&(s[i]<0||s[i]>100))
{
cout<<"error";
flag=0;
break;
}
}
if(flag==1)
cout<<"name: "<<name<<", "<<"total: "<<total<<", "<<"grade: "<<grade;
}
int main()
{
Score *s1=new Score;
s1->Input();
s1->Evalauate();
s1->Output();
return 0;
}
实例五(雪莹)
#include <iostream>
#include<stdlib.h>
#include<cstring>
using namespace std;
class Score{
private:
string name;//记录学生姓名
double s[4];//存储4次成绩,s[0]和s[1]存储2次随堂考试,s[2]存储期中考试,s[3]存储期末考试
double total;//记录总评成绩
char grade; //记录对应的等级
public:
void Input();
void Evalauate();
void Output();
//Score(){
//grade='B';
//}
};
void Score::Input(){
cin>>name;
cin>>s[0]>>s[1]>>s[2]>>s[3];
}
void Score::Evalauate(){
total=0.5*s[3]+0.25*s[2]+0.25*(s[0]+s[1]);
if(total>=90&&total<=100){
grade='A';
}
else if(total>=80&&total<=89){
grade='B';
}
else if(total>=70&&total<=79){
grade='C';
}
else if(total>=60&&total<=69){
grade='D';
}
else{
grade='E';
}
}
void Score::Output(){
if(s[0]>50||s[1]>50||s[2]>100||s[3]>100||s[0]<0||s[1]<0||s[2]<0||s[3]<0){
cout<<"error"<<endl;
}
else{
cout<<"name: "<<name<<", "<<"total: "<<total<<", "<<"grade: "<<grade;
}
}
int main()
{
Score *s1=new Score;
s1->Input();
s1->Evalauate();
s1->Output();
return 0;
}
实例六(东灵)
#include <iostream>
#include<string>
using namespace std;
class Score{
private:
string name;
double s[4];
double total;
char grade;
public:
void Input();
void Evalauate();
void Output();
};
void Score::Input(){
grade='B';
cin>>name;
cin>>s[0];
cin>>s[1];
cin>>s[2];
cin>>s[3];
}
void Score::Evalauate(){
if(s[0]>50||s[1]>50||s[2]>100||s[3]>100||s[0]<0||s[1]<0||s[2]<0||s[3]<0)
{
cout<<"error";
exit(0);
}
total=s[0]*0.25+s[1]*0.25+s[2]*0.25+s[3]*0.5;
if(90<=total&&total<=100)
grade='A';
else if(80<=total&&total<=89)
grade='B';
else if(70<=total&&total<=79)
grade='C';
else if(60<=total&&total<=69)
grade='D';
else
grade='E';
}
void Score::Output(){
cout<<"name: "<<name<<", "<<"total: "<<total<<", "<<"grade: "<<grade;
}
int main()
{
Score *s1=new Score;
s1->Input();
s1->Evalauate();
s1->Output();
return 0;
}
实例七(monitor)
#include<iostream>
#include<string>
using namespace std;
class Score
{
private:
char grade; //记录对应的等级
string name;//记录学生姓名
double s[4];//存储4次成绩,s[0]和s[1]存储2次随堂考试,s[2]存储期中考试,s[3]存储期末考试
double total;//记录总评成绩
public:
// Score(char grade, string name, double s[4], double total) ;
void Input();//应该用一个for循环,输入四次的成绩,然后输入之后做出一个判断(是不是要用到bool类型?类似于flag,在第一次和第二次的时候阈值是50,第三次和第四次阈值是100)
void Evaluate();//这个函数就是负责计算
void Output();//这个函数就是负责判断和输出
};//算了,还是输完了再判断吧
void Score::Input()
{
//double s[4];啊啊啊啊啊啊原来是这里!
int i;
getline(cin,name);
for (i = 0; i < 4; i++)
{
cin >> s[i];
}
}
void Score::Evaluate()
{
total = (s[0] + s[1]) * 0.25 + s[2] * 0.25 + s[3] * 0.5;
grade = 'B';
//不知道用不用。。。先留着8
if (89 < total && total< 101)
{
grade = 'A';
}
else if (79 < total && total < 90)
{
grade = 'B';
}
else if (69 < total && total < 80)
{
grade = 'C';
}
else if (60 < total && total < 70)
{
grade = 'D';
}
else
{
grade = 'E';
}
}
void Score::Output()//在这儿判断
{
//if (s[0] > 50 || s[0] < 0 || s[1] < 0 || s[1] > 50)//能这么写???试试
不试了,看着别扭
//{
// cout << "error" << endl;
//}
//else if (s[2] > 100 || s[2] < 0||s[3]<100|| s[3] > 100)
//{
// cout << "error" << endl;
//}
//else
//{
// cout << "name: "<< name << ", " << "total: " << total << ", "<< "grade: " << grade;
//}
int i, flag = 1;
for (i = 0; i < 4; i++)
{
if ((i == 0 || i == 1) && (s[i] < 0 || s[i]>50))
{
cout << "error";
flag = 0;
break;
}
if ((i == 2 || i == 3) && (s[i] < 0 || s[i]>100))
{
cout << "error";
flag = 0;
break;
}
}
if (flag == 1)
{
cout << "name: " << name << ", " << "total: " << total << ", " << "grade: " << grade;
}
}
int main()
{
Score s1;
s1.Input();
s1.Evaluate();
s1.Output();
return 0;
}
实例八(永琪)
#include<iostream>
#include<cstring>
using namespace std;
class Score {
public:
string name;
double s[4];
double total;//记录总评成绩
char grade; //记录对应的等级
void Input();
void Evalauate();
void Output();
};
void Score::Evalauate(){
total = (s[0] + s[1])*(1 / 4.0) + s[2] * (1 / 4.0) + s[3] * (1 / 2.0);
if (total > 89 && total < 101)
grade = 'A';
else if (total > 79)
grade = 'B';
else if (total > 69)
grade = 'C';
else if (total > 59)
grade = 'D';
else
grade = 'E';
}
void Score::Input() {
int i;
cin >> name;
for (i = 0; i < 4; i++)
cin >> s[i];
}
void Score::Output() {
if (s[0] > 50 || s[0] < 0)
cout << "error" << endl;
else if(s[1] > 50 || s[1] < 0)
cout << "error" << endl;
else if(s[2] > 100 || s[2] < 0)
cout << "error" << endl;
else if(s[3] > 100 || s[3] < 0)
cout << "error" << endl;
else
cout << "name:" <<" "<< name << "," <<" "<< "total:" <<" "<< total << "," <<" "<< "grade:"<<" "<<grade << endl;
}
int main() {
Score *s1 = new Score;
s1->Input();
s1->Evalauate();
s1->Output();
return 0;
}
实例九(顺)
#include <iostream>
#include <string>
using namespace std;
class Score
{
private:
string name;//记录学生姓名
double s[4];//存储4次成绩,s[0]和s[1]存储2次随堂考试,s[2]存储期中考试,s[3]存储期末考试
double total;//记录总评成绩
char grade; //记录对应的等级
public:
void Input()
{
cin>> name;
int i;
for(i=0;i<4;i++)
{
cin >> s[i];
}
};
void Evalauate()
{
grade = 'B';
total = s[0] * 0.25 + s[1] * 0.25 + s[2] * 0.25 + s[3] * 0.5;
if (total < 60) { grade = 'E'; }
else if (total >= 60 && total < 70) { grade = 'D'; }
else if (total >= 70 && total < 80) { grade = 'C'; }
else if (total >= 80 && total < 90) { grade = 'B'; }
else if (total >= 90 && total <= 100) { grade = 'A'; }
else;
};
void Output()
{
if (s[0] > 50 || s[1] > 50 || s[2] > 100 || s[3] > 100 || s[0] < 0 || s[1] < 0 || s[2] < 0 || s[3] < 0)
{
cout << "error" << endl;
}
else
cout << "name: " << name << ", total: " << total << ", grade: " << grade << endl;
}
};
int main()
{
Score *s1 = new Score;
s1->Input();
s1->Evalauate();
s1->Output();
return 0;
}
实例十(浩明)
#include<iostream>
#include<string>
using namespace std;
class Socre
{
private:
string name;
double s[4];
double total;
char grade='B';
public:
void Input();
void Evaluate();
void Output();
};
void Socre::Evaluate()
{
total = (s[0] + s[1])*(0.25) + (s[2])*(0.25) + (s[3])*(0.5);//????
}
void Socre::Input()
{
cin >> name;
int i;
for (i = 0; i <= 3; i++)
{
cin >> s[i];
}
}
void Socre::Output()
{
if(total>=90&&total<=100&&s[0]>=0&&s[0]<=50&&s[1]>=0&&s[1]<=50&&s[2]>=0&&s[2]<=100&&s[3]>=0&&s[3]<=100)
{
grade = 'A';
cout<<"name: " << name <<", ";
cout <<"total: " << total<<", ";
cout <<"grade: " << "A"<< endl;
}
else if (total >= 80 && total<= 89 && s[0] >= 0 && s[0] <= 50 && s[1] >= 0 && s[1] <= 50 && s[2] >= 0 && s[2] <= 100 && s[3] >= 0 && s[3] <= 100)
{
grade = 'B';
cout<<"name: " <<name<<", ";
cout <<"total: " <<total<<", ";
cout<<"grade: " <<"B"<< endl;
}
else if (total >= 70 && total <= 79 && s[0] >= 0 && s[0] <= 50 && s[1] >= 0 && s[1] <= 50 && s[2] >= 0 && s[2] <= 100 && s[3] >= 0 && s[3] <= 100)
{
grade = 'C';
cout<<"name: " << name<<", ";
cout <<"total: " << total<<", ";
cout<<"grade: " << "C" << endl;
}
else if (total >= 60 && total <= 69 && s[0] >= 0 && s[0] <= 50 && s[1] >= 0 && s[1] <= 50 && s[2] >= 0 && s[2] <= 100 && s[3] >= 0 && s[3] <= 100)
{
grade = 'D';
cout <<"name: " << name<<", ";
cout<<"total: " << total<<", ";
cout <<"grade: " << "D";
}
else if(total>=0&&total<=59 && s[0] >= 0 && s[0] <= 50 && s[1] >= 0 && s[1] <= 50 && s[2] >= 0 && s[2] <= 100 && s[3] >= 0 && s[3] <= 100)
{
grade = 'E';
cout<<"name: " << name<<", ";
cout <<"total: " << total<<", ";
cout<<"grade: " << "E";
}
else
{
cout <<"error";
}
}
int main()
{
Socre *s1 = new Socre();
s1->Input();
s1->Evaluate();
s1->Output();
return 0;
}