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

下載本文檔

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

文檔簡介

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

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

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

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

5、head , int num)刪除學生的成績則必須對鏈表結(jié)點進行刪除意味著將某個要刪除結(jié)點前后的連 續(xù)打斷,去掉該結(jié)點,使前后指針變量重新連接,完成鏈表結(jié)點的刪除任務流程圖調(diào)用函數(shù) Node* sousuo(Node* head , char na20),按學生的姓名進行搜索流程圖:輸出所以查 詢的學生成 績退出該功能,返回主 菜單,繼續(xù) 選擇5成績的統(tǒng)計調(diào)用函數(shù) Node* sousuo(Node* head , char na20),按學生的姓名進行搜索調(diào)用函數(shù) Node* paixu(Node* head)完成排序功能它的主要思想的:首先設置英語成績的最大值100,最小值0 (也可以使1

6、50或者其他)然后讓輸入的學生成績英語成績一次比較進行比較,(如果有相等的就輸出排名1 ,然后排名加1),否則最大值減1,然后再次進行比較 (如果等于99且上次沒有等于100的, 就輸出排名1,然后排名加1,如果上次有等于100的排名為2),如果沒有與99相等的., 則繼續(xù)循環(huán)流程圖:總功能模塊圖:功能模塊圖學生管理系統(tǒng)7.號,.3.4.菜單2、輸入要刪除的學 生的編號,刪除學生 成績。移責成功4、輸入你要查 找你學生姓名5統(tǒng)計各種專7保存學生成績:提示保存1輸入學生的成 績:姓名、性別、 專業(yè)、出生日期、 家庭地址、英語新增學生成績 刪除學生成績 導入學生成績 學生成績搜索 學

7、生成績統(tǒng)計 學生成績保存 退出業(yè)、男女、相應年齡的人數(shù)7、退出系統(tǒng)3、輸出學生的編號、 姓名、性別、專業(yè)、 出生日期、家庭地 址、英語成績各功能顯示效果模塊圖:學生和管理員輸入管理員進入界面后增加學生成績和導入學生成績保存學生成績:>£餐餐英 MEK:梵“蓋冀餐餐英 MEK:梵餐冀餐餐英 MEK:梵餐冀) *歡迎使用學生信息管理系統(tǒng)一息部 信全 AE 輸顯 »白宀自心信信傷保刪 »2 6盤鬆心改并保存JI屮* i口皤矚"改并保存輸信息5顯嚇全部花保存信息刪篠信息、 :丿.、洽農(nóng)丫乩嘉濰W賀二您冬說次¥;沱:w;V°;褰:*?.-

8、_><'; .jV<-? j4 -i J I I 廠 I r I ' ' .' i . i r , ,j + n I . j & 4.KKKJCMKKMKKKXMKKJS.KKKKM / k |!k|J §T HH 匚尸二口訂 丄卩 i7T>JlT六、軟件說明書總體結(jié)構(gòu)我們采取模塊化方式進行程序設計,要求程序的功能設計、數(shù)據(jù)結(jié)構(gòu)設計及整體結(jié)構(gòu)設計合理。也可根據(jù)自己對題目的理解增加新的功能模塊。系統(tǒng)以菜單界面方式 (至少采用文本菜單界面,如能采用圖形菜單界面更好)工作,運行 界面友好,演示程序以用戶和計算機的對話方式進行(

9、1)首先,看題目要求,每一條記錄包括一個學生的姓名、性別、專業(yè)、出生 日期、家庭住址、英語成績。同時,應具備以下功能:1、輸入功能:一次可以完成自定義學生人數(shù)的學生成績記錄的輸入。2 保存功能:對指定學生的成績進行保存3. 查詢功能:選擇某種方式并輸入該成績查詢符合條件的學生成績4、修改并保存功能:對指定學生的成績進行修改保存。5 顯示功能:將以上功能操作后的學生成績顯示出來。6刪除功能:對指定學生的成績進行刪除。7.退出主菜單。七、源程序清單#i nclude <iostream> #in elude <stri ng> #in clude <fstream&g

10、t; using n amespace std;#defi ne password 123456;/people.hclass stupeoplepublic:/人員類基類int getage();/年齡char* get name();/姓名char* getsex();/性別void display();/輸出信息void peosearch();/查詢信息void peosave(); private:char n ame20;char sex4; int age;/保存信息;/stude nt.hclass stustude nt:public stupeoplepublic:int

11、get nu mber();學號double getcscore();/語文double getmscore();/高數(shù)double getescore();/夕卜語double getpscore();/C+double getdscore();/數(shù)據(jù)庫double getsscore();/體育double getave();/平均成績double getsum();/總成績void stue nteri nfo();/輸入信息void display();/輸出信息void stusearch();/查找信息void stusave();/保存信息void stuload();/加載信息

12、private:int nu mber;double cscore;double mscore;double escore;double dscore;double pscore;double sscore;double sumscore;double avescore;/admi n.h管理員類class stuadm in: public stustude nt /派生類public:void change();/ 更改信息void del();/刪除信息private:int n ewage;int newnu mber;char n ewsex;char newn ame;char c

