![課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/c3794e6d-6e13-4500-b543-6f4612b75038/c3794e6d-6e13-4500-b543-6f4612b750381.gif)
![課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/c3794e6d-6e13-4500-b543-6f4612b75038/c3794e6d-6e13-4500-b543-6f4612b750382.gif)
![課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/c3794e6d-6e13-4500-b543-6f4612b75038/c3794e6d-6e13-4500-b543-6f4612b750383.gif)
![課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/c3794e6d-6e13-4500-b543-6f4612b75038/c3794e6d-6e13-4500-b543-6f4612b750384.gif)
![課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/c3794e6d-6e13-4500-b543-6f4612b75038/c3794e6d-6e13-4500-b543-6f4612b750385.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)報(bào)告 課程名稱:面向?qū)ο蟪绦蛟O(shè)計(jì)C+ 設(shè)計(jì)題目:學(xué)生成績(jī)管理系統(tǒng) 專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 姓 名: 學(xué) 號(hào): 指導(dǎo)教師:李曉虹2016 年 1 月 8目 錄1.系統(tǒng)需求分析12.總體設(shè)計(jì)23.詳細(xì)設(shè)計(jì)34.系統(tǒng)調(diào)試65.結(jié)果分析86.總結(jié)97.程序代碼1023 / 23文檔可自由編輯打印1系統(tǒng)需求分析 1.1系統(tǒng)設(shè)計(jì)的目的與意義:現(xiàn)在的學(xué)校學(xué)生數(shù)量較多,各樣的考試也比較頻繁,因此需要一個(gè)學(xué)生成績(jī)管理系統(tǒng)來對(duì)學(xué)生的成績(jī)進(jìn)行管理。1.2 系統(tǒng)功能需求:本系統(tǒng)有四個(gè)類,Score類、Subject類、Student類、Class類,存儲(chǔ)學(xué)生的個(gè)人信息、考試科目及成績(jī)信息。有學(xué)生成績(jī)信息錄入
2、、學(xué)生成績(jī)信息修改、學(xué)生成績(jī)信息顯示、學(xué)生成績(jī)信息刪除、學(xué)生成績(jī)信息查詢以及數(shù)據(jù)保存文件等功能??傮w設(shè)計(jì)2.1 系統(tǒng)功能分析:系統(tǒng)通過調(diào)用函數(shù)來實(shí)現(xiàn)學(xué)生成績(jī)信息錄入、學(xué)生成績(jī)信息修改、學(xué)生成績(jī)信息刪除、學(xué)生成績(jī)信息查詢以及數(shù)據(jù)保存文件等功能。Insert()函數(shù)用于錄入學(xué)生成績(jī)及信息;Update1()函數(shù)用來修改學(xué)生成績(jī)及信息;Show()函數(shù)用于顯示所有已有的記錄;Delete()函數(shù)用來刪除學(xué)生成績(jī)及信息;Search1()及Search2()函數(shù)用來查詢及信息;Save()函數(shù)用于將輸入的信息存入文件內(nèi);主函數(shù)main()用于調(diào)用這些函數(shù)。 2.2系統(tǒng)功能模塊劃分與設(shè)計(jì):本系統(tǒng)定義了S
3、core類、Subject類、Student類以及Class類這四個(gè)類,定義了Insert()、Update1()、Show()、Save()、Delete()、Search1()及Search2()等函數(shù)來實(shí)現(xiàn)系統(tǒng)所需功能。2.3 系統(tǒng)功能模塊圖:詳細(xì)設(shè)計(jì)3.1 分?jǐn)?shù)類的設(shè)計(jì):該類定義了一個(gè)整型變量用來存放分?jǐn)?shù),定義了設(shè)置份總數(shù)和顯示分?jǐn)?shù)的函數(shù)。Score-score:int+Score(s:int=0)+set1():void+show1()圖 3.13.2 科目類的設(shè)計(jì):該類定義了一個(gè)Score類類型的變量,定義了一個(gè)字符數(shù)組用來存放科目名稱,定義了設(shè)置和顯示私有成員的函數(shù)。Subjec
4、t-subject20:char-sc:Score+Subject()+set2():void+show2():void圖 3.23.3 學(xué)生類的設(shè)計(jì):該類定義了一個(gè)Subject類類型的數(shù)組,一個(gè)字符型數(shù)組和一個(gè)字符變量,兩個(gè)整型變量以及設(shè)置和顯示私有成員的函數(shù)。Student-name20:char-num:int-S:char-n:int-p18:Subject+Student()+set3():void+show3():void+getNU1():int+getNA1():char *圖 3.33.4 班級(jí)類的設(shè)計(jì):該類定義了一個(gè)Student類類型的變量、字符型數(shù)組、整型及設(shè)置和顯示
5、私有成員的函數(shù)等。Class-name20:char-num2:int+Class()+getNU():int+set4():void+show4():void圖 3.43.5 各個(gè)類的關(guān)系描述:Subject-subject20:char+Subject()+set2():void+show2():void 1.*Score-score:int+Score(s:int=0)+set1():void+show1()-sc 1圖 3.5.1Student-name20:char-num:int-S:char-n:int+Student()+set3():void+show3():void+get
6、NU1():int+getNA1():char *Subject-subject20:char+Subject()+set2():void+show2():void 1.* -p18 1圖 3.5.2Class-name20:char-num2:int+Class()+getNU():int+set4():void+show4():voidStudent-name20:char-num:int-S:char-n:int+Student()+set3():void+show3():void+getNU1():int+getNA1():char * 1.* -stu 1圖 3.5.34系統(tǒng)調(diào)試5結(jié)
7、果分析程序總共設(shè)計(jì)了四個(gè)類,滿足了課題對(duì)類的要求,在設(shè)計(jì)的過程中,建立了較為清晰的類層次,也利用了面向?qū)ο蟮姆椒ㄒ约癈+的編程思想來完成系統(tǒng)的設(shè)計(jì),做到了用文件存儲(chǔ)學(xué)生成績(jī)信息、從文件中讀取學(xué)生成績(jī)信息、修改信息、查詢信息、刪除信息顯示文件中存儲(chǔ)的信息等要求。而且界面簡(jiǎn)潔,容易操作。但是程序太長(zhǎng),不夠簡(jiǎn)練,導(dǎo)致出現(xiàn)錯(cuò)誤很難發(fā)現(xiàn)和修改。6總結(jié)首先,接到設(shè)計(jì)題目之后,在對(duì)本題目進(jìn)行分析的時(shí)候,我懂得了一個(gè)很重要的道理,那就是說一個(gè)程序的產(chǎn)生需要一個(gè)對(duì)題目要求有一個(gè)正確全面的分析。其次,就該考慮程序算法的問題了,一個(gè)好的算法是一個(gè)好程序的靈魂,也決定了一個(gè)程序的質(zhì)量。兩個(gè)星期的課設(shè)雖然有些疲勞和困倦
8、,但帶給我很多的收獲。C+已經(jīng)學(xué)了一個(gè)學(xué)期了,有許多知識(shí)都存在似懂非懂的現(xiàn)象,這種現(xiàn)象通過實(shí)際的上機(jī)操作,已經(jīng)減少了許多。對(duì)這些知識(shí)也有了更深的理解和很好的掌握。也有很多理論上說得過去的代碼,但到了實(shí)際操作,卻是行不通的。這種困惑,有許多已經(jīng)通過實(shí)際操作解決了,并能夠深刻認(rèn)識(shí),但也有很多沒有明白。只能避過這些方法,換方法實(shí)現(xiàn)。在課程設(shè)計(jì)之前,因?yàn)橛辛司C合實(shí)驗(yàn)的經(jīng)驗(yàn)與教訓(xùn),明白了寫代碼這一步是非常重要的,因?yàn)楫?dāng)你把代碼輸入電腦,并用編譯器將其運(yùn)行,發(fā)現(xiàn)通過不了,再來檢查找出問題,這是一件非常辛苦的事情,也很浪費(fèi)時(shí)間。于是在課程設(shè)計(jì)的時(shí)候,我花了四天的時(shí)間來規(guī)劃與寫代碼,將要實(shí)現(xiàn)的內(nèi)容分析清楚,才
9、把代碼輸入電腦。我覺得寫程序,應(yīng)該先找到該程序中的核心地方,用多種方法來實(shí)現(xiàn)該核心,這才可能避免等到發(fā)現(xiàn)邏輯上或者編譯器不支持上的錯(cuò)誤,才來想補(bǔ)救的措施,這樣花費(fèi)時(shí)間在想補(bǔ)救措施是很不值得的。這次的課程設(shè)計(jì),真是讓我充分的感覺到了要自己設(shè)計(jì)一個(gè)程序是多么的難,以及學(xué)習(xí)好c+是多么的重要。在這個(gè)程序的設(shè)計(jì)過程中,我清楚的意識(shí)到自己的水平有多么的薄弱,課程的知識(shí)學(xué)得有多么的不扎實(shí)??淳W(wǎng)上的例子好像覺得也沒那么難,自己一上機(jī)實(shí)際操作就出現(xiàn)了很多問題,調(diào)試的時(shí)候系統(tǒng)總是在報(bào)錯(cuò),還有很多警告,每增加一個(gè)函數(shù)就要調(diào)試好久,有時(shí)候應(yīng)為少了一個(gè)大括號(hào)或是分號(hào),導(dǎo)致要找很久很久。雖然系統(tǒng)可以運(yùn)行,也具有了一些基
10、本的功能,但我意識(shí)到了自己有太多的不足。以后還會(huì)有很多的課程設(shè)計(jì),一定要吸取這次的教訓(xùn),把知識(shí)學(xué)懂學(xué)透學(xué)精,真正的為我所用,這樣走上社會(huì)我才能真正的發(fā)揮所長(zhǎng)。7.程序代碼#include<iostream>#include<fstream>#include<string>using namespace std;int M=100;static int M2=0;class Score /分?jǐn)?shù)類private:int score;public:Score(int s=0)score=s;void set1()cout<<"請(qǐng)輸入分?jǐn)?shù):&q
11、uot;<<endl;cin>>score;void show1()cout<<": "<<score<<endl;class Subject /科目類private:Score sc;char subject20;public:Subject()for(int i=0;i<20;i+)subjecti=0;void set2()cout<<"請(qǐng)輸入科目名稱:"<<endl;cin>>subject;sc.set1();void show2()cout&
12、lt;<subject;sc.show1();class Student /學(xué)生類private:Subject p18; char name20;int num;char S;int n;public:Student()for(int i=0;i<20;i+)namei=0;num=0;S=0;void set3();void show3();int getNU1()return num;char *getNA1()return name;void Student:show3() /學(xué)生類顯示函數(shù)int i;cout<<"姓名:"<<n
13、ame<<"t性別:"<<S<<"t學(xué)號(hào):"<<num<<endl;for(i=0;i<8;i+)p1i.show2();void Student:set3() /學(xué)生類修改函數(shù)int i;cout<<"請(qǐng)輸入學(xué)生姓名:"cin>>name;cout<<"請(qǐng)輸入該生學(xué)號(hào):"cin>>num;cout<<"請(qǐng)輸入該生性別:"cin>>S;cout<<
14、"請(qǐng)輸入每門課程的名字及分?jǐn)?shù)."<<endl;for(i=0;i<8;i+)p1i.set2();class Class /班級(jí)類private:Student stu;char name220;int num2;public:Class()for(int i=0;i<20;i+)name2i=0;num2=0;int getNU()return stu.getNU1();string getNA()return stu.getNA1();void set4()cout<<"請(qǐng)輸入該生所在班級(jí)名稱:"cin>&g
15、t;name2;cout<<"請(qǐng)輸入該班班號(hào):"cin>>num2;stu.set3();void show4()cout<<"班級(jí):"<<name2<<"t班號(hào):t"<<num2;stu.show3();friend void Search1(Class c1,int count1); friend void Search2(Class c2,int count2);friend void Update1(Class c3,int count_d);friend
16、 void Delete(Class c4,int *count_c);friend void Insert(Class c5,int &count_a);b100;void Save(Class c6,int count) /記錄存入文件函數(shù)fstream file("class.dat",ios:out|ios:binary);if(!file)cout<<"'t open."<<endl;abort();for(int i=0;i<count;i+)(reinterpret_cast<char*&
17、gt;(&c6i),sizeof(c6i);();void Show(Class c7) /顯示記錄函數(shù)int i=0;for(i=0;c7i.getNU()!=0;i+)c7i.show4();void Insert(Class c5,int &count_a) /信息錄入函數(shù)int i,in_number,n=0;if(count_a=M)cout<<"空間已滿!"return;cout<<"請(qǐng)輸入學(xué)生的學(xué)號(hào):"<<endl;dodocin>>in_number;for(i=0;i<
18、;count_a;i+)if(c5i.getNU()=in_number)cout<<"已有相同的學(xué)號(hào),請(qǐng)重新輸入!"<<endl;break;while(c5i.getNU()=in_number);if(in_number<1)cout<<"輸入錯(cuò)誤,請(qǐng)重新輸入大于零的整數(shù)!"<<endl;while(in_number<=0);i=count_a;c5i.set4();count_a+;cout<<endl<<endl;n=n+1;if(n!=0)cout<&
19、lt;"學(xué)生成績(jī)錄入成功!"<<endl;void Search1(Class c1,int count1) /按學(xué)號(hào)查詢信息函數(shù)int i,number,flag=1,n=0;cout<<"請(qǐng)輸入所要查詢的學(xué)生的學(xué)號(hào):"<<endl;docin>>number;if(number<=0)cout<<"輸入錯(cuò)誤,請(qǐng)重新輸入大于零的整數(shù)!"<<endl;while(number<=0);for(i=0;i<count1&&flag;
20、i+)if(c1i.getNU()=number)c1i.show4();flag=0;n=n+1;if(n=0)cout<<"沒有查詢到該學(xué)生的資料!"<<endl;void Search2(Class c2,int count2) /按姓名查詢信息函數(shù)int i,n=0;char nam20;cout<<"請(qǐng)輸入所要查詢的學(xué)生的姓名:"<<endl;cin>>nam;for(i=0;i<count2;i+)if(c2i.getNA()=nam)c2i.show4();n=n+1;if(
21、n=0)cout<<"沒有查詢到該學(xué)生的資料!"<<endl;void Update1(Class c3,int count_d) /信息修改函數(shù)int i,n=0,flag=1,m;char nam20;cout<<"請(qǐng)輸入所要修改的學(xué)生的姓名:"<<endl;cin>>nam;for(i=0;i<count_d&&flag;i+)if(c3i.getNA()=nam)cout<<"請(qǐng)輸入所要修改的學(xué)生的學(xué)號(hào):"<<endl;c
22、in>>m;for(i=0;i<count_d&&flag;i+)if(c3i.getNU()=m)c3i.set4();flag=0;n=n+1;break;if(n!=0)cout<<"修改成功!"<<endl;if(n=0)cout<<"沒有查詢到該學(xué)生的資料!"<<endl;void Delete(Class c4) /信息刪除函數(shù)fstream file("class.dat",ios_base:in|ios_base:out|ios_base
23、:binary);int i=0;for(i=0;i<100;i+)(reinterpret_cast<char*>(&bi),sizeof(bi);for(i=0;bi.getNU()!=0;i+);M2=i;Class c9;int n=0,number,flag=1; cout<<"請(qǐng)輸入要要進(jìn)行操作的學(xué)生的學(xué)號(hào):"<<endl; cin>>number; for(i=0;i<M2&&flag;i+) if(c4i.getNU()=number)for(i;i<M2&&a
24、mp;flag;i+)c4i=c4i+1;flag=0;(M2)-;n=1;Save(b,M2);break;if(n=0)cout<<"沒有查詢到可以刪除的資料!"<<endl;if(n!=0)cout<<"資料刪除成功!"<<endl;int main()char a1;fstream file("class.dat",ios_base:in|ios_base:out|ios_base:binary);cout<<"tt*歡迎進(jìn)入學(xué)生成績(jī)管理系統(tǒng)*"&
25、lt;<endl<<endl;docout<<"請(qǐng)選擇功能:"<<endl;cout<<"ttta.學(xué)生成績(jī)查詢"<<endl;cout<<"tttb.學(xué)生成績(jī)錄入"<<endl;cout<<"tttc.學(xué)生成績(jī)刪除"<<endl;cout<<"tttd.學(xué)生成績(jī)修改"<<endl;cout<<"ttte.顯示全部記錄"<<endl;cout<<"tttf.記錄存入文件"<<endl;cout<<"tttg
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025【合同范本】正規(guī)版勞務(wù)雇傭合同書范本
- 2025游戲合股合作合同
- 養(yǎng)殖場(chǎng)承包合同集錦
- 技術(shù)服務(wù)分包合同
- 2025電梯貨物購銷合同書模板
- 2025國際技術(shù)咨詢服務(wù)合同
- 2025土地廠房轉(zhuǎn)讓合同范本
- 建筑施工質(zhì)量整改
- 2025商品采購合同審批表
- 2025年中圖版拓展型課程化學(xué)上冊(cè)階段測(cè)試試卷
- 中國血管通路專家共識(shí)解讀
- 開學(xué)前幼兒園安全培訓(xùn)
- 《裝配式蒸壓加氣混凝土外墻板保溫系統(tǒng)構(gòu)造》中
- 中國紅十字會(huì)救護(hù)員培訓(xùn)理論考試試題及答案
- 《建設(shè)工程監(jiān)理》課件
- 2019版新人教版高中英語必修+選擇性必修共7冊(cè)詞匯表匯總(帶音標(biāo))
- 中層領(lǐng)導(dǎo)的高績(jī)效管理
- 小小銀行家-兒童銀行知識(shí)、理財(cái)知識(shí)培訓(xùn)
- 機(jī)械基礎(chǔ)知識(shí)競(jìng)賽題庫附答案(100題)
- 閱讀理解特訓(xùn)卷-英語四年級(jí)上冊(cè)譯林版三起含答案
- 國庫集中支付培訓(xùn)班資料-國庫集中支付制度及業(yè)務(wù)操作教學(xué)課件
評(píng)論
0/150
提交評(píng)論