版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程實(shí)訓(xùn)報(bào)告</b></p><p> 課程名稱:控制臺(tái)小型應(yīng)用實(shí)訓(xùn) </p><p> 實(shí)訓(xùn)題目:學(xué)生成績(jī)管理系統(tǒng) </p><p> 專 業(yè):軟件技術(shù) 班 級(jí):2班 </p><p> 學(xué)生姓名:學(xué)
2、 號(hào):1102847 </p><p> 指導(dǎo)教師:職 稱:講師 </p><p> 部 門:計(jì)算機(jī)與電子工程系 </p><p> 起止日期:2012年6月 1日 至2012年7月1 日</p><p> 教務(wù)處制</p><p>
3、 目 錄</p><p> 一、課程設(shè)計(jì)簡(jiǎn)介3</p><p><b> 二、設(shè)計(jì)方案4</b></p><p> 三、具體設(shè)計(jì)及截屏圖7</p><p><b> ?。ㄒ唬╊惖脑O(shè)計(jì)7</b></p><p><b> 1、學(xué)生類
4、7</b></p><p><b> 2、學(xué)生信息類8</b></p><p><b> (二)界面設(shè)計(jì)9</b></p><p> 1、登陸界面的設(shè)計(jì)9</p><p> 2、主界面的設(shè)計(jì)10</p><p> 3、分界面:增加學(xué)生信息的設(shè)計(jì)
5、11</p><p> 4、分界面:顯示學(xué)生信息的設(shè)計(jì)12</p><p> 5、分界面:排序統(tǒng)計(jì)信息的設(shè)計(jì)12</p><p> 6、分界面:查找學(xué)生信息的設(shè)計(jì)13</p><p> 7、分界面:刪除學(xué)生信息的設(shè)計(jì)15</p><p> 8、分界面:修改學(xué)生信息的設(shè)計(jì)16</p>
6、<p> 9、分界面:修改學(xué)生信息的設(shè)計(jì)16</p><p> 10、分界面:安全退出系統(tǒng)的設(shè)計(jì)17</p><p><b> 四、代碼分析18</b></p><p> 五、測(cè) 試19</p><p> 六、課題總結(jié)與體會(huì)25</p><p><b>
7、; 七、參考文獻(xiàn)25</b></p><p><b> 八、源代碼25</b></p><p><b> 一、課程設(shè)計(jì)簡(jiǎn)介</b></p><p> 學(xué)生成績(jī)管理系統(tǒng)是根據(jù)某學(xué)校對(duì)學(xué)生成績(jī)管理的實(shí)際情況進(jìn)行編寫的,主要目的是為了方便學(xué)校對(duì)學(xué)生成績(jī)的實(shí)際情況進(jìn)行集中的查詢與管理工作,以提高對(duì)整個(gè)學(xué)校的
8、學(xué)生成績(jī)管理工作。</p><p> 操作人員對(duì)學(xué)生的信息需要進(jìn)行選擇,系統(tǒng)必須實(shí)現(xiàn)相應(yīng)的增加、刪除、修改、查詢、排序和輸出功能,使操作人員更加方便的進(jìn)行操作。</p><p> 主要實(shí)現(xiàn)的功能包括:增加學(xué)生信息、顯示學(xué)生信息、排序統(tǒng)計(jì)信息、查找學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息、保存學(xué)生信息、安全退出系統(tǒng)。</p><p><b> 組員的分工情
9、況:</b></p><p> 姚群:安全退出函數(shù)和顯示學(xué)生信息函數(shù);</p><p> 吳英霏:查找學(xué)生信息函數(shù);</p><p> 林春節(jié):刪除學(xué)生信息函數(shù);</p><p> 鄧園媛:保存學(xué)生信息函數(shù);</p><p> 楊孝虎:增加學(xué)生信息函數(shù);</p><p>
10、 唐印:排序統(tǒng)計(jì)成績(jī)函數(shù);</p><p> 我主要負(fù)責(zé)的部分是:修改學(xué)生信息函數(shù)。</p><p><b> 二、設(shè)計(jì)方案</b></p><p> 按照需求分析所得,學(xué)生成績(jī)管理系統(tǒng)有以下幾個(gè)功能模塊:</p><p> 1.增加學(xué)生信息函數(shù);</p><p> 輸入姓名、學(xué)號(hào)、C課
11、程成績(jī)、數(shù)學(xué)成績(jī)、英語(yǔ)成績(jī)來(lái)增加學(xué)生信息。</p><p> 2.顯示學(xué)生信息函數(shù);</p><p> 顯示出增加的學(xué)生信息。</p><p> 3.排序統(tǒng)計(jì)信息函數(shù);</p><p> 按照學(xué)生的總成績(jī)來(lái)進(jìn)行從大到小的排序。</p><p> 4.查找學(xué)生信息函數(shù);</p><p>
12、 按學(xué)生的姓名、學(xué)號(hào)和課程成績(jī)來(lái)進(jìn)行查找。</p><p> 5.刪除學(xué)生信息函數(shù);</p><p> 按照學(xué)生的姓名和學(xué)號(hào)來(lái)進(jìn)行刪除操作。</p><p> 6.修改學(xué)生信息函數(shù);</p><p> 可以對(duì)學(xué)生的姓名和學(xué)號(hào)進(jìn)行修改。</p><p> 7.保存學(xué)生信息函數(shù);</p><
13、p> 保存所有學(xué)生的信息到“sort.txt”文件中。</p><p><b> 8.安全退出函數(shù);</b></p><p> 安全退出學(xué)生成績(jī)管理系統(tǒng)。</p><p> 由上述需求分析可得,系統(tǒng)的功能模塊圖如圖2-1所示。</p><p> 圖2-1 功能模塊結(jié)構(gòu)圖</p><p&
14、gt; 軟件功能流程圖如下圖2-2所示:</p><p> 圖2-2 軟件功能流程圖</p><p> 三、具體設(shè)計(jì)及截屏圖</p><p><b> ?。ㄒ唬╊惖脑O(shè)計(jì)</b></p><p> 根據(jù)上述需求分析,有學(xué)生類和學(xué)生信息類。</p><p><b> 1、學(xué)生類&l
15、t;/b></p><p> Student類中成員:</p><p><b> Public:</b></p><p> char name[20];//姓名</p><p> char Id[20];//學(xué)號(hào)</p><p> float Cnum;//C課程得分</p&
16、gt;<p> float Mnum;//數(shù)學(xué)課程得分</p><p> float Enum;//英語(yǔ)課程得分</p><p> float sum;//總分</p><p> float average;//計(jì)算平均成績(jī)</p><p> Student * Next;</p><p>
17、void Input();//輸入數(shù)據(jù)</p><p> void ReadFile(istream & in);//提取輸入的數(shù)據(jù)</p><p> void Show();//輸出信息</p><p> 學(xué)生類的UML圖如(圖2-3)所示:</p><p> 圖2-3 學(xué)生類Student</p><p
18、><b> 2、學(xué)生信息類</b></p><p> Student類中成員:</p><p><b> private:</b></p><p> Student *Head,*End;</p><p> ifstream in;</p><p> ofs
19、tream out;</p><p><b> public:</b></p><p> StudentMessage();</p><p> virtual ~StudentMessage();</p><p> void ShowMenu();//菜單</p><p> void F
20、ind();//查找函數(shù)</p><p> void Save();//保存函數(shù)</p><p> void ModifyItem();//修改信息</p><p> void RemoveItem();//刪除信息</p><p> void Swap(Student *,Student *);//交換兩個(gè)combox變量的數(shù)據(jù)域&
21、lt;/p><p> void Sort();//對(duì)當(dāng)前鏈表進(jìn)行排序</p><p> void tuichu();//退出函數(shù)</p><p> int ListCount();//統(tǒng)計(jì)當(dāng)前鏈表的記錄總數(shù),返回一個(gè)整數(shù)</p><p> void Display();//輸出信息</p><p> void A
22、ddItem();//增加學(xué)生信息</p><p> Student *FindID(char * Id);</p><p> Student *FindItem(char * name);</p><p> 學(xué)生信息類的UML圖如(圖2-4)所示:</p><p> 圖2-4 學(xué)生信息類StudentMessage</p>
23、;<p><b> ?。ǘ┙缑嬖O(shè)計(jì)</b></p><p><b> 1、登陸界面的設(shè)計(jì)</b></p><p> 登陸界面中顯示提出輸入用戶名和密碼。學(xué)生成績(jī)管理系統(tǒng)登陸界面如圖2-5所示。</p><p><b> 圖2-5 登陸界面</b></p><p
24、><b> 2、主界面的設(shè)計(jì)</b></p><p> 主界面中顯示學(xué)生成績(jī)管理系統(tǒng)的全部信息,增加學(xué)生信息,顯示學(xué)生信息,排序統(tǒng)計(jì)信息,查找學(xué)生信息,刪除學(xué)生信息,修改學(xué)生信息,保存學(xué)生信息,安全退出系統(tǒng)。學(xué)生成績(jī)管理系統(tǒng)主界面如圖2-6所示。</p><p><b> 圖2-6 主界面</b></p><p&g
25、t; 3、分界面:增加學(xué)生信息的設(shè)計(jì)</p><p> 提示輸入學(xué)生姓名,學(xué)生學(xué)號(hào),C課程的成績(jī),數(shù)學(xué)成績(jī),英語(yǔ)成績(jī)。增加學(xué)生信息如圖2-7所示。</p><p> 圖2-7 增加學(xué)生信息</p><p> 4、分界面:顯示學(xué)生信息的設(shè)計(jì)</p><p> 圖2-8 顯示學(xué)生信息</p><p> 5、
26、分界面:排序統(tǒng)計(jì)信息的設(shè)計(jì)</p><p> 按從大到小的順序排序。如圖2-9所示。</p><p> 圖2-9 排序統(tǒng)計(jì)信息</p><p> 6、分界面:查找學(xué)生信息的設(shè)計(jì)</p><p> 提示需要按什么信息去查找。如圖2-10所示。</p><p><b> 圖2-10</b>
27、</p><p> 按學(xué)生姓名查找,如圖2-11所示。</p><p> 圖2-11 按學(xué)生姓名查找</p><p> 按學(xué)生學(xué)號(hào)查找,如圖2-12所示。</p><p> 圖2-12 按學(xué)生學(xué)號(hào)查找</p><p> 查找學(xué)生課程成績(jī),如圖2-13所示。</p><p> 圖2
28、-13 查找學(xué)生課程成績(jī)</p><p> 7、分界面:刪除學(xué)生信息的設(shè)計(jì)</p><p> 提示按什么信息去刪除學(xué)生的信息,如圖2-14所示。</p><p><b> 圖 2-14</b></p><p> 8、分界面:修改學(xué)生信息的設(shè)計(jì)</p><p> 提示按什么信息去修改學(xué)生
29、的信息,如圖2-15所示。</p><p><b> 圖 2-15</b></p><p> 9、分界面:修改學(xué)生信息的設(shè)計(jì)</p><p><b> 如圖2-16所示。</b></p><p><b> 圖 2-16</b></p><p>
30、 10、分界面:安全退出系統(tǒng)的設(shè)計(jì)</p><p><b> 如圖2-17所示。</b></p><p><b> 圖 2-17</b></p><p><b> 四、代碼分析</b></p><p><b> 修改學(xué)生的信息</b></p&
31、gt;<p> 修改學(xué)生的信息,按要求提示輸入要?jiǎng)h除學(xué)生的姓名或?qū)W號(hào),定義一個(gè)指向鏈表第一個(gè)節(jié)點(diǎn)的指針p。如果指針創(chuàng)建成功,開(kāi)始用if語(yǔ)句實(shí)現(xiàn)p指向的節(jié)點(diǎn)的學(xué)生的姓名或?qū)W號(hào)與存在的姓名或?qū)W號(hào)的比較。如果相同,輸出該學(xué)生的信息并進(jìn)行修改;如果沒(méi)有相同的,提示沒(méi)有找到該學(xué)生的信息。</p><p> #include <conio.h></p><p> #in
32、clude "StudentMessage.h"</p><p> #include "Student.h"</p><p> #include "string.h"</p><p> #include "windows.h"</p><p><b&g
33、t; //修改信息</b></p><p> void StudentMessage::ModifyItem()</p><p><b> {</b></p><p> char name[20];</p><p> char Id[10];</p><p><b>
34、; int y;</b></p><p> Student * p=NULL;</p><p> cout<<"\n\t\t*********************************"<<endl;</p><p> cout<<"\t\t※ 1.按學(xué)生的姓名修改\n\t\
35、t※ 2.按學(xué)生的學(xué)號(hào)修改\t\t"<<endl;</p><p> cout<<"\t\t*********************************\n請(qǐng)選擇:";</p><p><b> cin>>y;</b></p><p><b> switch
36、(y)</b></p><p><b> {</b></p><p><b> case 1:</b></p><p> cout<<"\t\t請(qǐng)輸入要修改的學(xué)生的姓名:";</p><p> cin>>name;</p>
37、<p> if(p=FindItem(name))</p><p><b> {</b></p><p> cout<<"\t\t已找到學(xué)生的信息,請(qǐng)輸入新的信息!"<<endl;</p><p> p=p->Next;</p><p> cout&
38、lt;<"\t"<<"姓名"<<"\t"<<"學(xué)號(hào)"<<"\t"<<"C++"<<"\t"<<"數(shù)學(xué)"<<"\t"<<"外語(yǔ)"
39、<<"\t"<<"總成績(jī)"<<"\t"<<"平均成績(jī)"<<endl;</p><p> p->Show();</p><p> cout<<"\t\t請(qǐng)輸入新的學(xué)生的姓名:"; </p>&l
40、t;p> cin>>p->name;</p><p> cout<<"修改成功!"<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……"<<endl;</p><p><b> getch();</b><
41、;/p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"\t\t沒(méi)有找到!"<<endl;</p><p>
42、 cout<<"輸入任意字符!繼續(xù)……"<<endl;</p><p><b> getch();</b></p><p><b> }break;</b></p><p><b> case 2:</b></p><p>
43、cout<<"\t\t請(qǐng)輸入要修改的學(xué)生的學(xué)號(hào):";</p><p><b> cin>>Id;</b></p><p> if(p=FindID(Id))</p><p><b> {</b></p><p> cout<<"
44、;\t\t已找到學(xué)生的信息,請(qǐng)輸入新的信息!"<<endl;</p><p> p=p->Next;</p><p> cout<<"\t"<<"姓名"<<"\t"<<"學(xué)號(hào)"<<"\t"<&l
45、t;"C++"<<"\t"<<"數(shù)學(xué)"<<"\t"<<"外語(yǔ)"<<"\t"<<"總成績(jī)"<<"\t"<<"平均成績(jī)"<<endl;</p>
46、<p> p->Show();</p><p> cout<<"\t\t請(qǐng)輸入新的學(xué)生的學(xué)號(hào):";</p><p> cin>>p->Id;</p><p> cout<<"修改成功!"<<endl;</p><p> c
47、out<<"輸入任意字符!繼續(xù)……"<<endl;</p><p><b> getch();</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {&
48、lt;/b></p><p> cout<<"\t\t沒(méi)有找到!"<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……"<<endl;</p><p><b> getch();</b></p><p>
49、<b> }break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 五、測(cè) 試</b></p><p> 程序測(cè)試是將編制的程序投入實(shí)際運(yùn)行前,用手工或編譯程序等方法進(jìn)行測(cè)
50、試,修正語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤的過(guò)程。</p><p><b> 原程序:</b></p><p><b> //修改信息</b></p><p> #include <conio.h></p><p> #include "StudentMessage.h"&l
51、t;/p><p> #include "Student.h"</p><p> #include "string.h"</p><p> #include "windows.h"</p><p> void StudentMessage::ModifyItem()</p&g
52、t;<p><b> {</b></p><p> char name[20];</p><p> char Id[10];</p><p><b> int y;</b></p><p> Student * p=NULL;</p><p> co
53、ut<<"\n\t\t*********************************"<<endl;</p><p> cout<<"\t\t※ 1.按學(xué)生的姓名修改\n\t\t※ 2.按學(xué)生的學(xué)號(hào)修改\t\t"<<endl;</p><p> cout<<"\t\t***
54、******************************\n請(qǐng)選擇:";</p><p><b> cin>>y;</b></p><p><b> switch(y)</b></p><p><b> {</b></p><p><b&g
55、t; case 1:</b></p><p> cout<<"\t\t請(qǐng)輸入要修改的學(xué)生的姓名:";</p><p> cin>>name;</p><p> if(p=FindItem(name))</p><p><b> {</b></p>
56、;<p> cout<<"\t\t已找到學(xué)生的信息,請(qǐng)輸入新的信息!"<<endl;</p><p> cout<<"\t"<<"姓名"<<"\t"<<"學(xué)號(hào)"<<"\t"<<&qu
57、ot;C++"<<"\t"<<"數(shù)學(xué)"<<"\t"<<"外語(yǔ)"<<"\t"<<"總成績(jī)"<<"\t"<<"平均成績(jī)"<<endl;</p><
58、p> p->Show();</p><p> cout<<"\t\t請(qǐng)輸入新的學(xué)生的姓名:"; </p><p> cin>>p->name;</p><p> cout<<"修改成功!"<<endl;</p><p> c
59、out<<"輸入任意字符!繼續(xù)……"<<endl;</p><p><b> getch();</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {&
60、lt;/b></p><p> cout<<"\t\t沒(méi)有找到!"<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……"<<endl;</p><p><b> getch();</b></p><p>
61、<b> }break;</b></p><p><b> case 2:</b></p><p> cout<<"\t\t請(qǐng)輸入要修改的學(xué)生的學(xué)號(hào):";</p><p><b> cin>>Id;</b></p><p>
62、 if(p=FindID(Id))</p><p><b> {</b></p><p> cout<<"\t\t已找到學(xué)生的信息,請(qǐng)輸入新的信息!"<<endl;</p><p> cout<<"\t"<<"姓名"<<
63、"\t"<<"學(xué)號(hào)"<<"\t"<<"C++"<<"\t"<<"數(shù)學(xué)"<<"\t"<<"外語(yǔ)"<<"\t"<<"總成績(jī)"<&l
64、t;"\t"<<"平均成績(jī)"<<endl;</p><p> p->Show();</p><p> cout<<"\t\t請(qǐng)輸入新的學(xué)生的學(xué)號(hào):";</p><p> cin>>p->Id;</p><p> co
65、ut<<"修改成功!"<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……"<<endl;</p><p><b> getch();</b></p><p><b> }</b></p><
66、p><b> else</b></p><p><b> {</b></p><p> cout<<"\t\t沒(méi)有找到!"<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……"<<endl;</p&
67、gt;<p><b> getch();</b></p><p><b> }break;</b></p><p><b> }</b></p><p><b> }</b></p><p> 編譯成功后開(kāi)始運(yùn)行,選擇修改,輸入要修
68、改的學(xué)生的姓名或?qū)W號(hào)后,找到的不是要找的這個(gè)學(xué)生的姓名或?qū)W號(hào)而是上一個(gè)學(xué)生的姓名或?qū)W號(hào),進(jìn)行修改過(guò)后,就能準(zhǔn)確的找到要找的學(xué)生信息。</p><p><b> 修改后的代碼:</b></p><p><b> //修改信息</b></p><p> #include <conio.h></p>
69、<p> #include "StudentMessage.h"</p><p> #include "Student.h"</p><p> #include "string.h"</p><p> #include "windows.h"</p>
70、<p> void StudentMessage::ModifyItem()</p><p><b> {</b></p><p> char name[20];</p><p> char Id[10];</p><p><b> int y;</b></p>&
71、lt;p> Student * p=NULL;</p><p> cout<<"\n\t\t*********************************"<<endl;</p><p> cout<<"\t\t※ 1.按學(xué)生的姓名修改\n\t\t※ 2.按學(xué)生的學(xué)號(hào)修改\t\t"<<e
72、ndl;</p><p> cout<<"\t\t*********************************\n請(qǐng)選擇:";</p><p><b> cin>>y;</b></p><p><b> switch(y)</b></p><p&g
73、t;<b> {</b></p><p><b> case 1:</b></p><p> cout<<"\t\t請(qǐng)輸入要修改的學(xué)生的姓名:";</p><p> cin>>name;</p><p> if(p=FindItem(name))
74、</p><p><b> {</b></p><p> cout<<"\t\t已找到學(xué)生的信息,請(qǐng)輸入新的信息!"<<endl;</p><p> p=p->Next;</p><p> cout<<"\t"<<&qu
75、ot;姓名"<<"\t"<<"學(xué)號(hào)"<<"\t"<<"C++"<<"\t"<<"數(shù)學(xué)"<<"\t"<<"外語(yǔ)"<<"\t"<<&q
76、uot;總成績(jī)"<<"\t"<<"平均成績(jī)"<<endl;</p><p> p->Show();</p><p> cout<<"\t\t請(qǐng)輸入新的學(xué)生的姓名:"; </p><p> cin>>p->name;&
77、lt;/p><p> cout<<"修改成功!"<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……"<<endl;</p><p><b> getch();</b></p><p><b> }&l
78、t;/b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"\t\t沒(méi)有找到!"<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……&q
79、uot;<<endl;</p><p><b> getch();</b></p><p><b> }break;</b></p><p><b> case 2:</b></p><p> cout<<"\t\t請(qǐng)輸入要修改的學(xué)生的
80、學(xué)號(hào):";</p><p><b> cin>>Id;</b></p><p> if(p=FindID(Id))</p><p><b> {</b></p><p> cout<<"\t\t已找到學(xué)生的信息,請(qǐng)輸入新的信息!"<
81、<endl;</p><p> p=p->Next;</p><p> cout<<"\t"<<"姓名"<<"\t"<<"學(xué)號(hào)"<<"\t"<<"C++"<<"\
82、t"<<"數(shù)學(xué)"<<"\t"<<"外語(yǔ)"<<"\t"<<"總成績(jī)"<<"\t"<<"平均成績(jī)"<<endl;</p><p> p->Show();</p&
83、gt;<p> cout<<"\t\t請(qǐng)輸入新的學(xué)生的學(xué)號(hào):";</p><p> cin>>p->Id;</p><p> cout<<"修改成功!"<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……&quo
84、t;<<endl;</p><p><b> getch();</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>
85、cout<<"\t\t沒(méi)有找到!"<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……"<<endl;</p><p><b> getch();</b></p><p><b> }break;</b><
86、/p><p><b> }</b></p><p><b> }</b></p><p><b> 六、課題總結(jié)與體會(huì)</b></p><p> 忙碌了幾個(gè)星期,在大家的共同努力下,我們總算將此程序設(shè)計(jì)出來(lái)。盡管不是自己獨(dú)立完成,但仍然很高興,因?yàn)樵谠O(shè)計(jì)的過(guò)程中,讓我了解到
87、要設(shè)計(jì)一個(gè)程序,查找資料是至關(guān)重要的,在他人的基礎(chǔ)上,再根據(jù)自己所學(xué)進(jìn)行修改與調(diào)試,最后設(shè)計(jì)出自己想要的程序,這過(guò)程艱辛,但只要你持之以恒,成功指日可待。</p><p> 另外平時(shí)扎實(shí)的基礎(chǔ)也很關(guān)鍵,因?yàn)槿绻闫綍r(shí)學(xué)得就不怎么樣,那么你面對(duì)這么一個(gè)比較有難度的程序,你可能會(huì)望而卻步,看他人的程序都是個(gè)難點(diǎn),更別說(shuō)讓你自己去設(shè)計(jì)。為了解決此。類問(wèn)題,最好就是多向同學(xué),老師請(qǐng)教,不要怕難為情。尤其是老師,評(píng)他們多
88、年的編寫程序的經(jīng)驗(yàn),要解決我們的問(wèn)題,對(duì)他們來(lái)說(shuō)只是小問(wèn)題。</p><p> 很感謝這次的課程設(shè)計(jì),它使我更加深刻地體會(huì)到多看專業(yè)書的重要性,只有掌握了一定量的專業(yè)知識(shí)才能得心應(yīng)手地解決諸多問(wèn)題;另外,做任何事都要有耐心,不要一遇到困難就退縮。</p><p> 總之,這次設(shè)計(jì)程序讓我受益良多,我會(huì)好好珍惜像這種難得的機(jī)會(huì)。</p><p><b>
89、 七、參考文獻(xiàn)</b></p><p> 【1】《C++程序設(shè)計(jì)實(shí)例與操作》</p><p> 【2】www.baidu.com</p><p><b> 八、源代碼</b></p><p> //main.cpp</p><p> #include "iostr
90、eam.h"</p><p> #include "windows.h"</p><p> #include "string.h"</p><p> #include "Student.h"</p><p> #include "StudentMessag
91、e.h"</p><p> #include "conio.h"</p><p> void login();//登陸界面</p><p> void main()</p><p><b> {</b></p><p><b> login();&
92、lt;/b></p><p> system("color 3e"); //設(shè)置系統(tǒng)背景色和前景色</p><p> int x,i=0;</p><p> bool quit=false; </p><p> cout<<"\t\t§§§§
93、167;§§§§§§§§§§§§§§§§§§§§§"<<endl;</p><p> for(i=0;i<3;i++)</p><p> cout&l
94、t;<"\t\t◎\t\t\t\t\t\t ◎"<<endl;</p><p> cout<<"\t\t◎★★★★【 歡迎進(jìn)入學(xué)生成績(jī)管理系統(tǒng) 】★★★★◎"<<endl;</p><p> for(i=0;i<3;i++)</p><p> cout<<
95、"\t\t◎\t\t\t\t\t\t ◎"<<endl;</p><p> cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§
96、7;§§§§\n"<<endl;</p><p> cout<<"按任意鍵開(kāi)始……"<<endl;</p><p> Sleep(1500);</p><p> system("cls");</p><p>&l
97、t;b> getch();</b></p><p> StudentMessage Grade;</p><p> while(!quit)</p><p><b> {</b></p><p> system("cls");</p><p> G
98、rade.ShowMenu();</p><p><b> cin>>x;</b></p><p><b> switch(x)</b></p><p><b> {</b></p><p> case 0:Grade.tuichu();</p>
99、<p> quit=true;break;</p><p> case 1:Grade.AddItem();break;</p><p> case 2:Grade.Display();break;</p><p> case 3:Grade.Sort();break;</p><p> case 4:Grade.Fi
100、nd();break;</p><p> case 5:Grade.RemoveItem();break;</p><p> case 6:Grade.ModifyItem();break;</p><p> case 7:Grade.Save();break;</p><p><b> }</b></p&
101、gt;<p><b> }</b></p><p><b> }</b></p><p> //Student.h</p><p> class Student </p><p><b> { </b></p><p>&l
102、t;b> public:</b></p><p> char name[20];</p><p> char Id[20];</p><p> float Cnum; //C課程得分</p><p> float Mnum; //數(shù)學(xué)課程得分</p><p> fl
103、oat Enum; //英語(yǔ)課程得分</p><p> float sum; //總分</p><p> float average;//計(jì)算平均成績(jī)</p><p> Student * Next;</p><p> void Input();//輸入數(shù)據(jù)</p><p> voi
104、d ReadFile(istream & in);//提取輸入的數(shù)據(jù)</p><p> void Show();//輸出信息</p><p><b> };</b></p><p> // Student.cpp</p><p> #include "Student.h"</p&
105、gt;<p> #include "iostream.h"</p><p> void Student::Input()//輸入數(shù)據(jù)</p><p><b> {</b></p><p> cout<<"\t\t請(qǐng)輸入學(xué)生的姓名:"; </p><p
106、> cin>>name;</p><p> cout<<"\t\t請(qǐng)輸入學(xué)生的學(xué)號(hào):"; </p><p><b> cin>>Id;</b></p><p> cout<<"\t\t請(qǐng)輸入C課程的成績(jī):"; </p><
107、;p> cin>>Cnum; </p><p> cout<<"\t\t請(qǐng)輸入數(shù)學(xué)課程的成績(jī):"; </p><p> cin>>Mnum;</p><p> cout<<"\t\t請(qǐng)輸入英語(yǔ)課程的成績(jī):"; </p><p>
108、; cin>>Enum;</p><p> sum=Cnum+Mnum+Enum;</p><p> average=sum/3;</p><p><b> }</b></p><p> void Student::ReadFile(istream & in)//提取輸入的數(shù)據(jù)</p&
109、gt;<p><b> {</b></p><p> in>>name>>Id>>Cnum>>Mnum>>Enum>>sum>>average;</p><p><b> }</b></p><p> void Stu
110、dent::Show()//輸出信息</p><p><b> {</b></p><p> cout<<"\t"<<name<<"\t"<<Id<<"\t"<<Cnum<<"\t"<<Mn
111、um<<"\t"<<Enum<<"\t"<<sum<<"\t"<<average<<endl;</p><p><b> }</b></p><p> //StudentMessage.h</p><p
112、> class StudentMessage </p><p><b> {</b></p><p><b> private:</b></p><p> Student *Head,*End;</p><p> ifstream in;</p><p>
113、 ofstream out;</p><p><b> public:</b></p><p> StudentMessage();</p><p> virtual ~StudentMessage();</p><p> void ShowMenu();//菜單</p><p> vo
114、id Find();//查找函數(shù)</p><p> void Save();//保存函數(shù)</p><p> void ModifyItem();//修改信息</p><p> void RemoveItem();//刪除信息</p><p> void Swap(Student *,Student *);//交換兩個(gè)combox變量的
115、數(shù)據(jù)域</p><p> void Sort();//對(duì)當(dāng)前鏈表進(jìn)行排序</p><p> void tuichu();//退出函數(shù)</p><p> int ListCount();//統(tǒng)計(jì)當(dāng)前鏈表的記錄總數(shù),返回一個(gè)整數(shù)</p><p> void Display();//輸出信息</p><p> vo
116、id AddItem();//增加學(xué)生信息</p><p> Student *FindID(char * Id);</p><p> Student *FindItem(char * name);</p><p><b> };</b></p><p> //StudentMessage.cpp</p&g
117、t;<p> class StudentMessage </p><p><b> {</b></p><p><b> private:</b></p><p> Student *Head,*End;</p><p> ifstream in;</p>&
118、lt;p> ofstream out;</p><p><b> public:</b></p><p> StudentMessage();</p><p> virtual ~StudentMessage();</p><p> void ShowMenu();//菜單</p><
119、p> void Find();//查找函數(shù)</p><p> void Save();//保存函數(shù)</p><p> void ModifyItem();//修改信息</p><p> void RemoveItem();//刪除信息</p><p> void Swap(Student *,Student *);//交換兩個(gè)
120、combox變量的數(shù)據(jù)域</p><p> void Sort();//對(duì)當(dāng)前鏈表進(jìn)行排序</p><p> void tuichu();//退出函數(shù)</p><p> int ListCount();//統(tǒng)計(jì)當(dāng)前鏈表的記錄總數(shù),返回一個(gè)整數(shù)</p><p> void Display();//輸出信息</p><
121、p> void AddItem();//增加學(xué)生信息</p><p> Student *FindID(char * Id);</p><p> Student *FindItem(char * name);</p><p><b> };</b></p><p> //login.cpp</p&g
122、t;<p> #include "iostream.h"</p><p> #include "windows.h"</p><p> #include "string.h"</p><p> #include "stdio.h"</p><p&
123、gt; #include "conio.h"</p><p> void login()</p><p><b> {</b></p><p> system("color 8e"); </p><p> char username[10]; //保存用戶名</
124、p><p> char password[8]; //保存密碼</p><p> int j,x;//循環(huán)變量</p><p> int count = 0; //統(tǒng)計(jì)登錄失敗的次數(shù)</p><p><b> do{</b></p><p> cout<<"\n
125、\n\n"<<"\t\t\t"<<"學(xué) 生 成 績(jī) 管 理 系 統(tǒng) 平 臺(tái)"<<endl;</p><p> cout<<"\n"<<"\t"<<"項(xiàng) 目 成 員:"<<"陳虹霓 姚群 林春節(jié) 吳英霏 鄧園媛
126、楊孝虎 唐印"<<endl;</p><p> cout<<"\n"<<"\t"<<"開(kāi) 發(fā) 周 期:"<<"2012年6月1日"<<"-"<<"2012年7月1日"<<endl;<
127、/p><p> cout<<"\n\n"<<"\t\t\t\t\t\t\t"<<"重慶工商職業(yè)學(xué)院"<<endl;</p><p> cout<<"\n"<<" "<<"──────────────
128、───────────────────────"<<endl;</p><p> cout<<"\n"<<" "<<"〖用戶登錄〗"<<endl;</p><p> cout<<"\n\n"<<"\t
129、\t"<<"用 戶 名:"<<endl;</p><p> fflush(stdin); //清空輸入緩沖區(qū)</p><p> cin>>username;//記錄用戶輸入的內(nèi)容</p><p> cout<<"\n\n\t\t"<<"密
130、 碼:"<<endl;</p><p> fflush(stdin); //清空輸入緩沖區(qū)</p><p> for(x=0;x<8;x++)//記錄用戶輸入的密碼</p><p><b> {</b></p><p> password[x]=getch();</p>
131、;<p> putchar('*');</p><p><b> }</b></p><p> password[7]='\0';</p><p> //驗(yàn)證用戶名和密碼是否正確</p><p> if(strcmp(username, "chen&quo
132、t;) ==0 && strcmp(password, "1102847") == 0||strcmp(username, "yao") ==0 && strcmp(password, "1102849") == 0</p><p> ||strcmp(username, "lin") ==0 &am
133、p;& strcmp(password, "1102843") == 0||strcmp(username, "wu") ==0 && strcmp(password, "1102878") == 0</p><p> ||strcmp(username, "deng") ==0 && str
134、cmp(password, "1102873") == 0||strcmp(username, "yang") ==0 && strcmp(password, "1102863") == 0</p><p> ||strcmp(username, "tang") ==0 && strcmp(passw
135、ord, "1102880") == 0)</p><p> //如果用戶名與密碼都等于"admin"則進(jìn)入系統(tǒng)的主界面</p><p><b> {</b></p><p> system("cls");</p><p> cout<<&q
136、uot;\n\n\n\n\n\t\t\t\t"<<"正在登錄學(xué)生成績(jī)管理系統(tǒng),請(qǐng)稍后!"<<endl;</p><p> for(j=0; j<10; j++)</p><p><b> {</b></p><p> Sleep(200);</p><p>
137、; putchar('>');</p><p><b> }</b></p><p> system("cls");</p><p> Sleep(2000);</p><p><b> break;</b></p><p>
138、;<b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> system("cls");</p><p> cout<<"\n\n\n\n\n\t\t\t\t&
139、quot;<<">_<對(duì)不起,您輸入的用戶名或密碼錯(cuò)誤!";</p><p> Sleep(1500);</p><p><b> count++;</b></p><p> system("cls");</p><p><b> }<
140、;/b></p><p> if(count >= 3)//當(dāng)錯(cuò)誤的次數(shù)超過(guò)三次,系統(tǒng)自動(dòng)退出</p><p><b> {</b></p><p> cout<<"\n\n\t\t\t"<<"提示:您輸入錯(cuò)誤的次數(shù)太多,請(qǐng)稍后再試!"<<endl;&
141、lt;/p><p><b> exit(0);</b></p><p><b> }</b></p><p> }while(1);</p><p><b> }</b></p><p> //Find.cpp</p><p&
142、gt; #include <conio.h></p><p> #include "StudentMessage.h"</p><p> #include "Student.h"</p><p> #include "string.h"</p><p> #in
143、clude "windows.h"</p><p><b> //查找函數(shù)</b></p><p> void StudentMessage::Find()</p><p><b> {</b></p><p> char name[20] ,Id[10];</p&
144、gt;<p><b> int x;</b></p><p><b> int z;</b></p><p> Student * p=NULL;</p><p> cout<<"\n\t\t*********************************\n";&l
145、t;/p><p> cout<<"\t\t※ 1.按學(xué)生的姓名查找\n\t\t※ 2.按學(xué)生學(xué)號(hào)查找\n\t\t※ 3.查找學(xué)生課程成績(jī)";</p><p> cout<<"\n\t\t*********************************\n請(qǐng)選擇:";</p><p><b>
146、 cin>>x;</b></p><p><b> switch(x)</b></p><p><b> {</b></p><p><b> case 1:</b></p><p><b> {</b></p>
147、;<p> cout<<"\t\t請(qǐng)輸入要查找的學(xué)生的姓名:";</p><p> cin>>name;</p><p> if(p=FindItem(name))</p><p><b> {</b></p><p> cout<<&quo
148、t;\t"<<"姓名"<<"\t"<<"學(xué)號(hào)"<<"\t"<<"C++"<<"\t"<<"數(shù)學(xué)"<<"\t"<<"外語(yǔ)"<<&qu
149、ot;\t"<<"總成績(jī)"<<"\t"<<"平均成績(jī)"<<endl;</p><p> p->Next->Show();</p><p> cout<<"輸入任意字符!繼續(xù)……"<<endl;</p>
150、<p><b> getch();</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"\t\t沒(méi)有找到
151、該姓名的學(xué)生!"<<'\n'<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……"<<endl;</p><p><b> getch();</b></p><p><b> }</b></p>
152、<p><b> }break;</b></p><p><b> case 2:</b></p><p><b> {</b></p><p> cout<<"\t\t請(qǐng)輸入要查找的學(xué)生的學(xué)號(hào):";</p><p><
153、;b> cin>>Id;</b></p><p> if(p=FindID(Id))</p><p><b> {</b></p><p> cout<<"\t"<<"姓名"<<"\t"<<"
154、;學(xué)號(hào)"<<"\t"<<"C++"<<"\t"<<"數(shù)學(xué)"<<"\t"<<"外語(yǔ)"<<"\t"<<"總成績(jī)"<<"\t"<<&qu
155、ot;平均成績(jī)"<<endl;</p><p> p->Next->Show();</p><p> cout<<"輸入任意字符!繼續(xù)……"<<endl;</p><p><b> getch();</b></p><p><b&g
156、t; }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"\t\t沒(méi)有找到該學(xué)號(hào)的學(xué)生!"<<'\n'<<endl;</p><p>
157、 cout<<"輸入任意字符!繼續(xù)……"<<endl;</p><p><b> getch();</b></p><p><b> }</b></p><p><b> }break;</b></p><p><b&g
158、t; case 3:</b></p><p><b> {</b></p><p> p=Head->Next;</p><p> cout<<"\t\t請(qǐng)選擇你要查找的課程名稱:";</p><p> cout<<"\n\t\t*****
159、****************************\n";</p><p> cout<<"\t\t※ 1.C++\n\t\t※ 2.數(shù)學(xué)\n\t\t※ 3.英語(yǔ)";</p><p> cout<<"\n\t\t*********************************\n請(qǐng)選擇:";</p&
160、gt;<p><b> cin>>z;</b></p><p><b> switch(z)</b></p><p><b> {</b></p><p><b> case 1:</b></p><p> cout&l
161、t;<"C++成績(jī)?yōu)?"<<endl;</p><p> while(p!=End)</p><p><b> {</b></p><p> cout<<p->Cnum<<endl;</p><p> p=p->Next;</p>
162、;<p><b> }</b></p><p> cout<<"輸入任意字符!繼續(xù)……"<<endl;</p><p><b> getch();</b></p><p><b> break;</b></p><p
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- c++課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c++課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c++課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)
- c++課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- c++學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- c++課程設(shè)計(jì)--學(xué)生成績(jī)管理
- c++課程設(shè)計(jì)--- 學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)
- c++課程設(shè)計(jì)--學(xué)生成績(jī)管理
- c++學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)
- c&c++課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- c++課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與管理
- c++程序課程設(shè)計(jì)報(bào)告—學(xué)生成績(jī)管理系統(tǒng)
- c++程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論