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
相关产品推荐
相关产品推荐

