问答题
学校教务处要为任课老师开发一个学生管理系统,需求如下: (1)学生的信息要受到严密保护和限制,包括姓名、五位英文字符的学号,以及精确到小数点后一位的一科成绩,只有任课老师可以修改,如果学生升学了,比如由本科升到研究生,原来的信息还有效,而只需要添加研究生的必要信息,不过现在不必马上实现,但应当有所考虑。 (2)学生的所有信息可以查看,但也只有学生自己才有这个权利。 (3)学生的信息可以从文件中读取来构造信息库,需要把信息输出到屏幕以便核实,但这需要任课老师完成。 (4)老师能提供所教学生的完整信息列表,同时可按成绩高低排序。 (5)为了便于学校评定奖学金,需要单独查找成绩最高的同学(一般不采用把成绩单全部排列后来选取,可能这比较耗时间,虽然要求不太合理,但要按用户的需求操作,同时需要指出的是,如果成绩最高者有数名,需要一一列出)。 (6)由于学校的机器比较老,内存严重不足,每个老师带的学生数不一样,但也不会超过50人。 以上功能的程序框架已经形成,考生需要按照需求来逐个实现。 (1)请在注释//*******1******后添加适当的语句,以便实现功能需求1。 (2)请在注释//*******2*****处加适当的语句,实现成绩单排序功能。 (3)请在注释//*******3*******处实现查找成绩最高学生名单。 无需修改main()主函数,当得到下面的结果时,该系统可能被采用。 姓名 学号 成绩 周彪 10001 89.5 李明 10002 97 江波 10003 88 李梅 10004 76 周彪 10005 79.5 秦明 10006 81 里斯 10007 97 姓名 学号 成绩 李明 10002 97 里斯 10007 97 周彪 10001 89.5 江波 10003 88 秦明 10006 81 周彪 10005 79.5 李梅 10004 76 查询成绩最高的学生信息: 里斯 10007 97 李明 10002 97 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。/**********code.c**********/ /**********-code.c**********/
【正确答案】>
【答案解析】第一处,应添加friend class CTeaeher;
第二处,if()应改为if(index!=j)
第三处,应添加pS[0]=m_pStu[0];
分析:第一处根据题意,CTeacher的成员函数要调用CStudent类的成员函数,而这两个类又没有继承关系,所以要把CTeaeher类声明为CStudent类的友元类。第二处 sort函数是排序函数,其基本思想是先比较数据,然后保留最大值的下标。if(index!=j)是判断最大值的下标是否改变,如果没有改变就不用执行if(index!=j)的语句(即交换数据的语句)。第三处Best函数是用来返回最高分的个数,pS数组存放的是最高分的索引值。所以应该将其初始化为第一个元组的索引值(即周彪的索引值)。