第十四周项目二 带姓名的成绩单(数据由score.txt提供)

该项目涉及使用C++处理包含8名学生姓名和对应C++成绩的数据。任务包括根据成绩和姓名对数据进行排序,并从score.txt文件中读取数据。程序要求确保姓名与成绩的下标匹配,避免混淆。同时,成绩由EXCEL随机生成,程序需要能够适应这种输入方式。
摘要由CSDN通过智能技术生成

项目要求:

设score[8]数组中存储8名同学的C++成绩,增加一个数组string name[8]并赋初值,表示同学们的姓名。这两个数组中,每名同学的姓名与成绩的下标要始终保持一致(例如name[i]和score[i]表示同一位同学(下标为i)的姓名和C++成绩,否则会张冠李戴)。
(1)输出按成绩排序后的同学的名单;
(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。
(3)数据由score.txt提供,程序该如何改?(成绩值利用EXCEL软件随机产生,高了的可以得意,低了的请不要介意,照顾下那位垫底老同鞋的情绪。)


问题及代码:

#include<iostream>
#include<string>
#include<fstream>
#include<cstdlib>
using namespace std;
const int num=94;
int main()
{
    int i,j,t;
    string temp;
    string name[100];
    double score[100];
    ifstream infile("score.txt",ios::in);
    if(!infile)
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    for (i=0; i<num; i++)
    {
        i
分析这个问题,我们可以得出以下结论: 1. 需要从score.txt文件中读取成绩单。 2. 成绩单中有姓名以及各科目的成绩。 3. 成绩单中使用英文逗号和冒号分隔不同的信息。 4. 姓名格式为“姓名:张三”。 5. 科目和分数的格式为“数学 72 分”。 那么,解决这个问题的步骤如下: 1. 打开score.txt文件并读取其内容。 2. 使用逗号分隔成绩单中的不同信息,将其拆分为姓名和各科目的成绩。 3. 使用冒号分隔姓名信息,得到学生的姓名。 4. 使用空格和分词算法,分隔科目和分数。 5. 将姓名、科目和分数整理为每个学生的完整成绩信息。 6. 根据需要对成绩信息进行进一步处理,如计算平均分、找出最高分等。 7. 输出最终结果。 根据以上步骤,我们可以编写代码来实现这个功能。具体实现方式可能因编程语言的不同而不同,以下是一个Python示例实现: ```python # 打开score.txt文件并读取内容 with open("score.txt", "r") as f: score_data = f.read() # 使用逗号分隔成绩单中的不同信息 scores = score_data.split(",") # 初始化一个空字典,用于存储每个学生的成绩信息 students = {} # 遍历每个成绩信息 for score in scores: # 使用冒号分隔姓名信息,并取得姓名和成绩信息 name, grade = score.split(":") # 使用空格和分词算法,分隔科目和分数 subject, score_value = grade.strip().split() # 将姓名、科目和分数整理为每个学生的完整成绩信息 if name in students: students[name].append((subject, int(score_value))) else: students[name] = [(subject, int(score_value))] # 输出每个学生的成绩信息 for name, scores in students.items(): print("姓名:", name) for subject, score in scores: print(subject, "分数:", score) ``` 这个代码片段将从`score.txt`文件中读取成绩单,并将每个学生的姓名、科目和分数整理为一个字典,然后按格式输出。注意,在实际应用中,可能需要根据具体需求对代码进行适当修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值