

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 報(bào)告中應(yīng)包括的內(nèi)容:</p><p><b> 一、設(shè)計(jì)任務(wù)分析</b></p><p><b> 【設(shè)計(jì)目的】</b></p><p> 設(shè)計(jì)“學(xué)生成績(jī)管理系統(tǒng)”,使其具有數(shù)據(jù)輸入、刪除、顯示和查詢(xún)等功能。</p><p> 數(shù)據(jù)包括:學(xué)號(hào)、姓名、Score1、Sco
2、re2、sum。</p><p> 可以增加或刪除記錄。</p><p> 可以顯示學(xué)生信息。 </p><p> 可以按學(xué)號(hào)或姓名績(jī)查詢(xún)。</p><p> 可以按學(xué)生姓名修改信息。</p><p><b> 二、模塊設(shè)計(jì)</b></p><p> (一)、系
3、統(tǒng)功能模塊圖</p><p><b> 流程圖</b></p><p><b> 主要數(shù)據(jù)結(jié)構(gòu)</b></p><p> /*定義存儲(chǔ)單元的基本信息結(jié)構(gòu)*/</p><p> class Student{</p><p><b> public:</
4、b></p><p> char name[20];</p><p> char Id[20];</p><p> int Cnum; //C語(yǔ)言得分</p><p> int Pnum; //程序設(shè)計(jì)得分</p><p> int sum; //總分</p&
5、gt;<p><b> }</b></p><p> /*聲明主要的功能函數(shù)體*/</p><p> class Studentmassage{</p><p><b> public:</b></p><p> ~Studentmassage();</p>&
6、lt;p> Studentmassage();</p><p> void ShowMenu();</p><p> void Find();</p><p> void Save();</p><p> void ModifyItem();</p><p> void RemoveItem();&l
7、t;/p><p> void Swap(Student *,Student *);</p><p> void Sort();</p><p> int ListCount();</p><p> void Display()</p><p><b> }</b></p>&l
8、t;p><b> 源代碼</b></p><p> # include <iostream></p><p> # include <fstream></p><p> # include <string.h></p><p> #include <conio.h
9、>//用getch();</p><p> using namespace std;</p><p> class Student</p><p><b> {</b></p><p><b> public:</b></p><p> char name[2
10、0];</p><p> char Id[20];</p><p> int Cnum; //C語(yǔ)言得分</p><p> int Pnum; //程序設(shè)計(jì)得分</p><p> int sum; //總分 </p><p> Student * Next;<
11、;/p><p> void Input()</p><p><b> {</b></p><p> cout<<"\t\t請(qǐng)輸入學(xué)生的姓名:"; cin>>name;</p><p> cout<<"\t\t請(qǐng)輸入學(xué)生的學(xué)號(hào):"; cin
12、>>Id;</p><p> cout<<"\t\t請(qǐng)輸入C語(yǔ)言的成績(jī):"; cin>>Cnum;</p><p> cout<<"\t\t請(qǐng)輸入程序設(shè)計(jì)成績(jī):"; cin>>Pnum;</p><p> sum=Cnum+Pnum ;</p>
13、<p><b> }</b></p><p> void ReadFile(istream & in)</p><p><b> {</b></p><p> in>>name>>Id>>Cnum>>Pnum >>sum;</p&
14、gt;<p><b> }</b></p><p> void Show()</p><p><b> {</b></p><p> cout<<"姓名:"<<name<<endl<<"學(xué)號(hào):"<<Id
15、<<endl<<"C語(yǔ)言:"<<Cnum<<endl<<"程序設(shè)計(jì):"<<Pnum<<endl<<"總成績(jī):"<<sum<<endl<<endl<<endl;</p><p><b> }</b
16、></p><p><b> };</b></p><p> class Studentmassage</p><p><b> {</b></p><p><b> public:</b></p><p> ~Studentmassag
17、e();</p><p> Studentmassage();</p><p> void ShowMenu();</p><p> void Find();</p><p> void Save();</p><p> void ModifyItem();</p><p> voi
18、d RemoveItem();</p><p> void Swap(Student *,Student *);</p><p> void Sort();</p><p> int ListCount();</p><p> void Display()</p><p><b> {</b&
19、gt;</p><p> for(Student * p=Head->Next;p!=End;p=p->Next)</p><p> p->Show();</p><p> cout<<"輸入任意字符!繼續(xù)……";</p><p><b> getch();</b>
20、;</p><p><b> }</b></p><p> void AddItem()</p><p><b> {</b></p><p> End->Input();</p><p> End->Next=new Student;</p>
21、;<p> End=End->Next;</p><p> cout<<"添加成功!"<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……";</p><p><b> getch();</b></p><
22、;p><b> }</b></p><p><b> private:</b></p><p> Student * Head,* End;</p><p> ifstream in;</p><p> ofstream out;</p><p> Stud
23、ent *FindItem(char * name)</p><p><b> {</b></p><p> for(Student * p=Head;p->Next!=End;p=p->Next)</p><p> if(!strcmp(p->Next->name,name))return p;</p>
24、;<p> return NULL;</p><p><b> }</b></p><p> Student *FindID(char * Id)</p><p><b> {</b></p><p> for(Student * p=Head;p->Next!=End
25、;p=p->Next)</p><p> if(!strcmp(p->Next->Id,Id))return p;</p><p> return NULL;</p><p><b> }</b></p><p><b> };</b></p><p&g
26、t; Studentmassage::Studentmassage()</p><p><b> {</b></p><p> Head=new Student;</p><p> Head->Next=new Student;</p><p> End=Head->Next;</p>
27、<p> in.open("sort.txt");</p><p><b> if(!in)</b></p><p> cout<<" 無(wú)學(xué)生信息,請(qǐng)先輸入。"<<endl;</p><p><b> else</b></p>
28、<p><b> {</b></p><p> while(!in.eof())</p><p><b> {</b></p><p> End->ReadFile(in);</p><p> if(End->name[0]=='\0')break;
29、</p><p> End->Next=new Student;</p><p> End=End->Next;</p><p><b> }</b></p><p> in.close();</p><p> cout<<"\t\t讀取學(xué)生信息成功!&
30、quot;<<endl;</p><p><b> }</b></p><p><b> }</b></p><p> Studentmassage::~Studentmassage()</p><p><b> {</b></p><p
31、><b> Save();</b></p><p> for(Student * temp;Head->Next!=End;)</p><p><b> {</b></p><p> temp=Head->Next;</p><p> Head->Next=Head
32、->Next->Next;</p><p> delete temp;</p><p><b> }</b></p><p> delete Head,End;</p><p><b> }</b></p><p> void Studentmassag
33、e::ShowMenu()//菜單 </p><p><b> {</b></p><p> cout<<" 學(xué) 生 成 績(jī) 管 理 系 統(tǒng) "<<endl;</p>
34、<p> cout<<" "<<endl;</p><p> cout<<" 1.增加學(xué)生成績(jī)
35、 "<<endl;</p><p> cout<<" 2.顯示學(xué)生成績(jī) "<<endl;</p><p> cout<<"
36、 3.排序統(tǒng)計(jì)成績(jī) "<<endl;</p><p> cout<<" 4.查找學(xué)生成績(jī) "<<
37、;endl;</p><p> cout<<" 5.刪除學(xué)生成績(jī) "<<endl;</p><p> cout<<" 6.修改學(xué)
38、生信息 "<<endl;</p><p> cout<<" 0.退出保存信息 "<<endl;</p><p> cout<&
39、lt;"\n\t\t\n\t\t請(qǐng)選擇:";</p><p><b> }</b></p><p> void Studentmassage::Find()// 查找函數(shù) </p><p><b> {</b></p><p> char name[20] ,Id[10]
40、;</p><p><b> int x;</b></p><p> Student * p=NULL;</p><p> cout<<"\n\t\t*********************************\n";</p><p> cout<<"\
41、t\t※ 1.按學(xué)生的姓名查找\n\t\t※ 2.按學(xué)生學(xué)號(hào)查找";</p><p> cout<<"\n\t\t*********************************\n請(qǐng)選擇:";</p><p><b> cin>>x;</b></p><p><b> s
42、witch(x)</b></p><p><b> {</b></p><p> case 1:{cout<<"\t\t請(qǐng)輸入要查找的學(xué)生的姓名:";cin>>name;</p><p> if(p=FindItem(name))</p><p><b&
43、gt; {</b></p><p> p->Next->Show();</p><p> cout<<"輸入任意字符!繼續(xù)……";</p><p><b> getch();</b></p><p><b> }</b></p&
44、gt;<p><b> else</b></p><p><b> {</b></p><p> cout<<"\t\t沒(méi)有找到該姓名的學(xué)生!"<<'\n'<<endl;</p><p> cout<<"輸入
45、任意字符!繼續(xù)……";</p><p><b> getch();</b></p><p><b> }</b></p><p><b> }break;</b></p><p><b> case 2:</b></p>&
46、lt;p><b> {</b></p><p> cout<<"\t\t請(qǐng)輸入要查找的學(xué)生的學(xué)號(hào):";cin>>Id;</p><p> if(p=FindID(Id))</p><p><b> {</b></p><p> p->
47、Next->Show();</p><p> cout<<"輸入任意字符!繼續(xù)……";</p><p><b> getch();</b></p><p><b> }</b></p><p><b> else</b></p
48、><p><b> {</b></p><p> cout<<"\t\t沒(méi)有找到該學(xué)好的學(xué)生!"<<'\n'<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……";</p><p><b>
49、; getch();</b></p><p><b> }</b></p><p><b> }break;</b></p><p><b> }</b></p><p><b> }</b></p><p>
50、 void Studentmassage::ModifyItem() //修改信息</p><p><b> {</b></p><p> char name[20];</p><p> Student * p=NULL;</p><p> cout<<"\t\t請(qǐng)輸入要修改的人的
51、姓名:";cin>>name;</p><p> if(p=FindItem(name))</p><p><b> {</b></p><p> cout<<"\t\t已找到學(xué)生的信息,請(qǐng)輸入新的信息!"<<endl;</p><p> p-&g
52、t;Next->Input();</p><p> cout<<"修改成功!"<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……";</p><p><b> getch();</b></p><p><b&
53、gt; }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"\t\t沒(méi)有找到!"<<endl;</p><p> cout<<"輸入任意字
54、符!繼續(xù)……";</p><p><b> getch();</b></p><p><b> }</b></p><p><b> }</b></p><p> void Studentmassage::RemoveItem() // 刪除信
55、息</p><p><b> {</b></p><p> char name[20];</p><p> Student * p=NULL,*temp=NULL;</p><p> cout<<"\t\t請(qǐng)輸入要?jiǎng)h除的學(xué)生的姓名:"<<endl;cin>>
56、name;</p><p> if(p=FindItem(name))</p><p><b> {</b></p><p> temp=p->Next;</p><p> p->Next=p->Next->Next; </p><p> delete temp;
57、</p><p> cout<<"\t\t刪除成功!"<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……";</p><p><b> getch();</b></p><p><b> }</b>
58、;</p><p><b> else</b></p><p><b> {</b></p><p> cout<<"\t\t沒(méi)有找到!"<<endl;</p><p> cout<<"輸入任意字符!繼續(xù)……";&l
59、t;/p><p><b> getch();</b></p><p><b> }</b></p><p><b> }</b></p><p> void Studentmassage::Swap(Student *p1, Student *p2)//交換兩個(gè)變量的數(shù)據(jù)
60、</p><p><b> {</b></p><p> Student *temp=new Student; </p><p> strcpy(temp->name,p1->name);</p><p> strcpy(temp->Id,p1->Id);</p><p
61、> temp->Cnum=p1->Cnum;</p><p> temp->Pnum=p1->Pnum;</p><p> temp->sum=p1->sum;</p><p> strcpy(p1->name,p2->name);</p><p> strcpy(p1->
62、Id,p2->Id);</p><p> p1->Cnum=p2->Cnum;</p><p> p1->Pnum=p2->Pnum;</p><p> p1->sum=p2->sum;</p><p> strcpy(p2->name,temp->name);</p>
63、<p> strcpy(p2->Id,temp->Id);</p><p> p2->Cnum=temp->Cnum;</p><p> p2->Pnum=temp->Pnum;</p><p> p2->sum=temp->sum;</p><p><b>
64、}</b></p><p> int Studentmassage::ListCount()//統(tǒng)計(jì)當(dāng)前鏈表的記錄總數(shù),返回一個(gè)整數(shù)</p><p><b> {</b></p><p> if(! Head)</p><p><b> return 0;</b></p&g
65、t;<p><b> int n=0;</b></p><p> for(Student * p=Head->Next;p!=End;p=p->Next)</p><p><b> {</b></p><p><b> n++;</b></p><
66、p><b> }</b></p><p><b> return n;</b></p><p><b> }</b></p><p> void Studentmassage::Sort()//對(duì)當(dāng)前鏈表進(jìn)行排序</p><p><b> { <
67、/b></p><p> cout <<"Sorting..."<<endl;</p><p> Student *p=NULL,*p1=NULL,*k=NULL;</p><p> int n=Studentmassage::ListCount();</p><p><b>
68、 if(n<2) </b></p><p><b> return;</b></p><p> for(p=Head->Next;p!=End;p=p->Next)</p><p> for(k=p->Next;k!=End;k=k->Next)</p><p><
69、b> {</b></p><p> if(p->sum>k->sum)</p><p><b> {</b></p><p> Studentmassage::Swap(p,k);</p><p><b> }</b></p><p&
70、gt;<b> }</b></p><p> cout <<"排序完成!"<<endl;</p><p><b> getch();</b></p><p><b> return;</b></p><p><b>
71、 }</b></p><p> void Studentmassage::Save()// 保存函數(shù)</p><p><b> {</b></p><p> out.open("student.txt");</p><p> for(Student *p=Head->Nex
72、t;p!=End;p=p->Next)</p><p> out<<p->name<<"\t"<<p->Id<<"\t"<<p->Cnum<<"\t"<<p->Pnum<<"\t"<<p->
73、sum<<'\n';</p><p> out.close();</p><p><b> }</b></p><p> int main()//主函數(shù)</p><p><b> {</b></p><p> int x,i=0;<
74、/p><p> bool quit=false;</p><p> cout<<"\t\t 歡迎進(jìn)入學(xué)生成績(jī)管理系統(tǒng) "<<endl;</p><p> Studentmassage Grade;</p><p> cout<<
75、;"按任意鍵開(kāi)始……";</p><p><b> getch();</b></p><p> while(!quit)</p><p><b> {</b></p><p> system("cls");</p><p>
76、Grade.ShowMenu();</p><p><b> cin>>x;</b></p><p><b> switch(x)</b></p><p> { case 0:quit=true;break;</p><p> case 1:Grade.AddItem();bre
77、ak;</p><p> case 2:Grade.Display();break;</p><p> case 3:Grade.Sort();break;</p><p> case 4:Grade.Find();break;</p><p> case 5:Grade.RemoveItem();break;</p>
78、<p> case 6:Grade.ModifyItem();break;</p><p><b> }</b></p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b&
79、gt;</p><p><b> 六、測(cè)試結(jié)果及分析</b></p><p> 開(kāi)始界面,按任意鍵進(jìn)入菜單。</p><p> 可以按菜單鍵進(jìn)行操作。</p><p> 用1按鍵進(jìn)行新建和插入操作。</p><p> 選擇3按鍵進(jìn)行排序操作。</p><p>
80、選擇2按鍵進(jìn)行排序后的顯示既查看操作。</p><p> 選擇5按鍵進(jìn)行刪除操作。</p><p> 此圖是刪除后的顯示結(jié)果。</p><p> 這個(gè)圖是按0按鍵成功保存信息后生成的student.txt文檔。</p><p><b> 七、小結(jié)</b></p><p> 通過(guò)這次課程設(shè)
81、計(jì),我發(fā)現(xiàn)我有很多不足,在程序的調(diào)試階段,經(jīng)常為幾個(gè)錯(cuò)誤而弄的心煩氣躁。這足以說(shuō)明我對(duì)知識(shí)的掌握還很不熟練;在知識(shí)面前,我見(jiàn)到了十分渺小的我。程序設(shè)計(jì)的過(guò)程中也暴露了我的很多弊端,借這次課程設(shè)計(jì)的機(jī)會(huì)我會(huì)認(rèn)真的加以改正,為今后的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。</p><p> 這一次課程設(shè)計(jì)的成功,我得到了徐老師和耿老師的指導(dǎo)與幫助,還有同學(xué)們?cè)谥R(shí)與信心方面的支持和鼓勵(lì)——特別是我的大三同學(xué)孟三軍同學(xué)。在此,我衷心的感
82、謝你們!</p><p> 在這次課程設(shè)計(jì)中,我對(duì)指針、數(shù)組、文件的定義與具體的引用有了更深刻的認(rèn)識(shí);同時(shí),也再一次鞏固了數(shù)字的求和、排序——特別是選擇排序、冒泡排序、顯示格式方面的知識(shí);見(jiàn)識(shí)了鏈表與指針數(shù)組組合的奇妙,引起了我對(duì)計(jì)算機(jī)課程的強(qiáng)烈興趣!</p><p><b> 參考文獻(xiàn)</b></p><p> 程序設(shè)計(jì)基礎(chǔ)(第二版)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c++程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- vb程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告學(xué)生成績(jī)管理系統(tǒng)
- vb程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告-學(xué)生成績(jī)管理系統(tǒng)
- c++程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)程序設(shè)計(jì)
- vb程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告學(xué)生成績(jī)管理系統(tǒng)
- c++程序設(shè)計(jì)課程設(shè)計(jì) ----學(xué)生成績(jī)管理系統(tǒng)實(shí)驗(yàn)報(bào)告
- java程序課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)
- c語(yǔ)言程序課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)
- c語(yǔ)言程序課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言程序設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言程序設(shè)計(jì)__學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)
- 課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論