设计一个可以在Dev-C++运行并利用文件的读写功能的成绩输入的代码并设计一个检索的代码
时间: 2024-05-05 11:21:56 浏览: 12
以下是一个简单的成绩输入代码,它可以将学生的姓名和成绩写入一个文件中:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ofstream outfile("grades.txt"); // 打开文件,准备写入
if (!outfile) // 检查文件是否成功打开
{
cerr << "Error: Unable to open file for writing!" << endl;
return 1;
}
string name;
float grade;
// 循环输入学生姓名和成绩,直到用户输入 "quit"
while (true)
{
cout << "Enter student name (or 'quit' to exit): ";
getline(cin, name);
if (name == "quit") break; // 用户输入 "quit",退出循环
cout << "Enter grade for " << name << ": ";
cin >> grade;
cin.ignore(); // 忽略输入缓冲区中的换行符
outfile << name << " " << grade << endl; // 写入文件
}
outfile.close(); // 关闭文件
return 0;
}
```
接下来是一个简单的成绩检索代码,它可以从文件中读取学生的姓名和成绩,并根据用户输入的姓名查找对应的成绩:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream infile("grades.txt"); // 打开文件,准备读取
if (!infile) // 检查文件是否成功打开
{
cerr << "Error: Unable to open file for reading!" << endl;
return 1;
}
string name;
float grade;
bool found = false;
cout << "Enter student name to search for: ";
getline(cin, name);
// 循环读取文件中的每一行,并查找对应的姓名和成绩
while (infile >> name >> grade)
{
if (name == name) // 找到了目标姓名
{
cout << "Grade for " << name << " is " << grade << endl;
found = true;
break;
}
}
infile.close(); // 关闭文件
if (!found) cout << "No record found for " << name << endl;
return 0;
}
```
请注意,这只是一个简单的示例代码,它没有做任何输入验证或错误处理。在实际的程序中,您需要确保正确处理所有可能的错误情况。