數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告學(xué)生成績管理系統(tǒng)_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告學(xué)生成績管理系統(tǒng)_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告學(xué)生成績管理系統(tǒng)_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告學(xué)生成績管理系統(tǒng)_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告學(xué)生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告 信息工程學(xué)院計算機(jī)科學(xué)與技術(shù)專業(yè)題目: 學(xué)生成績管理系統(tǒng)(線性表應(yīng)用)班級:計算機(jī)111班 第11組 組長: 姓名:葛學(xué)謙 學(xué)號:11組員:姓名:冷 冰 學(xué)號:16 指導(dǎo)老師:曲朝陽、郭曉利、劉志穎 日期:2012年 12 月20 日 程序設(shè)計書目錄一、程序設(shè)計目標(biāo)二、問題描述三、需求分析四、概要設(shè)計(說明課程設(shè)計中用到的抽象數(shù)據(jù)類型的定義、主程序的流程以及各程序模塊之間的調(diào)用關(guān)系等)五、詳細(xì)設(shè)計六、軟件說明書七、源程序清單八、測試報告 九、課程設(shè)計總結(jié)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計一、課程設(shè)計目的 1.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計,使我們能夠?qū)W(xué)到的面向?qū)ο蟮脑O(shè)計思想運(yùn)用在具體的工作和學(xué)習(xí) 中,

2、加深對類和對象的理解,2.要求學(xué)生對生活中許多具體的事物抽象出類,并掌握繼承和派生類、基類、虛函數(shù)和多態(tài)的概念。3.通過課程設(shè)計掌握面向?qū)ο笳Z言程序設(shè)計的編程思想,為后續(xù)課程打下基礎(chǔ)。4.培養(yǎng)我實(shí)際操作能力和實(shí)踐能力,為以后的工作打下堅(jiān)實(shí)的基礎(chǔ)。二、課程設(shè)計的內(nèi)容1、課程設(shè)計的題目及簡介文本界面為管理員1.輸入信息 2.保存信息 3.查詢信息 4.修改并保存 5.顯示全部 6.刪除信息 7.退出系統(tǒng) 學(xué)生1信息查詢(1)輸入姓名(2)輸入學(xué)號2退出系統(tǒng)三、需求分析(說明課程設(shè)計的任務(wù))提供身份驗(yàn)證,和使用系統(tǒng)的權(quán)限設(shè)置、判定。教師用戶能實(shí)現(xiàn)本班同學(xué)各學(xué)期各科成績的錄入、編輯,數(shù)據(jù)必須保存在文件

3、中,以便反復(fù)使用。學(xué)生用戶提供對學(xué)號或姓名,各學(xué)期、各學(xué)科成績的查詢。學(xué)生和教師用戶能按各學(xué)期、各學(xué)科分?jǐn)?shù)排序輸出。教師用戶能統(tǒng)計各科成績分?jǐn)?shù)段的分布,并輸出。四、概要設(shè)計(說明課程設(shè)計中用到的抽象數(shù)據(jù)類型的定義、主程序的流程以及各程序模塊之間的調(diào)用關(guān)系等)1.調(diào)用函數(shù)Node* Create()判斷是否等于一如果是可創(chuàng)建鏈表輸入相應(yīng)的學(xué)生成績?nèi)绻皇莿t需要運(yùn)用Insert(p)函數(shù)插入結(jié)點(diǎn)增加學(xué)生成績的,并通過chundang(p)函數(shù)進(jìn)行存檔,2. 調(diào)用函數(shù)Node* Delete(Node* head , int num)刪除學(xué)生的成績則必須對鏈表結(jié)點(diǎn)進(jìn)行刪除意味著將某個要刪除結(jié)點(diǎn)前后的

4、連續(xù)打斷,去掉該結(jié)點(diǎn),使前后指針變量重新連接,完成鏈表結(jié)點(diǎn)的刪除任務(wù)3.打開存檔文件ifstream Filein(out.txt);輸出說存檔的學(xué)生成績4. 調(diào)用函數(shù)Node* sousuo(Node* head , char na20) ,按學(xué)生的姓名進(jìn)行搜索五、詳細(xì)設(shè)計(1)程序流程圖 各功能模塊的實(shí)現(xiàn)流程圖:1增加學(xué)生成績調(diào)用函數(shù)Node* Create()判斷是否等于一如果是可創(chuàng)建鏈表輸入相應(yīng)的學(xué)生成績?nèi)绻皇莿t需要運(yùn)用Insert(p)函數(shù)插入結(jié)點(diǎn)增加學(xué)生成績的,并通過chundang(p)函數(shù)進(jìn)行存檔,具體流程如下圖所示判斷以前是否存儲了學(xué)生成績是新增成績退出該功能,返回主菜單,

