把 代码缩进弄一下,你就能看到 bSystem 方法多了一个 右花括号
主函数中 bSystem 调用,
还有 bSystem函数中 其他方法调用 ,有你这么写的嘛?
modify_student_info 函数 的 左右花括号,是中文模式写的,改成英文的, 错误还真不少啊

#include <algorithm>
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
// 学生结构体
struct Student {
string id;
// 学号
string name;
// 姓名
double chinese;
// 语文成绩
double math;
// 数学成绩
double english;
// 英语成绩
double average;
// 考试成绩
int rank;
// 考试名次
double peer_score;
// 同学互评分
double morality_score;
// 品德成绩
double teacher_score;
// 任课教师评分
double total_score;
// 综合测评总分
int total_rank;
// 综合测评名次
};
const int MAX_STUDENT_NUM =
1000;
Student studentss[MAX_STUDENT_NUM];
// 学生数组
int student_num =
0;
// 学生数
// 按照从大到小的顺序比较学生成绩,用于排序
bool compare_averages(const Student& s1, const Student& s2)
{
return s1.average > s2.average;
}
// 按照从大到小的顺序比较学生总分,用于排序
bool compare_total_scores(const Student& s1, const Student& s2)
{
return s1.total_score > s2.total_score;
}
// 读入学生信息
void read_studentss()
{
ifstream fin("students.txt");
// 打开文件
// 从文件中读取每个学生的信息
while (fin >> studentss[student_num].id >> studentss[student_num].name >> studentss[student_num].chinese >> studentss[student_num].math >> studentss[student_num].english>> studentss[student_num].peer_score>> studentss[student_num].morality_score >> studentss[student_num].teacher_score)
{
student_num++;
}
fin.
close();
// 关闭文件
}
// 计算学生考试成绩和名次
void calc_exam_score_and_rank()
{
for (
int i =
0; i < student_num; i++)
{
studentss[i].average = (studentss[i].chinese + studentss[i].math + studentss[i].english) /
3.0;
// 计算考试成绩
}
sort(studentss, studentss + student_num, compare_averages);
// 按照考试成绩排序
// 计算考试名次
for (
int i =
0; i < student_num; i++)
{
if (i ==
0)
{
studentss[i].rank =
1;
}
else if (studentss[i].average == studentss[i -
1].average)
{
studentss[i].rank = studentss[i -
1].rank;
}
else
{
studentss[i].rank = i +
1;
}
}
}
// 计算学生综合测评总分和名次
void calc_total_score_and_rank() {
for (
int i =
0; i < student_num; i++) {
studentss[i].total_score = studentss[i].average *
0.6 + studentss[i].peer_score *
0.1
+ studentss[i].morality_score *
0.1 + studentss[i].teacher_score *
0.2;
// 计算综合测评总分
}
sort(studentss, studentss + student_num, compare_total_scores);
// 按照综合测评总分排序
// 计算综合测评名次
for (
int i =
0; i < student_num; i++) {
if (i ==
0) {
studentss[i].total_rank =
1;
}
else if (studentss[i].total_score == studentss[i -
1].total_score) {
studentss[i].total_rank = studentss[i -
1].total_rank;
}
else {
studentss[i].total_rank = i +
1;
}
}
}
// 查询学生信息
void query_student_info(int count)
{
string id;
cout <<
"请输入学号:";
cin >> id;
bool found =
false;
for (
int i =
0; i < count; i++)
{
if (studentss[i].id == id)
{
cout <<
"学号:" << studentss[i].id << endl;
cout <<
"姓名:" << studentss[i].name << endl;
cout <<
"语文成绩:" << studentss[i].chinese << endl;
cout <<
"数学成绩:" << studentss[i].math << endl;
cout <<
"外语成绩:" << studentss[i].english << endl;
cout <<
"考试平均成绩:" << studentss[i].average << endl;
cout <<
"考试名次:" << studentss[i].rank << endl;
cout <<
"同学互评分:" << studentss[i].peer_score << endl;
cout <<
"品德成绩:" << studentss[i].morality_score << endl;
cout <<
"任课教师评分:" << studentss[i].teacher_score << endl;
cout <<
"综合测评总分:" << studentss[i].total_score << endl;
cout <<
"综合测评名次:" << studentss[i].total_rank << endl;
found =
true;
break;
}
}
if (!found)
{
cout <<
"没有找到对应学生信息!" << endl;
}
}
//修改学生信息
void modify_student_info(Student studentss[], int count)
{
string id;
cout <<
"请输入学号:";
cin >> id;
bool found =
false;
for (
int i =
0; i < count; i++)
{
if (studentss[i].id == id)
{
cout <<
"请输入新的语文成绩:";
cin >> studentss[i].chinese;
cout <<
"请输入新的数学成绩:";
cin >> studentss[i].math;
cout <<
"请输入新的英语成绩:";
cin >> studentss[i].english;
cout <<
"请输入新的同学互评分:";
cin >> studentss[i].peer_score;
cout <<
"请输入新的品德成绩:";
cin >> studentss[i].morality_score;
cout <<
"请输入新的任课教师评分:";
cin >> studentss[i].teacher_score;
// 重新计算该学生的信息
studentss[i].average = (studentss[i].chinese + studentss[i].math + studentss[i].english) /
3.0;
}
}
}
void bSystem()
{
cout <<
"进入学生数据信息处理系统" << endl;
int selectA =
0;
while (selectA !=
3)
{
cout << endl;
cout <<
"1. 查询数据 " << endl;
cout <<
"2. 修改数据" << endl;
cout <<
"3. 退出子系统" << endl;
cout << endl << endl;
// 输入
cin >> selectA;
cout <<
"您输入的是 " << selectA << endl;
Student studentss[MAX_STUDENT_NUM];
// 学生数组
void read_students();
if (selectA ==
1)
{
query_student_info(MAX_STUDENT_NUM);
}
else if (selectA ==
2)
{
modify_student_info(studentss, MAX_STUDENT_NUM);
}
else if (selectA ==
3)
{
break;
}
else
{
cout <<
"错误的输入,请重新输入!" << endl;
}
}
}
int main()
{
bSystem();
return 0;
}