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

下載本文檔

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

文檔簡介

1、.專業(yè)整理.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告信息工程學(xué)院計算機(jī)科學(xué)與技術(shù)專業(yè)題目:學(xué)生成績管理系統(tǒng)(線性表應(yīng)用)班級:計算機(jī)111班第11組組長::葛學(xué)謙學(xué)號:2011306010311組員::冷 冰學(xué)號:2011306010316指導(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)用在具體的工作和

2、學(xué)習(xí) 中,加深對類和對象的理解,2 .要求學(xué)生對生活中許多具體的事物抽象出類,并掌握繼承和派生類、基類、虛函數(shù)和 多態(tài)的概念。3 .通過課程設(shè)計掌握面向?qū)ο笳Z言程序設(shè)計的編程思想,為后續(xù)課程打下基礎(chǔ)。4 .培養(yǎng)我實際操作能力和實踐能力,為以后的工作打下堅實的基礎(chǔ)。二、課程設(shè)計的容1、課程設(shè)計的題目及簡介文本界面為管理員1 .輸入信息2 .保存信息3 .查詢信息4 .修改并保存5 .顯示全部6 .刪除信息7 .退出系統(tǒng)學(xué)生1信息查詢(1)輸入(2)輸入學(xué)號2退出系統(tǒng)三、需求分析(說明課程設(shè)計的任務(wù))提供身份驗證,和使用系統(tǒng)的權(quán)限設(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)行刪除意味著將某

4、個要刪除結(jié)點(diǎn)前后的連續(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)程序流程圖各功能模塊的實現(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é)習(xí)幫手.調(diào)

5、用函數(shù) Node* Delete(Node* head , int num)刪除學(xué)生的成績則必須對鏈表結(jié)點(diǎn)進(jìn)行刪除意味著將某個要刪除結(jié)點(diǎn)前后的連續(xù)打斷,去掉該結(jié)點(diǎn),使前后指針變量重新連接,完成鏈表結(jié)點(diǎn)的刪除任務(wù)流程圖調(diào)用函數(shù) Node* sousuo(Node* head , char na20)流程圖:搜索學(xué)生成績按照提示輸 入學(xué)生的姓 名進(jìn)行搜索輸出所以查詢的學(xué)生成績退出該功»能,返回主菜單,繼續(xù)選擇,按學(xué)生的進(jìn)行搜索5成績的統(tǒng)計,按學(xué)生的進(jìn)行搜索調(diào)用函數(shù) Node* sousuo(Node* head , char na20)調(diào)用函數(shù) Node* paixu(Node* hea

6、d)完成排序功能它的主要思想的:首先設(shè)置英語成績的最大值100,最小值0 (也可以使150或者其他)然后讓輸入的學(xué)生成績英語成績一次比較進(jìn)行比較,(如果有相等的就輸出排名 1 ,然后排名加1),否則最大值減1,然后再次進(jìn)行比較(如果等于99且上次沒有等于100的, 就輸出排名1,然后排名加1,如果上次有等于100的排名為2),如果沒有與99相等的., 則繼續(xù)循環(huán)流程圖:總功能模塊圖:功能模塊圖學(xué)生管理系統(tǒng).2.3.4.菜單2、輸入要刪除的學(xué) 生的編號,刪除學(xué)生 成績。7保存學(xué)生成成功5統(tǒng)計各種專4、輸入你要查 找你學(xué)生姓名業(yè)、男女、相應(yīng)績:提示保存1輸入學(xué)生的成 績:姓名、性別、

7、 專業(yè)、出生日期、 家庭地址、英語新增學(xué)生成績 刪除學(xué)生成績 導(dǎo)入學(xué)生成績 學(xué)生成績搜索 學(xué)生成績統(tǒng)計 學(xué)生成績保存 退出年齡的人數(shù)7、退出系統(tǒng)3、輸出學(xué)生的編號、 姓名、性別、專業(yè)、 出生日期、家庭地 址、英語成績各功能顯示效果模塊圖:學(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)行界面友好,演示程序以用戶和計