13、ha ngen ame20;double n ewcscore;double n ewmscore;double n ewescore;double n ewdscore;double n ewpscore;double n ewsscore;double n ewsumscore;double n ewavescore;int i,j,p6;char A,B, x;stuadm in sa;struct stude nti nfointnu mber;charn ame20;charsex4;intage ;doublecscore;doublemscore;doubleescore;dou

14、blepscore;doubledscore;doublesscore;doublesumscoredoubleavescore;intflag;s;/人員類的相關函數(shù)的定義int stupeople:getage()return age;char* stupeople:get name()return n ame;char* stupeople:getsex()return sex;/學生類的相關函數(shù)的定義int stustude nt:get nu mber()retur n nu mber;double stustude nt:getcscore()retur n cscore;doub

15、le stustude nt:getmscore()return mscore;double stustude nt:getescore()retur n escore;double stustude nt:getpscore()retur n pscore;double stustude nt:getdscore()retur n dscore;double stustude nt:getsscore()retur n sscore;double stustude nt:getsum()sumscore=cscore+mscore+escore+pscore+dscore+sscore; r

16、etur n sumscore;double stustude nt:getave()平均成績avescore=sumscore/6;retur n avescore;void stustude nt:stue nteri nfo()輸入信息cout<<"請輸入學號:"cin»s.nu mber;cout<<e ndl;cout<<"請輸入姓名:"cin»s.n ame;cout<<e ndl;cout<<"請輸入性別:";cin> >s.se

17、x;cout<<e ndl;cout<<"請輸入年齡:"cin> >s.age;cout<<e ndl;cout<<"請輸入各科成績:"<<endl;cout<<"語文:"cin> >s.cscore;cout<<e ndl;cout<<"高數(shù):"cin> >s.mscore;cout<<e ndl;cout<<"外語:"cin> &g

18、t;s.escore;cout<<e ndl;cout<<"C+:"cin> >s.pscore;cout<<e ndl;cout<<"數(shù)據(jù)庫:"cin> >s.dscore;cout<<e ndl;cout<<"體育:"cin> >s.sscore;cout<<e ndl;cout<<"信息輸入成功!"<<endl;s.flag=0;s.sumscore= s.cscor

19、e+s.mscore+s.escore+s.pscore+s.dscore+s.sscore;s.avescore=s.sumscore/6;void stustude nt:stusave()保存信息ofstream out("i nformati on. txt",ios:app|ios:b in ary);if(out)out.write(char* )&s, sizeof s);cout<<" 信息保存成功!"<<endl;else cout<<"文本為空!"<<endl

20、;out.close();void stustude nt:display()顯示信息ifstream ifile;ifile.ope n("i nformati on. txt",ios:b in ary);if(ifile)while(ifile.read(char* )& s,sizeof s)!=0)if(s.flag=0)cout<<" 學號:"<<s.number<<" 姓名:"<<<<" 性另U :"<<s.s

21、ex<<" 齡:"<<s.age<<" 語文:"<<s.cscore<<"高數(shù):"<<s.mscore<<"夕卜語:"<<s.escore<<"C+:"<<s.pscore<<" 數(shù)據(jù)庫:"<<s.dscore<<" 體 育:"<<s.sscore<<"總 分 :&qu

