亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

因為Dataquery結果集非常大,不允許使用數組等結構來緩存結果集全部數據,該怎么辦?

因為Dataquery結果集非常大,不允許使用數組等結構來緩存結果集全部數據,該怎么辦?

LEATH 2023-01-12 21:15:55
假定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
查看完整描述

2 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

如果是要訪問整個單鏈表的話,就直接可以從head->next開始一一遍歷;
如果是要訪問單鏈表中某個結點的話,那就設個while循環從頭結點開始直到遍歷到要訪問的結點(比如為q)結束。具體程序如下:x為要訪問的結點值(假如是int 型)
p=head;
while(p->next->data!=x)
p=p->next;
if(p)
printf("%d",p->data);
else
printf("not exsit this element!");

查看完整回答
反對 回復 2023-01-15
?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

Dataquery既然是對象必然已經進入內存了,否則怎么稱為對象,對象是類在內存中的實例化。
如果是個文件的話,就用IO流處理。如果是數據庫的輸出結果,就用接口函數,用不著緩沖數據。

查看完整回答
反對 回復 2023-01-15
  • 2 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號