1 / 10

Introduction to C Programming

Introduction to C Programming. Program 7. Program 7 Address Book. 撰寫 一個通訊錄程式,從檔案中讀入資料,讓使用者執行操作後,並可將 修改後的結果 寫回檔案。 操作 insert : 加入一筆資料 update : 根據 id 更新資料 delete :根據 id 刪除資料 sort :根據 id 排序資料 show :顯示所有聯絡人資料 save :將通訊錄寫回檔案中 exit :離開程式. 檔案內容. 檔案名稱固定為: in.txt

ozzy
Download Presentation

Introduction to C Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to C Programming Program 7

  2. Program 7Address Book • 撰寫一個通訊錄程式,從檔案中讀入資料,讓使用者執行操作後,並可將修改後的結果寫回檔案。 • 操作 • insert:加入一筆資料 • update:根據id更新資料 • delete:根據id刪除資料 • sort:根據id排序資料 • show:顯示所有聯絡人資料 • save:將通訊錄寫回檔案中 • exit:離開程式

  3. 檔案內容 • 檔案名稱固定為:in.txt • 內容每行為一筆資料,分別為id,name,email,phone • 每個欄位以逗號分隔 • 例 1,Tammy J. Connors,TammyJConnors@teleworm.us,580-228-1482 2,Lewis S. Archer,LewisSArcher@teleworm.us,904-305-6505 3,Paula D. Nelson,PaulaDNelson@dayrep.com,203-580-7616

  4. 操作界面 • 利用印出>提示使用者輸入功能指令

  5. 操作界面

  6. 功能 • insert • 以(id) >> 提示使用者輸入id • 以(data) >> 提示使用者輸入name,email,phone (以逗號分隔) • update • 以(id) >> 提示使用者輸入id • 以(data) >> 提示使用者輸入name,email,phone (以逗號分隔) • delete • 以(id) >> 提示使用者輸入id • 刪除後將最後一筆資料取代被刪除資料原來的位置 • sort:根據id排序 • show:顯示所有聯絡人資料,每筆欄位以四個空白分隔 • save:將通訊錄寫回in.txt檔案(覆蓋原本內容) • exit:離開程式

  7. 限制 • 每筆資料條目必須以下面的struct實作,不可使用靜態的char陣列儲存 struct Entry { int id; char* name; char* email; char* phone; } • malloc的記憶體必須在結束使用後free • 每行資料長度不會超過128字元

  8. Bonus • 加入一個功能:query,以SQL語法查詢資料,並印出 • 語法的規格為 • SELECT[欄位名]… FROM address_book WHERE [欄位名] = 值...ORDERBY[欄位名] ASC| DESC • 若有語法錯誤,請印出syntax error • WHERE 與 ORDER BY不一定會出現(可選) • 粗體字為一定會出現的固定語法 • SELECT,FROM, WHERE, ORDER BY…等關鍵字不分大小寫 • 例如:選出全部資料的id, name • >> SELECTid, name FROM address_book

  9. Bonus– 語法說明 • WHERE為查詢條件,並可使用AND與OR合併多個條件 • 在此僅實作等於、大於、小於 • 例如:選出id > 3資料的id, name • SELECT id, name FROM address_book WHERE id > '3' • 例如:選出name為peter或id>3的資料的電話欄位 • SELECTphone FROM address_book WHERE name = 'peter' OR id >'3‘ • ORDER BY為排序查詢出來的資料 • 固定只會有一個排序條件 • ASC為遞增與DESC為遞減 • 選出所有的id> 3的name欄位,並依照id遞減排序結果 • SELECT name FROM address_book WHERE id > '3'ORDER BY id DESC

  10. Deadline • 12/27

More Related