版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 數(shù) 據(jù) 結(jié) 構(gòu) 課 程 設(shè) 計(jì)</p><p> 設(shè)計(jì)題目 學(xué)生管理系統(tǒng) </p><p> 設(shè)計(jì)時(shí)間 2012.12.31 至 2012.1.6 </p><p> 學(xué)生姓名 </p><p> 學(xué)生學(xué)號(hào)
2、 </p><p> 所在班級(jí) </p><p> 指導(dǎo)教師 </p><p><b> 學(xué)生管理系統(tǒng)</b></p><p><b> 需求分析</b></p><p&g
3、t; 課程設(shè)計(jì)題目:運(yùn)用數(shù)據(jù)結(jié)構(gòu)編一C++程序,實(shí)現(xiàn)對(duì)學(xué)生信息的管理,主要包括主控程序、學(xué)生檔案管理子系統(tǒng)、學(xué)生成績(jī)管理子系統(tǒng)、學(xué)生宿舍管理子系統(tǒng)。</p><p> 課程設(shè)計(jì)的基本要求:設(shè)計(jì)好算法,使之能順利實(shí)現(xiàn)對(duì)學(xué)生信息的管理,實(shí)用。</p><p> 課程設(shè)計(jì)的任務(wù):通過(guò)此系統(tǒng)可以實(shí)現(xiàn)如下功能:</p><p> 添加學(xué)生信息:包括學(xué)生的姓名,學(xué)號(hào),班
4、級(jí),宿舍號(hào)以及其C++、多媒體技術(shù)、高等數(shù)學(xué)、大學(xué)英語(yǔ)、大學(xué)體育等成績(jī);</p><p> 刪除學(xué)生信息:可以根據(jù)其姓名、學(xué)號(hào)、班級(jí)、宿舍號(hào)和其成績(jī)進(jìn)行刪除;</p><p> 查詢(xún)學(xué)生信息:可以根據(jù)其姓名、學(xué)號(hào)、班級(jí)、宿舍號(hào)和其成績(jī)進(jìn)行查詢(xún);</p><p> 輸出所有學(xué)生信息:可以顯示所有錄入到系統(tǒng)中的學(xué)生的信息。</p><p>
5、 軟硬件運(yùn)行環(huán)境及開(kāi)發(fā)工具</p><p> 本次課程設(shè)計(jì)主要是在Visual C++6.0下做的, Visual C++是Microsoft公司的功能強(qiáng)大的Windows應(yīng)用程序開(kāi)發(fā)環(huán)境。由于Visual C++與Windows同為Microsoft公司的產(chǎn)品,它與Windows操作系統(tǒng)的結(jié)合將更加緊密。目前,Visual C++是Windows平臺(tái)下開(kāi)發(fā)應(yīng)用程序最重要的開(kāi)發(fā)環(huán)境之一。Visual C++既
6、能支持C語(yǔ)言程序,又能C++運(yùn)行程序,C++程序通常無(wú)需修改,或稍作修改,即可在其他計(jì)算機(jī)系統(tǒng)上運(yùn)行。</p><p><b> 概要設(shè)計(jì)</b></p><p> (1)、課程設(shè)計(jì)思想</p><p> 學(xué)生管理系統(tǒng)是由單鏈表來(lái)完成的,它的主要思想是先將你的具體信息錄入到文件中,如果要查詢(xún)的話(huà)就是從文件中讀取出來(lái)的,然后我的查詢(xún)是由多種
7、方式來(lái)查詢(xún)的,可以通過(guò)姓名,學(xué)號(hào),班級(jí),宿舍號(hào)或成績(jī);刪除也是通過(guò)多種方式實(shí)現(xiàn)的,也是根據(jù)用戶(hù)輸入的姓名,學(xué)號(hào),班級(jí),宿舍號(hào)或者成績(jī);最后還有一個(gè)顯示所有學(xué)生的信息,可以把所有錄入的學(xué)生信息顯示出來(lái)。這個(gè)系統(tǒng)整個(gè)思想就是如此。編程時(shí)考慮得還不是很周全,還需要不斷完善。</p><p><b> ?。?)、模塊設(shè)計(jì)</b></p><p> 本課題主要分為5個(gè)模塊,即
8、:</p><p> (1) void add(CList &stulist)模塊,其作用是向系統(tǒng)中添加學(xué)生的信息;</p><p> (2) void display(CList &stulist)模塊,其作用是顯示所有錄入的學(xué)生的信息;</p><p> (3) void lookup(CList &stulist)模塊,其作用是按
9、照一定的條件查找學(xué)生的信息;</p><p> (4) void deletes(CList &stulist)模塊,其作用是刪除滿(mǎn)足一定條件的學(xué)生的信息。</p><p><b> 其流程圖如下:</b></p><p><b> 詳細(xì)設(shè)計(jì)</b></p><p> 本課題分為六個(gè)
10、部分:構(gòu)造單鏈表,顯示所有學(xué)生信息的函數(shù),添加學(xué)生信息的函數(shù),查找學(xué)生信息的函數(shù),刪除學(xué)生信息的函數(shù),主函數(shù)的設(shè)計(jì)。</p><p><b> 構(gòu)造單鏈表</b></p><p> 單鏈表有連個(gè)部分組成,即鏈表的結(jié)點(diǎn)類(lèi)和鏈表類(lèi),其代碼如下:</p><p> class CNode //結(jié)點(diǎn)類(lèi)</p>
11、<p><b> { </b></p><p><b> public: </b></p><p><b> CNode()</b></p><p><b> {</b></p><p><b> pdata=0;</b
12、></p><p><b> pnext=0;</b></p><p><b> }</b></p><p> CNode(CNode &n); </p><p> void inputdata(CData *pd){pdata=pd;} </p><p&g
13、t; void shownode(){pdata->show();} </p><p> CData *getdata(){return pdata;} </p><p> friend class CList; </p><p><b> private: </b></p><p> CData *pd
14、ata; </p><p> CNode *pnext; </p><p><b> };</b></p><p> CNode::CNode(CNode &n) //拷貝構(gòu)造函數(shù)</p><p><b> { </b></p><p>
15、 pdata=n.pdata;</p><p> pnext=n.pnext;</p><p><b> } </b></p><p> class CList //鏈表類(lèi)</p><p><b> { </b></p><p>&
16、lt;b> public: </b></p><p> CList(){phead=0;}</p><p> ~CList(){deletelist();}</p><p> void addnode(CNode *pnode);</p><p> void deletelist();</p><
17、;p> CNode *deletenode(CNode *pnode);</p><p> CNode *lookup(CData &data);</p><p> CNode *getlisthead(){return phead;}</p><p> void showlist();</p><p> CNode
18、*getnext(CNode *pnode);</p><p><b> private: </b></p><p> CNode * phead;</p><p><b> };</b></p><p> 顯示所有學(xué)生信息的函數(shù)</p><p><b>
19、 代碼如下:</b></p><p> void display(CList &stulist) </p><p><b> { </b></p><p> stulist.showlist(); </p><p> cout<<endl; </p><p>
20、; cout<<"按任意鍵返回主菜單"; </p><p> getchar();getchar(); </p><p><b> }</b></p><p><b> 添加學(xué)生信息的函數(shù)</b></p><p><b> 代碼如下:</b&
21、gt;</p><p> void add(CList &stulist) </p><p><b> { </b></p><p> CNode *p; </p><p> Student *s; </p><p> char c[17],n[17],nam[17]; <
22、/p><p> double e,cp,m,ce,sm,cg,mar;float aver; </p><p> cout<<"請(qǐng)輸入姓名(輸入0結(jié)束):"; </p><p> cin.ignore(); </p><p> cin.getline(nam,17); </p><p&g
23、t; while(strcmp(nam,"0")) </p><p><b> { </b></p><p> cout<<"輸入學(xué)號(hào):";cin.getline(n,17); </p><p> cout<<"輸入班級(jí):";cin.getline(c,
24、17); </p><p> cout<<"輸入宿舍:";cin>>e; </p><p> cout<<"輸入C++成績(jī):";cin>>cp; </p><p> cout<<"輸入多媒體技術(shù)成績(jī):";cin>>m; </
25、p><p> cout<<"輸入大學(xué)英語(yǔ)成績(jī):";cin>>ce;</p><p> cout<<"輸入高等數(shù)學(xué)成績(jī):";cin>>sm; </p><p> cout<<"輸入大學(xué)體育成績(jī):";cin>>cg; </p>
26、<p> aver=(cp+m+ce+sm+cg)/5; </p><p> s=new Student; </p><p> s->set(c,n,nam,e,cp,m,ce,sm,cg,mar,aver); </p><p> p=new CNode; </p><p> p->inputdata(s)
27、; </p><p> stulist.addnode(p); </p><p> cout<<"記錄添加成功."<<endl; </p><p> cout<<"請(qǐng)輸入姓名(輸入0結(jié)束):"; </p><p> cin.ignore(); </p&g
28、t;<p> cin.getline(nam,17); </p><p><b> } </b></p><p><b> } </b></p><p><b> 查找學(xué)生信息的函數(shù)</b></p><p><b> 代碼如下:</b&
29、gt;</p><p> void lookup(CList &stulist) </p><p><b> { </b></p><p> CNode *plook; </p><p> char name[17]; </p><p> cout<<"請(qǐng)輸
30、入你要查找的姓名(輸入0結(jié)束):"; </p><p> cin.ignore(); </p><p> cin.getline(name,17); </p><p> while(strcmp(name,"0")) </p><p><b> { </b></p>&
31、lt;p> Student s; </p><p> s.set("0","0",name,0,0,0,0,0,0,0,0); </p><p> plook=stulist.lookup(s); </p><p> if(plook) </p><p><b> { <
32、/b></p><p> plook->shownode(); </p><p><b> } </b></p><p><b> else </b></p><p> cout<<"對(duì)不起,在學(xué)生記錄中查找不到"<<name<&
33、lt;"的記錄."<<endl; </p><p> cout<<"請(qǐng)輸入你要查找的姓名(輸入0結(jié)束):"; </p><p> cin.getline(name,17); </p><p><b> } </b></p><p><b>
34、 }</b></p><p><b> 刪除學(xué)生信息的函數(shù)</b></p><p><b> 代碼如下:</b></p><p> void deletes(CList &stulist) </p><p><b> { </b></p>
35、<p> CNode *plook; </p><p> char name[17]; </p><p> cout<<"請(qǐng)輸入要?jiǎng)h除的記錄的學(xué)生姓名(輸入0結(jié)束):"; </p><p> cin.ignore(); </p><p> cin.getline(name,17); &l
36、t;/p><p> while(strcmp(name,"0")) </p><p><b> { </b></p><p> Student s; </p><p> s.set("0","0",name,0,0,0,0,0,0,0,0); </p&
37、gt;<p> plook=stulist.lookup(s); </p><p> if(plook) </p><p><b> { </b></p><p> plook->shownode(); </p><p> stulist.deletenode(plook); </p&
38、gt;<p> cout<<name<<"的記錄已經(jīng)刪除.\n"; </p><p><b> } </b></p><p><b> else </b></p><p> cout<<"對(duì)不起,在學(xué)生記錄中查找不到"<
39、<name<<"的記錄.\n"<<endl; </p><p> cout<<"請(qǐng)輸入要?jiǎng)h除的記錄的學(xué)生姓名(輸入0結(jié)束):"; </p><p> cin.getline(name,17); </p><p><b> } </b></p>
40、<p><b> }</b></p><p><b> 主函數(shù)的設(shè)計(jì)</b></p><p><b> 代碼如下:</b></p><p> void operate(CList &stulist) </p><p><b> { &
41、lt;/b></p><p> int choice; </p><p><b> do </b></p><p><b> { </b></p><p> system("cls"); </p><p> cout<<&quo
42、t; 歡迎使用學(xué)生管理系統(tǒng) \n"; </p><p> cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" </p><p> <<" 1.輸出所有學(xué)生記錄\n&quo
43、t; </p><p> <<" 2.增加學(xué)生記錄\n" </p><p> <<" 3.刪除學(xué)生記錄\n" </p><p> <<"
44、 4.查詢(xún)學(xué)生記錄\n" </p><p> <<" 0.退出\n" </p><p> <<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; </p><
45、;p> cout<<"提示:按0-4進(jìn)行選擇"; </p><p> cin>>choice; </p><p> cout<<endl; </p><p> switch(choice) </p><p> {case 1:display(stulist);break;
46、 </p><p> case 2:add(stulist);break; </p><p> case 3:deletes(stulist);break; </p><p> case 4:lookup(stulist);break; </p><p> case 0:storefile(stulist);break; </p
47、><p> default:cout<<"輸入錯(cuò)誤,請(qǐng)重新輸入您的選擇:"; </p><p><b> } </b></p><p> }while(choice!=0); </p><p><b> } </b></p><p>
48、; int main() </p><p><b> { </b></p><p> CList stulist; </p><p> loadfile(stulist); </p><p> operate(stulist); </p><p> return 0; </p&g
49、t;<p><b> }</b></p><p><b> 調(diào)試分析與測(cè)試結(jié)果</b></p><p> 執(zhí)行程序后,首先向系統(tǒng)中錄入三位同學(xué)的信息,然后顯示三個(gè)人的信息,運(yùn)行后的界面如下:</p><p> 圖4.1 錄入三個(gè)學(xué)生信息后的運(yùn)行結(jié)果</p><p> 然后增加
50、一個(gè)學(xué)生的信息再輸出,結(jié)果如下圖:</p><p> 圖4.2 添加一個(gè)學(xué)生后的運(yùn)行結(jié)果</p><p> 接著再任意刪除一個(gè)學(xué)生的信息,輸出結(jié)果如下圖:</p><p> 圖4.3 刪除一個(gè)學(xué)生后的運(yùn)行結(jié)果</p><p> 最后查詢(xún)“shiqi”的信息,結(jié)果如下圖:</p><p> 圖4.4 查詢(xún)的結(jié)果
51、</p><p><b> 課設(shè)總結(jié)</b></p><p> 本次課程設(shè)計(jì)使我了解到了有關(guān)VC++的真實(shí)案例,當(dāng)然也使我學(xué)到的不少的知識(shí),也提高了我的實(shí)際動(dòng)手能力。由于之前對(duì)VC++的知識(shí)沒(méi)有足夠的掌握,使我在實(shí)驗(yàn)的最初階段遇到了不小的困難,但是隨著實(shí)驗(yàn)的進(jìn)行,隨著問(wèn)題的一步步被我解決了,我由衷的感到高興,因?yàn)槲矣终莆樟艘恍┲R(shí)。實(shí)驗(yàn)過(guò)程中我更好地掌握了單鏈表等
52、相關(guān)涉及的知識(shí)點(diǎn),運(yùn)用這些知識(shí)點(diǎn)編寫(xiě)程序代碼。調(diào)試程序中,我們常常會(huì)不注意細(xì)節(jié)性的問(wèn)題。例如:變量沒(méi)有初始化、沒(méi)有定義、少分號(hào)、少頭文件等這些細(xì)節(jié)性的錯(cuò)誤。這此問(wèn)題只是細(xì)小的問(wèn)題,但不容忽視,它可能會(huì)影響到全部程序的運(yùn)行。查找主要代碼無(wú)誤后,若調(diào)試程序還存在錯(cuò)誤的話(huà),我們就需要關(guān)注這此細(xì)節(jié)性問(wèn)題了。要規(guī)范化程序,這樣就很容易查找出細(xì)節(jié)性的問(wèn)題。一個(gè)好的程序應(yīng)該是一個(gè)所占空間小、運(yùn)行時(shí)間短、其他性能也好的算法。然而,實(shí)際上很難做到十全十美
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生籍貫管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---學(xué)生學(xué)籍管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--- 學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)(部分)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--航班管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)—機(jī)場(chǎng)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論