C課程設(shè)計(jì)學(xué)生學(xué)籍管理系統(tǒng)_第1頁
C課程設(shè)計(jì)學(xué)生學(xué)籍管理系統(tǒng)_第2頁
C課程設(shè)計(jì)學(xué)生學(xué)籍管理系統(tǒng)_第3頁
C課程設(shè)計(jì)學(xué)生學(xué)籍管理系統(tǒng)_第4頁
C課程設(shè)計(jì)學(xué)生學(xué)籍管理系統(tǒng)_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余18頁可下載查看

下載本文檔

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

文檔簡介

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

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

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

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

5、in x也定"iVfMnni I行好曲將 VMiinl ijdlinMI hrfli)#Ct «1 L i E>ri*biii I二:二.晏一京田色* li1?r.代真鳳.* £nLE-.= -jgL三TtUH巨1=321二分X示-常工砥燕u* *xlwa4A7y二W二二二統(tǒng)計(jì)界面:查找界面:*£宅號晟y挈 i4e佑佶后成, w *fa-11l"金 "P-匚三-g-kn :入森雅蓄 工不芷I褪獷珠氾 二八八八八:2月迎進(jìn)J顯示界面:錄入界面:回正L-J蔭E總賴姝Essilh 淑北rl.黑工輸:蠡示慶* r提皂望1-9亶莫亶琨若扁

6、漢有磐薇磬退提彖董漢工按10640K-WH號在野等H心里干法笄號名別熱日賈花編耕1蔻宴群入入入入入入人人入入入號期普舞翼民落翥薦編益群入入九sx>.工人人人入入入入入入入入入入入入保存界面:修改界面:刪除界面:3、系統(tǒng)運(yùn)行的結(jié)果:付國rD:Progra» FilesMicrosoft Visual StudioIyProjects100Debug100.exe*歡迎進(jìn)入學(xué)籍管理茅統(tǒng)* X X * X * XM M X MX M自心自心白心白心白心心信信惶信信咸信生生生生生生生統(tǒng)*入示找除改計(jì)存出*錄顯查刪修統(tǒng)保退X M M M MM 12345670 M* * * * X *

7、* * 頭 *:入 輸煥2 1 U 0 -1-n貝加。01U接人T 團(tuán)101010:輸姝8-員的0-0團(tuán)1010示富津91致勝示以北91:.。卜效也 提01毛女大漢19番會數(shù)分必提02曹4漢19鬻莪數(shù)分公按面證分分要按 ,號名別一卷日需學(xué)語算 一 一編姓性藉民生攻翼英計(jì)認(rèn)認(rèn)認(rèn)認(rèn)扒認(rèn)濁扒行認(rèn)JIA一面證分八 號名別e1日學(xué)語算 編姓性藉民生攻煮英計(jì)* M* Mx±R34slrbTM-郭國?。?Et,. X佑信信信信岫情K 1二二一一;二> 二一g.vp «*«孟4吊 XXF我除改計(jì)行書 M不«=刪修班保退K 二二二二X 二二二二行二二二二 K 二二二

8、二*幺口畫曰智3 H 向方付向宜熱優(yōu) " .11;二,111二1二二一一昏 H TTTTrTtnTITI 入示唆H富” 泵潴稠經(jīng)盤”二二二二(僅部分)五、詳細(xì)設(shè)計(jì)1、系統(tǒng)功能結(jié)構(gòu)圖:輸 入顯 示查 找刪除修改統(tǒng)計(jì)退出2、(1)類:student數(shù)據(jù)成員:編號,姓名,性別,籍貫,民族,生日,政治面貌,省 份證,數(shù)學(xué)成績,英語成績,計(jì)算機(jī)成績(2)類:school成員函數(shù):錄入函數(shù)Input():輸入編號到計(jì)算機(jī)的成績;統(tǒng)計(jì)函數(shù)count():統(tǒng)計(jì)各科的總成績,計(jì)算平均成績,統(tǒng)計(jì)各科的及格率;查詢函數(shù)found():按學(xué)號或姓名查找學(xué)生的記錄;修改函數(shù)mend():修改指定學(xué)號學(xué)生成績記

