C++課程設(shè)計學(xué)生學(xué)籍管理系統(tǒng)_第1頁
C++課程設(shè)計學(xué)生學(xué)籍管理系統(tǒng)_第2頁
C++課程設(shè)計學(xué)生學(xué)籍管理系統(tǒng)_第3頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程名稱:C+面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計題目:大學(xué)生學(xué)籍管理系統(tǒng)目錄:一、系統(tǒng)設(shè)計目標(biāo)、意義二、系統(tǒng)設(shè)計思路三、系統(tǒng)功能介紹四、輸入輸出的設(shè)計(1) 界面的設(shè)計(2) 數(shù)據(jù)輸出設(shè)計系統(tǒng)運行結(jié)果五、詳細(xì)設(shè)計(1) 系統(tǒng)功能結(jié)構(gòu)圖UML六、附錄七、系統(tǒng)設(shè)計、開發(fā)過程中遇到的問題八、心得體會學(xué)生學(xué)籍管理系統(tǒng)-、系統(tǒng)設(shè)計目標(biāo)、意義(一)系統(tǒng)實現(xiàn)的目標(biāo)1、課程設(shè)計的任務(wù):制作一個小型的學(xué)生學(xué)籍管理系統(tǒng),要求制作一個菜單,實現(xiàn)數(shù)據(jù)的錄入,數(shù)據(jù)的顯示,數(shù)據(jù)查找,數(shù)據(jù)的刪除,數(shù)據(jù)的保存,數(shù)據(jù)的統(tǒng)計,數(shù)據(jù)的修改,系統(tǒng)的退出。系統(tǒng)的設(shè)計要求用到C+®向?qū)ο蟮某绦蛟O(shè)計,要求用到類來實現(xiàn),同時每一個功能用到一

2、個函數(shù)。2、(1)基本功能:學(xué)生基本信息(編號,姓名,性別,籍貫,民族,生日,政治面貌,省份證,數(shù)學(xué)成績,英語成績,計算機成績)成績統(tǒng)計(各科總成績,各科平均成績,各科的及格率)(2)擴展功能:學(xué)生數(shù)據(jù)的添加、修改、與刪除學(xué)生數(shù)據(jù)的讀取與存儲3、系統(tǒng)特點:系統(tǒng)要能夠?qū)ο鄳?yīng)的數(shù)據(jù)進(jìn)行很好的測試,系統(tǒng)的統(tǒng)計對每一科的總成績,平均成績,及格律都進(jìn)行了統(tǒng)計;系統(tǒng)數(shù)據(jù)的錄入除可以手工錄入外,還可以采用文件的錄入;系統(tǒng)統(tǒng)計學(xué)生的基本信息較全面,包括學(xué)號,姓名,民族,政治面貌,身份證號,生日,性別,數(shù)學(xué)、英語、計算機的成績;程序中查找運用了兩種查找方式即學(xué)號查找和姓名查找。(二)系統(tǒng)設(shè)計的意義通過設(shè)計此項程

3、序,能夠?qū)W(xué)生的學(xué)籍進(jìn)行統(tǒng)一的管理,對學(xué)生的學(xué)籍進(jìn)行錄入、修改、保存等功能進(jìn)行處理,從而能夠較快地對信息進(jìn)行處理,系統(tǒng)數(shù)據(jù)的錄入除可以手工錄入外,還可以采用文件的錄入;系統(tǒng)統(tǒng)計學(xué)生的基本信息較全面,程序中查找運用了兩種查找方式即學(xué)號查找和姓名查找,方便查詢。二、系統(tǒng)設(shè)計思路第一步:分析題目,建立類并派生出它的子類,畫出類圖。第二步:畫出流程,根據(jù)流程圖編寫程序活單第三步:上機調(diào)試程序(使用單步調(diào)試,設(shè)置斷點、分塊調(diào)試的方法)。第四步:及時整理資料,撰寫課程設(shè)計報告中有關(guān)這個題目的內(nèi)容。三、系統(tǒng)功能介紹 (一)程序?qū)W(xué)生學(xué)籍的數(shù)據(jù)處理要求能夠輸入并瀏覽學(xué)生的基本信息;能夠?qū)崿F(xiàn)對學(xué)生信息的查詢和修

