版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 學(xué)生成績(jī)表</b></p><p> 課題設(shè)計(jì)內(nèi)容、具備的功能:</p><p><b> [系統(tǒng)功能]</b></p><p> 1)新增學(xué)生數(shù)據(jù)的添加:學(xué)號(hào),姓名,性別,3門課程成績(jī),計(jì)算總成績(jī)并顯示。</p><p> 2)修改學(xué)生成績(jī)數(shù)據(jù):輸入學(xué)號(hào),根據(jù)
2、學(xué)號(hào),修改該生的3項(xiàng)成績(jī)數(shù)據(jù)計(jì)算總成績(jī)并顯示。</p><p> 3)刪除一個(gè)學(xué)生:輸入學(xué)號(hào),根據(jù)學(xué)號(hào)刪除該生。</p><p> 4)根據(jù)學(xué)號(hào)查詢:輸入學(xué)號(hào),查找該生并顯示學(xué)生數(shù)據(jù)。</p><p> 5)顯示全部學(xué)生數(shù)據(jù)。</p><p> 6)根據(jù)學(xué)號(hào)從小到大排序?qū)W生數(shù)據(jù)。</p><p> 7)根據(jù)總
3、成績(jī)從大到小排序?qū)W生數(shù)據(jù)。</p><p> 8)退出:保存學(xué)生總數(shù)文件及學(xué)生數(shù)據(jù)文件,然后結(jié)束程序運(yùn)行。</p><p><b> [系統(tǒng)設(shè)計(jì)要求]</b></p><p> 1)在Visual C++控制臺(tái)應(yīng)用程序方式下設(shè)計(jì)課題。</p><p> 2)設(shè)計(jì)的程序要求規(guī)定的功能。</p><
4、;p> 3)程序應(yīng)具有一定的健壯性。即程序必須具有必要的檢查和出錯(cuò)處理,如在新增學(xué)生數(shù)據(jù)時(shí)檢查輸入的學(xué)號(hào)是否相同。刪除、查詢學(xué)生時(shí)檢查輸入的學(xué)號(hào)是否存在等。</p><p> 模塊(函數(shù))的劃分、各模板(函數(shù))的功能:</p><p> int EnterChoice();//輸入選項(xiàng)</p><p> void Init();
5、//數(shù)據(jù)文件初始化</p><p> void Add(); //增加一個(gè)學(xué)生</p><p> void Update();//修改學(xué)生成績(jī)</p><p> void Delete();//刪除一個(gè)學(xué)生</p>
6、<p> void Query();//查詢學(xué)生數(shù)據(jù)</p><p> void Display();//顯示全部學(xué)生</p><p> void Display(Student*); //顯示全部學(xué)生</p><p> void SortNo();//按學(xué)號(hào)排序(從
7、小到大)</p><p> void SortScore();//按成績(jī)排序(從大到小)</p><p> void SaveTxt();//以二進(jìn)制形式保存數(shù)據(jù)</p><p> int CheckNo(char *);//輸入學(xué)號(hào)</p><p> void PrintTitl
8、e();//顯示表頭</p><p> void GetData(Student*);//讀取學(xué)生成績(jī)數(shù)據(jù)</p><p> 采用的自定義的數(shù)據(jù)類型:</p><p> 1) 建立student工程</p><p> 2) 在頭文件中,設(shè)計(jì)Student結(jié)構(gòu)類型,成員為</p><
9、p> char No[5] 學(xué)號(hào)</p><p> char Name[8]姓名</p><p> char Gender[7]性別</p><p> int Score[4]3門課程成績(jī)及總成績(jī)</p><p> 程序設(shè)計(jì)過程、調(diào)試中過程中所用的測(cè)試用例、測(cè)試方法,程序運(yùn)行的結(jié)果:</p>&l
10、t;p> 程序運(yùn)行的結(jié)果通過截圖來顯現(xiàn)。下面的程序是顯示的九個(gè)功能:</p><p> 程序運(yùn)行后的菜單顯示:</p><p><b> 增加學(xué)生信息界面:</b></p><p><b> 修改學(xué)生信息:</b></p><p><b> 刪除學(xué)生信息界面:</b&
11、gt;</p><p><b> 查詢學(xué)生信息:</b></p><p><b> 顯示所有學(xué)生信息:</b></p><p><b> 按學(xué)生學(xué)號(hào)排序:</b></p><p><b> 按學(xué)生分?jǐn)?shù)排序:</b></p><p
12、> 結(jié)束操作界面:結(jié)束操作界面:</p><p> 在課程設(shè)計(jì)中遇到的問題和解決的方法,還沒有能解決的問題:</p><p> 1)特別注意各種C++代碼的運(yùn)用。</p><p> 2)按照規(guī)范的步驟進(jìn)行,程序調(diào)試好之后,由于實(shí)驗(yàn)環(huán)境不同,需要重新建立工程及文件,在新建.h文件時(shí),要注意文件名要與.cpp文件中定義的頭文件一致,否則程序因找不到正確的.
13、h文件而無法正常運(yùn)行。</p><p> 3)在程序運(yùn)行出現(xiàn)問題時(shí)積極地詢問老師或查詢資料。</p><p> 4)在運(yùn)行中出現(xiàn)一些不細(xì)心導(dǎo)致的小問題,經(jīng)過同學(xué)討論都一一解決。</p><p> 六、 通過課程設(shè)計(jì)的體會(huì)、收獲:</p><p> 在為期不到兩周的課程設(shè)計(jì)中,我體會(huì)頗多,學(xué)到很多東西。利用這次課程設(shè)計(jì)的機(jī)會(huì),我加
14、強(qiáng)了對(duì)C++的認(rèn)識(shí),復(fù)習(xí)了自己以前的知識(shí),自己的邏輯思考能力也提高不少。從而對(duì)Microsoft Visual C++ 6.0又有了更深入的認(rèn)識(shí)!總之,通過這次課程設(shè)計(jì),我收獲頗豐,相信會(huì)為自己以后的學(xué)習(xí)和工作帶來很大的好處。最重要的還是激發(fā)了我編程的興趣和熱情,讓我從一個(gè)只懂理論變成了能做一些小型程序,讓我對(duì)編程更加熱愛了。整體地評(píng)價(jià)這次課程設(shè)計(jì),我認(rèn)為收獲很大,正如上面所說的那樣,通過課程設(shè)計(jì),既復(fù)習(xí)了以前的舊知識(shí),又學(xué)到了一些新的
15、知識(shí);設(shè)計(jì)增強(qiáng)了我們用所學(xué)知識(shí)去解決具體問題的能力,進(jìn)一步培養(yǎng)了我們獨(dú)立思考問題和解決問題的能力。當(dāng)然,老師的悉心指導(dǎo)和同學(xué)的幫助也是不可忽視的,在此感謝本次課程設(shè)計(jì)中所有輔導(dǎo)老師對(duì)我的關(guān)心和幫助,誠(chéng)心誠(chéng)意感謝他們對(duì)我的鼓勵(lì)與教導(dǎo),是她在我迷茫的時(shí)候給了我些許提示,激發(fā)了我編程的靈感;還有,我在此也十分感謝本次課程設(shè)計(jì)中同學(xué)們對(duì)我的幫助,盡管本次不是團(tuán)隊(duì)合作,但是他們也給了我不少的提示和幫助,是他們讓我有信心堅(jiān)持做下來,在此感謝他們!理
16、論的擁有并不能代表我們的實(shí)力和能力,一</p><p> 七、 源程序代碼:</p><p> ?。?)//結(jié)構(gòu)定義文件</p><p> //Student.h</p><p> #ifndef STUDENT_H</p><p> #define STUDENT_H</p><p&
17、gt; Struct Student</p><p><b> {</b></p><p> Char No[9];</p><p> Char Name[9];</p><p> Char Gender[7];</p><p> Int Score[4];</p>&l
18、t;p><b> };</b></p><p><b> #endif</b></p><p> (2)//函數(shù)實(shí)現(xiàn)文件</p><p> // student.cpp</p><p> #include<iostream></p><p> #
19、include<iomanip></p><p> #include<fstream></p><p> #include<cstring></p><p> #include"student.h"</p><p> using namespace std;</p>
20、<p> int EnterChoice();</p><p> void Init();</p><p> void Add();</p><p> void Update();</p><p> void Delete();</p><p> void Query();</p>
21、<p> void SortScore();</p><p> void Display();</p><p> void Display(Student*);</p><p> void SortNo();</p><p> void SaveTxt();</p><p> int Check
22、No(char*);</p><p> void PrintTitle();</p><p> void GetData(Student*);</p><p> extern const int MaxNum=100;</p><p> extern int CurNum;</p><p> extern S
23、tudent student[MaxNum];</p><p><b> //輸入選擇函數(shù)</b></p><p> int EnterChoice()</p><p><b> {</b></p><p> cout<<"\nEnter your Choice\n&q
24、uot;</p><p> <<"1:add student 2:update student\n"</p><p> <<"3:delete student 4:query student\n"</p><p> <<"5:displa
25、y students 6:Sort student by NO\n"</p><p> <<"7:Sort student by score 8:end\n";</p><p> int Choice;</p><p> cin>>Choice;</p><p>
26、 return Choice;</p><p><b> }</b></p><p><b> //初始化函數(shù)</b></p><p> void Init()</p><p><b> {</b></p><p> ifstream inCo
27、unt,inStudent;</p><p> ofstream outCount,outStudent;</p><p> inCount.open("count.txt",ios::in);</p><p> if(!inCount)</p><p><b> {</b></p>
28、;<p> inCount.close();</p><p> outCount.open("count.txt",ios::out);</p><p> outCount<<CurNum;</p><p> outCount.close();</p><p><b> }&l
29、t;/b></p><p><b> else</b></p><p><b> {</b></p><p> inCount>>CurNum;</p><p> inCount.close();</p><p><b> }</b
30、></p><p> if(CurNum)</p><p><b> {</b></p><p> inStudent.open("student.txt",ios::in);</p><p> for(int i=0;i<CurNum;i++)</p><p&
31、gt;<b> {</b></p><p> inStudent>>(student+i)->No;</p><p> inStudent>>(student+i)->Name;</p><p> inStudent>>(student+i)->Gender;</p>
32、<p> inStudent>>(student+i)->Score[0];</p><p> inStudent>>(student+i)->Score[1];</p><p> inStudent>>(student+i)->Score[2];</p><p> inStudent>
33、>(student+i)->Score[3];</p><p><b> }</b></p><p> inStudent.close();</p><p><b> }</b></p><p><b> else</b></p><p&
34、gt;<b> {</b></p><p> outStudent.open("Student.txt",ios::out);</p><p> outStudent.close();</p><p><b> }</b></p><p><b> }<
35、/b></p><p><b> //增加一個(gè)學(xué)生</b></p><p> void Add()</p><p><b> {</b></p><p> char no[9];</p><p> cout<<"No=";<
36、;/p><p><b> cin>>no;</b></p><p> int i=CheckNo(no);</p><p><b> if(i>=0)</b></p><p> cout<<"No.repeated,input again"<
37、;<endl;</p><p><b> else</b></p><p><b> {</b></p><p> strcpy(student[CurNum].No,no);</p><p> cout<<"Name=";</p><
38、;p> cin>>(student+CurNum)->Name;</p><p> cout<<"Gender=";</p><p> cin>>(student+CurNum)->Gender;</p><p> GetData(student+CurNum);</p>
39、<p> PrintTitle();</p><p> Display(student+CurNum);</p><p><b> CurNum++;</b></p><p><b> }</b></p><p><b> }</b></p>
40、<p> 按學(xué)生號(hào)從小到大冒泡排序,并顯示</p><p> void SortNo()</p><p><b> {</b></p><p> Student temp;</p><p><b> int flag;</b></p><p> for
41、(int i=0;i<CurNum-1;i++)</p><p><b> {</b></p><p><b> flag=1;</b></p><p> for(int j=0;j<CurNum-1-i;j++)</p><p><b> {</b><
42、;/p><p> if(strcmp(student[j+1].No,student[j].No)<0)</p><p><b> {</b></p><p><b> flag=0;</b></p><p> temp=student[j+1];student[j+1]=student[
43、j];student[j]=temp;</p><p><b> }</b></p><p><b> }</b></p><p> if(flag)break;</p><p><b> }</b></p><p> Display();&l
44、t;/p><p><b> }</b></p><p><b> //顯示表頭</b></p><p> void PrintTitle()</p><p><b> {</b></p><p> cout<<setiosflags(i
45、os_base::left);</p><p> cout<<setw(6)<<"No"<<setw(8)<<"Name"<<setw(10)<<"Gender"<<setw(10)<<"Score1"<<setw(10)&l
46、t;<"Score2"<<setw(10)<<"Score3"<<setw(10)<<"SCore"<<endl;</p><p><b> }</b></p><p><b> //顯示學(xué)生情況</b></p&
47、gt;<p> void Display()</p><p><b> {</b></p><p> if(CurNum)</p><p><b> {</b></p><p> PrintTitle();</p><p> for(int i=0;
48、i<CurNum;i++)</p><p> Display(student+i);</p><p><b> }</b></p><p><b> else</b></p><p> cout<<"The list empty!"<<end
49、l;</p><p><b> }</b></p><p> //顯示一個(gè)學(xué)生情況</p><p> void Display(Student* stu)</p><p><b> {</b></p><p> cout<<setiosflags(ios
50、_base::left);</p><p> cout<<setw(6)<<stu->No;</p><p> cout<<setw(8)<<stu->Name;</p><p> cout<<setw(6)<<stu->Gender;</p><p&
51、gt; cout<<resetiosflags(ios_base::left);</p><p> cout<<setw(10)<<stu->Score[0];</p><p> cout<<setw(10)<<stu->Score[1];</p><p> cout<<se
52、tw(10)<<stu->Score[2];</p><p> cout<<setw(10)<<stu->Score[3]<<endl;</p><p><b> }</b></p><p> //保存學(xué)生數(shù)據(jù)到文本文件</p><p> void Sa
53、ve()</p><p><b> {</b></p><p> ofstream outCount,outStudent;</p><p> outCount.open("count.txt",ios::out);</p><p> outCount<<CurNum;</p
54、><p> outCount.close();</p><p> outStudent.open ("student.txt",ios::out);</p><p> for(int i=0;i<CurNum;i++)</p><p><b> {</b></p><p&
55、gt; outStudent<<(student+i)->No<<" ";</p><p> outStudent<<(student+i)->Name<<" ";</p><p> outStudent<<(student+i)->Gender<<&qu
56、ot; ";</p><p> outStudent<<(student+i)->Score[0]<<" ";</p><p> outStudent<<(student+i)->Score[1]<<" ";</p><p> outStudent&l
57、t;<(student+i)->Score[2]<<" ";</p><p> outStudent<<(student+i)->Score[3]<<" ";</p><p> outStudent<<endl;</p><p><b> }&l
58、t;/b></p><p> outStudent.close();</p><p><b> }</b></p><p> //檢查學(xué)號(hào)是否存在,找到返回所在數(shù)組下標(biāo),找不到返回-1</p><p> int CheckNo(char* no)</p><p><b>
59、 {</b></p><p> for(int i=0;i<CurNum;i++)</p><p> if(strcmp(student[i].No,no)==0)</p><p><b> return i;</b></p><p> return -1;</p><p&g
60、t;<b> }</b></p><p><b> 讀入學(xué)生3項(xiàng)成績(jī)</b></p><p> void GetData(Student* stu)</p><p><b> {</b></p><p> for(int i=0;i<3;i++)</p&g
61、t;<p><b> {</b></p><p> cout<<"Score"<<i<<"= ";</p><p> cin>>stu->Score[i];</p><p><b> }</b></p&
62、gt;<p> stu->Score[3]=stu->Score[0]+stu->Score[1]+stu->Score[2];</p><p><b> }</b></p><p> 按學(xué)生總成績(jī)從大到小排序</p><p> void SortScore()</p><p&g
63、t;<b> {</b></p><p> Student temp;</p><p> int i,j,max;</p><p> for(i=0;i<CurNum-1;i++)</p><p><b> { max=i;</b></p><p> fo
64、r(j=i;j<CurNum;j++)</p><p> if(student[max].Score[3]<student[j].Score[3])</p><p><b> max=j;</b></p><p> if(max!=i){</p><p> temp=student[max];<
65、/p><p> student[max]=student[i];</p><p> student[i]=temp;</p><p><b> }</b></p><p><b> }</b></p><p> Display();</p><p&g
66、t;<b> }</b></p><p> //根據(jù)輸入的學(xué)生號(hào),刪除該學(xué)生</p><p> void Update()</p><p><b> {</b></p><p> char no[9];char c;</p><p> cout<<&q
67、uot;input no:";</p><p><b> cin>>no;</b></p><p> int i=CheckNo(no);</p><p><b> if(i<0)</b></p><p> cout<<"The number
68、 dose not exist!\n";</p><p><b> else{</b></p><p> cout<<"Update Score[0]?(y/n)\n";</p><p><b> cin>>c;</b></p><p>
69、 if(c=='y'||c=='Y')</p><p><b> {</b></p><p> cout<<"Input Score[0]:";</p><p> cin>>student[i].Score[0];</p><p><
70、b> }</b></p><p> cout<<"Update Score[1]?(y/n)\n";</p><p><b> cin>>c;</b></p><p> if(c=='y'||c=='Y')</p><p&g
71、t;<b> {</b></p><p> cout<<"Input Score[1]:";</p><p> cin>>student[i].Score[1];</p><p><b> }</b></p><p> cout<<&
72、quot;Update Score[2]?(y/n)\n";</p><p><b> cin>>c;</b></p><p> if(c=='y'||c=='Y')</p><p><b> {</b></p><p> cout<
73、;<"Input Score[2]:";</p><p> cin>>student[i].Score[2];</p><p><b> }</b></p><p> student->Score[3]=student->Score[0]+student->Score[1]+stud
74、ent->Score[2];</p><p><b> }</b></p><p> PrintTitle();</p><p> Display(student+i);</p><p><b> }</b></p><p> //根據(jù)輸入的號(hào),查找該生并顯示
75、</p><p> void Query()</p><p><b> {</b></p><p> char no[9];</p><p> cout<<"input no:";</p><p><b> cin>>no;</
76、b></p><p> int i=CheckNo(no);</p><p><b> if(i<0)</b></p><p> cout<<"The nunber dose not exist! \n";</p><p><b> else</b>
77、;</p><p><b> {</b></p><p> PrintTitle();</p><p> Display(student+i);</p><p><b> }</b></p><p><b> }</b></p>
78、<p><b> //主函數(shù)文件</b></p><p> //main.cpp</p><p> #include <iostream></p><p> #include <fstream></p><p> #include <iomanip></p&g
79、t;<p> #include <string></p><p> #include "Student.h"</p><p> using namespace std;</p><p> int EnterChoice();</p><p> void Init();
80、</p><p> void Add();</p><p> void Display();</p><p> void DisplayOne(Student*);</p><p> void SortNo();</p><
81、;p> void Save (); </p><p> int CheckNo(char *);</p><p> void PrintTitle();</p><p> void GetData(Student*);</p><p> void Update();
82、</p><p> void Delete();</p><p> void Query();</p><p> void SortScore();</p><p><b> enum </b></p><p> Choices
83、{ADD=1,UPDATE,DELETE,QUERY,DISPLAY,SORTNO,SORTSCORE,END};</p><p> const int MaxNum=100;</p><p> int CurNum;</p><p> Student student[MaxNum];</p><p>
84、 void main()</p><p><b> {</b></p><p><b> Init();</b></p><p> int choice;</p><p> while((choice=EnterChoice())!=END)</p><p><
85、b> {</b></p><p> switch(choice){</p><p><b> case ADD:</b></p><p><b> Add();</b></p><p><b> break;</b></p><p
86、> case UPDATE:</p><p><b> Update();</b></p><p><b> break;</b></p><p> case DELETE:</p><p><b> Delete();</b></p><p
87、><b> break;</b></p><p> case QUERY:</p><p><b> Query();</b></p><p><b> break;</b></p><p> case DISPLAY:</p><p>
88、 Display();</p><p><b> break;</b></p><p> case SORTNO:</p><p><b> SortNo();</b></p><p><b> break;</b></p><p> cas
89、e SORTSCORE:</p><p> SortScore();</p><p><b> break;</b></p><p><b> default:</b></p><p> cerr<<"Incorrect choice\n";}</p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ī)管理
- c++課程設(shè)計(jì)--學(xué)生成績(jī)管理
- c++課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- 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++語(yǔ)言課程設(shè)計(jì) ----學(xué)生成績(jī)統(tǒng)計(jì)
- c++課程設(shè)計(jì)--- 學(xué)生成績(jī)管理系統(tǒng)設(shè)計(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)
評(píng)論
0/150
提交評(píng)論