8、算機(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 <iostream>#include <string>#include <fstrea

9、m> using namespace std;#define password 123456;/人員類基類people.hint getage();/年齡char* getname();/char* getsex();/性別void display。;/輸出信息void peosearch();/查詢信息void peosave();/保存信息class stupeople public:private:char name20;char sex4;int age;;/student.hclass stustudent:public stupeoplepublic:intgetnumber

10、();學(xué)號double getcscore();/double getmscore();/高數(shù)double getescore();/外語double getpscore();C+double getdscore();/數(shù)據(jù)庫double getsscore();/體育double getave();/平均成績double getsum();/總成績voidstuenterinfo();輸入信息voiddisplay。,輸出信息voidstusearch();查找信息voidstusave();/保存信息voidstuload();/加載信息private:int number;double

11、cscore;double mscore;double escore;double dscore;double pscore;double sscore;double sumscore;double avescore;/admin.h管理員類class stuadmin:public stustudent /派生類public:void change。;/ 更改信息void del();/刪除信息private:int newage;int newnumber;char newsex;char newname;char changename20;double newcscore;double

12、newmscore;double newescore;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 ;double cscore;double mscore;double escore;double pscore;doubledscore;double sscore;doublesumsc

13、ore;doubleavescore;int flag;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 stustude

14、nt:getescore()return 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;

15、return avescore;)void stustudent:stuenterinfo()/輸入信息(cout<<"請輸入學(xué)號:";cin>>s.number;cout<<endl;cout<<"請輸入:"cin>>;cout<<endl;cout<<"請輸入性別:"cin>>s.sex;cout<<endl;cout<<"請輸入年齡:";cin>>s.age;cout

16、<<endl;cout<<"請輸入各科成績:"<<endl;cout<<"語文:";cin>>s.cscore;cout<<endl;cout<<"高數(shù):"cin>>s.mscore;cout<<endl;cout<<"夕卜語:";cin>>s.escore;cout<<endl;cout<<"C+:"cin>>s.pscore;

17、cout<<endl;cout<<"數(shù)據(jù)庫:";cin>>s.dscore;cout<<endl;cout<<"體育:";cin>>s.sscore;cout<<endl;cout<<"信息輸入成功!"<<endl;s.flag=0;s.sumscore= s.cscore+s.mscore+s.escore+s.pscore+s.dscore+s.sscore;s.avescore=s.sumscore/6;)void stu

18、student: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.open("informati

19、on.txt",ios:binary);if(ifile) while(ifile.read(char*)&s,sizeof s)!=0) if(s.flag=0) cout<<" 學(xué)號:"<<s.number<<":"<<<<"性另1J :"<<s.sex<<" 年齡:"<<s.age<<" 語文:"<<s.cscore<<"

20、;高數(shù):"<<s.mscore<<"外語:"<<s.escore<<"C+:"<<s.pscore<<" 數(shù)據(jù)庫:"<<s.dscore<<"體 育:"<<s.sscore<<"總 分:"<<s.sumscore<<”平 均分:"<<s.avescore<<endl; elsecout<<"

21、;文本為空!"<<endl; ifile.close();void stustudent:stusearch()/查詢信息char stuname20;int e=0;cout<<"請輸入您要查找的:";cin>>stuname;ifstream ifile;ifile.open("information.txt",ios:binary);if(ifile)(while(ifile.read(char*)&s,sizeof s)!=0) (if(strcmp(stuname,)=0)&am

22、p;& s.flag=0) cout<<" 學(xué)號:"<<s.number<<":"<<<<" 性另1J :"<<s.sex<<" 年 齡:"<<s.age<<" 語 文 :"<<s.cscore<<" 高 數(shù) :"<<s.mscore<<" 夕卜 語:"<<s.escor

23、e<<"C+:"<<s.pscore<<"數(shù)據(jù)庫:"<<s.dscore<<"體育:"<<s.sscore<<" 總分:"<<s.sumscore<<" 平均分:"<<s.avescore<<endl;e=1;break; else cout<<"文本未建立!"<<endl;ifile.close();if(e=0)cou

24、t<<"沒有相關(guān)信息!"<<endl;/管理員類的相關(guān)函數(shù)的定義void stuadmin:change() char changename20;int e;cout<<"請輸入您要修改的:";cin>>changename;fstream ifile("information.txt",ios:in|ios:out);while(ifile.read(char*)&s,sizeof s)!=0) if(strcmp(changename,)=0)&&

25、s.flag=0)cout<<" 學(xué)號:"<<s.number<<":"<<<<" 性另1J :"<<s.sex<<"年齡:"<<s.age<<" 語 文 :"<<s.cscore<<" 高 數(shù) :"<<s.mscore<<" 外 語:"<<s.escore<<&qu

26、ot;C+:"<<s.pscore<<"數(shù)據(jù)庫:"<<s.dscore<<"體育:"<<s.sscore<<" 總分:"<<s.sumscore<<"平均分:"<<s.avescore<<endl;e=1;break;)if(e=0)cout<<"沒有相關(guān)信息!"<<endl;if(e=1)int choose;cout<<&quo

