问答题 使用VC6打开考生文件夹下的源程序文件modi3.cpp。学校教务处要为任课老师开发一个学生管理系统,需求如下: (1)学生的信息是要受到严密保护和限制的,包括姓名、五个英文字符的学号,以及精确到小数点后一位的一科成绩,只有任课老师可以修改,如果学生升学了,比如由本科升到研究生,原来的信息,还有效,而只需添加研究生的必要信息,不过现在不必马上实现,但应当有所考虑。 (2)学生的所仃信息可以查看,但也只有学生自己才有这个权利。 (3)学生的信息可以从文件中读取来构造信息库,需要把信息输出到屏幕以便核实,但这需耍任课老师来完成。 (4)老师能提供所教学生的完整信息列表,同时可按成绩高低排序。 (5)为了便于学校评定奖学金,需要单独查找成绩最高的同学(一般不采用把成绩单令部排列后来选取,可能这比较耗费时间,岁然要求不太合理.但要按用户的需求操作,同时需要指出的是,如果成绩最高者有数名,需要—一列出)。 (6)由于学校的机器比较老,内存严重不足,每个老师带的学生数不一样,但也不会超过50人。 以上功能的程序框架已经形成,考生需要按照需求来逐个实现。 (1)请在注释∥********1********之后添加适当的语句,以便实现功能需求(1)。 (2)请在注释∥********2********处添加适当的语句,成绩单排序功能。 (3)请在注释∥********3********处实现查找成绩最高学生名单。 无需修改main()主函数,当得到下面的结粜,该系统可能被采用。 输入的学生信息: 姓名 学号 成绩 周华0001 78.5 李强0002 98 刘星0003 89 贺兰0004 78 周红0005 76.5 赵邦0006 85 高俊0007 98 排序后的学生信息: 姓名 学号 成绩 李强0002 98 高俊0007 98 刘星0003 89 赵邦 0006 85 周华000l 78.5 贺兰 0004 78 周红0005 76.5 查询成绩最高的学生信息: 高俊0007 98 李强0002 98 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include #include #include #define NMAX 50 class Teacher; class Student { public: student(char *name=“未知 ”,char *number=“0 0 0 0 0”,double mark=0.0) { int len=strlen(name); m name=new char[len+1]; strcpy(m name,name); strcpy(m number,number); m mark=mark; } Student() { delete[]m name; } void DisplayMsg() { cout<>name; in>>number; in>>mark; m—count++; m pStu[i]=new Student (name,number,mark); cout<m—mark> m_pStu[index]->m—mark) index=j; } ∥********2******** if() { Student*ps=m pStu[i]; m_pStu[i]=m_pStu [index]; m.pStu[index]=ps; } } } void Teacher::Display() { cout<<“姓名\t”<<“学号\t”<<“成绩\t”<DisplayMsg(); } } int Teacher::BestScore(Student *pS[]) int index=0; int count=1; ∥********3******** for(int j=1; jm—mark> m pStu[index]一>m mark) { count=1; index=j; pS[count++]=m pStu [index]; } else if(m_pstu[j]>m—mark =m_pStu[index]一>m_mark) { index=j; pS[count++]=m pStu [index]; } } return count; } void main() { Teacher Teacher; Student*pStudent[NMAX]; cout<<“输入的学生信息:”< 9isplayMsg(); } }
【正确答案】正确答案:(1)添加语句:friend ClasS Teacher; (2)将“if()”补充完整为: if(i ndex!:j) (3)添加语句:pS[0]=m pStu[0];
【答案解析】解析:类Student含有三个成员变量:姓名、五个英文字符的学号和精确到小数点后一位的一科成绩,类Teacher含有Student对象数组的指针Student*m_pStu[NMAX]、m_average和m—count三个成员变量,类Teacher有多个成员函数,完成学生数据输入、排序、查找最好成绩和打印等功能。