C語言專題製作:人事成績系統製作 國立台灣師大附中 李啟龍
單元摘要 主要在介紹C語言的struct結構,希望讓同學們可以依據程式的需要,自訂所需要的資料結構,因為不同的程式需求採用不同的資料結構來處理,可以增進程式的處理效率。 當學會這些資料結構之後,再實際運用這些功能,製作一個具有簡單功能的成績處理系統。 99.10_C語言專題製作
結構 結構是資料的集合,C語言提供了結構,程式設計師可以在結構內,包含許多其他的資料型態,一個結構內可以包含各種型態的變數或是陣列,也可以在結構內包含另外的結構,宣告的語法如下: struct 結構名稱 { 結構成員1; 結構成員2; … } 變數名稱 ; 99.10_C語言專題製作
結構宣告 定義一個結構時,等同於定義了一個新的資料型態。參考下方的範例: struct animal { char name[10]; int sex; }dog; 上方的範例中宣告了一個名稱為animal的結構,包含了兩個成員,第一個成員為一個字元陣列,第二個成員為一個整數變數。 99.10_C語言專題製作
練習題:玩牌比大小程式 請撰寫一個撲克牌的遊戲,隨機各發一張牌給電腦與使用者,使用者可選擇要比大或比小,之後輸出誰獲勝。程式的操作畫面如下圖所示。 99.10_C語言專題製作
99.10_C語言專題製作
練習題:向量的運算器 撰寫一個程式,定義一個三維空間的向量結構vector,使用者輸入兩個向量,程式依次輸出相加、內積與外積三種運算的結果。執行結果如下圖所示。 99.10_C語言專題製作
99.10_C語言專題製作
練習題:好友名單程式 撰寫一個程式,定義一個friend結構,此結構儲存好友的資料,內容包括了姓名、電話、生日等三項資料,並撰寫兩個自訂函式,enter( )函式可新增一筆好友的資料,show( )函式可將所有的好友名單輸出。程式的操作畫面如圖所示。 99.10_C語言專題製作
99.10_C語言專題製作
練習題:公司員工打卡機程式 撰寫一個程式,設計一個打卡機,有打卡與查詢的功能,打卡時輸入抵達公司與離開公司的時間,查詢時輸入id,然後輸出該id上次的打卡記錄。操作畫面如下圖所示。 99.10_C語言專題製作
99.10_C語言專題製作
練習題:學生成績系統 結構中的成員也可以為一個結構,這樣的結構稱為巢狀結構,請寫一個程式,定義一個結構grade,內含三個成員,一個為某學生的課程數目,第二個為一個陣列儲存各課程的成績,第三個為該學生的平均成績。再定義一個結構student內含兩個成員,一個是grade結構,另一個為學生姓名。使用者可輸入自己的名稱,課程數目,輸入各課程的名稱,接著計算平均成績,輸出平均成績為何。執行結果如下圖所示。 99.10_C語言專題製作
99.10_C語言專題製作
專題製作:人事處理系統 人事處理系統是個廣泛需求於各個公司行號、大專院校之間的基本程式,擁有一套基本且容易上手的人事處理系統不僅將使整個人事部門的行政效率大幅提升,也能讓繁雜的資料利用電腦來做儲存、甚至達到快速地搜尋或比對。 99.10_C語言專題製作
程式規劃 寫一個程式就像蓋一棟房屋一樣,我們要對這個問題有徹底的思考和規劃,再將這些規畫出的小元件蓋成一棟地基穩固又功能齊全的大房子。因此,在著手進行程式的寫作之前,我們先來思考這個系統應該擁有的基本功能: 輸入應試人員的成績。 將成績加以排序。 設定錄取人數。 顯示出已被錄取人員的成績。 99.10_C語言專題製作
程式需求 假設今天有一間公司預定錄取N名的員工,根據考試的科目,我們將最終成績分為四類:第一類為五科都及格(A)、第二類為一科不及格(B)、第三類為兩科不及格(C)、其餘為四類(D)。而錄取標準則是依類別優先(A~D),並在類別中再依據總分來進行降序排列。 試設計一個成績處理程序,要求輸出N份錄取通知書,並列出錄取者的各門成績及總分。 99.10_C語言專題製作
程式流程圖 99.10_C語言專題製作
程式測試步驟一 輸入考生人數。 輸入第一位應試人員的姓名及各科成績,當六科成績都輸入之後,會自動要求輸入考生2的資料。 99.10_C語言專題製作
99.10_C語言專題製作
基本資料輸入結果 編號 姓名 國文 數學 英語 物理 化學 政治 1 曹操 60 70 83 68 77 56 2 司馬懿 65 71 95 19 3 夏侯惇 82 40 48 13 64 4 夏侯淵 39 61 36 49 10 32 5 曹仁 72 51 81 6 孫堅 78 23 55 7 周瑜 20 62 85 8 大喬 45 43 74 9 關羽 84 52 80 89 諸葛亮 63 69 88 99.10_C語言專題製作
程式測試步驟二 輸入完應考人員的的成績之後,程式會將所有考生的成績整理出A (全部科目及格)、B (一科不及格)、C (兩科不及格)、D (兩科以上不及格) 99.10_C語言專題製作
程式測試步驟三 輸入預計錄取人數之後,程式將會列出被錄取人員的通知單。而挑選的過程是先依分類優先,也就是及格科目較多的優先錄取,若及格科目相同,再依照總分高低做篩選。 假設要錄取2人,程式判斷過程如下: 先依類別等級排序(A > B > C > D)得知有一人可被錄取,也就是諸葛亮。剩餘之錄取人數變為1人。 再來B類別中有兩人,分別為曹操和司馬懿,但在分數上以曹操的總分較高,故另一位錄取人為曹操。 99.10_C語言專題製作
99.10_C語言專題製作
感謝大家的熱情參與 謝謝 jet.jason@gmail.com Q&A 感謝大家的熱情參與 謝謝 jet.jason@gmail.com 99.10_C語言專題製作