因为Dataquery结果集非常大,不允许使用数组等结构来缓存结果集全部数据,该怎么办?

假定Dataquery类为封装后的数据库结果集对象,调用Dataquery.getData可以返回Data1类型的对象,该对象结构如下:
class Data1
{
String xsxh; //学号
String xsxm; //姓名
String kcdm; //课程代码
float kcxf; //课程学分
float kscj; //成绩
String kcsx;//课程属性
}
Dataquery的数据指针只能向前移动,每次调用Dataquery.next()方法都会检查结果集中当前指针指向位置后面是否还有数据,如果有则向前移动指针,指向下一个元素,否则直接返回false。已知Dataquery中的数据已经按照唯一关键字“学号”进行了排序,示例数据:
95001 张三 001 2 92 必修
95001 张三 002 3 70 选修
95002 李四 003 5 88 必修
95002 李四 005 3 98 选修
因Dataquery结果集非常大,不允许使用数组等结构来缓存结果集全部数据。请编写函数,使用Dataquery为输入参数,计算每个学生的平均成绩(仅成绩不小于60分参与计算),学分和(仅成绩不小于60分,且属性为必修课参与计算),并以下面的格式输出:
学号:95001|姓名:张三|平均成绩:78|学分和:80

LEATH
浏览 89回答 2
2回答

蛊毒传说

如果是要访问整个单链表的话,就直接可以从head->next开始一一遍历;如果是要访问单链表中某个结点的话,那就设个while循环从头结点开始直到遍历到要访问的结点(比如为q)结束。具体程序如下:x为要访问的结点值(假如是int 型)p=head;while(p->next->data!=x)p=p->next;if(p)printf("%d",p->data);elseprintf("not exsit this element!");

GCT1015

Dataquery既然是对象必然已经进入内存了,否则怎么称为对象,对象是类在内存中的实例化。如果是个文件的话,就用IO流处理。如果是数据库的输出结果,就用接口函数,用不着缓冲数据。
打开App,查看更多内容
随时随地看视频慕课网APP