5、繼續(xù)選擇流程圖新增學(xué)生成績按提示:輸入學(xué)個的各種成績按格式顯示輸入的學(xué)生成績 2刪除學(xué)生成績 調(diào)用函數(shù)Node* Delete(Node* head , int num) 刪除學(xué)生的成績則必須對鏈表結(jié)點(diǎn)進(jìn)行刪除意味著將某個要刪除結(jié)點(diǎn)前后的連續(xù)打斷,去掉該結(jié)點(diǎn),使前后指針變量重新連接,完成鏈表結(jié)點(diǎn)的刪除任務(wù) 流程圖輸入要刪除學(xué)生成績2退出該功能,返回主菜單,繼續(xù)選擇輸入要刪除成績的編號該生成績已刪除,顯示其他同學(xué)的成績輸出所有學(xué)生的成績3導(dǎo)入學(xué)生成績打開存檔文件ifstream Filein(out.txt);輸出說存檔的學(xué)生成績導(dǎo)入學(xué)生成績顯示學(xué)生的成績退出該功能,返回主菜單,繼續(xù)選擇 4、學(xué)

6、生成績的搜索 調(diào)用函數(shù)Node* sousuo(Node* head , char na20) ,按學(xué)生的姓名進(jìn)行搜索退出該功能,返回主菜單,繼續(xù)選擇 輸出所以查詢的學(xué)生成績按照提示輸入學(xué)生的姓名進(jìn)行搜索搜索學(xué)生成績 4流程圖: 5成績的統(tǒng)計 調(diào)用函數(shù)Node* sousuo(Node* head , char na20) ,按學(xué)生的姓名進(jìn)行搜索輸出統(tǒng)計的成績統(tǒng)計所設(shè)定的專業(yè)人數(shù)和男女性別的人數(shù),計算學(xué)生的年齡并統(tǒng)計成績的統(tǒng)計:5退出該功能,返回主菜單,繼續(xù)選擇。 6、按英語成績進(jìn)行排序:調(diào)用函數(shù)Node* paixu(Node* head)完成排序功能它的主要思想的:首先設(shè)置英語成績的最大值

7、100,最小值0(也可以使150或者其他)然后讓輸入的學(xué)生成績英語成績一次比較進(jìn)行比較,(如果有相等的就輸出排名1 ,然后排名加1),否則最大值減1,然后再次進(jìn)行比較( 如果等于99且上次沒有等于100的,就輸出排名1,然后排名加1,如果上次有等于100的排名為2),如果沒有與99相等的.,則繼續(xù)循環(huán)流程圖:輸出排序之后的學(xué)生成績對英語成績進(jìn)行排序退出該功能,返回主菜單,繼續(xù)選擇按學(xué)生成績進(jìn)行排序5總功能模塊圖:2、輸入要刪除的學(xué)生的編號,刪除學(xué)生成績。1輸入學(xué)生的成績:姓名、性別、專業(yè)、出生日期、家庭地址、英語成績 菜單1. 新增學(xué)生成績2. 刪除學(xué)生成績3. 導(dǎo)入學(xué)生成績4. 學(xué)生成績搜索

8、5. 學(xué)生成績統(tǒng)計6. 學(xué)生成績保存7. 退出5統(tǒng)計各種專業(yè)、男女、相應(yīng)年齡的人數(shù)7保存學(xué)生成績:提示保存成功4、輸入你要查找你學(xué)生姓名3、輸出學(xué)生的編號、姓名、性別、專業(yè)、出生日期、家庭地址、英語成績7、退出系統(tǒng)學(xué)生管理系統(tǒng)功能模塊圖各功能顯示效果模塊圖:學(xué)生和管理員輸入管理員進(jìn)入界面后增加學(xué)生成績和導(dǎo)入學(xué)生成績保存學(xué)生成績學(xué)生進(jìn)入界面后,按學(xué)生姓名查詢并輸出成績六、軟件說明書總體結(jié)構(gòu)我們采取模塊化方式進(jìn)行程序設(shè)計,要求程序的功能設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計及整體結(jié)構(gòu)設(shè)計合理。也可根據(jù)自己對題目的理解增加新的功能模塊。系統(tǒng)以菜單界面方式(至少采用文本菜單界面,如能采用圖形菜單界面更好)工作,運(yùn)行界面友