9、錄;刪除函數(shù)del():刪除指定學(xué)號學(xué)生記錄;輸出函數(shù)show():輸出班級所有學(xué)生成績記錄;UMLS:schoolStudent+school()+school()+ input():void+ mend():void+ del():void+ find:int+found():void+ show():void+ count():void+ save():void+ begin():void+ clear():void+mainmenu():char+getkey():int+setkey(intk):void-*head: student-key:int#number: int#name

10、20:char#sex6:char#place20:char#nation6:char#birth20:char#party10: char#id20:char#score3:float+student*next;+student() +student() + * getname():char+getnumber():int+getscore(inti)double+ getg():float+ input():void+input(ifstream & is): void+output():void+output(ofstream&os):void六、附錄:(主要代碼)#in

11、clude<iostream.h>#include<string.h>#include<fstream.h>#include<iomanip.h>/操縱符定義在其中class student protected:int number; char name20;char sex6; char place20;char nation6; char birth20;char party10; char id20;float score3;public:student *next;student() student() char* getname() r

12、eturn name; int getnumber() return number;double getscore(int i) return scorei;float getg() return (score0+score1+score2); void input() int e=1;cout<<"ttt 按提示輸入:"<<endl;cout<<"tt輸入編號: " cin>>number;cout<<"tt輸入姓名: " cin>>name;docout<

13、;<"tt 輸入性別: "cin>>sex;if(strcmp(sex," 男 ")=0 | strcmp(sex," 女 ")=0)輸入民族: "cin>>nation;輸入政治面貌: "cin>>party;輸入數(shù)學(xué)分?jǐn)?shù): "cin>>score0; cout<<"tt輸入籍貫: "cin>>place; cout<<"ttcout<<"tt輸入生日: &quo

14、t;cin>>birth; cout<<"ttcout<<"tt 輸入身份證號: "cin>>id; cout<<"ttcout<<"tt 輸入英語分?jǐn)?shù): "cin>>score1;cout<<"tt 輸入計(jì)算機(jī)分?jǐn)?shù): "cin>>score2;e=0;elsecout<<"ttt 無此類型性別! 重新輸入!"<<endl;e=1; while(e);return

15、;)void input(ifstream & is)is>>number>>name>>sex>>place>>nation>>birth>>party>>id>>score0>>score1>>score2;is.get(); void output()cout<<"學(xué)生基本信息如下:"<<endl;cout<<" 編號:"<<number<<"

16、; 姓名:"<<name<<"性另h"<<sex <<"籍貫:"<<place<<"民族:"<<nation<<"生日:"<<birth<<"政治面貌:"<<party<<endl<<"身份證號:"<<id<<"數(shù)學(xué):"<<score0<<&qu

17、ot;英語:"<<score1<<" 計(jì)算機(jī):"<<score2<<" 總分:"<<getg()<<endl<<endl;void output(ofstream & os) os<<setw(6)<<number <<setw(15)<<name<<setw(20)<<place<<setw(6)<<nation<<setw(20)<<

18、;birth<<setw(20)<<party<<setw(20)<<id<<setw(6)<<score0<<setw(6)<<score1<<setw(6)<<score2<<endl;/操縱符指定寬度class schoolpublic:school() head=new student; head->next=NULL; key=0; school() delete head; void input(); void mend(); void del(

19、);int find(student *p,int num,char *pn="A");void found(); void show(); void count();void save(); void begin(); void clear();char mainmenu();int getkey() return key;void setkey(int k) key=k; private:student *head; int key;/錄入函數(shù)void school:input()student *p,*p2=NULL;p=head; int n;while(p->

20、;next)p=p->next;while(n) p2=new student; p2->input();p->next=p2; p2->next=NULL; p=p->next;school:setkey(1);cout<<"ttt 按 1 繼續(xù) , 按 0 返回 : " cin>>n; / 子查找函數(shù)int school:find(student *p1,int num,char *pn) student *p; p=head;while(p->next)(*p1)=p;if( (p->next)->

21、;getnumber()=num|!strcmp( (p->next)->getname(),pn ) ) return 1; p=p->next;return 0; / 查找函數(shù)void school:found() student *p;int num=-1,n=9; char name20="A"do cout<<"tt1:按編號查找,2: 按姓名查找: "cin>>n;while(n<1|n>2);if(n=1) cout<<"ttt 輸入編號: "cin>

