求C++大神帮忙改下这段程序

2025-05-16 20:44:13
推荐回答(1个)
回答(1):

修改在程序注释上,运行一下看看,不懂可追问!
#include
#include
#include
using namespace std;
struct student//结构体
{
string name;//姓名
char sex;//性别
int number;//学号
int yuwen;//语文成绩
int shuxue;//数学成绩
int english;//英语成绩
int average;//平均分
};
class StudentManage
{
private:
student *a; //student 就是类型,其前面不用加struct,此处定义的是student类型的指针,在class中通用
int n;//系统可储存学生数
public:
StudentManage(int nn)//构造函数
{
n = nn;//对n进行赋值
a = new student[n]; //申请9个学生存储空间,此后a就和数组一样
}
~StudentManage()//析构函数
{
delete [] a;//释放a申请的空间
}
void get()//输入信息
{
int i;
for (i = 0; i < n; i++)
{
// struct student a[i];
cout << "请输入第" << i + 1 << "个学生的信息" << endl;
cout << "顺序为姓名、性别、学号、语文、数学、英语" << endl;
cin >> a[i].name >> a[i].sex >> a[i].number >> a[i].yuwen >> a[i].shuxue >> a[i].english;//输入
// if (i == 9)
// {
// cout << "输入完毕" << endl;
// }
}
}
void chazhao()
{
int cz;//需查找的学号
int i;
cout << "请输入要查找的学号" << endl;
cin >> cz;
for (i = 0; i < n; i++)
{
// struct student a[i]; //a在类的私有数据已经定义,不用重复定义
if (a[i].number == cz)
{
cout << a[i].name <<" "<< a[i].sex <<" "<< a[i].number <<" "<< a[i].yuwen <<" "<< a[i].shuxue <<" "<< a[i].english << endl;//在输出上加上空格区分数据
break;//若没有break跳出循环,则执行完for循环后,i都是10,下面的if在查找到时也会输出查无此人
}

}
if (i == n)
cout << "查无此人" << endl;
}
void paixu()
{

}
void xiugai()
{
int cz;
int i;
cout << "请输入要修改信息的学生的学号" << endl;
cin >> cz; //这里忘记输入cz了...
for (i = 0; i < n; i++)
{
// struct student a[i];
if (a[i].number == cz)
{
cout << "请重新输入该学生信息" << endl;
cin >> a[i].name >> a[i].sex >> a[i].number >> a[i].yuwen >> a[i].shuxue >> a[i].english;
cout << "修改完毕" << endl;
break;//若没有break跳出循环,则执行完for循环后,i都是10,下面的if在查找到时也会输出查无此人
}

}
if (i == n)
cout << "查无此人" << endl;
}
void baocun()
{
int i;
ofstream outfile("e:\\学生数据.txt");
if (!outfile)//判断outfile是否申请成功
{
cout << "文件不存在" << endl;
exit(1);//异常退出
}
for (i = 0; i < n; i++)
{
// struct student a[i];
outfile << a[i].name <<" "<< a[i].sex <<" "<< a[i].number <<" "<< a[i].yuwen <<" "<< a[i].shuxue <<" "<< a[i].english << "/n";//在输出上加上空格区分数据

}
outfile.close();
}
};
void main()
{
int i, j=1;
StudentManage Mysystem(10);//申请一个10个学生空间大小的管理系统
while(1)
{
cout << " 成绩管理系统" << endl;
cout << "构建管理系统请输入‘1’" << endl;
cout << "查找学生信息请输入‘2’" << endl;
cout << "修改学生信息请输入‘3’" << endl;
cout << "保存学生信息请输入‘4’" << endl;
cin >> i;
if (i == 1)
Mysystem.get();//调用管理系统的get()函数
if (i == 2)
Mysystem.chazhao();//调用管理系统中的chazhao()函数
if (i == 3)
Mysystem.xiugai();//调用管理系统中的xiugai()函数
if (i == 4)
Mysystem.baocun();//调用管理系统中的baocun()函数
cout << endl;//区分输入输出
cout << "回到主菜单请输入‘1’退出请输入‘0’" << endl;
cin >> j;
if (j == 0)break;//输入0,则结束
}
}