C 課程設計指導書 2019

2022-05-18 11:19:03 字數 3403 閱讀 8011

一、課程設計目的

通過設計、實現乙個微型的學生養成系統,熟悉物件導向的設計思想;進一步熟悉、掌握stl中有關資料型別的使用方法,以及泛型程式設計的風格。

二、設計目標

題目:微型學生養成系統

在這個課程設計中,你需要設計並實現如下場景:在那山的那邊,湖的那邊,有一所學校,學校裡有一幢宿舍樓,宿舍樓有若干房間 ,一群學生快樂地生活在這裡。他們每天可做的事情有:

1.換宿舍,從乙個房間搬到另乙個房間;2.退學,亦即搬出宿舍樓;3.

入學,亦即搬入宿舍樓;4.吃飯,吃飯會增加體重,花費金錢;5.學習,學習會消耗體重,增加魅力;6.

化妝(女生獨有),化妝會花費金錢,提公升容貌;7.運動(男生獨有),運動會消耗體重,增加健康。體重、容貌、健康與魅力之間存在一定的轉化關係。

此外,宿舍樓還可進行擴建,亦即增加樓層,增加某層的房間數,以及增加某個房間可容納的人數(不考慮這種任意增加的物理可能性)。經過一段時間的生活後可對學生的狀態資訊進行查詢。

具體要求:

1. 程式執行的初始引數從某個指定的配置檔案中讀取(該檔名作為第乙個引數傳遞給程式)。配置檔案的格式詳見範例檔案。

2. 學生的初始房間分配情況從某個指定的檔案中讀取(該檔名作為第二個引數傳遞給程式)。該檔案每一行都是乙個學生的初始房間分配,格式如下:

【學生姓名】 【性別】 【房間號】

3. 所有的指令描述都儲存在某個指定檔案中(該檔名作為第三個引數傳遞給程式)。該檔案每一行都是乙個指令的描述,指令種類及其格式說明如下:

【學生姓名】 move from 【原房間號】 to【新房間號】

解釋:換宿舍。

【學生姓名】quit

解釋:學生退學,搬離原房間。

【學生姓名】enrol 【房間號】

解釋:學生入學,搬入房間。

add 【層數】floor(s)

解釋:在現有樓層之上增加【層數】個樓層,層號在現有樓層基礎之上順排;每層樓的房間數及每個房間的容量都是初始值。

add 【房間數】room(s) to【層號】 floor

解釋:在第【層號】層樓增加【房間數】個房間,房間號在該層現有房間基礎之上順排,每個房間的容量為初始值。

add 【床位數】bed(s) to【房間號】

解釋:在【房間號】房增加【床位數】個床。

【學生姓名】【eat 食物數量】【study 學習時間】【makeup 化妝時間】【exercise 運動時間】

解釋:學生至少執行一種活動,至多執行三種活動(因為化妝和運動分別為女生和男生獨有);活動的出現順序不定;食物數量,學習時間,化妝時間,運動時間均為1 ~ 100 的正整數。

說明:(a) 以上指令描述中【】及其中的漢字代表非終極符,在實際的指令描述檔案中為具體值所代替;大寫的英文本元(無論是否出現在【】中)為終極符,在實際的指令描述檔案中原樣出現。

(b) 【房間號】代表某個房間,其格式為 【樓層號】 - 【某一層中的房間號】,【樓層號】為兩位整數,取值範圍是01 ~ 99,即便十位為0也需寫出;【某一層中的房間號】為兩位整數,取值範圍是01 ~ 50,即便十位為0也需寫出。

(c) 【學生姓名】為漢字,長度為2 ~ 4,不包含空格,資料檔案中不會出現不合規則的姓名。

(d) 【性別】為「男」或者「女」,資料檔案中不會出現不合規則的性別。

(e) 男女生不得同一房間住宿。

(f) 女生不會運動,男生不會化妝。

(g) 若任何指令及其後果違背了規則(b)、(e)(f)以及常識(譬如不存在的房間號,不存在的學生——入學除外,入住的人數超過了房間的最大容量),則該指令不予執行。

4. 請自行決定宿舍,樓層,房間的資料結構。

5. 本程式中至少有三個類,男生類,女生類,以及這兩個類的基類——學生類。三個類至少具有的屬性分別是:

學生類的屬性:姓名(不會出現同名的情況),性別,魅力,體重,花費的金錢。

男生類的屬性:繼承而來的屬性,健康。

女生類的屬性:繼承而來的屬性,容貌。

其中金錢,體重為正整數,健康、容貌、魅力為1 ~ 100的整數。

6. 每執行一次吃飯、學習、運動、化妝活動後,學生的狀態變化如下:

