2007年5月23日 星期三

Excel 表格有條件合併


問題描述:

存在有三張Excel的學生名冊,分別紀載學生之獎學金、就學貸款和減免費用,以下分別描述:

  • 獎學金名冊有三個欄位,分別為學號、獎學金分類和金額,存在同一學號領取多筆獎學金
  • 就學貸款有二個欄位,分別為學號和貸款金額,同一學號只會有一筆就學貸款金額
  • 減免費用有二個欄位,分別為學號和減免事項,同一學號只會有一筆就學貸款金額

今吾人想輸出一張新的表格,此表格包含學生學號、獎學金分類、獎學金金額、就學貸款金額和減免事項等五個欄位,其中
  1. 以獎學金名冊為主,進行輸出,也就是說若獎學金名冊不重複學號有2000筆,就學貸款有5000筆,減免費用有1000筆,最後會輸出2000筆紀綠
  2. 不存在相同學號的紀錄筆
  3. 若重複領取獎學金之學生必須合併(金額相加,並取最高獎學金金額的分類)
  4. 每筆紀錄需輸出領獎學金之學生是否同時有就學貸款金額或減免事項
  5. 不得使用資料庫操作

技術解析:

  1. 將三張Excel分別輸出為三個以Tab分隔的文字檔
  2. 分別讀入三個文字檔
  3. 當讀入獎學金文字檔時,要判斷是否有重複學號,有的話要進行金額累加並調整獎學金分類
  4. 利用三個一維陣列物件儲存不同文字檔內容,並以學號為主要索引
  5. 循序走訪獎學金陣列,判斷獎學金陣列的學號是否存在另外二個陣列之中
  6. 完成

困難度:*
時間複雜度:O(n)
程式語言:C#
預估時間:2 小時

程式下載

原碼下載

沒有留言: