You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++成绩管理系统如何向指定格式文本文件追加用户输入数据

C++成绩系统追加记录功能实现

你需要实现的新增记录功能核心要处理cin和getline混用的换行符残留问题,同时用追加模式打开文本文件即可完成写入。以下是完整的case 1分支实现代码:

case 1:
    // 清空cin缓冲区残留的换行符,避免后续getline读取到空内容
    cin.ignore();
    // 依次收集用户输入的各项信息
    cout << "请输入SSN:";
    getline(cin, SSN);
    cout << "请输入姓名:";
    getline(cin, name);
    cout << "请输入出勤状态(G/P):";
    getline(cin, attendance);
    cout << "请输入5项成绩(Lab PA Quiz Midterm Final,空格分隔):";
    cin >> Lab >> PA >> Quiz >> Midterm >> Final;
    // 以追加模式打开文件,文件不存在时会自动创建
    fout.open("data.txt", ios::app);
    if (!fout.is_open()) {
        cout << "文件打开失败,无法写入记录" << endl;
        break;
    }
    // 按照指定存储格式写入内容
    fout << SSN << endl;
    fout << name << endl;
    fout << attendance << endl;
    fout << Lab << " " << PA << " " << Quiz << " " << Midterm << " " << Final << endl;
    // 写入完成后关闭文件
    fout.close();
    cout << "记录添加成功" << endl;
    break;

额外优化提示

  • 你当前定义的成绩变量是int类型,但示例存储文件中存在带小数点的成绩,建议将int Lab, PA, Quiz, Midterm, Final;修改为double Lab, PA, Quiz, Midterm, Final;避免精度丢失。
  • 原有case 2查询分支打开文件后没有判断打开状态,建议补充判断逻辑,避免文件不存在时程序运行异常。
  • 平均成绩计算可直接通过(Lab + PA + Quiz + Midterm + Final) / 5.0实现,可直接补充到查询结果的输出逻辑中。

内容的提问来源于stack exchange,提问作者Darin Hinze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:39:04