男生:體重增量:食物數量 * 單位食物增加的體重 – 學習時間 * 單位學習時間減少的體重 – 運動時間 * 單位運動時間減少的體重

金錢:食物數量 * 單位食物消耗的金錢

健康增量:運動時間 * 單位運動時間增加的健康值。說明:健康最多增加到100,但學生還可以繼續運動,不算無效指令。

魅力增量:學習時間* 單位學習時間增加的魅力 + 健康增量 / 10 – 體重增量 / 5。說明:魅力最多增加到100,但學生還可以繼續從事增加魅力的活動,不算無效指令。

女生:體重增量:食物數量 * 單位食物增加的體重 – 學習時間 * 單位學習時間減少的體重

金錢:食物數量 * 單位食物消耗的金錢 + 化妝時間 * 單位化妝時間消耗的金錢

容貌增量:化妝時間 * 單位化妝時間增加的容貌。說明:容貌最多增加到100,但學生還可以繼續化妝,不算無效指令。

魅力增量:學習時間* 單位學習時間增加的魅力 + 容貌增量 / 20 – 體重增量 / 4。說明:魅力最多增加到100,但學生還可以繼續從事增加魅力的活動,不算無效活動。

7. 當指令描述檔案中所有的指令都完成之後,向使用者顯示查詢介面,提供如下查詢功能:

a) 對於宿舍中的所有學生(包括男女生)、男生、女生,可對體重,花費的金錢,容貌(女生適用),健康(男生適用),魅力進行最大、最小值查詢,以及範圍查詢(亦即查詢屬性值屬於某個範圍的所有學生)。查詢結果的排序依據為學生的姓名,可公升序或降序排列。

b) 根據學生姓名(有可能不住在宿舍中)查詢他(她)所在的房間號。

c) 根據房間號(有可能不存在)查詢該房間中入住的所有學生的姓名,查詢結果的排序依據為學生的姓名,可公升序或降序排列。

注意:在顯示資訊時必須合理、美觀,譬如適時地清空整個螢幕;假如資訊超出一屏則顯示必須暫停,待使用者指示繼續後再繼續顯示;輸出的資訊中應加上適當的空白以方便閱讀。設計良好、簡潔、便於使用的互動介面會有加分,過於拙劣的介面將會扣分。

三、課程設計報告

內容包括:系統功能模組圖、程式實現思路、設計說明、設計心得和關鍵功能的**(關鍵**篇幅不得超過整個報告的10%,否則以灌水論處,酌情扣分)。

另外,所提交的程式完整源**中一定要有適當的注釋,並具有良好的程式設計風格,這些都是評分的標準。

四、其他事項

1) 課程設計源**及設計報告提交時間為2012-7-1日24:00前。

2) 提交源**時將所有原始檔(包括標頭檔案)放在乙個目錄中,然後將該目錄和設計報告一起打包成乙個rar或者zip檔案傳送到 郵件的標題為 c++課程設計_姓名_學號,嚴格按照這個標題進行提交。

3) 千萬不要圖省事將 .exe, .opt, .ncb, .dsw 等非源程式檔案打包入所提交的壓縮檔案中,否則檔案將變得很大,影響**。

4) 課程設計成績考核:程式程式設計測試、設計報告分別佔70%、30%。

5) 對於課程設計若有任何疑問請盡快提出,以免影響課程設計的完成。

C課程設計指導書

一 課程設計目的 通過設計乙個 小型公司工資管理系統 或 學生成績統計管理 進一步熟悉c 中類的概念 類的封裝 繼承的實現方式。了解系統開發的需求分析 類層次設計 模組分解 編碼測試 模組組裝與整體除錯的全過程,加深對c 的理解與visual c 環境的使用 逐步熟悉程式設計的方法,並養成良好的程式...

C語言課程設計指導書

指導書適用專業電子資訊工程 班級1101 1105 課程設計時間 2012.02.20 2012.03.02 任課教師 劉梅彥 李穎 方煒煒 聯絡 62844831 目錄一 課程設計目的 3 二 課程設計內容 3 1.設計環境 3 2.基本要求 3 3.設計步驟 4 4.課程設計報告的要求 4 5....

C語言課程設計指導書 應數2019

課程設計是c語言教學中,乙個重要的實踐環節。一般來講,課程設計應該比課程教學實驗複雜一些,要求所涉及的內容應該有一定的深度和廣度,並更加接近現實應用。通過課程設計的綜合訓練,培養學生實際分析問題 程式設計和動手能力,最終目標是想通過這種形式,幫助學生系統掌握該門課程的主要內容,更好地完成教學任務。本...