4、改;能夠?qū)Τ煽冞M(jìn)行統(tǒng)計;能夠?qū)W(xué)生的信息進(jìn)行保存;(二)系統(tǒng)功能:資料維護(hù):系統(tǒng)維護(hù)包括對各學(xué)生信息和成績的錄入操作。資料維護(hù):對數(shù)據(jù)表中的信息進(jìn)行瀏覽。系統(tǒng)查詢:可以對不同科目的總成績、不及率、各科平均成績相關(guān)信息四、輸入輸出的設(shè)計界面的設(shè)計、界面設(shè)計程序運行后會出現(xiàn)一個簡捷的窗口,便于用戶查詢數(shù)據(jù)。、功能設(shè)計通過主窗體調(diào)用其他窗體,具體實現(xiàn)可以參照系統(tǒng)分析相關(guān)內(nèi)容。應(yīng)用系統(tǒng)主控界面包括學(xué)生信息錄入,查找等功能模塊。學(xué)生信息錄入功能完成學(xué)生信息和成績的1. 輸入。記錄查詢功能可以對數(shù)據(jù)各分類的記錄進(jìn)行查詢數(shù)據(jù)輸出設(shè)計主要運行界面:統(tǒng)計界面:查找界面:顯示界面:錄入界面:保存界面:修改界面:刪

5、除界面:3、系統(tǒng)運行的結(jié)果:(僅部分)五、詳細(xì)設(shè)計1、系統(tǒng)功能結(jié)構(gòu)圖:I2、(1)類:student化數(shù)據(jù)成員:編號,姓名,性別,籍貫,民族,生日,政治面貌,省份證,數(shù)學(xué)成績,英語成績,計算機成績(2)類:school成員函數(shù):錄入函數(shù)Input():輸入編號到計算機的成績;統(tǒng)計函數(shù)count():統(tǒng)計各科的總成績,計算平均成績,統(tǒng)計各科的及格率;查詢函數(shù)found():按學(xué)號或姓名查找學(xué)生的記錄;修改函數(shù)mend():修改指定學(xué)號學(xué)生成績記錄;刪除函數(shù)del():刪除指定學(xué)號學(xué)生記錄;輸出函數(shù)show():輸出班級所有學(xué)生成績記錄;UMLB:schoolStudent#number:int+

6、school()六、附錄:(主要代碼)#include<iostream.h>#include<string.h>#include<fstream.h>操縱符定義在其中#include<iomanip.h>/classstudentprotected:intnumber;charname20;charsex6;charplace20;charnation6;charbirth20;charparty10;charid20;floatscore3;public:student*next;student()(student()(char*getnam

7、e()(returnname;intgetnumber()(returnnumber;doublegetscore(inti)(returnscorei;floatgetg()(return(score0+score1+score2);voidinput()(inte=1;cout<<"ttt按提示輸入:"<<endl;cout<<"tt輸入編號:"cin>>number;cout<<"tt輸入姓名:"cin>>name;do(cout<<"

8、tt輸入性別:"cin>>sex;if(strcmp(sex,"男”)=0|strcmp(sex,"女”)=0)(cout<<"tt輸入籍貫:"cin>>place;cout<<"tt輸入民族:"cin>>nation;cout<<"tt輸入生日:"cin>>birth;cout<<"tt輸入政治面貌:"cin>>party;cout<<"tt輸入身份證號:

9、"cin>>id;cout<<"tt輸入數(shù)學(xué)分?jǐn)?shù):"cin>>score0;cout<<"tt輸入英語分?jǐn)?shù):"cin>>score1;cout<<"tt輸入計算機分?jǐn)?shù):"cin>>score2;e=0;else(cout<<"ttt無此類型性別!重新輸入!"<<endl;e=1;while(e);return;voidinput(ifstream&is)is>>number>