22、;>num;if(n=2) cout<<"ttt 輸入姓名: "cin>>name; if(!find(&p,num,name) ) cout<<"tt 找不到你要查找的內(nèi)容!"<<endl;return;(p->next)->output();/ 刪除函數(shù)void school:del() student *p,*p2; int num;cout<<"ttt 輸入編號: " cin>>num;if( !find(&p,num,&

23、quot;A") ) cout<<"tt 找不到你要刪除的內(nèi)容!"<<endl;return;(p->next)->output();p2=p->next; p->next=p2->next;delete p2;school:setkey(1); void school:show() / 顯示函數(shù) student *p; p=head;while(p->next) (p->next)->output();p=p->next;/ 修改函數(shù)void school:mend() student

24、 *p; int num=-1,n;char name20="A"do cout<<"tt1:按編號修改,2: 按姓名修改: "cin>>n;while(n<1|n>2);if(n=1) cout<<"ttt 輸入編號: "cin>>num;if(n=2)cout<<"ttt 輸入姓名: "cin>>name;if( !find(&p,num,name) ) cout<<"tt 找不到你要修改的內(nèi)容!&

25、quot;<<endl;return;(p->next)->output(); (p->next)->input();school:setkey(1);void school:save() / 保存函數(shù) student *p; p=head;ofstream os("student.txt",ios:out);if (school:getkey()=1)while(p->next) (p->next)->output(os);p=p->next; cout<<"ttt 文件已保存! "

26、;<<endl;school:setkey(0);void school:begin()/ 初始化函數(shù) student *p,*p2;p=head; clear();long t;ifstream is("student.txt",ios:in);if(!is) ofstream os("student.txt",ios:out);os.close();return ;int num=-1;while(1) num=-1; t=is.tellg();is>>num;is.seekg(t);if(num<0) is.close

27、();return;p2=new student; p2->input(is);p->next=p2; p2->next=NULL; p=p->next;void school:clear()/ 清空函數(shù)student *p,*p2;p=head->next;while( p )p2=p; p=p->next;delete p2;void school:count()/ 統(tǒng)計(jì)函數(shù)student *p; p=head;int n=0;double g3=0,0,0; float j3=0,0,0;while(p->next) p=p->next;n

28、+;for(int i=0;i<3;i+) gi=gi+( p->getscore(i) );(p->getscore(i) )>=60.0? ji+ : 0 ;cout<<"ttbbbb 數(shù)學(xué)總分:"<<g0<<" 平均分 :"<<g0/n< <" 及格率 :"<<j0/n<<endl<<"ttbbbb英語總分:"<<g1< <" 平均分:"<&

29、lt;g1/n<<"及格率 :"<<j1/n<<endl< <"ttbbbb 計(jì)算機(jī)總分: "<<g2<<" 平均分 : "<<g2/n< <" 及格率:"<<j2/n<<endl;/ 主選菜單函數(shù)char school:mainmenu()char n6;cout<<"nn歡迎進(jìn)入學(xué)籍管理系統(tǒng)"<<endl<<endl<<&qu

30、ot; * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" * *1:錄入學(xué)生信息* *"<<endl<<" * *2:顯示學(xué)生信息* *"<<endl<<" * *3:查找學(xué)生信息* *"<<endl<<&q

31、uot; * *4:刪除學(xué)生信息* *"<<endl<<" * *5:修改學(xué)生信息* *"<<endl<<" * *6:統(tǒng)計(jì)學(xué)生成績* *"<<endl<<" * *7:保存學(xué)生信息* *"<<endl<<" * *0:退出系統(tǒng)* *"<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" * * * *<<"cin>>n;return n0;/ 主函數(shù)* * * * * * * * * *

溫馨提示

  • 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

提交評論