9、好,演示程序以用戶和計算機(jī)的對話方式進(jìn)行(1)首先,看題目要求,每一條記錄包括一個學(xué)生的姓名、性別、專業(yè)、出生日期、家庭住址、英語成績。同時,應(yīng)具備以下功能:1、輸入功能:一次可以完成自定義學(xué)生人數(shù)的學(xué)生成績記錄的輸入。2保存功能:對指定學(xué)生的成績進(jìn)行保存3. 查詢功能:選擇某種方式并輸入該成績查詢符合條件的學(xué)生成績4、修改并保存功能:對指定學(xué)生的成績進(jìn)行修改保存。5顯示功能:將以上功能操作后的學(xué)生成績顯示出來。6、刪除功能:對指定學(xué)生的成績進(jìn)行刪除。7. 退出主菜單。七、源程序清單#include #include #include using namespace std;#define p

10、assword ;/people.hclass stupeople/人員類 基類public:int getage();/年齡char* getname();/姓名char* getsex();/性別void display();/輸出信息void peosearch();/查詢信息void peosave();/保存信息private:char name20;char sex4;int age;/student.hclass stustudent:public stupeoplepublic:int getnumber();/學(xué)號double getcscore();/語文double ge

11、tmscore();/高數(shù)double getescore();/外語double getpscore();/C+double getdscore();/數(shù)據(jù)庫double getsscore();/體育double getave();/平均成績double getsum();/總成績void stuenterinfo();/輸入信息void display();/輸出信息void stusearch();/查找信息void stusave();/保存信息void stuload();/加載信息private:int number;double cscore;double mscore;dou

12、ble escore;double dscore;double pscore;double sscore;double sumscore;double avescore;/admin.hclass stuadmin:public stustudent /派生類 管理員類public:void change();/更改信息 void del();/刪除信息private:int newage;int newnumber;char newsex;char newname; char changename20; double newcscore; double newmscore; double n

13、ewescore; double newdscore; double newpscore;double newsscore; double newsumscore; double newavescore;int i,j,p6;char A,B,x;stuadmin sa;struct studentinfointnumber;charname20;charsex4;intage ;doublecscore;doublemscore;doubleescore;doublepscore; doubledscore;doublesscore; doublesumscore; doubleavesco

14、re;intflag;s;/人員類的相關(guān)函數(shù)的定義int stupeople:getage()return age;char* stupeople:getname()return name;char* stupeople:getsex()return sex;/學(xué)生類的相關(guān)函數(shù)的定義int stustudent:getnumber()return number;double stustudent:getcscore()return cscore;double stustudent:getmscore()return mscore;double stustudent:getescore()ret

15、urn escore;double stustudent:getpscore()return pscore;double stustudent:getdscore()return dscore;double stustudent:getsscore()return sscore;double stustudent:getsum()sumscore=cscore+mscore+escore+pscore+dscore+sscore;return sumscore;double stustudent:getave()/平均成績avescore=sumscore/6;return avescore;

16、void stustudent:stuenterinfo()/輸入信息couts.number;coutendl;;coutendl;couts.sex;coutendl;couts.age;coutendl;cout請輸入各科成績:endl;couts.cscore;coutendl;couts.mscore;coutendl;couts.escore;coutendl;couts.pscore;coutendl;couts.dscore;coutendl;couts.sscore; coutendl; cout信息輸入成功!endl;s.flag=0;s.sumscor

17、e=s.cscore+s.mscore+s.escore+s.pscore+s.dscore+s.sscore;s.avescore=s.sumscore/6;void stustudent:stusave()/保存信息 ofstream out(information.txt,ios:app|ios:binary);if(out) out.write(char*)&s, sizeof s); cout信息保存成功!endl;else cout文本為空!endl;out.close(); void stustudent:display()/顯示信息ifstream ifile;ifile.op

18、en(information.txt,ios:binary);if(ifile)while(ifile.read(char*)&s,sizeof s)!=0)if(s.flag=0) cout學(xué)號:s.number姓名:性別:s.sex年齡:s.age語文:s.cscore高數(shù):s.mscore外語:s.escoreC+:s.pscore數(shù)據(jù)庫:s.dscore體育:s.sscore總分:s.sumscore平均分:s.avescoreendl;else cout文本為空!endl;ifile.close();void stustudent:stusearch()/查詢信息char

19、 stuname20;int e=0;coutstuname;ifstream ifile;ifile.open(information.txt,ios:binary);if(ifile)while(ifile.read(char*)&s,sizeof s)!=0)if(strcmp(stuname,)=0)& s.flag=0) cout學(xué)號:s.number姓名:性別:s.sex年齡:s.age語文:s.cscore高數(shù):s.mscore外語:s.escoreC+:s.pscore數(shù)據(jù)庫:s.dscore體育:s.sscore總分:s.sumscore平均分:s.a