10、;>name>>sex>>place>>nation>>birth>>party>>id>>score0>>score1>>score2;is.get();voidoutput()(cout<<"學(xué)生基本信息如下:"<<endl;cout<<"編號:"<<number<<"姓名:"<<name<<"性別:"<<

11、;sex<<"籍貫:"<<place<<"民族:"<<nation<<"生日:"<<birth<<"政治面貌:"<<party<<endl<<"身份證號:"<<id<<"數(shù)學(xué):"<<score0<<"英語:"<<score1<<"計算機:"<

12、<score2<<"總分:"<<getg()<<endl<<endl;voidoutput(ofstream&os)(os<<setw(6)<<number<<setw(15)<<name<<setw(20)<<place<<setw(6)<<nation<<setw(20)<<birth<<setw(20)<<party<<setw(20)<<i

13、d<<setw(6)<<score0<<setw(6)<<score1<<setw(6)<<score2<<endl;/操縱符指定寬度classschool(public:school()(head=newstudent;head->next=NULL;key=0;school()(deletehead;voidinput();voidmend();voiddel();intfind(student*p,intnum,char*pn="AH);voidfound();voidshow();voi

14、dcount();voidsave();voidbegin();voidclear();charmainmenu();intgetkey()(returnkey;voidsetkey(intk)(key=k;private:student*head;intkey;/錄入函數(shù)voidschool:input()(student*p,*p2=NULL;p=head;intn;while(p->next)p=p->next;while(n)(p2=newstudent;p2->input();p->next=p2;p2->next=NULL;p=p->next;s

15、chool:setkey(1);cout<<"ttt按1繼續(xù),按0返回:"cin>>n;/子查找函數(shù)intschool:find(student*p1,intnum,char*pn)(student*p;p=head;while(p->next)(*p1)=p;if(p->next)->getnumber()=num|!strcmp(p->next)->getname(),pn)return1;p=p->next;return0;/查找函數(shù)voidschool:found()(student*p;intnum=-1

16、,n=9;charname20=HA"do(cout<<"tt1:按編號查找,2:按姓名查找:"cin>>n;while(n<1|n>2);cin>>num;if(n=2)(cout<<"ttt輸入姓名:"cin>>name;if(!find(&p,num,name)(cout<<"tt找不到你要查找的內(nèi)容!"<<endl;return;(p->next)->output();/刪除函數(shù)voidschool:d

17、el()(student*p,*p2;intnum;cout<<"ttt輸入編號:"cin>>num;if(!find(&p,num,HA")(cout<<"tt找不到你要刪除的內(nèi)容!"<<endl;return;(p->next)->output();p2=p->next;p->next=p2->next;deletep2;school:setkey(1);voidschool:show()/顯示函數(shù)(student*p;p=head;while(p->

18、;next)(p->next)->output();p=p->next;/修改函數(shù)voidschool:mend()(student*p;intnum=-1,n;charname20="A"docout<<"tt1:按編號修改,2:按姓名修改:cin>>n;while(n<1|n>2);if(n=1)cout<<"ttt輸入編號:"cin>>num;if(n=2)cout<<"ttt輸入姓名:"cin>>name;if(!f

19、ind(&p,num,name)(cout<<"tt找不到你要修改的內(nèi)容!"<<endl;return;(p->next)->output();(p->next)->input();school:setkey(1);voidschool:save()/保存函數(shù)(student*p;p=head;ofstreamos("student.txt",ios:out);if(school:getkey()=1)(while(p->next)(p->next)->output(os);p=p

20、->next;文件已保存!"<<endl;school:setkey(0);voidschool:begin()/初始化函數(shù)student*p,*p2;p=head;clear();longt;ifstreamis("student.txt",ios:in);if(!is)ofstreamos("student.txt",ios:out);os.close();return;intnum=-1;is>>num;is.seekg(t);if(num<0)(is.close();return;p2=newstud

21、ent;p2->input(is);p->next=p2;p2->next=NULL;p=p->next;voidschool:clear()/活空函數(shù)(student*p,*p2;p=head->next;while(p)(p2=p;p=p->next;deletep2;voidschool:count()/統(tǒng)計函數(shù)(student*p;p=head;intn=0;doubleg3=(0,0,0;floatj3=(0,0,0;while(p->next)(p=p->next;n+;for(inti=0;i<3;i+)(gi=gi+(p-&

22、gt;getscore(i);(p->getscore(i)>=60.0?ji+:0;cout<<"ttbbbb數(shù)學(xué)總分:"<<g0<<"平均分:"<<g0/n«"及格率:"«jO/n«endl«"ttbbbb«"平均分:"«g1/n«"及格率:"«j1/n«endl«"ttbbbb計算機總分:"«

23、g2«"平均分:"«g2/n«"及格率:"«j2/n«endl;/主選菜單函數(shù)charschool:mainmenu()charn6;cout«"nn歡迎進(jìn)入學(xué)籍管理系統(tǒng)"«endl«endlvv*卻'vvendlvv*卻'vvendl«"*1:錄入學(xué)生信息*"«endl«"*2:顯示學(xué)生信息*"«endl«"*3:查找學(xué)生信息*"

24、«endl<<"*4:刪除學(xué)生信息*"<<endl<<"*5:修改學(xué)生信息*"<<endl<<"*6:統(tǒng)計學(xué)生成績*"<<endl<<"*7:保存學(xué)生信息*"<<endl<<"*0:退出系統(tǒng)*"<<endl<<"*"<<endl<<"*"<<endl<<"請選擇:”;cin>>n;returnn0;/主函數(shù)voidmain()(schoolpp;intk=1;charn;pp.begin();while(k=1)(n=pp.mainmenu();switch(n)(case'1':pp.input();break;case'2':pp.

溫馨提示

  • 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

提交評論