課程設計實驗報告

2021-03-20 14:24:52 字數 3486 閱讀 2821

上海應用技術學院

課程設計

2011~ 2012學年第二學期

設計題目成績記錄簿

院(系) 電腦科學與資訊工程學院

專業計算機應用技術

班級 12104006 學號 1210400631

學生姓名溫源

設計時間 2013.07.1~2012.07.12

指導教師宋智禮

提交日期

上海應用技術學院課程設計任務書

指導教師(簽名教研室主任(簽名

目錄一、 設計目的及要4

二、 功能描述5

三、 總體設計6

3.1 功能模組設計

3.2 資料結構設計

3.3 函式功能描述

四、 程式實現15

4.1 原始碼分析

4.2 執行結果

五、 程式除錯與檢錯30

六、 程式執行指導31

七、 課程設計總結36

八、 參考文獻36

一、 設計目的及要求

通過對c語言的熟練掌握,編寫乙個擁有簡單介面的可執行程式來實現對乙個或多個學生成績的記錄,並且能在記錄的基礎上拓展到新增學生成績、刪除學生成績、查詢學生成績甚至查詢班級的某一課程成績。。以下是課程設計的詳細要求。

成績記錄簿中記錄以下資料:學號、姓名、課程編號、課程名稱、成績、學分,所有成績都以百分制計分;輸入資訊時要檢查資料項學號、課程編號、成績、學分的合法性,學號:8位數字;課程編號:

5位數字;成績:0 ~ 100 之間的整數,學分: 1~ 5之間的實型數。

新增成績:需要輸入學生的學號或姓名、課程編號及成績,如已有該門課程成績給出提示;

查詢(班級或個人)成績:

查詢個人成績:以學號或姓名作為關鍵字,可查詢乙個學生的所有成績,和已完成的總學分。

查詢班級成績:以課程編號為關鍵字,成績表後面要統計平均分、及格率及全班同學不同課程在不同分數段分布的人數及百分比。

拓展功能:

a) 程式啟動時先從檔案讀入資料,如果檔案中沒有資料則給出提示;

b) 每次修改的資料寫入檔案。

下面是要求的程式的主介面:

二、功能描述

按照要求的主介面的排布,我將程分為7個模組,依次為1、新增,2、刪除,3、查學生成績,4、查班級成績,5、寫入檔案,6、讀取檔案,7、退出。

(1)、新增學生成績摸塊。這乙個模組又分為兩個小模組,將學生的基本資訊和學生的課程成績分開新增,第乙個小模組也就是學生的基本資訊包括學生的學號、姓名和班級(見程式中第乙個結構體);第二個小模組是學生的課程成績其中包括學生的學號、課程編號、課程名字、成績以及該門課程所佔的學分(見程式中第二個結構體)。第乙個小模組和第二個小模組分別定義了乙個函式insert1和insert2,最後用乙個insert函式將兩個小函式用乙個switch語句連線起來。

(2)、刪除學生成績模組。這一模組在思路上和第乙個模組是一樣的,都是用兩個小函式分別將兩個小模組寫出來,再用乙個函式將其連線起來,不作詳細說明。

(3)、查詢學生成績模組。這乙個模組可以通過兩種方法來查詢學生的成績,可以通過學號或是名字,只要在已儲存的資料中含有該名學生的學號或是名字就會將這名學生的成績資訊輸出到螢幕上,快捷,準確。如果沒有該名學生的學號或是名字資訊,則程式將會返回到主介面,等待下一步操作。

(4)、查詢班級成績模組。、及格率及全班同學不同課程在不同分數段分布的人數及百分比。

(5)、寫入檔案模組。因為可執行程式每執行一次資料不儲存的話就會丟失,所以這個模組是為了將每次鍵入的學生資訊完善以後按照指示儲存到指定位置的檔案裡面去,以便於以後察看及匯出。

(6)、讀取檔案模組。就在剛才說過的匯出檔案中的資訊就是這個模組的主要功能。可以在剛開始執行程式的時候先選擇讀取檔案,然後鍵入檔案準確的位置資訊,這樣就可以將這個檔案裡面的學生的成績等資訊匯入到程式的已以儲存中,這樣就不用每次都鍵入很多資訊。

