关于C++的项目实训

农机大全网(nongjidaquan.com)最新农机信息:关于C++的项目实训,农机新产品,二手农机,农机补贴目录,农机价格查询,农机报价大全,更多农机资讯请查看:农机资讯

  关于C++的项目实训

#include<iostream>
#include<string>
using namespace std;

int grade_to_score(char grade); //等级转换成分数
char score_to_grade(int score); //分数转换成等级
///////////////////////////////////////////////////////////////
/*
* 测试等级转换成分数函数的正确性
*/
//注释测试代码,为了方便,把所有的需求都下在这一个源文件中
//可以将其改成多文件结构
/*
int main(){
char temp = 'A';
for(int i = 0; i < 6; i++){
cout << "The grade: " << temp << " the score: ";
cout << grade_to_score(temp) << endl;
temp++;
}
}
*/
//////////////////////////////////////////////////////////////
/*
* 等级转换成分数
*/
int grade_to_score(char grade){
switch(grade){
case 'A': case 'a': return 95;
case 'B': case 'b': return 85;
case 'C': case 'c': return 75;
case 'D': case 'd': return 65;
case 'E': case 'e': return 50;
default :
cout << "The grade error!" ;
return 0;
};
}
/*
* 分数转换成等级
*/
char score_to_grade(int score){
if(score < 0 || score > 100){
cout << "score error " << endl;
exit(0);
}
if(score >= 90) {
return 'A';
}else if( score >= 80){
return 'B';
}else if(score >= 70){
return 'C';
}else if(score >= 60){
return 'D';
}
return 'E';
}

///////////////////////////////////////////////////////////
/*
* 测试分数转换成等级的正确性
*/
/*
int main(){
for(int i = 10; i <= 100; i += 5){
cout << "The score: " << i << ", the grade ";
cout << score_to_grade(i) << endl;
}
}
*/
///////////////////////////////////////////////////////////

void my_main(){
int total = 0; //总分
int index = 0; //科目数
int average = 0; //平均分
string grade_in;
bool input_ok = false;
while(1){
cout << "============================================" << endl;
cout << "Enter the grades, end by ' -1 ' > ";
getline(cin,grade_in);
index = grade_in.find("-1", 0);
if(index < 0){ //未找到结束标志 "-1"
cout << "Input has no end point, input again!" << endl;
continue;
}

for(int i = 0; i < index; i++){
char grade = grade_in[i];
//发现输入有无效的等级标志
if(grade > 101 || grade < 65 || grade >69 && grade <97){
cout << "Grade input error, your input the grade of < " << grade << " >"<< endl;
cout << "Input again please ! " << endl;
input_ok = true;
break;
}
total += grade_to_score(grade); //累加得到总分
}
if(input_ok){
total = 0; //总分归零
continue;
}
break;
}

average = total/index; //求得平均分
cout << "average = " << average << endl;
cout << "The average grade: " << score_to_grade(average); //打印平均分等级
cout << endl;
}

int main(){
my_main();
}

/*
* 不知道是不是有点刁难,为什么要用-1作为结束符呢
* 等级转换成分数A->95,B->85,C->75,D->65,E->50, 这样是不是有点牵强
* 不过就这样的
*/

标签:in   等级

声明:农机大全所有(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者。若您的权利被侵害,请联系 56325386@qq.com 删除。

载注明出处:http://nongjidaquan.com/news/186829.html