實驗8-自定義數(shù)據(jù)類型1_第1頁
實驗8-自定義數(shù)據(jù)類型1_第2頁
實驗8-自定義數(shù)據(jù)類型1_第3頁
實驗8-自定義數(shù)據(jù)類型1_第4頁
實驗8-自定義數(shù)據(jù)類型1_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗8自定義數(shù)據(jù)類型三、實驗思考1.有10名學(xué)生的數(shù)據(jù),每個學(xué)生的數(shù)據(jù)包括學(xué)號、姓名、性別、三門課的考試成績及平均成績。要求:(1)編寫一個input函數(shù),用來輸入10個學(xué)生的信息。(2)編寫一個output函數(shù),用來輸出10個學(xué)生的信息。(3)計算每個學(xué)生的平均成績,并按平均成績由小到大進(jìn)行排序后輸出。2.設(shè)有5個學(xué)生和教師的數(shù)據(jù)。學(xué)生的數(shù)據(jù)包括:姓名、年齡、性別、職業(yè)和年級。教師的數(shù)據(jù)包括:姓名、年齡、性別、職業(yè)和職務(wù)?,F(xiàn)要求輸入學(xué)生和教師的數(shù)據(jù),并輸出這些數(shù)據(jù),要求當(dāng)職業(yè)項為學(xué)生時,輸出的最后一項為年級;當(dāng)職業(yè)項為教師時,輸出的最后一項為職務(wù)。3.利用結(jié)構(gòu)體數(shù)組和結(jié)構(gòu)體指針,根據(jù)從鍵盤輸入的學(xué)生姓名,查找已給出數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,若找到該名學(xué)生,則輸出其所有信息;若找不到該名學(xué)生,則輸出相應(yīng)提示信息。4.編程實現(xiàn),從紅、黃、藍(lán)、綠四種顏色中任取三種不同的顏色,共有多少種取法,并請輸出所有的排列?5.從鍵盤輸入一批正整數(shù)(以-作為輸入結(jié)束標(biāo)志),按插表尾形式把它們組成一個線性鏈表。然后,從表頭開始,遍歷所有結(jié)點并輸出各結(jié)點中的數(shù)據(jù)。要求線性鏈表的生成與遍歷均寫成函數(shù)定義。6.從鍵盤輸入一系列非負(fù)整數(shù),遇0時停止。對于輸入的所有偶數(shù)和奇數(shù),分別建立一個偶數(shù)鏈表和一個奇數(shù)鏈表,然后輸出兩個鏈表中的數(shù)據(jù)。答案#include<iostream>#include<iomanip>usingnamespacestd;constintn=2;//設(shè)置人數(shù)常量n,本例為2人structstudent{charnum[6];//學(xué)號charname[8];//姓名charsex[2];//性別intscore[4];//score[1]~score[3]存放3門課成績,score[0]存放平均成績}stu[n];voidinput()//輸入函數(shù)input{inti,j,sum;for(i=0;i<n;i++){sum=0; cout<<"inputthe"<<i+1<<"thstudent'sscores:"<<endl;cout<<"No.:"; cin>>stu[i].num; cout<<"name:"; cin>>stu[i].name; cout<<"sex:"; cin>>stu[i].sex; for(j=0;j<3;j++) {cout<<"score"<<j+1<<":"; cin>>stu[i].score[j+1]; sum=sum+stu[i].score[j+1]; } cout<<endl; stu[i].score[0]=sum/3;}}voidoutput(studentstu[])//輸出函數(shù)output{inti,j;cout<<"NO. namesexaveragescore1 score2score3"<<endl;for(i=0;i<n;i++){cout<<stu[i].num<<setw(7)<<stu[i].name<<setw(7)<<stu[i].sex<<setw(7);for(j=0;j<4;j++) cout<<setw(7)<<stu[i].score[j]<<""; cout<<endl;}}voidsort()//排序函數(shù)sort{inti,j,max;studenttemp;for(i=0;i<n-1;i++){max=i; for(j=i+1;j<n;j++) if(stu[max].score[0]<stu[j].score[0])max=j;temp=stu[i];stu[i]=stu[max]; stu[max]=temp;}}voidmain(){input();output(stu);sort();cout<<"sortresult:"<<endl;output(stu);}從題意中可知,學(xué)生和教師所包含的數(shù)據(jù)是不同的,現(xiàn)把數(shù)據(jù)放在以下表格中。Nam(姓名)Num(學(xué)號)Sex(性別)Job(職業(yè))grade(年級)duty(職務(wù))Hu1011ms3li2278ftprof如果job項為st(學(xué)生),則第5項為grade(年級),如果job項為te(教師),則第5項為prof(教授)。#include<iostream>#include<iomanip>usingnamespacestd;cin>>i;}}voidtraverse(node*head){node*p;p=head;cout<<"theresultis:"<<endl;;while(p){cout<<p->data<<"";p=p->next;//使p指針移動到下一個結(jié)點}cout<<endl;}voidmain(){node*head1=NULL;creat(head1);traverse(head1);}#include<iostream>#include<iomanip>usingnamespacestd;structnode{intdata;structnode*next;};voidcreat(node*&head)//建立以head為頭指針的鏈表,head為引用參數(shù),//以使對應(yīng)的實參為該鏈表的表頭指針{inti; node*last,*p; cout<<"enternonnegativeinteger,0toend:"<<endl; cin>>i; if(i==0){cout<<"Thelinkedlistisempty!"<<endl;return;}//鏈表為空,返回 last=head;p=newnode; p->data=i; p->next=last; head=p; last=p; cin>>i; while(i!=0) {p=newnode; //產(chǎn)生一個p所指的動態(tài)結(jié)點p->data=i;last->next=p;p->next=NULL; last=p;//last指針指向表尾結(jié)點cin>>i;}return;}voidcre_oddeven(node*&headodd,node*&headeven)//拆分偶數(shù)、奇數(shù)鏈表{node*p1,*p2,*even;if(headodd==NULL) {cout<<"Thelinkedlistisempty!"<<endl; return; }p1=headodd; even=newnode; even->next=NULL; headeven=even; while(p1->next!=NULL)//刪除鏈表中的偶數(shù){p2=p1;p1=p1->next;if((p2->data%2==0)&&(p2==headodd))//將在第一節(jié)點中的偶數(shù),插入偶數(shù)鏈中 {headodd=p1; even->next=p2; even=p2; } elseif((p1->data%2==0))//將不在第一節(jié)點中的偶數(shù),插入偶數(shù)鏈中 { p2->next=p1->next; even->next=p1; even=p1; p1=p2; even->next=NULL; } } if(headodd->data%2==0)headodd=0;headeven=headeven->next;}voidtraverse(node*head){node*p;p=head; if(p==NULL)cout<<"Thelinkedlistisempty!"<<endl;while(p){cout<<p->data<<"";p=p->next;//使p指針移動到下一個結(jié)點}cout<<endl;}voidmain(){ node*head=NULL,*headodd,*headeven=NULL;//headodd,headeven分別為奇、偶鏈表的頭指針 creat(head); headodd=

溫馨提示

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

評論

0/150

提交評論