(7)、退出模組。凡是程式有入口必須有出口,否則就不是乙個很完善的程式。這個模組就是提供這樣乙個出口的功能。

三、總體設計

3.1 功能模組設計

成績記錄簿的執行如上面的主要框架流程圖所示,在檢測鍵入的序號之後開始啟動序號所對應的模組。新增成績和刪除成績都是對應的分為了兩個小模組進一步執行的,一般都是通過先新增基本資訊進去,再對應的新增進去基本資訊所對應的課程成績,而刪除的時候是不用講究次序的,可以直接通過鍵入學號,如果查詢到對應的資訊,則刪除成功,若找不到也會提示刪除不成功。查詢學生成績與查詢班級成績的模組其實在原理上是一樣的,只不過開始時輸入的查詢資訊不一樣。

一、主函式流程圖

(1) 主介面程式流程圖:

二、子函式(模組)流程圖

(1)、新增學生成績

(2)、刪除學生成績

(3)、查詢學生成績

(4)、查詢班級成績

(5)、寫入檔案成績

(6)、讀取檔案成績

3.2 資料結構設計

此程式中定義了兩個結構體,以及全域性變數,在這裡著重說明一下這兩個結構體的作用以及全域性變數的使用。

1. student1結構體

這是第乙個結構體,它也是第乙個模組新增成績與第二個模組刪除成績中的學生基本資訊的載體,如果沒有它,那麼這兩個模組的分步驟新增或刪除功能都不可能實現。

2. student2 結構體

這是第二個結構體,它是學生詳細的成績資訊,通過上面這個截圖就能看變得很清楚,兩個結構體所包含的元素不同,也使得他們兩個的作用截然不同。

3. 全域性變數

上面的截圖是源程式中的乙個全域性變數,主要作用是用來控制後面程式中的for語句中的迴圈體。

3.3 函式功能描述

(1)、isdigit()函式

isdigit

原型:extern int isdigit(char c);

用法:#include

功能:判斷字元c是否為數字

說明:當c為數字0-9時,返回非零值,否則返回零。

附加說明此為巨集定義,非真正函式。

(2)、strcmp()函式

原型:extern int strcmp(const char *s1,const char * s2);

所在標頭檔案:string.h

功能:比較字串s1和s2。

一般形式:strcmp(字串1,字串2)

說明:當s1當s1==s2時,返回值=0

當s1>s2時,返回值》0

即:兩個字串自左向右逐個字元相比(按ascii值大小相比較),直到出現不同的字元或遇'\0'為止。如:

"a"<"b" "a">"a" "***puter">"***pare"

特別注意:strcmp(const char *s1,const char * s2)這裡面只能比較字串,不能比較數字等其他形式的引數。

(3)、strcpy()函式

原型宣告:extern char *strcpy(char* dest, const char *src);

標頭檔案:#include

說明:src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串。

返回指向dest的指標。

(4)、exit()函式

函式名: exit()

課程設計實驗報告

實驗報告 課程名稱統計學課程設計 實驗類別 綜合性 設計性 其他 實驗專案統計學課程設計 專業班級 姓名 學號 實驗室號實驗組號 實驗時間批閱時間 指導教師成績 瀋陽工業大學實驗報告 適用經 管 文 法專業 專業班級學號姓名 實驗專案 spss資料處理 附件 1 瀋陽工業大學實驗報告 適用經 管 文...

PLC課程設計實驗報告

可程式設計控制器原理與實踐 課程設計 實驗報告 姓名 楊益偉 班級 自動化1202 學號 120900321 指導教師 張義紅 2014年11月 東華大學資訊科學與技術學院 目錄一 plc課程設計目的及要求3 二 plc的技術特點及應用3 三 課程設計內容5 3.1智慧型搶答器系統5 3.1.1控制...

PLC課程設計實驗報告

資訊與電氣工程學院 課程設計說明書 2013 2014 學年第 2 學期 課程名稱 可程式設計序控制器應用 課程設計 題目 尺寸檢測和材質檢測控制 專業班級 自動化一班 學生姓名 孫博旭 學號 110410110 指導教師 設計週數2 周 設計成績 2014 年 6 月 27 日 1.課程設計目的 ...