gpt4 book ai didi

用于对多个 True 或 False 测试进行评分的 C++ 程序

转载 作者:搜寻专家 更新时间:2023-10-31 02:03:34 25 4
gpt4 key购买 nike

问题:

我的主要问题是我很难将包含数组的函数连接到主函数。

您学校的历史老师需要帮助来给对/错 测验打分。学生的 ID 和测试答案存储在一个文件中。文件中的第一个条目包含以下形式的测试答案:

TFFTFFTTTTFFTFTFTFTT

文件中的每个其他条目都是学生 ID,后跟一个空白,然后是学生的回答。例如,条目:

ABC54301 TFTFTFTT TFTFTFFTTFT

表示学号是ABC54301,问题的答案1True,问题2的答案是 False,依此类推。该学生未回答问题 9 .考试有20问题,类(class)有超过150学生。每个正确答案得两分,每个错误答案扣一分,没有答案得零分。编写一个程序来处理测试数据。输出应该是学生的 ID,然后是答案,然后是考试成绩,然后是考试成绩。假设以下等级:

90%–100%, A; 80%–89.99%, B; 70%–79.99%, C; 60%–69.99%, D; and 0%–59.99%, F.

代码

// Chap9BBProg.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iomanip>
#include <cmath>
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
int stux;
char stuGrade;
int correctAnswers(char[], char[]);
char studentGrade(int score);
char ansKey[10];
char stuA[10];
int main()
{
ifstream inFile;
ofstream outFile;
inFile.open("TFInput.txt");
outFile.open("TFOutput.txt");
double score;
char grade;
string key;
string studentID;
string stuAnswers;
getline(inFile, key);
outFile << "The correct answers are " << key << endl << endl;
while (getline(inFile, studentID, ' '))
{
outFile << studentID << " ";
getline(inFile, stuAnswers);
stux = studentGrade(stux);
outFile << " " << stuAnswers << endl;
}
return 0;
}
int correctAnswers(char answerKey[], char studentAnswers[])
{
int i;
int tempscore;
for (i = 0; i < 22; i++)
{
if (answerKey[i] == studentAnswers[i])
{
tempscore += 2;
}
else if (studentAnswers[i] == ' ')
{
tempscore += 0;
}
else
{
tempscore -= 1;
}
}
cout << tempscore << endl;
return tempscore;
}
char studentGrade(int x)
{
int i;
double score = 0;
char grade = ' ';
score = x / 40.0 * 100;
for (i = 0; i < 30; i++)
{
if (score >= 90)
grade = 'A';
else if (score < 90 && score > 79)
grade = 'B';
else if (score <= 79 && score > 69)
grade = 'C';
else if (score <= 69 && score > 60)
grade = 'D';
else if (score <= 59)
grade = 'F';
}
return grade;
}

最佳答案

注意到一些小问题,例如在函数 correctAnswers() 中,变量 tempscore 未初始化,并且注意到 char[] 和字符串之间的函数参数冲突。

int stux;
char stuGrade;
int correctAnswers(string, string);
char studentGrade(int score);
char ansKey[10];
char stuA[10];
int main()
{
ifstream inFile;
ofstream outFile;
inFile.open("TFInput.txt");
outFile.open("TFOutput.txt");
double score;
string key;
string studentID;
string stuAnswers;
getline(inFile, key);
outFile << "The correct answers are " << key << endl << endl;
while (getline(inFile, studentID, ' '))
{
outFile << studentID << " ";
getline(inFile, stuAnswers);
score = correctAnswers(key, stuAnswers); //Changed here
stuGrade = studentGrade(score); //Changed here
outFile << " Score: " << score <<" Grade: " << stuGrade << endl; //Changed here
}
return 0;
}

int correctAnswers(string answerKey, string studentAnswers) //Changed here Array to string
{
int i;
int tempscore = 0; //Changed here Initialized to 0
for (i = 0; i < 21; i++) //Changed 22 to 21 here
{
if (answerKey[i] == studentAnswers[i])
{
tempscore += 2;
}
else if (studentAnswers[i] == ' ')
{
tempscore += 0;
}
else
{
tempscore -= 1;
}
}
cout << tempscore << endl;
return tempscore;
}

char studentGrade(int x)
{
int i;
double score = 0;
char grade = ' ';
score = x / 40.0 * 100;

if (score >= 90)
grade = 'A';
else if (score < 90 && score > 79)
grade = 'B';
else if (score <= 79 && score > 69)
grade = 'C';
else if (score <= 69 && score > 60)
grade = 'D';
else if (score <= 59)
grade = 'F';

return grade;
}

关于用于对多个 True 或 False 测试进行评分的 C++ 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55272759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com