建立一個順序表,表中元素為學生,每個學生信息包含姓名、學號和成績?nèi)糠?對該表實現(xiàn)輸出、插入、刪除、_第1頁
建立一個順序表,表中元素為學生,每個學生信息包含姓名、學號和成績?nèi)糠?對該表實現(xiàn)輸出、插入、刪除、_第2頁
建立一個順序表,表中元素為學生,每個學生信息包含姓名、學號和成績?nèi)糠?對該表實現(xiàn)輸出、插入、刪除、_第3頁
建立一個順序表,表中元素為學生,每個學生信息包含姓名、學號和成績?nèi)糠?對該表實現(xiàn)輸出、插入、刪除、_第4頁
建立一個順序表,表中元素為學生,每個學生信息包含姓名、學號和成績?nèi)糠?對該表實現(xiàn)輸出、插入、刪除、_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、云南大學物理實驗教學中心實驗報告課程名稱:計算機軟件技術(shù)基礎(chǔ)實驗項目: 實驗二、線性表(順序存儲)及其應用學生姓名:學號:學院系級專業(yè)指導教師:實驗時間:年日時分至時分實驗地點:實驗類型:教學(演示驗證綜合設(shè)計)學生科研課外開放測試其它成績1 一、實驗目的:掌握順序表的建立及基本操作。二、問題:建立一個順序表,表中元素為學生,每個學生信息包含姓名、學號和成績?nèi)糠郑?對該表實現(xiàn): 輸出、 插入、 刪除、 查找功能,并計算出平均成績和總成績。三、程序的編寫與調(diào)試1、原程序:#include using namespace std; typedef struct long double num;

2、char name10; int score; student; class sq_llist private : int mm; int nn; student *v; public: sq_llist(int ); void prt_sq_llist(); void ins_sq_llist(int , student); void del_sq_llist(int ); void sea_num_sq_llist( int ); void sea_name_sq_llist( int , char 批注a2 ); 2 void cal_sq_llist(int ); ; /* 輸出*/

3、sq_llist :sq_llist(int m) mm=m; v=new student mm; v0.num=970156; strcpy(,張小明); v0.score=87;v1.num=970157; strcpy(,李小青); v1.score=96; v2.num=970158; strcpy(,劉華); v2.score=85; v3.num=970159; strcpy(,王偉); v3.score=93; v4.num=970160; strcpy(,李啟明 ); v4.score=88; nn=5; v

4、oid sq_llist :prt_sq_llist() int i; for (i=0; inn; i+) cout學號: vi.num 姓名: 分數(shù): vi.scoreendl; /* 插入*/ 3 void sq_llist :ins_sq_llist(int i, student b) int k; if (nn=mm) coutnn) i=nn+1; if (i=i; k-) vk=vk-1; vi-1=b; nn=nn+1; /* 刪除*/ void sq_llist :del_sq_llist(int i) int k; if (nn=0) coutunderfl

5、owendl; return ; if (inn) coutnot this element in the list!endl; return ; for (k=i; knn; k+) vk-1=vk; nn=nn-1; 4 /* 按學號查找 */ void sq_llist :sea_num_sq_llist(int i) int k,t ; t=0; for (i=0;inn;i+) if (vi.num=k) t=t+1; cout學號: vi.num 姓名: 分數(shù): vi.scoreendl; if (t=0) coutno this student in the li

6、st!endl; /* 按姓名查找 */ void sq_llist :sea_name_sq_llist(int i, char y) int t; t=0; for (i=0;inn;i+) 5 if (strcmp(y,)=0) t=t+1 cout學號: vi.num 姓名: 分數(shù): vi.scoreendl; if (t=0) coutno this student in the list!endl /* 計算*/ void sq_llist :cal_sq_llist(int m) int i; float sum,avr; sum=0; for (i

7、=0;inn;i+) sum=sum+vi.score; avr=sum/(i+1); cout總分:sumendl; cout平均分: avrendl; int main() 6 int mx; sq_llist s1(100); while (1) cout1.輸出 2.插入 3.刪除 4.查找 5. 計算 0.退出n; coutmx; switch (mx) case 1: s1.prt_sq_llist(); break ; case 2: int i; student b; b.score; s1.ins_sq_llist(i,b); s1.prt_s

