資料結構課程設計學生成績管理系統

2021-03-04 05:06:28 字數 2927 閱讀 4583

遼寧科技大學

課程設計報告

設計題目: 學生成績管理

學院、系: 電子與資訊工程學院

專業班級: 計算機 11-2 班

學生姓名: 趙月

指導教師: 龍豔彬

成績2023年 1 月 8 日

目錄一、需求分析3

二、概要設計3

三、詳細設計5

3.1系統流程圖5

3.2介面設計6

3.3各功能模組的設計7

四、測試與分析9

五、總結15

六、附錄(源**16

1. 需求分析

1.1問題描述

本系統實現了學生成績管理的功能,具有學生成績的輸入、讀取、查詢、修改、插入、刪除、排序,統計等功能。

1.2基本要求

(1)輸入的形式和輸入值的範圍;

首先輸入學生個數,按回車鍵。按照提示選擇,將學生資訊儲存在文字文件中,具體對學生資訊進行插入刪除查詢操作時,將儲存在文字文件中的學生資訊提取出來,儲存在自己定義的資料結構中,然後再對該資料結構進行操作,所有操作完成,或者在相應的命令後,再將學生資訊儲存到文字文件中。輸入資料型別主要是char、int、float等資料型別,輸入內容包括:

學期、學號、姓名、高等數學成績,資料機構成績,大學英語成績總分,平均分等資料。

(2)輸出的形式;

學期、學號、姓名、高等數學成績,資料結構成績,大學英語成績,總分,平均分等資料。

(3)程式所能達到的功能;

1. 資料輸入功能,輸入的資料能最終儲存在檔案中;

2.資料刪除功能,能最終從檔案中刪除;

3. 排序功能,根據自己設計的資料結構,設計排序演算法

4.多種查詢(如按學號查詢、按姓名查詢、按成績查詢等)及輸出功能;

6. 學生資訊的修改(比如修改學生姓名,修改學生某門課程的成績)

7. 其它功能(如各種統計,統計每個學生所有課程的平均分,統計某門課程所有學生的平均分等等)

2、 概要設計

1. 資料結構:陣列(順序儲存結構)

2. 程式模組:

(1)先編入系統所需的庫函式,使程式可執行

#include

#include

#include //主要是對cin,cout之類的一些操縱運算,是i/o流控制標頭檔案。

#include 檔案和標準控制台的輸入輸出

#include

(2)主介面的設計

在主介面中包括「(冒泡)排序按總分降序(選擇)排序統計各科成績的總分和平均分退出」等全部的功能。每個函式體如下:

void input(student *r輸入

void output(student *r輸出

void searchnum(student *r); //按學號及學期查詢

void searchname(student *r); //按姓名及學期查詢

void change(student *r按學號及學期修改資訊

student *insert(student *r); //插入資訊

void shanchu(student *r); //按學號及學期刪除資訊

void maopao(student *r按資料結構降序(冒泡)排序

void xuanze(student *r按總分降序(選擇)排序

void tongji(student *r統計各科總分和平均分資訊

(3)main()函式的設計

在main()函式中主要運用do-while迴圈語句和switch()-case選擇判斷語句來呼叫相關

功能模組。系統的執行是在乙個迴圈裡進行的,只有在主介面並選擇「退出」時,才會跳出迴圈,並退出程式。

void main()

}while(m!=11);

}3、詳細設計

1、系統流程圖

2、介面設計

在此介面使用者可以選擇要操作的選項,回車之後即可進入相關的頁面進行操作(例如:選擇1,即可進入輸入學生資訊頁面)

3、各功能模組的設計

主函式模組:

用函式void main()來實現

主要是來顯示主選單,使使用者選擇操作。首先定義乙個指標陣列(全域性使用)student *p=(student *)new student[num];在此處num是指學生個數,並不是學號,在這裡應用了do-while和switch-case語句來進行選擇。最後若選擇「11」則是儲存記錄並退出迴圈。

輸入學生記錄模組:

用函式void input(student *r);來實現

主要功能用來對學生的成績進行輸入。首先會有個提示「輸入學生的個數」,之後跳出主選單,選擇"1",進入輸入模組輸入所需學生個數的學生資訊,比如學期,學號,姓名,成績等。輸完之後會自動跳出主選單。

期間會有一些提示語,按照提示操作。根據if和for語句來判定是否有重複學號輸入,在本操作中,允許有重複學生姓名出現。t=1表示找到了與之重複的學號,t=0表示未出現重複學號。

在此期間會根據語句算出總分和平均分,並預設按學號排序儲存到檔案中去。之後返回主選單。

輸出學生記錄模組:

用函式void output(student *r);來實現

主要功能是用來輸出學生的資訊。在系統已經錄入了學生資料的前提下,用該功能可以顯示學生的資訊資料。同時也會自動跳出主選單進行後續操作。

其中stew()指的是兩位元組之間的間隔,在括號中填入數字就會有相應的間隔。

按學號及學期來查詢學生記錄模組:

用函式void searchnum(student *r);來實現

主要功能時用來查詢學生記錄。首先會有提示輸入學號及學期,再用for迴圈語句和if判斷語句來進行查詢,if(r[m].num==n&&r[m].

term==k)若找到則顯示學生記錄並跳出迴圈;if(r[m].num!=n&&r[m].

term!=k)若沒有則提示「該學號不存在,或沒有這個學期的成績!」。

資料結構課程設計學生成績管理系統報告書

課程設計報告書 設計名稱 資料結構 c 版 題目 學生成績管理系統 學生姓名 專業 電腦科學與技術 班別 計科本 班 學號 指導老師 日期 2012 年 7 月 12 日 一 問題描述 設計目的 1.掌握線性鍊錶的建立。2.掌握線性鍊錶的基本操作。3.掌握查詢的基本演算法。設計內容 利用線性鍊錶實現...

資料庫課程設計學生成績管理

sql資料庫技術 課程設計 一 題目 學生成績管理 二 因為我做的是學生成績管理,所以資料庫中至少有個乙個表是來儲存學生的各課成績的。有了學生成績,得知道這個成績是哪個學生的,所以此表中也得有學生姓名,但是學生姓名肯定有重複的 所以得必須有個標誌來惟一標識乙個學生,所以得給每個學生乙個編號 學號 但...

資料結構課程設計

指導書山東建築大學 電腦科學與技術學院 二 六年十二月 課程設計基本情況 課程名稱 資料結構課程設計 相關課程 c語言程式設計 visual c 程式設計 資料結構 適合專業 電腦科學與技術 網路工程 軟體工程 設計週數 2周 學分 2學分 開課學期 第4學期 開課單位 電腦科學與技術學院 一 課程...