#include# include#include# includeusing namespace std; // 全局引入std命名空间struct Process {string name; // 原为 std::stringint arrive;int service;int start;int finish;float turnaround;float weighted_ta;};bool compareArrival(const Process& a, const Process& b) {return a.arrive < b.arrive;}int main() {cout << "先来先服务调度算法\n"; // 原为 std::coutcout << "输入进程数目:";int n;cin >> n; // 原为 std::cinvector processes(n); // 原为 std::vectorfor (int i = 0; i < n; ++i) {cout << "请输入进程" << (i+1) << "的信息(名称 到达时间 服务时间):";cin >> processes[i].name >> processes[i].arrive >> processes[i].service;}sort(processes.begin(), processes.end(), compareArrival); // 原为 std::sortint current_time = 0;for (vector::iterator it = processes.begin(); it != processes.end(); ++it) {it->start = max(current_time, it->arrive); // 原为 std::maxit->finish = it->start + it->service;it->turnaround = it->finish - it->arrive;it->weighted_ta = it->turnaround / static_cast(it->service);current_time = it->finish;}// 输出运行顺序cout << "\n运行顺序:";for (vector::const_iterator it = processes.begin(); it != processes.end(); ++it) {cout << it->name;if (it + 1 != processes.end()) {cout << " → ";}}// 输出表格cout << fixed << setprecision(3); // 原为 std::fixed 和 std::setprecisioncout << "\n\n"<< left << setw(8) << "进程" // 原为 std::left 和 std::setw<< right << setw(12) << "到达时间"<< setw(12) << "服务时间"<< setw(12) << "开始时间"<< setw(12) << "结束时间"<< setw(12) << "周转时间"<< "带权周转时间\n";float total_ta = 0, total_wta = 0;for (vector::const_iterator it = processes.begin(); it != processes.end(); ++it) {cout << left << setw(8) << it->name<< right << setw(12) << it->arrive<< setw(12) << it->service<< setw(12) << it->start<< setw(12) << it->finish<< setw(12) << it->turnaround<< setw(12) << it->weighted_ta<< "\n";total_ta += it->turnaround;total_wta += it->weighted_ta;}cout << "\n平均周转时间: " << total_ta / n<< "\n平均带权周转时间: " << total_wta / n << endl;return 0;}