C++代码实现学生成绩数据录入与计算(1) - 数据录入与综合成绩/学分计算
{/'title/':/'C++代码实现学生成绩数据录入与计算(1) - 数据录入与综合成绩/学分计算/',/'description/':/'本文提供C++代码示例,实现对B.TXT文件进行学生成绩数据录入功能。代码涵盖了学号、课程编号、课程名称、学分、平时成绩、实验成绩和卷面成绩的录入,并根据不同条件自动计算综合成绩和应得学分。/',/'keywords/':/'C++, 数据录入, 学生成绩, 综合成绩, 学分计算, 代码示例, B.TXT, 数据处理/',/'content/':/'///'下面是一个用C++编写的示例代码,实现了对B.TXT进行数据录入,并根据条件进行综合成绩和学分的自动运算。//n//ncpp//n#include ///'iostream///'//n#include ///'fstream///'//n#include ///'sstream///'//n#include ///'vector///'//n//nusing namespace std;//n//nstruct Student {//n string studentId;//n string courseCode;//n string courseName;//n int credit;//n double dailyScore;//n double labScore;//n double examScore;//n double totalScore;//n double earnedCredit;//n};//n//ndouble calculateTotalScore(double dailyScore, double labScore, double examScore) {//n if (labScore == -1) {//n return dailyScore * 0.3 + examScore * 0.7;//n } else {//n return dailyScore * 0.15 + labScore * 0.15 + examScore * 0.7;//n }//n}//n//ndouble calculateEarnedCredit(double totalScore, int credit) {//n if (totalScore >= 90 && totalScore <= 100) {//n return credit * 1.0;//n } else if (totalScore >= 80 && totalScore < 90) {//n return credit * 0.8;//n } else if (totalScore >= 70 && totalScore < 80) {//n return credit * 0.75;//n } else if (totalScore >= 60 && totalScore < 70) {//n return credit * 0.6;//n } else {//n return credit * 0;//n }//n}//n//nvector<Student> readDataFromFile(string fileName) {//n vector<Student> students;//n ifstream file(fileName);//n string line;//n//n while (getline(file, line)) {//n stringstream ss(line);//n string studentId, courseCode, courseName;//n int credit;//n double dailyScore, labScore, examScore;//n//n ss >> studentId >> courseCode >> courseName >> credit >> dailyScore >> labScore >> examScore;//n//n double totalScore = calculateTotalScore(dailyScore, labScore, examScore);//n double earnedCredit = calculateEarnedCredit(totalScore, credit);//n//n Student student = {studentId, courseCode, courseName, credit, dailyScore, labScore, examScore, totalScore, earnedCredit};//n students.push_back(student);//n }//n//n file.close();//n return students;//n}//n//nint main() {//n string fileName = ///'B.TXT///';//n vector<Student> students = readDataFromFile(fileName);//n//n // 打印学生信息及计算结果//n for (const auto& student : students) {//n cout << ///'学号: ///' << student.studentId << endl;//n cout << ///'课程编号: ///' << student.courseCode << endl;//n cout << ///'课程名称: ///' << student.courseName << endl;//n cout << ///'学分: ///' << student.credit << endl;//n cout << ///'平时成绩: ///' << student.dailyScore << endl;//n cout << ///'实验成绩: ///' << student.labScore << endl;//n cout << ///'卷面成绩: ///' << student.examScore << endl;//n cout << ///'综合成绩: ///' << student.totalScore << endl;//n cout << ///'应得学分: ///' << student.earnedCredit << endl;//n cout << ///'===================///' << endl;//n }//n//n return 0;//n}//n//n//n请注意,此代码假设B.TXT文件的格式为每行一个学生的数据,以空格分隔每个字段。//n//n你可以根据需要修改文件名、字段名和计算公式,以适应实际情况。//n//n/',/'content/':/'///'下面是一个用C++编写的示例代码,实现了对B.TXT进行数据录入,并根据条件进行综合成绩和学分的自动运算。//n//ncpp//n#include ///'iostream///'//n#include ///'fstream///'//n#include ///'sstream///'//n#include ///'vector///'//n//nusing namespace std;//n//nstruct Student {//n string studentId;//n string courseCode;//n string courseName;//n int credit;//n double dailyScore;//n double labScore;//n double examScore;//n double totalScore;//n double earnedCredit;//n};//n//ndouble calculateTotalScore(double dailyScore, double labScore, double examScore) {//n if (labScore == -1) {//n return dailyScore * 0.3 + examScore * 0.7;//n } else {//n return dailyScore * 0.15 + labScore * 0.15 + examScore * 0.7;//n }//n}//n//ndouble calculateEarnedCredit(double totalScore, int credit) {//n if (totalScore >= 90 && totalScore <= 100) {//n return credit * 1.0;//n } else if (totalScore >= 80 && totalScore < 90) {//n return credit * 0.8;//n } else if (totalScore >= 70 && totalScore < 80) {//n return credit * 0.75;//n } else if (totalScore >= 60 && totalScore < 70) {//n return credit * 0.6;//n } else {//n return credit * 0;//n }//n}//n//nvector<Student> readDataFromFile(string fileName) {//n vector<Student> students;//n ifstream file(fileName);//n string line;//n//n while (getline(file, line)) {//n stringstream ss(line);//n string studentId, courseCode, courseName;//n int credit;//n double dailyScore, labScore, examScore;//n//n ss >> studentId >> courseCode >> courseName >> credit >> dailyScore >> labScore >> examScore;//n//n double totalScore = calculateTotalScore(dailyScore, labScore, examScore);//n double earnedCredit = calculateEarnedCredit(totalScore, credit);//n//n Student student = {studentId, courseCode, courseName, credit, dailyScore, labScore, examScore, totalScore, earnedCredit};//n students.push_back(student);//n }//n//n file.close();//n return students;//n}//n//nint main() {//n string fileName = ///'B.TXT///';//n vector<Student> students = readDataFromFile(fileName);//n//n // 打印学生信息及计算结果//n for (const auto& student : students) {//n cout << ///'学号: ///' << student.studentId << endl;//n cout << ///'课程编号: ///' << student.courseCode << endl;//n cout << ///'课程名称: ///' << student.courseName << endl;//n cout << ///'学分: ///' << student.credit << endl;//n cout << ///'平时成绩: ///' << student.dailyScore << endl;//n cout << ///'实验成绩: ///' << student.labScore << endl;//n cout << ///'卷面成绩: ///' << student.examScore << endl;//n cout << ///'综合成绩: ///' << student.totalScore << endl;//n cout << ///'应得学分: ///' << student.earnedCredit << endl;//n cout << ///'===================///' << endl;//n }//n//n return 0;//n}//n//n//n请注意,此代码假设B.TXT文件的格式为每行一个学生的数据,以空格分隔每个字段。//n//n你可以根据需要修改文件名、字段名和计算公式,以适应实际情况。//n//n/
原文地址: https://www.cveoy.top/t/topic/pq3s 著作权归作者所有。请勿转载和采集!