實驗六 結構體

2022-07-10 21:42:12 字數 3196 閱讀 8446

實驗六 結構體

一、實驗內容

(一)實驗任務一

1.程式源**

//

p280例8.15

//對教材上的程式作了微調整,把輸出學生資訊單獨編寫成乙個函式模組

//列印不及格學生資訊和所有學生資訊分別呼叫

#include

#include

#include

#define n 7 //

執行程式輸入測試時,可以把n改小一些輸入測試

typedef

struct

student stu;

void input(stu,int ); /*

輸入學生資訊

*/void calc(stu,int); /*

計算總評和等級

*/int fail(stu,stu ,int); /*

不及格學生統計

*/void sort(stu,int); /*

排序*/

void print(stu, int); /*

輸出學生資訊

*/int

main()

//輸入學生資訊

void input(stu s,int

n) //

計算總評和等級

void calc(stu s,int

n) }

//不及格學生統計

//陣列s存放的是所有學生資訊,陣列t存放不及格學生資訊,n是陣列s中元素個數

//函式返回值:返回的是不及格人數

int fail(stu s,stu t,int

n) //

根據總評成績對學生記錄資訊排序

//使用的是氣泡排序演算法

void sort(stu s,int

n) }

//輸入學生資訊

void print(stu s, int

n)

2.執行測試截圖

3.總結在這個問題的源**中,你自己理解或編碼實現時,認為需要注意的點

注意陣列、結構體內部的傳輸,同時,注意字串的賦值操作。

(二)實驗任務二

1.程式源**

#include #include 

const

int n=10;//

定義結構體型別struct student,並定義stu為其別名

typedef struct

student stu;

//函式宣告

void input(stu s, int

n);int findminlist(stu s, stu t, int

n);void output(stu s, int

n);int

main()

//輸入n個學生資訊,存放在結構體陣列s中

void input(stu s, int

n) //

輸出結構體s中n個元素資訊

void output(stu s, int

n) //

在結構體陣列中,查詢最低分學生的記錄,將其存入結構體陣列t中

//形參n是結構體陣列s中元素個數

//函式返回最低分的學生人數

int findminlist(stu s, stu t, int

n) }

for (i=0; i)

}return

count;

}

2.執行測試截圖

(三)實驗任務三

1.程式源**

#include #include 

const

int n = 10;//

定義結構體型別struct student,並定義其別名為stu

typedef struct

student stu;

//函式宣告

void input(stu s, int

n);void output(stu s, int

n);void process(stu s, int

n);int

main()

//錄入考生資訊:准考證號,姓名,客觀題得分,操作題得分

void input(stu s, int

n) }

//輸出考生完整資訊:准考證號,姓名,客觀題得分,操作題得分,總分,等級

void output(stu s, int

n) }

//對考生資訊進行處理:計算總分,排序,確定等級

void process(stu s, int

n)

for(j=0;j)

}temp=s[j];

s[j]=s[max];

s[max]=temp;

}for (i=0; i)

else

if (i+1

<=0.5*n)

else}}

2.執行測試截圖

二、實驗總結

1.本次實驗中學到的新內容或增加的新理解

我熟練掌握了結構體的互相賦值,我覺得這簡直是便民利民的事情,因為結構體在某些方面和陣列有點像,但是陣列是不能相互整體賦值的,而結構體可以整體賦值就非常方便操作。也就可以縮短**。

2.本次實驗中踩的坑

這次實驗的實驗任務三,做的時間比較長,但是其實演算法很快就搭好了,被絆住的是很小的細節,就比如max用完之後沒有注意初始化,比如%c和%s的問題用錯了等等,所以還是要注意語法的複習,否則在實現相對比較複雜的程式時就會導致各種報錯和warning。

3.願意分享的一點點小小的方法

在實現乙個相對比較複雜的程式時,裡面有許多功能,功能每乙個其實比較簡單,但是由於程式裡是結構體或者複雜的陣列導致debug的時候非常複雜,這種時候我一般會另外開乙個test,把其中乙個小的功能寫乙個最簡單的小程式,把結構體用簡單的整型變數來代替,這樣來測試自己的程式模組有沒有問題。

實驗六 結構體

程式源 1 p280例8.152 對教材上的程式作了微調整,把輸出學生資訊單獨編寫成乙個函式模組3 列印不及格學生資訊和所有學生資訊程分別呼叫 45 include6 include7 include 8 define n 3 執行程式輸入測試時,可以把n改小一些輸入測試 910 typedef s...

實驗六 結構體

實驗任務1 p280例8.15 對教材上的程式作了微調整,把輸出學生資訊單獨編寫成乙個函式模組 列印不及格學生資訊和所有學生資訊程分別呼叫 include include include define n 3 執行程式輸入測試時,可以把n改小一些輸入測試 typedef struct student...

C 結構體(六)

1.結構體和指標 指向結構體變數的指標 定義形式 struct 結構體名 結構體指標名 例如 struct student p struct student stu struct student p stu p num 15 在main函式中定義乙個struct student型別的指標p p nu...