2016年計(jì)算機(jī)三級數(shù)據(jù)庫技術(shù)考試必記語句:對文件中的記錄按字段排序

字號:

  (10)對文件中的記錄按字段排序
    


      變量說明: 
    
  變量i和{都是循環(huán)變量,同時(shí)表示的是結(jié)構(gòu)體中的一行記錄;dm是產(chǎn)品代碼的變量名,sell[i].dm是第i行的產(chǎn)品代碼的值,me、dj、sl和je分別是產(chǎn)品名稱、單價(jià)、數(shù)量和金額的變量名,同樣sell[i].me、sell[i].dj、sell[i].sl和sell[i].je也分別代表各字段在第i行對應(yīng)的變量值;tmp是用來保存記錄的中間變量;PR0是結(jié)構(gòu)體名。 
      表達(dá)式含義: 
      首先通過兩個(gè)for循環(huán)對結(jié)構(gòu)體中的兩條記錄進(jìn)行比較(具體的控制流程,與第(7)點(diǎn)中的類似),通過strcmp()函數(shù)比較兩條記錄中上一條記錄的產(chǎn)品名稱是否小于下一條記錄的產(chǎn)品名稱(ASCIl碼值),如果兩個(gè)產(chǎn)品名稱相同,則比較上一條記錄的金額是否小于下一條記錄的金額。無論滿足哪個(gè)條件,都將執(zhí)行條件語句中的語句序列,即:把sell[i](當(dāng)前記錄)的值復(fù)制到tmp,然后將把sell[j](當(dāng)前記錄后面的記錄)的值復(fù)制到sell[i],最后將tmp的值復(fù)制到sell[j],這樣就完成了記錄的排序。 
      本例題可參考第(7)點(diǎn)的例題,此處不在重復(fù)說明。