8、q_llist(); break ; case 3: couti; s1.del_sq_llist(i);s1.prt_sq_llist(); break ; case 4: int main() int mx; while (1) cout1.按學號查找 2.按姓名查找 0.返endl; coutmx; switch (mx) 7 case 1: long double k; 批注a1 :刪除coutk; 批注a1 :刪除 s1.sea_num_sq_llist(i); break ; case 2: char y10; 批注a3couty; 批注a3 s1.sea_name_sq_llis

9、t(); break; case 0: cout返回endl; return ; return 0; break ; case 5: s1.cal_sq_llist(); break ; case 0: cout程序結(jié)束 endl; return 0; return 0; 8 2、正確程序:#include using namespace std; typedef struct long double num; char name10; int score; student; class sq_llist private : int mm; int nn; student *v; public

10、: sq_llist(int ); void prt_sq_llist(); void ins_sq_llist(int , student); void del_sq_llist(int ); void sea_num_sq_llist( int ); void sea_name_sq_llist(); void cal_sq_llist(int ); ; /* 輸出*/ sq_llist :sq_llist(int m) 9 mm=m; v=new student mm; v0.num=970156; strcpy(,張小明); v0.score=87;v1.num=9701

11、57; strcpy(,李小青); v1.score=96; v2.num=970158; strcpy(,劉華); v2.score=85; v3.num=970159; strcpy(,王偉); v3.score=93; v4.num=970160; strcpy(,李啟明 ); v4.score=88; nn=5; void sq_llist :prt_sq_llist() int i; for (i=0; inn; i+) cout學號: vi.num 姓名: 分數(shù): vi.scoreendl; /* 插入*/ v

12、oid sq_llist :ins_sq_llist(int i, student b) int k; if (nn=mm) coutnn) i=nn+1; if (i=i; k-) vk=vk-1; vi-1=b; nn=nn+1; /* 刪除*/ void sq_llist :del_sq_llist(int i) int k; if (nn=0) coutunderflowendl; return ; if (inn) coutnot this element in the list!endl; return ; for (k=i; kk; t=0; for (i=0;inn;i+) i

13、f (vi.num=k) t=t+1; cout學號: vi.num 姓名: 分數(shù): vi.scoreendl; if (t=0) coutno this student in the list!y; t=0; for (i=0;inn;i+) if (strcmp(y,)=0) t=t+1; cout學號: vi.num 姓名: 分數(shù): vi.scoreendl; 12 if (t=0) coutno this student in the list!endl; /* 計算*/ void sq_llist :cal_sq_llist(int m)

14、 int i; float sum,avr; sum=0; for (i=0;inn;i+) sum=sum+vi.score; avr=sum/(i+1); cout總分:sumendl; cout平均分: avrendl; int main() int mx; sq_llist s1(100); while (1) cout1.輸出 2.插入 3.刪除 4.查找 5. 計算 0.退出n; 13 coutmx; switch (mx) case 1: s1.prt_sq_llist(); break ; case 2: int i; student b; b.

15、score; s1.ins_sq_llist(i,b); s1.prt_sq_llist(); break ; case 3: couti; s1.del_sq_llist(i);s1.prt_sq_llist(); break ; case 4: int mx; while (1) cout1.按學號查找 2.按姓名查找 0.返endl; coutmx; switch (mx) case 1: cout請輸入要查找學生的學號:; s1.sea_num_sq_llist(i); break ; case 2: cout請輸入要查找學生的姓名:; 14 s1.sea_name_sq_llist(); break; case 0: cout返回endl; return 0; return 0; break ; ca

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論