27、t;t請選擇修改方式:"<<endl<<endl;cout<<"1.修改學(xué)號:"<<endl;cout<<"2.修改:"<<endl;cout<<"3.修改f別:"<<endl;cout<<"4.修改年齡:"<<endl;cout<<"5.修改語文成績:"<<endl;cout<<"6.修改高數(shù)成績:"<&

28、lt;endl;cout<<"7.修改外語成績:"<<endl;cout<<"8.修改 C+成績:"<<endl;cout<<"9.修改數(shù)據(jù)庫成績:"<<endl;cout<<"10.修改體育成績:"<<endl;cout<<endl;cout<<"請選擇:"<<endl;cin>>choose;switch(choose)case 1:cout<

29、<"請輸入學(xué)生學(xué)號:"<<endl;cin>>s.number;break;case 2:cout<<"請輸入學(xué)生:"<<endl;cin>>;break;case 3:cout<<"請輸入學(xué)生性別 <m男n女>:"<<endl;cin>>s.sex;break;case 4:cout<<"請輸入學(xué)生年齡:"<<endl;cin>>s.age;break;

30、case 5:cout<<"請輸入學(xué)生語文成績:"<<endl;cin>>s.cscore;break;case 6:cout<<"請輸入學(xué)生高數(shù)成績:"<<endl;cin>>s.mscore;break;case 7:cout<<"請輸入學(xué)生外語成績:"<<endl;cin>>s.escore;break;case 8:cout<<"請輸入學(xué)生C+成績:"<<endl;cin>

31、;>s.pscore;break;case 9:cout<<"請輸入數(shù)據(jù)庫成績:"<<endl;cin>>s.dscore;break;case 10:cout<<"請輸入學(xué)生體育成績:"<<endl;cin>>s.sscore;break;"default:cout<<"t 輸入錯誤,返回主菜單 !"<<endl;adminwelcome();*/cout<<"信息輸入成功!"<<

32、;endl;s.flag=0;s.sumscore= s.cscore+s.mscore+s.escore+s.pscore+s.dscore+s.sscore;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<<"請輸

33、入您要刪除的學(xué)生:"<<endl;cin>>delname;fstream ifile;ifile.open("information.txt",ios:in|ios:out);while(ifile.read(char*)&s,sizeof s)!=0) if(strcmp(delname,)=0)&&s.flag=0) cout<<" 學(xué)號:"<<s.number<<":"<<<<"

34、;性另1J :"<<s.sex<<" 年齡:"<<s.age<<" 語 文:"<<s.cscore<<"高 數(shù) :"<<s.mscore<<" 夕卜語:"<<s.escore<<"C+:"<<s.pscore<<"數(shù)據(jù)庫:"<<s.dscore<<" 體育:"<<s.s

35、score<<" 總 分:"<<s.sumscore<<”平 均分:"<<s.avescore<<endl;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;ifile.cl

36、ose();/歡迎界面void studentwelcome()學(xué)生歡迎界面cout<<"*"<<endl;cout<<"*歡迎使用學(xué)生信息管理系統(tǒng)I*"<<endl;*cout<<"* *"<<endl;cout<<"tt 1.查詢信息tt 2.退出系統(tǒng)"<<endl;cout<<"*"<<endl;I*cout<<"*"<<end

37、l;cout<<"*歡迎使用學(xué)生信息*"<<endl;cout<<"I*"<<endl;cout<<"t1.輸入信息t2."<<endl;cout<<"t5. 顯 示全部保存信息t3. 查詢信息 t4.t6.刪除信息t7.管理系統(tǒng)修改并保存退出系統(tǒng)docout<<"請輸入您要進(jìn)行的操作編號(1或2):"cin>>i;cout<<endl;if(i<1|i>2)cout<

38、<"對不起,請輸入1或2這兩個選擇數(shù)字!"<<endl;while (i<1|i>2);switch(i)case 1: sa.stusearch();studentwelcome();break;case 2:exit(0);break;void adminwelcome()/管理員歡迎界面I*cout<<"*"<<endl;"<<endl;I*do(1-7):"cout<<"請輸入您要進(jìn)行的操作編號 cin>>j;cout<<endl;if(j<1|j>7)cout<<"對不起,請輸入1-7這幾個選擇數(shù)字!"<<endl; while(j<1|j>7);switch(j)case 1: sa.stuenterinfo();adminwelcome();break;case 2:

溫馨提示

  • 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

提交評論