20、vescoreendl;e=1;break;else cout文本未建立!endl;ifile.close();if(e=0)cout沒有相關(guān)信息!endl;/管理員類的相關(guān)函數(shù)的定義void stuadmin:change()char changename20;int e;coutchangename;fstream ifile(information.txt,ios:in|ios:out);while(ifile.read(char*)&s,sizeof s)!=0)if(strcmp(changename,)=0)&s.flag=0) cout學(xué)號:s.number姓名:s.

21、name性別:s.sex年齡:s.age語文:s.cscore高數(shù):s.mscore外語:s.escoreC+:s.pscore數(shù)據(jù)庫:s.dscore體育:s.sscore總分:s.sumscore平均分:s.avescoreendl;e=1;break;if(e=0)cout沒有相關(guān)信息!endl;if(e=1) int choose;coutt請選擇修改方式:endlendl;cout1.修改學(xué)號:endl;cout2.修改姓名:endl;cout3.修改性別:endl;cout4.修改年齡:endl;cout5.修改語文成績:endl;cout6.修改高數(shù)成績:endl;cout7.修

22、改外語成績:endl; cout8.修改C+成績:endl; cout9.修改數(shù)據(jù)庫成績:endl; cout10.修改體育成績:endl;coutendl;cout請選擇:choose;switch(choose)case 1: cout請輸入學(xué)生學(xué)號:s.number;break; case 2: cout請輸入學(xué)生姓名:;break;case 3:cout請輸入學(xué)生性別:s.sex;break;case 4: cout請輸入學(xué)生年齡:s.age;break;case 5: cout請輸入學(xué)生語文成績:s.cscore;break;case 6: cout請輸入學(xué)生高數(shù)成績:s

23、.mscore;break;case 7: cout請輸入學(xué)生外語成績:s.escore;break;case 8: cout請輸入學(xué)生C+成績:s.pscore;break; case 9: cout請輸入數(shù)據(jù)庫成績:s.dscore;break; case 10: cout請輸入學(xué)生體育成績:s.sscore;break;/*default:coutt輸入錯誤,返回主菜單!endl;adminwelcome();*/cout信息輸入成功!endl;s.flag=0;s.sumscore=s.cscore+s.mscore+s.escore+s.pscore+s.dscore+s.sscor

24、e;s.avescore=s.sumscore/6;ifile.seekp(-(sizeof s),ios:cur);ifile.write(char*)&s,sizeof s);cout信息已修改并保存!endl;ifile.close(); void stuadmin:del()/刪除信息char delname20;int e=0;cout請輸入您要刪除的學(xué)生姓名:delname;fstream ifile;ifile.open(information.txt,ios:in|ios:out);while(ifile.read(char*)&s,sizeof s)!=0)if(strcmp

25、(delname,)=0)&s.flag=0) cout學(xué)號:s.number姓名:性別:s.sex年齡:s.age語文:s.cscore高數(shù):s.mscore外語:s.escoreC+:s.pscore數(shù)據(jù)庫:s.dscore體育:s.sscore總分:s.sumscore平均分:s.avescoreendl;e=1;break;if(e=0)cout沒有相關(guān)信息!endl;if(e=1)s.flag=1;ifile.seekp(-(sizeof s),ios:cur);ifile.write(char*)&s,sizeof s);cout信息刪除成功!endl;if

26、ile.close();/歡迎界面void studentwelcome()/學(xué)生歡迎界面 cout*endl; cout*歡迎使用學(xué)生信息管理系統(tǒng)*endl; cout*endl; couttt 1.查詢信息 tt 2.退出系統(tǒng)endl; cout*endl; docouti;coutendl;if(i2)cout對不起,請輸入1或2這兩個選擇數(shù)字!endl; while (i2);switch(i)case 1: sa.stusearch(); studentwelcome();break;case 2:exit(0);break;void adminwelcome()/管理員歡迎界面 cout*endl; cout*歡迎使用學(xué)生信息管理系統(tǒng)*endl; cout*endl; coutt1.輸入信息 t2.保存信息 t3.查詢信息 t4.修改并保存endl; coutt5.顯示全部 t6.刪除信息 t7.退出系統(tǒng) endl; cout*endl; do coutj;coutendl;if(j7)cout對不起,請輸入1-7這幾個選擇數(shù)字!endl; while(j7);switch(j)case 1: s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論