22、ot;<<s.sumscore<<" 平分:"<<s.avescore<<e ndl;elsecout<<"文本為空!"<<endl;ifile.close();void stustude nt:stusearch()查詢信息char stun ame20;int e=0;cout<<"請輸入您要查找的姓名:"cin> >st un ame;ifstream ifile;ifile.ope n("i nformati on. tx

23、t",ios:b in ary);if(ifile)while(ifile.read(char* )& s,sizeof s)!=0)if(strcmp(st un ame,s .n ame)=0)&& s.flag=0) cout<<" 學號:"<<s.number<<"姓名:"<<<<"性別:"<<s.sex<<" 年 齡:"<<s.age<<" 語

24、 文:"<<s.cscore<<"高 數(shù) :"<<s.mscore<<" 外語:"<<s.escore<<"C+:"<<s.pscore<<"數(shù)據(jù)庫:"<<s.dscore<<" 體育:"<<s.sscore<<" 總分:"<<s.sumscore<<" 平均 分:"<<

25、;s.avescore<<e ndl;e=1;break;else cout<<"文本未建立!"<<endl;ifile.close();if(e=O)cout<<"沒有相關信息!"<<endl;/管理員類的相關函數(shù)的定義void stuadm in:cha nge()char cha ngen ame20;int e;cout<<"請輸入您要修改的姓名:";cin> >cha ngen ame;fstream ifile("i nforma

26、tio n.txt",ios:i n|ios:out);while(ifile.read(char* )& s,sizeof s)!=0)if(strcmp(cha ngen ame,s .n ame)=0)&&s.flag=0)cout<<"學號:"<<s.number<<" 姓名:"<<<<"性另寸:"<<s.sex<<" 年 齡:"<<s.age<<&quo

27、t; 語 文:"<<s.cscore<<"高 數(shù):"<<s.mscore<<"外語:"<<s.escore<<"C+:"<<s.pscore<<"數(shù)據(jù)庫:"<<s.dscore<<" 體育:"<<s.sscore<<" 總 分:"<<s.sumscore<<"平均分:"<&l

28、t;s.avescore<<endl;e=1;break;if(e=0)cout<<"沒有相關信息!"<<endl;if(e=1)int choose;cout<<"t 請選擇修改方式:"<<endl<<endl; cout<<"1.修改學號:"<<endl;cout<<"2.修改姓名:"<<endl;cout<<"3.修改性別:"<<endl;cout

29、<<"4.修改年齡:"<<endl; cout<<"5.修改語文成績:"<<endl;cout<<"6.修改高數(shù)成績:"<<endl; cout<<"7.修改外語成績:"<<endl;cout<<"8.修改 C+成績:"<<endl;cout<<"9.修改數(shù)據(jù)庫成績:"<<endl;cout<<"10.修改體育成

30、績:"<<endl;cout<<e ndl;cout<<"請選擇:"<<endl;cin> >choose;switch(choose)case 1:cout<<"請輸入學生學號:"<<endl;cin»s.nu mber;break;case 2:cout<<"請輸入學生姓名:"<<endl;cin»s.n ame; break;case 3:cout<<"請輸入學生性別 &

31、lt;m男n女>:"<<endl; cin> >s.sex;break;case 4:cout<<"請輸入學生年齡:"<<endl;cin> >s.age;break;case 5:cout<<"請輸入學生語文成績:"<<endl;cin> >s.cscore;break;case 6:cout<<"請輸入學生高數(shù)成績:"<<endl;cin> >s.mscore;break;case 7

32、: cout<<"請輸入學生外語成績:"<<endl; cin> >s.escore;break;case 8: cout<<"請輸入學生C+成績:"<<endl; cin> >s.pscore;break;case 9: cout<<"請輸入數(shù)據(jù)庫成績:"<<endl; cin> >s.dscore;break;case 10: cout<<"請輸入學生體育成績:"<<endl; c

33、in> >s.sscore;break;/*default:cout<<"t輸入錯誤,返回主菜單!"<<e ndl;admi nwelcome();*/cout<<"信息輸入成功!"<<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* )

34、& s,sizeof s); cout<<"信息已修改并保存!"<<endl;ifile.close();void stuadmi n:del() 刪除信息char deln ame20;int e=0;cout<<"請輸入您要刪除的學生姓名:"<<endl;cin> >de In ame;fstream ifile;ifile.ope n("i nformati on. txt",ios:i n|ios:out);while(ifile.read(char* )&a

35、mp; s,sizeof s)!=0)if(strcmp(de In ame,s .n ame)=0)&&s.flag=O) cout<<" 學號:"<<s.number<<"姓名:"<<<<"性別:"<<s.sex<<" 年 齡:"<<s.age<<" 語 文 :"<<s.cscore<<"高 數(shù):"<<

36、s.mscore<<"外語:"<<s.escore<<"C+:"<<s.pscore<<"數(shù)據(jù)庫:"<<s.dscore<<" 體育:"<<s.sscore<<" 總 分:"<<s.sumscore<<"平 均分:"<<s.avescore<<e ndl;e=1;break;if(e=0)cout<<"

37、;沒有相關信息!"<<endl;if(e=1)s.flag=1;ifile.seekp(-(sizeof s),ios:cur);ifile.write(char* )& s,sizeof s);cout<<"信息刪除成功!"<<endl;ifile.close();/歡迎界面void stude ntwelcome()學生歡迎界面cout<<*"<<e ndl;cout<<"*歡迎使用學生信息管理系統(tǒng)I*"<<e ndl;cout<&l

38、t;*"<<e ndl;cout<<"tt 1.查詢信息tt 2.退出系統(tǒng)"<<endl;*I*cout<<*"<<e ndl;doI*cout<<*"<<e ndl;cout<<"*歡迎使用學生信息管理系統(tǒng)*"<<e ndl;cout<<I*cout<<"t1.輸入信息t2.保存信息t3.查詢信息t4.修改并保存"<<e ndl;cout<<&quo

39、t;t5.顯示全部t6.刪除信息t7.退出系統(tǒng)"<<e ndl;*1cout<<I*"<<e ndldocout<<"請輸入您要進行的操作編號(1-7):"ci n>>j;cout<<e ndl;if(j<1|j>7)cout<<"對不起,請輸入1-7這幾個選擇數(shù)字!"<<endl; while(j<1|j>7);cout<<"請輸入您要進行的操作編號(1或2):"cin> >i;cout<<e ndl;if(i<1|i>2)cout<<"對不起,請輸入1或2這兩個選擇數(shù)字!"<<endl;while (i<1|i>2);switch(i)case 1: sa.stusearch();stude ntwelcome();break;case 2:exit(0);break;void admi nwelcome()管理員歡迎界面I*switch(j)case 1: sa.stue nteri nfo(); a

溫馨提示

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

最新文檔

評論

0/150

提交評論